什么';我的Joomla条件模块位置错了


What's wrong with my Joomla conditional module positions?

下面是我的if条件,说明如何根据模块是否位于"左"或"右"位置,或者模块是否同时位于"左’和"右"来显示结构。

模块处于"左"或"右"位置的条件有效。但是,如果我在"左"answers"右"位置都有一个模块,则只显示"左"位置的模块,而不显示"右"位的模块。

有人能帮我解决问题吗?

<?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'))) : ?> 

应该排在第一位而不是第三位。

原因似乎是因为满足了原始第一个条件中的"left"模块,所以if语句在那里终止。因此,通过添加"left"&amp;'如果不满足"right"条件,则代码继续查看是否只有"left"模块或"right"模块。