所以在我的 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
答案 0 :(得分:3)
而不是|| [或]使用&amp;&amp; [AND]
if(JRequest::getVar('view') !== 'login' && JRequest::getVar('view') !== 'reset' && JRequest::getVar('view') !== 'remind' && JRequest::getVar('view') !== 'registration')
的一些解释
$ 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默认模板