PrestaShop:如何在控制器内加载控制器?
问题描述:
如何在控制器prestashop中加载控件? Opencart的控制器内部支持负载控制器PrestaShop:如何在控制器内加载控制器?
$data['efgh'] = $this->load->controller('abcd/efgh');
这样的Prestashop支持它?如果是,那么如何?
我有一个控制器类别显示自定义TPL
public function renderList(){
$tpl = $this->createTemplate('dashboard.tpl');
// Category
$categories = GenCategory::getCategories();
$public_categories = GenCategory::getPublicCategories();
$unpublic_categories = GenCategory::getUnpublicCategories();
$tpl->assign(array(
// Category
'categories' => $categories,
'public_categories' => $public_categories,
'unpublic_categories' => $unpublic_categories,
));
return $tpl->fetch();
}
和控制菜单显示自定义TPL
public function renderList(){
$tpl = $this->createTemplate('menu.tpl');
$menu = GenMenu::getMenu();
$tpl->assign(array(
'menu' => $menu,
));
return $tpl->fetch();
}
我需要证明里面分类菜单。
答
我会建议你使用initContent()方法,而不是renderList,以这样的方式
public function initContent(){
// Category
$categories = GenCategory::getCategories();
$public_categories = GenCategory::getPublicCategories();
$unpublic_categories = GenCategory::getUnpublicCategories();
// Menu
$menu = $this->genMenu();
$this->context->smarty->assign(array(
// Category
'categories' => $categories,
'public_categories' => $public_categories,
'unpublic_categories' => $unpublic_categories,
// Menu
'menu' => $menu
))
$this->setTemplate(`rightdirectoryofyourtpl`.'dashboard.tpl');
}
public function genMenu(){
$menu = GenMenu::getMenu();
$this->context->smarty->assign(array(
'menu' => $menu,
));
return $this->context->smarty->fetch(`directoryofyourtpl`/menu.tpl)
}
然后在您的TPL简单的“打印”的$菜单VAR
+0
否则,你必须使用PrestaShop挂钩 – sarcom
+0
对不起,但它是一个后台控制器,我试过你的方式,它不工作:) 你能指导我通过Skype?我的Skype vdhoangson。非常感谢你 –
这是一个你的模块控制器?你需要哪个控制器? PrestaShop只有控制器,你是什么意思控制? prestashop的哪个版本? – sarcom
嗨sarcom。我有一个控制器类别(由我制作)和一个控制器菜单。 2控制器呈现自定义tpl。我需要在类别中加载菜单以显示类别的tpl内的菜单的tpl。我使用prestashop 1.6 –
对不起,但这是一个矛盾。您已经有了一个控制器,此时还可以在类别控制器中获取menu.tpl。 PS:您在错误模式下使用renderList方法:),您必须使用init()方法或initContent()方法。它是一个前台或后台控制器?它是模块的控制器? – sarcom