2014-09-26 57 views
0

我有一个关于smarty和OXID eShop的小问题。在检索一组类别之后,我尝试仅显示“排序号码”特殊范围内的类别。应显示低于100的所有值。但是,这也显示了项目> 100Smarty问题嵌套条件语句

这里是我的代码片段:

[{foreach from=$oxcmp_categories item=ocat key=catkey name=root}] 
    [{if $ocat->getIsVisible() }] 
     [{if ((int)$ocat->oxcategories__oxsort <100) }] 

      [{if $smarty.foreach.root.index % 3 == 0}] 
       <div style="clear: left;"></div> 
       <div class="mainMenu sub_[{$smarty.foreach.root.index}]"> 
        <div class="mm_header"> 
         <p class="mm_headline">[{$ocat->oxcategories__oxtitle->value}]</p> 
        </div> 
        <div> 
        <img src="[{if $ocat->getThumbUrl() != ''}] [{$ocat->getThumbUrl()}] [{else}] [{'http://placehold.it/299x230'}] [{/if}]" alt=""> 
        <p class="mm_desc">[{$ocat->oxcategories__oxdesc}]</p> 
       </div> 
       </div> 

      [{else}] 
       <div class="mainMenu sub_[{$smarty.foreach.root.index}]"> 
        <div class="mm_header"> 
        <p class="mm_headline">[{$ocat->oxcategories__oxtitle->value}]</p> 
       </div> 
       <div> 
        <img src="[{if $ocat->getThumbUrl() != ''}] [{$ocat->getThumbUrl()}] [{else}] [{'http://placehold.it/299x230'}] [{/if}]" alt=""> 
        <p class="mm_desc">[{$ocat->oxcategories__oxdesc}]</p> 
       </div> 
      </div> 
      [{/if}] 
     [{/if}] 
    [{/if}] 
[{/foreach}] 

任何想法,问题出在哪里可以?

+2

为什么使用模板引擎来执行逻辑操作?如果您只想显示100个类别,则只应从控制器/模型向视图发送100个类别。 – skrilled 2014-09-26 19:45:45

+0

它可能与你在第二个if语句中对'int'的转换有关。也许这个演员阵容正在做你不想做的事情,因为如果你必须先演员,那么显然这是另一回事。当你将它转换为int类型时,你可以试着查看'$ ocat-> oxcategories__oxsort'的值。但是,我会建议您遵循skrilled的提示,并且只将您需要的数据发送到表单。 – Bono 2014-09-26 21:33:53

回答

2

因为我发现你忘记了在你的sortorder调用中写入值。 你只需要在下面的行值,因为我补充说,它应该工作。

[{if ((int)$ocat->oxcategories__oxsort->value <100) }] 
+0

这应该被标记为正确的答案。 – Roman 2015-11-11 22:50:44