我的Joomla条件模块位置出了什么问题?

时间:2014-09-11 02:26:44

标签: php html joomla

下面是关于如何显示结构的条件,具体取决于模块是处于“左”位置还是“右”位置,或者模块是否位于“左”和“右”。

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

有人可以帮助我解决问题所在吗?

<?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; ?>

1 个答案:

答案 0 :(得分:0)

似乎问题是我的条件的顺序。条件:

<?php elseif(($this->countModules('left')) && ($this->countModules('right'))) : ?> 

应该先到而不是第三。

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