我正在创建一个Joomla 1.6模板,我想让第一页与其他页面不同(我说,其他的文章)。我期待的是类似的东西:
<?php
if(this_page_link_to_an_artcile || this_page_is_not_the_main) {
?> <jdoc:include type="component" /> <?php
}
?>
我查看了其中一个标准模板,并试图找到“if”,但在某些页面中没有显示这些模板。
答案 0 :(得分:3)
如果您想为每个页面或一组页面设置单独的样式,那么您可以将其添加到模板index.php / head:
<?php $active = JFactory::getApplication()->getMenu()->getActive();?>
之后,创建一个包装器div,它覆盖body标签中的所有页面,例如:
<body>
<div class="<?php echo $active->alias; ?> ">
----- PAGE CONTENT-----
</div>
</body>
通过这种方式,您可以使用单独样式设置任何页面的样式。例如,对于“home”页面,在css文件中,您应该设置
的属性.home .footer {}
设置仅出现在主页上的.footer div的属性。
答案 1 :(得分:1)
您可以使用joomla创建多个模板,并将它们分配给不同的菜单项/页面。 例如,您可以将主模板(带有文章)和另一个模板仅用于主页,即ex。链接到“主页”菜单项。
您可以使用模板管理器进行菜单项/模板分配。
答案 2 :(得分:1)
// Is Frontpage?
$option = JRequest::getCmd('option');
$view = JRequest::getCmd('view');
$frontpage = ($option == 'com_content' && $view == 'featured')
$is_article = ($option == 'com_content');
if ($is_article && !$frontpage)
{
// ...
}
(编辑:现在适用于Joomla!1.6)
($is_article || !$frontpage
应该总是返回true ...因为如果它不是文章,那么它不是首页。当然,取决于你如何定义“是一篇文章”。)
答案 3 :(得分:0)
你的意思是什么? Joomla中的页面根据加载的组件和模块而有所不同。您打算在主页上添加哪些内容?您可能只需要将默认菜单更改为其他类型。
除非主页上存在结构差异,否则无需添加更多代码,只需更改菜单类型。
为了适应从一个页面到另一个页面的结构差异,您需要制作仅在需要时显示的可折叠位置。
<?php if ($this->countModules('left')) : ?>
<div id="leftcolumn">
<jdoc:include type="modules" name="left" style="xhtml" />
</div>
<?php endif; ?>
您还希望利用可添加到菜单项的页面类后缀参数。这允许您添加特定于页面的样式。我通常将它添加到我的模板index.php中的BODY标签。
<?php
$menu = &JSite::getMenu();
$active = $menu->getActive();
$pageclass = "";
if (is_object( $active )) :
$params = new JParameter( $active->params );
$pageclass = $params->get( 'pageclass_sfx' );
endif;
?>
<body id="<?php echo $pageclass ? $pageclass : 'default'; ?>">