2016-08-27 2 views
1

Как загрузить элемент управления в контроллер 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(); 
} 

мне нужно показать меню внутри категории.

+1

Это контроллер вашего модуля? Какой контроллер вам нужен? PrestaShop имеет только контроллер, что вы подразумеваете под контролем? Какая версия prestashop? – sarcom

+0

привет сарком. У меня есть категория контроллера (сделайте мной) и меню контроллера. 2 контроллер отображает пользовательский tpl. Мне нужно загрузить меню внутри категории, чтобы показать tpl меню внутри tpl категории. Я использую prestashop 1.6 –

+0

Извините, но это противоречие. У вас уже есть контроллер, и в этот момент заберите также menu.tpl в контроллере категории. PS: Вы используете метод renderList в неправильном режиме :), вам нужно использовать метод init() или initContent(). Это контролер фронтонов или backoffice? Это контроллер модуля? – sarcom

ответ

1

Я предлагаю вам использовать метод в 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 просто «печать» в $ меню вар

+0

В противном случае вам нужно использовать крюк (ы) PrestaShop – sarcom

+0

извините, но это контроллер backoffice, я пробовал свой путь, и он не работал :) вы можете вести меня по скайпу? мой skype vdhoangson. Большое спасибо –

Смежные вопросы