我使用joomla 2.5创建了自己的基于bootstrap的模板。 我已经在一个栏内的一行上计划了两个可选模块(如果里面没有模块则必须隐藏),但如果它们没有一起显示,我希望它们占据整行。 我的代码很简单,而且效果很好,但由于我讨厌编写不必要的行,我想知道是否有更优雅的方法来实现这个目标(或者如果我可以避免在mycode中进行一次或多次检查......) 这是我的代码
<?php if(($this->countModules('position-16'))|| ($this->countModules('position-17'))): ?>
<div class="evo-showcase">
<div class="container">
<div class="row">
<?php if($this->countModules('position-16')):?>
<?php if($this->countModules('position-17')):?>
<div class="span6">
<jdoc:include type="modules" name="position-16" style="none" />
</div>
<div class="span6">
<jdoc:include type="modules" name="position-17" style="none" />
</div>
<?php else :?>
<div class="span12">
<jdoc:include type="modules" name="position-16" style="xhtml" />
</div>
<?php endif; ?>
<?php else :?>
<div class="span12">
<jdoc:include type="modules" name="position-17" style="xhtml" />
</div>
<?php endif; ?>
</div>
</div>
</div>
答案 0 :(得分:0)
<?php
$spanClass=(($this->countModules('position-16')&&($this->countModules('position-17'))?6:12;
?>
<?php if($this->countModules('position-16')):?>
<div class="span<?php echo $spanClass;?>">
<jdoc:include type="modules" name="position-16" style="none" />
</div>
<?php endif; ?>
<?php if($this->countModules('position-17')):?>
<div class="span<?php echo $spanClass;?>">
<jdoc:include type="modules" name="position-17" style="none" />
</div>
<?php endif; ?>
答案 1 :(得分:0)
<?php
$span = 0;
if($this->countModules('position-16') and $this->countModules('position-17')){
$span = 6;
} else if ($this->countModules('position-16') or $this->countModules('position-17')) {
$span = 12;
}
?>
<?php if($span > 0):?>
<div class="evo-showcase">
<div class="container">
<div class="row">
<?php if($this->countModules('position-16')):?>
<div class="span<?php echo $span;?>">
<jdoc:include type="modules" name="position-16" style="none" />
</div>
<?php endif;?>
<?php if($this->countModules('position-17')):?>
<div class="span<?php echo $span;?>">
<jdoc:include type="modules" name="position-17" style="none" />
</div>
<?php endif;?>
</div>
</div>
</div>
<?php endif;?>