[英]What's wrong with my Joomla conditional module positions?
以下是我的显示条件的条件,具体取决于模块处于“左”位置还是“右”位置,或者模块同时处于“左”和“右”位置。
模块处于“左”位置还是“右”位置的条件起作用。 但是,如果我在“左”和“右”位置都有模块,则只会显示“左”位置的模块,而不会显示“右”位置的模块。
有人可以帮我解决问题吗?
<?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; ?>
看来问题出在我的条件上。 条件:
<?php elseif(($this->countModules('left')) && ($this->countModules('right'))) : ?>
应该排在第一,而不是第三。
似乎原因是因为满足了原始第一个条件中的“左”模块,所以if语句在那里终止。 因此,通过在顶部添加'left'&&'right'条件,如果不满足,则代码继续进行以查看是否只有'left'模块或'right'模块。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.