Magento类别静态块没有显示


Magento category static block not getting displayed

我无法使magento在类别>显示设置下显示静态CMS块。

根据SE上的类似问题,app/design/frontend/base/default/template/catalog/category/view.phtml的内容似乎是正确的。给你:

<?php if($this->isContentMode()): ?>
    <?php echo $this->getCmsBlockHtml() ?>
<?php elseif($this->isMixedMode()): ?>
    <?php echo $this->getCmsBlockHtml() ?>
    <?php echo $this->getProductListHtml() ?>
<?php else: ?>
    <?php echo $this->getProductListHtml() ?>
<?php endif; ?>

我已经配置了3个类别,比如

  1. category_a (only products)
  2. category_b(包括产品和cms)
  3. category_c(仅cms块)。

我尝试过但不奏效的事情:

  1. 禁用自定义主题,使用magento的默认主题。
  2. 视图所取代。从另一个magento安装(工作良好)的php。
  3. 将if-else块替换为

    <?php if($this->isContentMode()): ?>
    MODE: CMS
        <?php echo $this->getCmsBlockHtml() ?>
    <?php elseif($this->isMixedMode()): ?>
    MODE: MIXED
        <?php echo $this->getCmsBlockHtml() ?>
        <?php echo $this->getProductListHtml() ?>
    <?php else: ?>
    MODE: PRODUCTS
        <?php echo $this->getProductListHtml() ?>
    <?php endif; ?>
    

    显示所有3种情况(product/cms/mixed)的MODE: PRODUCTS

  4. 删除if-else块,只使用行强制magento显示cms和product块。假设控件没有流向正确的块。

    <?php echo $this->getCmsBlockHtml() ?>  
    <?php echo $this->getProductListHtml() ?> 
    

    上面提到的三个类别(product/cms/mixed)只有product block被显示

  5. 我可以看到这里有两个问题,至少我是这样认为的。

    1. 类别显示模式总是显示为"仅限产品"
    2. getCmsBlockHtml()不返回任何

所以我尝试以下基于Mage_Catalog_Block_Category_View的代码片段

Product: 
<?php echo $this->getCurrentCategory()->getDisplayMode()==Mage_Catalog_Model_Category::DM_PRODUCT; ?>
MIXED: 
<?php echo $this->getCurrentCategory()->getDisplayMode()==Mage_Catalog_Model_Category::DM_MIXED; ?>
CMS: 
<?php echo $this->getCurrentCategory()->getDisplayMode()==Mage_Catalog_Model_Category::DM_PAGE; ?>

,在所有三种类别显示模式(product/cms/mixed)下均得到>>Product: MIXED:1 CMS:响应。

有人能帮我一下吗?我已经禁用了缓存,并尝试过重新索引。

我在这里找到了解决问题的方法线上购物1.9.2.0

App/代码/核心/法师/目录/块/类别/View.php内部函数getCmsBlockHtml

第109行为返回

,但应该阅读返回$ this -> getData (cms_block_html);

问候保罗