Joomla文档中文翻译 - 怎样同时判断多个模块位中的模块数量

joomla_documentation_168上一篇文档介绍了怎样计算判断指定模块位中的模块数量,今天我们来看看怎样同时判断多个模块位中的模块数量。

我们依然使用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


收藏与分享

评论刷新

2011-08-12 15:56
谢谢楼主的精心制作与分享,这是 我看过最棒的教程!
2011-08-12 15:57
谢谢楼主精心的制作与分享,很棒

添加评论


Security code
换一张图