2016-08-27 11 views
1

コントローラのプレスタシュトップ内にコントロールをロードするにはどうすればよいですか?コントローラ内部の 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

hi sarcom。私はコントローラーカテゴリ(私によって作る)とコントローラーメニューを持っています。 2コントローラはカスタムtplをレンダリングします。 Categoryの中にMenuのtplを表示するには、Category内にMenuを読み込む必要があります。私はprestashop 1.6を使用します –

+0

申し訳ありませんが、それは矛盾です。すでにコントローラがあり、この時点でCategoryコントローラのmenu.tplも取得します。 PS:間違ったモードでrenderListメソッドを使用しています:)、init()メソッド、またはinitContent()メソッドを使用する必要があります。それはフロントオフィスまたはバックオフィスのコントローラですか?それはモジュールのコントローラですか? – 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に単に「印刷」$メニューVAR

+0

それ以外の場合はPrestaShopフック – sarcom

+0

残念ながら、それはバックオフィスのコントローラです、私はあなたの方法を試して、それは動作しませんでした:) あなたはスカイプで私を導くことができますか?私のskype vdhoangson。どうもありがとうございました –

関連する問題