Magento 有货,你不能。
基本上有 3 种方法可以实现这一点,按优先顺序排列(从好到坏 imo):
- 创建和使用小部件
- 直接嵌入 cms 页面并使用自定义块类型来初始化类别
- 直接嵌入到cms页面,使用core/template块类型,直接在模板内初始化category
1.使用小部件
我之前回答过一个类似的问题,并提供了一个完整的例子来说明如何构建一个特定于某个类别的小部件:
magento - 静态块中的类别名称和图像?
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"}}
创建您的模板 - 目录/类别/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; ?>