Joomla模板php检查是否查看登录注册页面

时间:2016-10-30 02:07:25

标签: php joomla

所以在我的 templates / templatename / index.php 中我做了以下代码来检查用户是否正在查看注册,登录,提醒或忘记密码页面 NOT 在这些特定页面上显示/插入广告。

但由于某些原因,我的代码无效,我无法弄清楚原因。

<?php if(JFactory::getUser()->guest) : ?>
<?php if(JRequest::getVar('view') !== 'login' || JRequest::getVar('view') !== 'reset' || JRequest::getVar('view') !== 'remind' || JRequest::getVar('view') !== 'registration') : ?>
<?php include(JPATH_BASE . '/' . 'advert.php'); ?>
<?php endif; ?>
<?php endif; ?>

advert.php包含的页面/网址不应出现在。

  ?

的index.php选项= com_users&安培;图=登录

     ?

的index.php选项= com_users&安培;图=重置

     ?

的index.php选项= com_users&安培;图=提醒

     ?

的index.php选项= com_users&安培;图=注册

感谢任何能指出我做错事的人。

//编辑: SEF Url也是

  

/login.html

     

/reset.html

     

/remind.html

     

/registration.html

1 个答案:

答案 0 :(得分:3)

而不是|| [或]使用&amp;&amp; [AND]

if(JRequest::getVar('view') !== 'login' && JRequest::getVar('view') !== 'reset' && JRequest::getVar('view') !== 'remind' && JRequest::getVar('view') !== 'registration')

这是PHP manual

的一些解释
  

$ a或$ b如果$ a或$ b为TRUE,则为TRUE。
  $ a和$ b如果$ a和$ b都为TRUE,则为TRUE。

您可以尝试的其他方式是使用$ option而不是$ view

$option != 'com_user'

在joomla 3.x中,您可以通过

获取此参数
$option   = $app->input->getCmd('option', '');

看一下protostar默认模板