6

在 1.6 之前的 Joomla 中,我可以将一个菜单项设置为public,它的内容:例如一篇文章 to registered

这导致人们在未登录时可以在菜单中看到文章的链接,但在单击时会得到一个登录组件。之后他们看到了这篇文章。

在 1.7 中,这些相同的操作会导致当我单击链接时组件屏幕保持空白。

当前端用户没有以足够的权限登录时,如何让注册文章显示登录屏幕?以前很容易,现在我似乎无法让它工作。

4

5 回答 5

9

我要回答我自己的问题,因为我相信人们将来会需要这个,我的解决方案只涉及一些额外代码的规则,然后你可以将每篇文章等设置为已注册,你会看到一个登录字段当用户未登录时。

在您的模板 index.php 中将其放在顶部附近,它会获取您文章的访问级​​别。

$article =& JTable::getInstance("content");
$article->load(JRequest::getVar('id'));
$cAccLevel = $article->get("access");

然后在您的组件上方添加一个模块位置,并仅在您需要的访问级别> 1时显示它

<?php if($cAccLevel > 1): ?>
    <jdoc:include type="modules" name="LOGIN_MODULE_POSITION" />
<?php endif; ?>

然后在模块管理器中将登录模块添加到 LOGIN_MODULE_POSITION。

瞧……不需要路由等等……一切都是开箱即用的,我选择像这样设计注销框和操作字段:

.logout-button,
.actions{
    display:none;
}

祝你好运!

于 2012-05-25T11:39:55.157 回答
6
  1. 从菜单管理器创建一个新菜单,说它被命名为“隐藏菜单”。
  2. 添加只有注册用户才能访问的任何菜单项。
  3. 设置这些菜单项所需的访问级别(本例中为“特殊”,但也可以是“已注册”)。不要为“隐藏菜单”创建模块。它不会显示在任何页面上,因此不需要模块。
  4. 创建您的“真实”菜单(例如,“主菜单”)和将为所有用户显示的菜单项(例如“提交文章”)。菜单项将具有“别名”菜单项类型。它的“菜单项”参数将是“隐藏菜单”上的“提交文章”菜单项。此菜单项的访问级别将是“公共”,因为我们希望每个人都能看到和使用它。

  5. 为这个菜单创建一个“mod_mainmenu”类型的模块,就像你为任何菜单做的那样。

  6. 创建登录模块并将访问级别设置为“公共”。确保模块只显示在“公共”菜单项上而不是注册项上,并选择一个可见的位置。

现在,当访客(未登录的用户)访问“提交文章”菜单选项时,它会将他们重定向到带有“仅限注册访问者”消息的空白页面。. 如果他们成功登录,他们将被带到所需的页面(在本例中为“提交文章”)。如果已经登录,他们直接去那里。

于 2012-05-15T18:10:11.940 回答
2

如果您想要的只是在访问者是注册用户的情况下显示内容,您可以使用以下代码:

$user =& JFactory::getUser();

    <?php
   if( !$user->guest ){ ?>

       [[what ever you want to do ]]
   <?php endif; ?> 

希望有帮助!!

于 2012-10-03T16:23:17.617 回答
1

转到菜单内容,创建或编辑要保护的项目的部分。

您会看到一个选项:访问级别

有3个选项:

公共、注册和特殊

将其设置为:已注册

然后,您需要更改此部分的文章,仅此而已。

于 2012-05-17T05:34:49.700 回答
-2

首先,您必须将您的 joomla 安装更新到 2.5(它是 joomla 的最新版本),Joomla 社区不再支持 1.7。

有几种方法可以设置您的查看权限。K2是一个有用的 CCK 组件来完成这项工作,我使用的一个有用的技术是在菜单中“链接”您文章的类别并设置菜单项的特定权限

于 2012-05-08T17:45:00.443 回答