本节我们将让模板智能化,自动的隐藏没有放置模块的位置。
掌握countModules的用法,隐藏没有发布模块的位置
现在将侧边栏上的模块都停止发布,会看到如下的截图:
这明显不是我们期望的结果,理想的状态应该是如果侧边栏没有发布模块,内容部分应该自动的占据这个页面的全部内容。
Joomla针对上面的场景,为我们提供了解决方案——countModules(). 这个方法可以让我们计算指定的位置上发布的模块数量,以此来动态的调整网页的HTM结构,以此来解决空模块占据页面空间的问题。
countModules方法接受一个字符串的参数。该参数为你需要计算的位置的名称。返回该位置发布模块的个数。一段典型的代码如下:
<?php if ($this->countModules( 'sidebar' )) : ?>
<div class="sidebar">
<jdoc:include type="modules" name="sidebar" style="html5" />
</div>
<?php endif; ?>
上面的代码通过检查sidebar这个位置的模块数量,如果该位置的模块数量不为0,那么就输出这一个位置。
关于countModules()更加全面的介绍,请参考:countModules用法详解
在本版本中,我们增加了对模块位置的统计,以动态的调整html结构。
4.1 重点代码片段如下:
<div class="container">
<div class="row">
<?php if($this->countModules("sidebar")):?>
<div class="col-md-9">
<div class="content">
<!-- 组件输出的位置-->
<jdoc:include type="component" />
</div>
</div>
<div class="col-md-3">
<div class="sidebar">
<!-- 侧边栏-->
<jdoc:include type="modules" name="sidebar" style="html5" />
</div>
</div>
<?php else:?>
<div class="col-md-12">
<div class="content">
<!-- 组件输出的位置-->
<jdoc:include type="component" />
</div>
</div>
<?php endif;?>
</div>
</div>
上面的代码首先计算是否在sidebar这个位置发布了模块,如果有,那么内容和侧边栏分别为 col-md-9,col-md-3.如果没有则内容独占col-md-12
4.2 效果
4.3 v0.0.14版本的代码
关于v0.0.14版本的代码,可以在此下载 [下载文件:]tpl_plancv0.0.14_2019-01-18_for_j3x.zip
评论 (0)