2012-10-03 3 views

답변

1

네, 그것은 다음과 같은 문서를 한 번 봐 가지고, 모듈에게 자신의 탭 또는 하위 탭을 줄 수있다 :

유일한 문제를 모듈 폴더 외부에 파일을 추가하고 백 오피스에 수동으로 탭을 추가해야한다는 것입니다 ...

+0

예, 나는이를 보았다. 그것은 내가 피하고 싶었던 탭을 수동으로 추가하는 것입니다. 나는 install 함수 안에있는 코드에서 그것을하고 싶다. 나는 그들이 데이터베이스에 저장되는 방법을 알았습니다. 저는 직접 생성하고 싶지 않았습니다. prestashop의 클래스를 통해보다 깨끗한 방식으로 작업하기를 원했습니다. – Ayoub

1

예. 할 수 있습니다. 테이블 데이터베이스를 클래스 object model을 만들고 테이블 데이터베이스 tab에 클래스를 삽입하십시오.

예를 들어 나는 모듈 mymodule 문서 1.4을 수정

 public function install() 

    { 

     if (parent::install() == false OR 

       !$this-registerHook('leftColumn') OR 

       !Db::getInstance()-Execute(' 
        CREATE TABLE IF NOT EXISTS `'._DB_PREFIX_.'test` (

         `id_test` int(6) NOT NULL AUTO_INCREMENT, 

         `test` varchar(255) NOT NULL, 

         PRIMARY KEY(`id_test`) 

        ) ENGINE='._MYSQL_ENGINE_.' default CHARSET=utf8') OR 

       !$this-setTab() 
      ) 
      return false; 
     return true; 
    } 

    public function setTab() { 
     if (!Db::getInstance()-Execute(
         "INSERT INTO `"._DB_PREFIX_."tab` 
          (`class_name`, `position`, `id_parent`) 
          VALUES ('AdminTest', '10', '1')" 
        )) 
       return false; 

     $id = Db::getInstance()-insert_id(); 
     $count = (int)Db::getInstance()-getValue('SELECT COUNT(*) FROM '._DB_PREFIX_.'lang'); 

     while ($count 0) { 
      if (!Db::getInstance()-Execute(
         "INSERT INTO `"._DB_PREFIX_."tab_lang` 
          (`id_tab`, `id_lang`, `name`) 
          VALUES (".$id.", ". $count.", 'Test Tab')" 
        )) 
       return false; 

      $count--; 
     } 

     if (!TabCore::initAccess($id))    
      return false; 

     return true; 
    } 

install 기능을 수정 시도하고 setTab 기능을 추가 할 수 있습니다. 모듈을 수정할 수 있습니다.

4

당신은 관리자에 admintap 파일을 만들 필요가 없습니다/탭

는이 모듈을 다운로드하고 그 자체에 대한 새 탭을 만들 표준 PrestaShop 버전의 모듈이 Prestashop Autoupgrade module

를 작동하는 방법 참조

5

Prestashop에는이를 수행하는 클래스가 있습니다.
이 클래스는 Tab 클래스이며 add 함수를 사용합니다.

은 참조 :

$tab = new Tab(); 
$tab->class_name = 'your_class'; 
$tab->id_parent = 0; 
$tab->module = 'Your module'; 
$tab->name[(int)(Configuration::get('PS_LANG_DEFAULT'))] = $this->l('Module name'); 

return $tab->add(); 
관련 문제