Пользовательская вкладка «Бэк-офис» не отображается в Prestashop - PullRequest
0 голосов
/ 14 сентября 2018

Я новичок в разработке модуля Prestashop и использую версию 1.7.4.2. Я пытаюсь разработать модуль, и мне нужно создать пользовательскую вкладку в левом меню в бэк-офисе. Я попробовал этот способ, который находится в официальной документации Prestashop (https://devdocs.prestashop.com/1.7/modules/concepts/controllers/admin-controllers/tabs/). Но пользовательская вкладка не видна в бэк-офисе. Здесь я добавляю свой код и имена файлов. Может кто-нибудь помочь мне узнать, где моя ошибка? Большое вам спасибо.

Мои файлы

driveorder

-driveorder.php

-logo.png

-controllers

- админ

--- AdminDriveOrder.php

И есть файл driveorder.php, в котором я создал пользовательскую вкладку.

<?php
if (!defined('_PS_VERSION_'))
    exit;

class driveorder extends Module
{
    public function __construct()
    {
        $this->name = 'driveorder'; /* This is the 'technic' name, this should equal to filename (mycustommodule.php) and the folder name */
        $this->tab = 'administration'; /* administration, front_office_features, etc */
        $this->version = '1.0.0'; /* Your module version */
        $this->author = 'Sertac Bazancir'; /* I guess it was clear */
        $this->need_instance = 0; /* If your module need an instance without installation */
        $this->ps_versions_compliancy = array('min' => '1.6', 'max' => _PS_VERSION_); /* Your compatibility with prestashop(s) version */
        $this->bootstrap = true; /* Since 1.6 the backoffice implements the twitter bootstrap */

        parent::__construct(); /* I need to explain that? */

        $this->displayName = $this->l('Drive Order'); /* This is the name that merchant see */
        $this->description = $this->l('Google Drive integration for virtual products.'); /* A short description of functionality of this module */

        $this->confirmUninstall = $this->l('Are you sure you want to uninstall?'); /* This is a popup message before the uninstall */

        $this->tabs = array(
            array(
                'name' => 'Drive Order', // One name for all langs
                'class_name' => 'AdminDriveOrder',
                'visible' => true,
                'parent_class_name' => 'SELL'
            )
        );

    }

    public function install(){
        if (Shop::isFeatureActive()){
            Shop::setContext(Shop::CONTEXT_ALL);
        }
        $sql = "CREATE TABLE IF NOT EXISTS `"._DB_PREFIX_."drive_product`(
        `id_product` INT(10) NOT NULL PRIMARY KEY,
        `id_drive` VARCHAR(255) NOT NULL )";
        $result = Db::getInstance()->Execute($sql);
        if (!parent::install() OR !$result OR !$this->registerHook('actionPaymentConfirmation')){
            return false;
        }
        return true;
    }

    public function uninstall(){
        $sql = "DROP TABLE `"._DB_PREFIX_."drive_product`";
        $result = Db::getInstance()->Execute($sql);
        if (!parent::uninstall() OR !$result OR !Configuration::deleteByName('driveorder')){
            return false;
        }
        return true;
    }

    public function hookActionPaymentConfirmation($params){
        global $smarty;
    }
}
?>

Ответы [ 2 ]

0 голосов
/ 20 сентября 2018

Вы также должны назвать свой файл контроллера AdminDriveOrderController.php вместо AdminDriveOrder.php

0 голосов
/ 14 сентября 2018

Ваша ошибка здесь:

'parent_class_name' => 'SELL'

Попробуйте это:

'parent_class_name' => 'AdminParentOrders'
...