仅向注册用户显示joomla文章,如果未登录,则显示登录屏幕

时间:2012-05-08 08:54:53

标签: php joomla content-management-system joomla1.7

在1.6之前的Joomla中,我可以将菜单项设置为公开及其内容:例如已注册的文章。

这导致人们在未登录时可以看到菜单中文章的链接,但是只要他们点击它就会获得登录组件。之后他们看到了这篇文章。

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

当前端用户没有以足够的权限登录时,如何获得注册文章以显示登录屏幕?之前很容易让我看起来很容易让它工作现在

5 个答案:

答案 0 :(得分: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。

Voila ......不需要路由等......一切都开箱即用,我选择了这样的注销框和动作字段:

.logout-button,
.actions{
    display:none;
}
祝你好运!

答案 1 :(得分:5)

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

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

  6. 创建登录模块并将访问级别设置为“公共”。确保模块仅显示在“公共”菜单项上 不是注册的项目,而是选择一个可见的位置。
  7. 现在,当一个访客(非登录用户)访问“提交一个         文章“菜单选择,它将它们重定向到空白页面”         对于注册访问者“消息。如果他们成功登录,他们         被带到所需的页面(在这种情况下,“提交文章”)。         如果已经登录,他们会直接去那里。

答案 2 :(得分:2)

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

$user =& JFactory::getUser();

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

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

希望有所帮助!!

答案 3 :(得分:1)

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

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

有3个选项:

公开,注册和特殊

将其设置为: 注册

然后,您需要更改本节的文章,这就是全部。

答案 4 :(得分:-2)

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

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

相关问题