我想创建一个joomla 3.x模板,该模板在主页上显示的页面与在所有页面上的不同。
使用以下代码可以正常工作:
$app = JFactory::getApplication();
$menu = $app->getMenu();
$lang = JFactory::getLanguage();
$isHomePage = $menu->getActive() == $menu->getDefault($lang->getTag());
当我点击一个菜单项时,$ isHomePage是" false"我可以展示不同的布局。
但是当我从主页上的精选文章列表中打开文章时,菜单项仍然是主页,但用户确实看到了该文章。
如果用户确实在主页上,我该如何获取信息?
答案 0 :(得分:0)
根据我的理解,内页条件在内页上变为真实是因为如果文章没有任何菜单,则从当前菜单中获取它。因此,点击主页文章链接会带有主页菜单ID。
我可以建议一些替代方案 -
1)检查URL - 检查当前URL是否等于站点页面URL。
$uri = JUri::getInstance();
$currentUrl = trim($uri->toString(),'/');
$homeUrl = trim(JUri::root(),'/');
$isHomePage = $currentUrl == $homeUrl;
2)检查带有内页参数的主页参数。例如,如果您的主页属于文章且ID为X,请检查请求params,检查option
和id
param到com_content
和id == X
。
我希望这可能会有所帮助。