Joomla文档中文翻译 - 怎样同时判断多个模块位中的模块数量
上一篇文档介绍了怎样计算判断指定模块位中的模块数量,今天我们来看看怎样同时判断多个模块位中的模块数量。
我们依然使用countModules函数来做判断,与对单一模块中的模块数量进行判断的情况有所区别,现在我们需要为countModules函数提供多于一个的模块位名称作为参数。例如,我们可以通过下面这行代码来计算“user1”和“user2”两个模块位中的模块总数:
$this->countModules( 'user1 + user2' );
这里我们需要注意运算符的使用,上面的代码中我们通过“+”来计算这两个模块位中的模块总数,如果将“+”替换为“and”,那么函数将判断这两个模块位是否各自至少包含一个模块(“+”对模块数量做加法运算,而“and”是“与”、“&&”的概念);代码如下:
$this->countModules( 'user1 and user2' );
注意上面代码中的“and”需要包含在引号里面,一个常见的错误就是将代码误写成下面的样子:
$this->countModules( 'user1' and 'user2' );
另外一点需要注意的是,无论使用'user1 + user2'还是'user1 and user2',在“+”和“and”的两侧都要保留一个空格。
实例一
根据设计需求,我们要把user1和user2两个模块位都放置在<div class="rightcolumn">这个列中;当这两个模块位都没有被分配模块时,我们希望HTML代码中不要输出<div class="rightcolumn">这个空容器。实现这个需求的代码如下:
<?php if ($this->countModules( 'user1 or user2' )) : ?>
<div class="rightcolumn">
<jdoc:include type="modules" name="user1" style="xhtml" />
<jdoc:include type="modules" name="user2" style="xhtml" />
</div>
<?php endif; ?>
实例二
设计需求是user1和user2两个模块位需要并排放在<div class="user1user2">这个容器中,并且被一个分隔符分开;如果只有一个模块位被分配了模块,分隔符就不需要显示出来;如果两个模 块位都没有被分配模块,那么整个<div>容器不需要被输出。实现这个需求的代码如下:
<?php if ($this->countModules( 'user1 or user2' )) : ?>
<div class="user1user2">
<?php if ($this->countModules( 'user1' )) : ?>
<jdoc:include type="modules" name="user1" style="xhtml" />
<?php endif; ?>
<?php if ($this->countModules( 'user1 and user2' )) : ?>
<div class="greyline"></div>
<?php endif; ?>
<?php if ($this->countModules( 'user2' )) : ?>
<jdoc:include type="modules" name="user2" style="xhtml" />
<?php endif; ?>
</div>
<?php endif; ?>
第一行代码的原理与实例一相同,用来判断整个容器是否需要被输出;接下来的三个判断中,第一个和第三个分别判断user1和user2是否被分配模块,中间一段代码用来判断如果user1和user2中同时有模块输出,则显示分隔符容器。
译者:Viiiix7210
如需转载,请注明官方英文文档及本人译文的出处,谢谢。查看官方英文文档: Counting modules in multiple module positions
| < Prev | Next > |
|---|

评论刷新