2014-09-11 68 views
0

下面是我的如果条件如何显示结构取决于模块是在'左'位置还是'右'位置,或者如果一个模块同时在'左'和'右'。我的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; ?> 

回答

0

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

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

应该先来,而不是第三。

看起来好像是因为原始第一个条件中的'left'模块满足,所以if语句在那里终止。因此,通过在顶部添加'左'& &'正确'的条件,如果不符合,代码将继续查看是否只有'左'模块或'右'模块。

+0

我发现这个链接,这也有帮助:http://docs.joomla.org/Customising_the_way_modules_are_displayed – Pegues 2014-09-11 02:57:35