Joomla定义首页模板

偶看在制作Joomla模板时想要自定义首页模板,通过百度搜索发现,资料大部分是针对Joomla1.5版本的,和现在最新的3.1版本差距太大。偶看从官方的说明文档中找到的Joomla整个系列的自定义首页模板的代码,翻译过来留存。

Joomla 1.0

在Joomla! 1.0.x。通过以下代码可以确定用户正在浏览网站首页:

<?php
if ($option == 'com_frontpage' || $option == '') {
        echo 'This is the front page';
}
?>

Joomla 1.5

但是在Joomla! 1.5.x “com_frontpage”组件不再出现。以下代码能够实现同样的结果:

<?php
$menu = & JSite::getMenu();
if ($menu->getActive() == $menu->getDefault()) {
        echo 'This is the front page';
}
?>

这是通过检查当前默认激活的菜单项来实现判断。

Joomla 2.5 and 3.x series

为了避免严格的标准错误,和1.6/1.7/2.5有一些不同。在只有一种语言的网站中,使用以下代码。

<?php
$app = JFactory::getApplication();
$menu = $app->getMenu();
if ($menu->getActive() == $menu->getDefault()) {
        echo 'This is the front page';
}
?>

在多语言网站中,首页依赖于当前选中的语言,所以需要使用以下的代码:

<?php
$app = JFactory::getApplication();
$menu = $app->getMenu();
if ($menu->getActive() == $menu->getDefault( 'en-GB' )) {
        echo 'This is the front page';
}
elseif ($menu->getActive() == $menu->getDefault( 'fr-FR' )) {
        echo 'Accueil';
}
?>

对于多语言网站,对于所有的默认主页需要显示一个特定的代码,可以使用如下代码:

<?php
$app = JFactory::getApplication();
$menu = $app->getMenu();
$lang = JFactory::getLanguage();
if ($menu->getActive() == $menu->getDefault($lang->getTag())) {
        echo 'This is the front page';
}
else {
        echo 'Accueil';
}
?>

原文地址:Joomla官方文档 http://docs.joomla.org/How_to_determine_if_the_user_is_viewing_the_front_page

《Joomla定义首页模板》有6个想法

发表评论