我无法使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个类别,比如
- category_a (only products)
- category_b(包括产品和cms)
- category_c(仅cms块)。
我尝试过但不奏效的事情:
- 禁用自定义主题,使用magento的默认主题。
- 视图所取代。从另一个magento安装(工作良好)的php。
将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
删除if-else块,只使用行强制magento显示cms和product块。假设控件没有流向正确的块。
<?php echo $this->getCmsBlockHtml() ?> <?php echo $this->getProductListHtml() ?>
上面提到的三个类别(product/cms/mixed)只有product block被显示
我可以看到这里有两个问题,至少我是这样认为的。
- 类别显示模式总是显示为"仅限产品"
-
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);
问候保罗