Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/230.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Prestashop 1.6-在adminController中使用my custom content.tpl_Php_Templates_Overriding_Customization_Prestashop - Fatal编程技术网

Php Prestashop 1.6-在adminController中使用my custom content.tpl

Php Prestashop 1.6-在adminController中使用my custom content.tpl,php,templates,overriding,customization,prestashop,Php,Templates,Overriding,Customization,Prestashop,我在我的模块中定义了content.tpl模板,所以我想在我的管理控制器中使用它,该控制器是从prestashop AdminController扩展而来的 我知道有一个属性可以设置模板的路径,但我不知道如何定义正确的路径,因为当我执行代码prestashop add时` 'C:\xampp\htdocs\prestashop\admin0559umpxx/themes/default\template\` 到我的链接 我的自定义模板位于mymodule/views/templates/adm

我在我的模块中定义了content.tpl模板,所以我想在我的管理控制器中使用它,该控制器是从prestashop AdminController扩展而来的

我知道有一个属性可以设置模板的路径,但我不知道如何定义正确的路径,因为当我执行代码prestashop add时`

'C:\xampp\htdocs\prestashop\admin0559umpxx/themes/default\template\`
到我的链接

我的自定义模板位于mymodule/views/templates/admin/content.tpl中,用于设置路径的属性是$this->template

事实上,我的代码是这样的:

class AdminSelStockController extends AdminController
{
    public function __construct()
    {
        $this->module = new SelStock();

        $this->addRowAction('edit'); //add an edit button
        $this->addRowAction('delete'); //add a delete button
        $this->bulk_actions = array('delete' => array('text' => $this->l('Delete selected'), 'confirm' => $this->l('Delete selected items?')));
        $this->explicitSelect = true;
        $this->context = Context::getContext();
        $this->id_lang = $this->context->language->id;
        $this->path = _MODULE_DIR_."selStock";

        $this->default_form_language = $this->context->language->id;
        $this->table = 'selstock_product'; //define the main table
        $this->className = 'SelStockProductModel'; //define the module entity
        $this->identifier = "id_selstock_product"; //the primary key
        //then define select part of the query
        $this->_select = 'a.id_selstock_product,a.image_path,a.reference,a.product_name,a.category_name,a.quatity';
        //join to an existing table if you need some extra informations
        $this->_join = 'LEFT JOIN `'._DB_PREFIX_.'selstock_product_lang` spl ON (spl.`id_selstock_product` = a.`id_selstock_product`)';
        $this->_where = "AND spl.id_lang = '".$this->id_lang."'";
        $this->bootstrap = true;
        $this->layout = _PS_MODULE_DIR_.'/selStock/views/templates/admin/layout.tpl';
        $this->template = _PS_MODULE_DIR_.'/selStock/views/templates/admin/content.tpl';
        //and define the field to display in the admin table
        $this->fields_list = array(
            'id_selstock_product' => array(
                'title' => $this->l('Product Num'),
                'align' => 'center',
                'width' => 120
            ),
            'image_path' => array(
                'title' => $this->l('Image'),
                'align' => 'center',
                'width' => 120
            ),
            'reference' => array(
                'title' => $this->l('Reference'),
                'align' => 'center',
                'width' => 120
            ),
            'product_name' => array(
                'title' => $this->l('Name'),
                'align' => 'center',
                'width' => 120
            ),
            'category_name' => array(
                'title' => $this->l('Category'),
                'align' => 'center',
                'width' => 120
            ),
            'quatity' => array(
                'title' => $this->l('Quantity'),
                'align' => 'center',
                'width' => 120
            ),
            'store_name' => array(
                'title' => $this->l('Store'),
                'align' => 'center',
                'width' => 120
            )
        );

        parent::__construct();
    }

布局没问题,我可以使用我自己的。但我不知道模板的问题出在哪里。

非常酷,我通过在adminController中添加以下函数找到了解决方案:

/**
     * Get path to back office templates for the module
     *
     * @return string
     */
    public function getTemplatePath()
    {
        return _PS_MODULE_DIR_.$this->module->name.'/views/templates/admin/';
    }

    public function createTemplate($tpl_name) {
        if (file_exists($this->getTemplatePath() . $tpl_name) && $this->viewAccess())
            return $this->context->smarty->createTemplate($this->getTemplatePath() . $tpl_name, $this->context->smarty);
            return parent::createTemplate($tpl_name);
    }

    public function initContent(){
        parent::initContent();
        $tpl = $this->createTemplate('content.tpl')->fetch();
        /* DO STUFF HERE */
//        $posts = array();

//        $this->context->smarty->assign('posts', $posts);

    }

您应该使用ModuleAdminController而不是AdminController扩展您的类

我必须在我的帖子发布后等待两天才能将其标记为已回复