首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Magento -同一类别中的两个if语句

问Magento -同一类别中的两个if语句
EN

Stack Overflow用户
提问于 2013-06-27 14:33:58
回答 4查看 1.5K关注 0票数 0

我已经创建了以下代码,以允许在产品页面上显示不同的静态CMS块,具体取决于类别ID。

代码语言:javascript
复制
<?php 
    $_category_detail=Mage::registry('current_category'); //Get the current category id
    $product = Mage::getModel('catalog/product')->load($product_id);   //Get the current category id
    $category = Mage::getModel('catalog/layer')->getCurrentCategory(); //Get the current category id
    ?>
<?php if($category->getId()==23): ?>
    <div id="sizingmap">
        <?php echo $this->getLayout()->createBlock('cms/block')->setBlockId('sizespecpantsslim')->toHtml(); ?>
    </div>
<?php endif;?>  

<?php if($category->getId()==10): ?>
    <div id="sizingmap">
        <?php echo $this->getLayout()->createBlock('cms/block')->setBlockId('sizespecjacket')->toHtml(); ?>
    </div>
<?php endif;?>

对于类别部分来说,一切都很好,尽管我想根据同一类别中的产品id显示一个不同的块。

例如(这显然是不正确的):

代码语言:javascript
复制
<?php if($category->getId()==23) "AND the product id are "372,363,354,349,344": ?>
<div id="sizingmap">
    <?php echo $this->getLayout()->createBlock('cms/block')->setBlockId('sizespecpantsslim')->toHtml(); ?>
</div>
else // if they are not the mentioned product id's 
<div id="sizingmap">
    <?php echo $this->getLayout()->createBlock('cms/block')->setBlockId('sizespecpantsstd')->toHtml(); ?>
</div> 
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-06-28 10:01:09

代码语言:javascript
复制
<?php 
    $_category_detail=Mage::registry('current_category'); //Get the current category
    $product = Mage::registry('current_product'); // Get the current product
    $productId = $this->getProduct()->getId(); // Get the current product ID
    $category = Mage::getModel('catalog/layer')->getCurrentCategory(); //Get the current category id
    ?>
<!-- standard pants - sizing chart -->
<?php if(in_array($this->getProduct()->getId(), array(372,363,354,349,344))): ?>
<div id="sizingmap">
<?php echo $this->getLayout()->createBlock('cms/block')->setBlockId('sizespecpantsstd')->toHtml(); ?>
</div>
<?php endif;?>
<!-- slim pants - sizing chart -->
<?php if(in_array($this->getProduct()->getId(), array(339,334,329,324,319,314))): ?>
<div id="sizingmap">
<?php echo $this->getLayout()->createBlock('cms/block')->setBlockId('sizespecpantsslim')->toHtml(); ?>
</div>
<?php endif;?>
<!-- jackets - sizing chart -->
<?php if($category->getId()==10): ?>
    <div id="sizingmap">
        <?php echo $this->getLayout()->createBlock('cms/block')->setBlockId('sizespecjacket')->toHtml(); ?>
    </div>
<?php endif;?>

感谢你们的输入,我能够通过将每个人的代码片段放在一起来产生结果。

干杯:)

票数 0
EN

Stack Overflow用户

发布于 2013-06-27 15:25:10

代码语言:javascript
复制
Try is this not tested.

<?php $productIDarray = array("372","363","354","349","344")?>
<?php if($category->getId()==23 && in_array($productIDarray , $productId)): ?>

<div id="sizingmap">
<?php echo $this->getLayout()->createBlock('cms/block')->setBlockId('sizespecpantsslim')->toHtml(); ?>
</div>
<?php else:?>
<div id="sizingmap">
<?php echo $this->getLayout()->createBlock('cms/block')->setBlockId('sizespecpantsstd')->toHtml(); ?>
</div> 
<?php endif;?>


Thanks,
票数 2
EN

Stack Overflow用户

发布于 2013-06-27 15:26:57

尝尝这个

代码语言:javascript
复制
<?php 
$id_array = array(372,363,354,349,344); //product ids
if(($category->getId()==23) && in_array($product_id,$id_array)){ ?>
    <div id="sizingmap">
        <?php echo $this->getLayout()->createBlock('cms/block')->setBlockId('sizespecpantsslim')->toHtml(); ?>
    </div>

<?php }else{ ?>

<?php if($category->getId()==10): ?>
    <div id="sizingmap">
        <?php echo $this->getLayout()->createBlock('cms/block')->setBlockId('sizespecjacket')->toHtml(); ?>
    </div>
<?php endif;?>
<?php } ?>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17336085

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档