2017-04-11 2 views
0

Irgendwie muss ich Admin-Seiten meines Moduls erstellen. Und das ist, wie ich Registerkarten erstellenPrestashop Registerkarte erstellen, spezifische Seite für jede Registerkarte

private function createTab() 
    { 
     $data = array(
         'id_tab' => '', 
         'id_parent' => 0, 
         'class_name' => 'AdminSomeMenu', 
         'module' => $this->name, 
         'position' => 1, 'active' => 1 
        ); 

     $res = Db::getInstance()->insert('tab', $data); 

     $id_tab = Db::getInstance()->Insert_ID(); 
     $lang = (int)Configuration::get('PS_LANG_DEFAULT'); 

     //Define tab multi language data 
     $data_lang = array(
         'id_tab' => $id_tab, 
         'id_lang' => $lang, 
         'name' => $this->name 
         ); 

     // Now insert the tab lang data 
     $res &= Db::getInstance()->insert('tab_lang', $data_lang); 

     $arrayTabs = array('TAB1','TAB2','TAB3'); 
     foreach ($arrayTabs as $requiredTabs) 
     { 
      $tab = new Tab();  
      // Need a foreach for the language 
      $tab->name[$lang] = $this->l($requiredTabs); 
      $tab->class_name = 'Admin'.$requiredTabs; 
      $tab->id_parent = $id_tab; 
      $tab->module = $this->name; 
      $tab->add(); 
     } 

     return true; 

    } 

Ich hoffe, dass ich gut gehe.

Sobald die Registerkarten erstellt sind, versuche ich, den folgenden Code zu verknüpfen.

<?php 
class AdminMenuController extends ModuleAdminController 
{ 
    public function __construct() 
    { 
     $module = "mymodulename" 
     Tools::redirectAdmin('index.php?controller=AdminModules&configure='.$module.'&token='.Tools::getAdminTokenLite('AdminModules')); 
    } 
} 

Auf diese Weise wurde der Controller nicht gefunden. Aber ich kann nur die Konfigurationsseite über einen solchen Link erstellen.

Wie soll ich personalisierte Seite für jede Registerkarte erreichen.

Antwort

0

Ah! Das war ein fehlender Elternteil :: __ construct(); in Controllern, die das Problem verursachen, dass Tabs sich nicht so verhalten, wie sie sollten.

<?php 
class AdminTAB1Controller extends ModuleAdminController 
{ 
    public function __construct() 
    { 
     parent::__construct(); 
     /* Tools::redirectAdmin('index.php?controller=AdminModules&configure='.$module.'&token='.Tools::getAdminTokenLite('AdminModules')); */ 

     echo "Support page"; 
     /* or further function can be called to load tpl files from views/templates/admin/ */ 
    } 
} 

Jetzt habe ich verschiedene Seiten für meine Tabs in beiden PS 1.6 und 1.7!

Verwandte Themen