是否可以通过CMS页面中的类别ID显示类别图像?
您可以按ID显示类别链接:
{{widget type="catalog/category_widget_link" anchor_text="Displayed Text" title="Title attribute text" template="catalog/category/widget/link/link_block.phtml" id_path="category/22"}}
或按其ID显示类别产品。
{{block type="catalog/product_list" category_id="14" template="catalog/product/list.phtml"}}
但我无法弄清楚hwo只是通过调用它的id来在CMS页面中显示特定的类别图像。
有什么想法吗?
答案 0 :(得分:3)
库存magento你不能。
基本上有3种方法可以实现这一点,按照偏好顺序(从好到坏):
<强> 1。使用小部件
我之前回答了类似的问题,并提供了一个完整的示例,说明如何构建特定于某个类别的小部件:
magento - category name and image in static block?
<强> 2。自定义模块
您已经创建了一个带有块的模块来支持它。然后,您可以使用以下语法在cms页面中包含块:
{{block type="yourmodule/category_image" category_id="14" template="yourmodule/category/image.phtml"}}
你的块类看起来像这样:
<?php
class Yourcompany_Yourmodule_Block_Category_Image extends Mage_Core_Block_Template
{
public function getCategory()
{
if (! $this->hasData('category')) {
$category = Mage::getModel('catalog/category')->load($this->getData('category_id'));
$this->setData('category', $category);
}
return $this->getData('category');
}
}
你的模板类看起来像这样:
<?php
$_helper = $this->helper('catalog/output');
$_category = $this->getCategory();
$_imgHtml = '';
if ($_imgUrl = $_category->getImageUrl()) {
$_imgHtml = '<p class="category-image"><img src="'.$_imgUrl.'" alt="'.$this->htmlEscape($_category->getName()).'" title="'.$this->htmlEscape($_category->getName()).'" /></p>';
$_imgHtml = $_helper->categoryAttribute($_category, $_imgHtml, 'image');
}
?>
<?php if($_imgUrl): ?>
<?php echo $_imgHtml ?>
<?php endif; ?>
第3。使用核心/模板块类型
包含在cms页面上,如此..
{{block type="core/template" category_id="14" template="category/image.phtml"}}
创建模板 - catalog / category / image.phtml
<?php
$_helper = $this->helper('catalog/output');
$category = Mage::getModel('catalog/category')->load($this->getData('category_id'));
$_imgHtml = '';
if ($_imgUrl = $_category->getImageUrl()) {
$_imgHtml = '<p class="category-image"><img src="'.$_imgUrl.'" alt="'.$this->htmlEscape($_category->getName()).'" title="'.$this->htmlEscape($_category->getName()).'" /></p>';
$_imgHtml = $_helper->categoryAttribute($_category, $_imgHtml, 'image');
}
?>
<?php if($_imgUrl): ?>
<?php echo $_imgHtml ?>
<?php endif; ?>
答案 1 :(得分:1)
我认为你不能只是调用图像,因为它不是块。在/design/base/default/template/category/view.phtml中,它只是将图像url作为块的属性调用,然后在模板文件中构建输出HTML。块中没有任何特定元素可以使用magento的短代码调用它。
最好的方法是构建一个新的小部件。有很多指南,一旦你更好地了解它们,它们就非常棒了。