我在Shopware中使用自定义主题,父主题是“Bare”主题,当我需要使用某些数据或更改现有数据时,我仍然不明白如何使用controllr,插件或小部件来执行此操作。
示例: - 我需要在主页主菜单上显示“子类别”。 当我在index.tpl上使用“{debug}”时,我可以看到所有主要类别,但即使我在后端创建并激活了子类别,子类也不可用。
我检查了配置设置,以确保是否有任何内容阻止它显示在前端。 我应该采用什么样的方法来完成这件事。 解决办法是什么? 更新索引控制器? 启用/禁用任何CMS选项? 安装一个插件? 创建一个小部件?
仅供参考:这是我在主页的调试屏幕上看到的内容(index.tpl)
$sCategory
flag => false
subcategories => Array (0)
childrenCount => 2
7 => Array (23)
id => 7
name => "IVORY & WHITE"
metaKeywords => null
答案 0 :(得分:3)
有一个名为AdvancedMenu的插件,必须通过插件管理器激活。在插件的配置中,您可以定义应显示类别深度的嵌套级别。我猜这个设置默认设置为2。激活插件后,Smarty模板中应该有一个新变量$ sAdvancedMenu。
请查看:http://en.community.shopware.com/_detail_1602.html?_ga=1.192119343.464766896.1445350898
另一种方式(没有AdvancedMenu插件)如下:
通过Shopware()->Modules()->Categories()
提供了一个Shopware Core类,其中包含一个名为sGetWholeCategoryTree($current)
的方法。此方法返回任何给定根类别的整个类别子树。但在这种情况下,您需要创建一个正在侦听Enlight_Controller_Front_PostDispatch
事件或任何类似事件的插件。将树分配给视图后,您将可以访问具有相关子级的分层多维数组。