Jump to content

Шаблон для одного из файлов модуля


Recommended Posts

Приветствую.
В модуле присутствует файл, который отрисовывает некую страницу в "своем" шаблоне. Выглядит примерно так:

// somemodule.php
class SomeModule extends Module
{
    public function __construct() {...}
    public function coolFunction() {
        // здесь у меня заполняются перменные для Smarty
        echo $this->display(__FILE__, 'views/templates/front/sometpl.tpl');
    }
}
 

А отрисовка страницы происходит при вызове файла cool.php, который выглядит так:

// cool.php
include_once('../../config/config.inc.php');
include_once('../../init.php');

include_once(dirname(__FILE__).'/somemodule.php');

$module = new SomeModule();

$module->coolFunction();

Так вот, в файле шаблона из первого кода есть ряд переменных смарти которые прекрасно срабатывают без каких либо заполнений:

  • $language_code
  • $meta_title

Возможно еще какие-то есть, но мне пока нужны были только эти, ито язык не сильно нужен в моей реализации.

Однако переменные $css_files и $js_files приходится заполнять ручками, либо прямо в шаблоне прописывать пути до стилей и скриптов.

Отсюда вопрос - в шаблоне темы все это заполняется контроллером престы, а в моем плагине это придется реализовать ручками?

Link to comment
Share on other sites

в стандартном варианте такое в hookHeader в модуле пишется:
$this->context->controller->addCss(($this->_path).'css/file.css');
$this->context->controller->addJS(($this->_path).'js/file.js');

если вы выводите не через хуки свой модуль, то какая вам разница как вы их вставите в вывод:

    $html = '<link href="'.$this->_path.'css/file.css" rel="stylesheet" type="text/css" media="all" />';
    $html .= '<script src="'.$this->_path.'js/file.js" type="text/javascript" ></script>';
$html .= $this->display(__FILE__, 'views/templates/front/sometpl.tpl');
echo $html;
Edited by wagood (see edit history)
Link to comment
Share on other sites

 

в стандартном варианте такое в hookHeader в модуле пишется:
$this->context->controller->addCss(($this->_path).'css/file.css');
$this->context->controller->addJS(($this->_path).'js/file.js');

если вы выводите не через хуки свой модуль, то какая вам разница как вы их вставите в вывод:

    $html = '<link href="'.$this->_path.'css/file.css" rel="stylesheet" type="text/css" media="all" />';
    $html .= '<script src="'.$this->_path.'js/file.js" type="text/javascript" ></script>';
$html .= $this->display(__FILE__, 'views/templates/front/sometpl.tpl');
echo $html;

 

Ну собственно так и делаю =) просто хотел сделать более красивый код, но так тоже норм

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...