Php 如何在控制器中加载控制器?
如何在控制器预置中加载控件? Opencart支持控制器内的load controllerPhp 如何在控制器中加载控制器?,php,prestashop,Php,Prestashop,如何在控制器预置中加载控件? Opencart支持控制器内的load controller $data['efgh'] = $this->load->controller('abcd/efgh'); 那么支持它的是什么?如果是,那怎么办 我有一个控制器类别渲染自定义tpl public function renderList(){ $tpl = $this->createTemplate('dashboard.tpl'); // Category
$data['efgh'] = $this->load->controller('abcd/efgh');
那么支持它的是什么?如果是,那怎么办
我有一个控制器类别渲染自定义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();
}
public function renderList(){
$tpl = $this->createTemplate('menu.tpl');
$menu = GenMenu::getMenu();
$tpl->assign(array(
'menu' => $menu,
));
return $tpl->fetch();
}
和控制器菜单渲染自定义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();
}
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中,只需“打印”$menu var它是您模块的控制器?您需要哪个控制器?PrestaShop只有控制器,你说的控制是什么意思?普雷斯塔索普的哪个版本?嗨,萨科姆。我有一个控制器类别(由我制作)和一个控制器菜单。2控制器呈现自定义tpl。我需要在类别内加载菜单,以显示类别内tpl中的菜单tpl。我使用prestashop 1.6抱歉,但这是一个矛盾。您已经有了一个控制器,此时还可以获取类别控制器中的menu.tpl。PS:您在错误模式下使用了renderList方法:),必须使用init()方法或initContent()方法。是前台还是后台控制器?它是一个模块的控制器?否则你必须使用PrestaShop钩子抱歉,但它是一个后台控制器,我尝试了你的方法,但没有成功:)你能用skype指导我吗?我的skype Vdongson。非常感谢你