下面是关于如何显示结构的条件,具体取决于模块是处于“左”位置还是“右”位置,或者模块是否位于“左”和“右”。
模块处于“左”位置或“右”位置的条件有效。但是如果我在“左”和“右”位置都有一个模块,则只显示处于“左”位置的模块,而不显示处于“右”位置的模块。
有人可以帮助我解决问题所在吗?
<?php if($this->countModules('left')) : ?>
<!-- Content Region with Left Column: Start -->
<div class="contentholder onecol">
<div class="contentcol colleft">
<jdoc:include type="modules" name="left" style="xhtml" />
<div class="clear"></div>
</div>
<div class="contentbody">
<jdoc:include type="message" />
<jdoc:include type="component" />
<div class="clear"></div>
</div>
<div class="clear"></div>
</div>
<!-- Content Region with Left Column: End -->
<?php elseif($this->countModules('right')) : ?>
<!-- Content Region with Right Column: Start -->
<div class="contentholder onecol">
<div class="contentbody">
<jdoc:include type="message" />
<jdoc:include type="component" />
<div class="clear"></div>
</div>
<div class="contentcol colleft">
<jdoc:include type="modules" name="right" style="xhtml" />
<div class="clear"></div>
</div>
<div class="clear"></div>
</div>
<!-- Content Region with Right Column: End -->
<?php elseif(($this->countModules('left')) && ($this->countModules('right'))) : ?>
<!-- Content Region with Left & Right Column: Start -->
<div class="contentholder twocol">
<div class="contentcol colleft">
<jdoc:include type="modules" name="left" style="xhtml" />
<div class="clear"></div>
</div>
<div class="contentbody">
<jdoc:include type="message" />
<jdoc:include type="component" />
<div class="clear"></div>
</div>
<div class="contentcol colleft">
<jdoc:include type="modules" name="right" style="xhtml" />
<div class="clear"></div>
</div>
<div class="clear"></div>
</div>
<!-- Content Region with Left & Right Column: End -->
<?php else : ?>
<!-- Content Region with No Columns: Start -->
<div class="contentholder">
<div class="contentbody">
<jdoc:include type="message" />
<jdoc:include type="component" />
<div class="clear"></div>
</div>
<div class="clear"></div>
</div>
<!-- Content Region with No Columns: End -->
<?php endif; ?>
答案 0 :(得分:0)
似乎问题是我的条件的顺序。条件:
<?php elseif(($this->countModules('left')) && ($this->countModules('right'))) : ?>
应该先到而不是第三。
似乎原因是因为满足原始第一个条件中的“左”模块,所以if语句在那里终止。所以通过添加'left'&amp;&amp; “正确”条件到顶部,如果不满足,则代码继续查看是否只有“左”模块或“右”模块。