Joomla教程:一套模板实现多种布局模式
http://www.itjxue.com 2015-08-14 20:03 来源:未知 点击次数:
有时,我们需要页面的布局方式根据不同页面而发生相应的变化,但不希望为此而写另一套相似的模板来提供这些不同的布局模式;下面是一种针对该需求的解决方案。
设想我们的站点包括一个基于Fireboard的论坛,以及一个基于MyBlog的博客;对于论坛,我们希望页面以“内容+右侧边栏”的模式来呈现;对于博客则是“左侧边栏+内容”的模式。而其他页面则使用系统默认的呈现方式。
可以将下面的代码加入模板的index.php文件中,替换掉原来默认的<jdoc:include type="component" />.
<?php if (JRequest::getVar('option') == 'com_fireboard' ) {?> <!--code to detect Fireboard is loaded-->
<div class="MainCol">
<jdoc:include type="component" />
</div>
<div class="RightCol">
<jdoc:include type="modules" name="RightCol" style="none" />
</div>
<?php } elseif (JRequest::getVar('option') == 'com_myblog') {?> <!--code to detect Blog is loaded-->
<div class="LeftCol">
<jdoc:include type="modules" name="LeftCol" style="none" />
</div>
<div class="MainCol">
<jdoc:include type="component" />
</div>
<?php } else {?>
<jdoc:include type="component" />
<?php } ?>
前面两段代码分别判断当前页面是否包含Fireboard或MyBlog的组建,如果是,则采用相应的布局方式;如果不是,则仍使用默认的布局。
当然,对于代码中设定的“MainCol+RightCol”或“LeftCol+MainCol”两种布局,仍需要在CSS中做好相应的样式。