我试着用谷歌搜索和使用forums.joomla.org,因为我想确保我没有在这里浪费人们的时间,但不幸的是我没有运气。这是我的问题:
对于我的网站,我有两个登陆页,只有链接注册免费成为会员,并适当的索引页,用户访问后,他们成为注册。我把登陆页面设置为加拿大。因为我想让人们在第一次进入这个页面的时候就登陆到这里。我真正的索引页位于kanadax.ca/index.php。然而,现在当用户已经登录并点击网站徽标进入根域时,他们会得到一个页面未找到错误。
所以我要做的是:-如果是未注册的访客用户,将徽标重定向到位于kanadax.ca/的登陆页面。-一旦用户注册,任何时候他们去kanadax.ca/index.php应该重定向到example.com/index.php.
基本上我正在寻找基于用户组的条件重定向。什么好主意吗?
现在显然我更喜欢example.com/url作为主要索引页,而不是不太吸引人的example.com/index.php,但这是我修复重定向后的第二步。我相信这可以用。htaccess来完成,但是有了更复杂的登陆页——我为客人和注册用户设计的索引页结构,我认为这可能有点困难。但是,如果您在这方面有任何意见,请务必给予反馈。
我应该说我对php不是很熟悉,但我很乐意尝试任何建议,如果你愿意给我一步一步。毕竟,我做这个网站的第一个目标是学习!
多谢!
如果有必要,我很乐意提供一个测试帐户,这样你就可以自己玩这个网站了。* *编辑:
嘿@Adam,我真的很感谢你的建议和一步一步的努力,这正是我所需要的。现在,我已经将第一部分放在index.php的开头,但是对于后一部分,我不太确定应该放在哪里。当我在index.php中搜索任何与logo相关的内容时,会出现两个单独的部分:
// Logo file or site title param
if ($this->params->get('logoFile'))
{
$logo = '<img src="'. JURI::root() . $this->params->get('logoFile') .'" alt="'. $sitename .'" />';
}
elseif ($this->params->get('sitetitle'))
{
$logo = '<span class="site-title" title="'. $sitename .'">'. htmlspecialchars($this->params->get('sitetitle')) .'</span>';
}
else
{
$logo = '<span class="site-title" title="'. $sitename .'">'. $sitename .'</span>';
}
和
<div class="header">
<div class="header-inner clearfix">
<a class="brand pull-left" href="http://www.kanadax.ca/index.php/anasayfa">
<?php echo $logo;?> <?php if ($this->params->get('sitedescription')) { echo '<div class="site-description">'. htmlspecialchars($this->params->get('sitedescription')) .'</div>'; } ?>
</a>
<div class="header-search pull-right">
<jdoc:include type="modules" name="position-0" style="none" />
</div>
</div>
</div>
第二部分在标题下。你觉得这两个是对的吗?如果是这样,我应该删除里面的内容,用你的建议代替,还是保留?
尝试按以下方式修改模板index.php文件:
-
将此添加到代码开头的某个地方
$user = JFactory::getUser(); if(JFactory::getUser()->id) { //link to page for registered users $link = JRoute::_('index.php?option=com_content&view=article&id=3'); }else{ //link to page for default users $link = JRoute::_('index.php?option=com_content&view=article&id=1'); }
-
在应该显示标志的地方
<a href="<?php echo $link; ?>"> <img src="images/path_to_image_name"/> </a>
就是这样!当你更熟悉Joomla和PHP时,你可以创建一个自定义模块,而不是直接注入模板。
如果你不想破解任何东西,你也可以尝试在调试或其他位置的自定义html模块中粘贴一些重定向代码,但使用高级模块管理器仅为来宾加载它或仅为登录用户加载它。你可以用AMM做各种各样的技巧来加载或不加载基于无数参数的东西。
Adam的回答更简洁,但是有些人真的不愿意修改他们的模板(或者如果它是一个商业模板,那么找到合适的位置放入代码可能真的很麻烦)。
你可以在这里阅读更多关于AMM的信息:http://www.nonumber.nl