在 1.6 之前的 Joomla 中,我可以将一个菜单项设置为public,它的内容:例如一篇文章 to registered。
这导致人们在未登录时可以在菜单中看到文章的链接,但在单击时会得到一个登录组件。之后他们看到了这篇文章。
在 1.7 中,这些相同的操作会导致当我单击链接时组件屏幕保持空白。
当前端用户没有以足够的权限登录时,如何让注册文章显示登录屏幕?以前很容易,现在我似乎无法让它工作。
在 1.6 之前的 Joomla 中,我可以将一个菜单项设置为public,它的内容:例如一篇文章 to registered。
这导致人们在未登录时可以在菜单中看到文章的链接,但在单击时会得到一个登录组件。之后他们看到了这篇文章。
在 1.7 中,这些相同的操作会导致当我单击链接时组件屏幕保持空白。
当前端用户没有以足够的权限登录时,如何让注册文章显示登录屏幕?以前很容易,现在我似乎无法让它工作。
我要回答我自己的问题,因为我相信人们将来会需要这个,我的解决方案只涉及一些额外代码的规则,然后你可以将每篇文章等设置为已注册,你会看到一个登录字段当用户未登录时。
在您的模板 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;
}
祝你好运!
创建您的“真实”菜单(例如,“主菜单”)和将为所有用户显示的菜单项(例如“提交文章”)。菜单项将具有“别名”菜单项类型。它的“菜单项”参数将是“隐藏菜单”上的“提交文章”菜单项。此菜单项的访问级别将是“公共”,因为我们希望每个人都能看到和使用它。
为这个菜单创建一个“mod_mainmenu”类型的模块,就像你为任何菜单做的那样。
现在,当访客(未登录的用户)访问“提交文章”菜单选项时,它会将他们重定向到带有“仅限注册访问者”消息的空白页面。. 如果他们成功登录,他们将被带到所需的页面(在本例中为“提交文章”)。如果已经登录,他们直接去那里。
如果您想要的只是在访问者是注册用户的情况下显示内容,您可以使用以下代码:
$user =& JFactory::getUser();
<?php
if( !$user->guest ){ ?>
[[what ever you want to do ]]
<?php endif; ?>
希望有帮助!!
转到菜单内容,创建或编辑要保护的项目的部分。
您会看到一个选项:访问级别
有3个选项:
公共、注册和特殊
将其设置为:已注册
然后,您需要更改此部分的文章,仅此而已。
首先,您必须将您的 joomla 安装更新到 2.5(它是 joomla 的最新版本),Joomla 社区不再支持 1.7。
有几种方法可以设置您的查看权限。K2是一个有用的 CCK 组件来完成这项工作,我使用的一个有用的技术是在菜单中“链接”您文章的类别并设置菜单项的特定权限