我想将自定义参数分配给Magento中的CMS页面(即“关于”,“客户服务”等),以便对它们进行分组。
最终目标是使用每个页面的参数在导航菜单中显示(或隐藏)它们。在页面/ html块中编写一个快速方法来检索菜单的页面(仅限活动)很容易,但我无法弄清楚如何对它们进行分组以便“推荐”,“历史”和“联系”是与'about'相关联,'return policy','shipping'和'contact'与'customer service'相关联。
非常感谢任何指导我正确方向的帮助。
谢谢!
答案 0 :(得分:0)
不幸的是,cms页面不是实体,不支持自定义属性。
我的建议是重载Mage_Cms_Model_Page,用你的数据创建一个关联的表,并在新的类构造函数中为your_page对象分配一个新属性。
答案 1 :(得分:0)
我决定朝这个方向走另一个方向。这就是我所做的。
在管理界面中:
在代码中:
在Catalog / Block / Navigation.php的(本地副本)中创建了两个新方法,以获取当前父类别及其子类:
public function getNavCategory($category)
{
if($category->getLevel() == 3){
return $category;
} else {
$parentCategory = Mage::getModel('catalog/category')->load($category->getParentId());
return $parentCategory;
}
}
public function getNavChildCategories($category)
{
$layer = Mage::getSingleton('catalog/layer');
/* @var $category Mage_Catalog_Model_Category */
$categories = $category->getChildrenCategories();
$productCollection = Mage::getResourceModel('catalog/product_collection');
$layer->prepareProductCollection($productCollection);
$productCollection->addCountToCategories($categories);
return $categories;
}
创建了app / design / frontend / MYINTERFACE / MYTHEME / template / catalog / navigation / left.phtml的修改版本,以迭代类别和子类别。工作示例位于:http://67.228.100.26/content/about
答案 2 :(得分:0)
也许只使用admin中的URL键字段作为您的类别分母? E.g:
CMS第1页URL密钥:about / testimonials CMS第2页URL密钥:about / history CMS第3页URL密钥:about / contact CMS第4页URL密钥:customer-service / return-policy ...
然后在模板中循环遍历它们,或者在自定义块类中使用方法,使用正则表达式将它们组合在一起,基于斜杠前的第一部分。
答案 3 :(得分:0)
您是否希望使用setData / getData存储自定义值?它适用于自定义块 - 我在控制器中设置值并在块渲染时读取它。