Шаблон не найден для модуля - Prestashop - PullRequest
0 голосов
/ 29 июня 2018

Итак, я создал свой первый пользовательский модуль, и у меня возникла проблема с отображением шаблона. Я следовал этому уроку (более или менее) здесь, но когда я включаю свой модуль, он показывает, что «шаблон для модуля не найден». Мой модуль называется kamailchimp, поэтому в папке модуля у меня есть файл kamailchimp.php со следующим кодом

<?php

if (!defined('_PS_VERSION_')) {
    exit;
}


class Kamailchimp extends Module
{
    public function __construct()
    {
        $this->name = 'kamailchimp';
        $this->tab = 'front_office_features';
        $this->version = '1.0.0';
        $this->author = 'Kon Ang';
        $this->ps_versions_compliancy = array(
            'min' => '1.7.0.0',
            'max' => _PS_VERSION_,
        );
        $this->need_instance = 0;
        $this->bootstrap = true;

        parent::__construct();

        $this->displayName = $this->l('KA - Embedded Mailchimp Form');
        $this->description = $this->l('This module will allow you to display your embedded mailchimp form');

        $this->templateFile = 'module:kamailchimp/views/templates/hook/kamailchimp.tpl';
    }

    public function install()
    {
        return parent::install() &&
            $this->registerHook('header') &&
            $this->registerHook('displayHome');
    }

    public function uninstall()
    {
        return parent::uninstall();
    }
    public function hookDisplayHome($params)
    {
      return $this->display(__FILE__, $this->templateFile);
    }
}

и мой файл kamailchimp.tpl находится внутри папки modules / kamailchimp / views / templates / hook и в темах / PRS025 / modules / kamailchimp / views / templates / hook.

Может кто-нибудь сказать мне, что я делаю не так? PS 1.7

1 Ответ

0 голосов
/ 29 июня 2018

Вы смешиваете два способа вызова шаблона.
Вы можете сделать это так:

public function hookDisplayHome($params)
{
    return $this->display(__FILE__, 'views/templates/hook/kamailchimp.tpl');
}

или как это:

public function hookDisplayHome($params)
{
    return $this->fetch('module:kamailchimp/views/templates/hook/kamailchimp.tpl');
    // return $this->fetch($this->templateFile); // Or like this as you set $this->templateFile at the beginning of your file
}

Я рекомендую вам сделать это последним способом, так как это новый и лучший способ сделать это в PrestaShop 1.7

...