我想在Joomla 3.3.0中只为我的首页分配一个模块。使用“菜单分配”部分中提供的设置,几乎不可能完成这一操作。
当我选择“仅在所选页面上”(并且只选择我的首页)时,它会显示在我的首页上,并从菜单中的所有页面中消失。但是,在每个未分配给任何菜单的页面上,我的模块也会出现。这很奇怪,因为我只想在所选页面(我的首页)上显示它。
我在整个网络上搜索过,但我只能在旧版本的Joomla中找到一些关于此问题的文章。解决方案是将每篇文章分配给未发布的菜单。这是很多工作,因为我每天要发表几篇文章。有什么方法可以更简单吗?例如,通过我的模板的index.php编码?像:
if(JRequest::getVar('view') == "frontpage" ) {
//You are in!
}
else {
//You are out!
}
(但该代码不能像Joomla 1.5那样编写)
对此有何想法?
答案 0 :(得分:0)
JRequest
,因此如果您想要检测首页,可以使用以下内容:
$app = JFactory::getApplication();
$menu = $app->getMenu();
if ($menu->getActive() == $menu->getDefault()) {
//You are in!
}
else {
// You are out!
}
答案 1 :(得分:0)
@Lodder和@TsybaSasha的答案都没问题,但他们没有回答@ max的问题:
您需要添加其他检查,以确定您是否确实在首页上。根据需要使用尽可能多的参数。例如,使用Lodders方法,没有语言:
$app = JFactory::getApplication();
$menu = $app->getMenu();
如果您的首页是特色文章菜单项,请检查是否是这种情况:
<?php
$input=Jfactory::getApplication()->input;
if ($menu->getActive() == $menu->getDefault()
&& $input->getCmd('view')=='featured' && $input->getCmd('option')=='com_content' ) {
//You are in, and will seldom fail, but could still fail if someone adds a link like
// index.php?option=com_content&view=featured&Itemid=101 where 101 is your start menu item
}
以类似的方式,您可以添加其他支票:如果您的特色视图仅对特定类别有效,您可以查看此等等。
答案 2 :(得分:0)
这对我有用:(joomla v3.5.1)
if (preg_match('/index\.php$/',$_SERVER['PHP_SELF'])) {
echo "this is the homepage";
}
发现于:https://stackoverflow.com/a/15282604/1289179(谢谢Payalytic船长)
我确实发现更换&#34;用&#39;我能够使用&#34;添加html。如下
if (preg_match('/index\.php$/',$_SERVER['PHP_SELF'])) {
echo '
<div id="header">
<jdoc:include type="modules" name="header" />
</div>
';
}