moros Posted July 29, 2016 Share Posted July 29, 2016 Приветствую.В модуле присутствует файл, который отрисовывает некую страницу в "своем" шаблоне. Выглядит примерно так: // 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 More sharing options...
wagood Posted July 29, 2016 Share Posted July 29, 2016 (edited) в стандартном варианте такое в 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 July 29, 2016 by wagood (see edit history) Link to comment Share on other sites More sharing options...
moros Posted July 30, 2016 Author Share Posted July 30, 2016 в стандартном варианте такое в 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 More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now