Разрабатываю свой модуль делаю так файл php в ExtensionTestProductProduct: PHP: <?phpclass ControllerExtensionTestProductProduct extends Controller { public function index() { $this->load->model('setting/setting'); $theme_default = $this->model_setting_setting->getSetting('theme_default', 0); //$data['test'] = 'test'; $data['header'] = $this->load->controller('common/header'); $data['footer'] = $this->load->controller('common/footer'); if (file_exists('catalog/view/theme/'.$theme_default['theme_default_directory'].'/template/product/product.twig')) { $this->response->setOutput($this->load->view($theme_default['theme_default_directory'].'/template/product/product', $data)); } else { $this->response->setOutput($this->load->view('default/template/product/product', $data)); } }}?> здесь находится шаблон: PHP: $theme_default['theme_default_directory'].'/template/product/product когда загружаю контроллер: PHP: $data['header'] = $this->load->controller('common/header');$data['footer'] = $this->load->controller('common/footer'); и питаюсь выводить: Код: {{ header }} {{ test }} {{ footer }} получаю пустоту но в контролере так работает: PHP: print_r($this->load->controller('common/footer')); но когда комментирую header и footer то шаблон подключается, вопрос как подключить header и footer своему шаблону?
Модуль это не страница. Или модуль или страница. Нужно понимать разницу. Ну и желательно подсматривать в соседних контроллерах. Вот например как делается вьюшка в контроллере товара PHP: $this->response->setOutput($this->load->view('product/product', $data)); Тут нет никакого пути до шаблона, кроме конечной части.
Ну почему же Например модуль(расширение) Все товары И.. Что делает например 3-ка Разрешает публиковать только в extension Как управлять расширением, есть только одно место extension/module А другого подходящеге не придумали, Конечно, можно.. сделать.. А может система должна позволить разделить расширение и модули?
Можно сделать все, но многие ошибочно думают, что если есть модуль latest, то у него должна быть своя страница. Посмотрите на код.. где вы так сделали )) PHP: $this->response->setOutput($this->load->view('default/template/product/product', $data));
Моя ошибка хотел сказать что поменял на: PHP: $this->response->setOutput($this->load->view('product/item', $data));
как то так: PHP: <?phpclass ControllerExtensionTestProductProduct extends Controller { public function index() { //$data['test'] = 'test'; $data['header'] = $this->load->controller('common/header'); $data['footer'] = $this->load->controller('common/footer'); $this->response->setOutput($this->load->view('product/item', $data)); }}?> система автоматический загружает текущий шаблон.
Помогите разобраться, правильно ли делаю? решил попрактиковаться и изменил файл search в контроллере Код: <?php class ControllerCommonSearch extends Controller { public function index() { $data['search'] = 'test'; $this->response->setOutput($this->load->view('common/search', $data)); } } в шаблоне вывожу Код: <div>{{search}}</div> Но что-то перестало что-либо выводится.
$this->response->setOutput($this->load->view('common/search', $data)); return $this->load->view('common/search', $data);
Заработало, спасибо) А если я вношу правки, результат виден минут через 5, как-то можно это ускорить? Обновляю страницу в браузере через комбинацию ctrl+F5. т.е. мы упростили нашу конструкцию, но вот смотрю соседние файлы, там похожие конструкции используют дополнительную функцию, для чего? Код: public function info() { $this->response->setOutput($this->index()); } Как правильно подключать еще один файл twig, мне нужно вывести из cart.php только количество товаров, а упрощать cart.twig мне не нужно. Создал файл cartold.twig и в header подключил его {{ cartold }} Создать новую функцию? Код: class ControllerCommonCart extends Controller { public function index() { $data['blabla'] = 'test'; return $this->load->view('common/cart', $data); } public function cartold() { $data['blablaqwerty'] = 'test2'; return $this->load->view('common/cartold', $data); } }
создал отдельный контроллер В новом файле прописал /controller/common/cartold.php Код: class ControllerCommonCartold extends Controller { public function index() { $data['blabla'] = 'test'; return $this->load->view('common/cartold', $data); } } в файле header.php прописал Код: $data['cartold'] = $this->load->controller('common/cartold'); в шаблоне /template/common/header.twig {{ cartold }} Может можно проще? Как правильно вытянуть одну переменную из cartold.php в header.php Код: $data['cartold'] = $this->load->controller('common/cartold', $data['blabla']); или может прям в шаблоне twig можно вызвать как-то {{ cartold['blabla'] }}? не работает(
PHP: class ControllerCommonCartold extends Controller { public function index() { $data['blabla'] = 'test'; $data['blabla2'] = 'test2'; return $data; }} вытягиваем нужное PHP: $cartold = $this->load->controller('common/cartold'); $hhh = $cartold['blabla'];
В смысле как? Как и другие. Образно так. PHP: $data['blabla'] = $cartold['blabla']; все что в дата потом рендерится тут PHP: return $this->load->view('common/header', $data); а в шаблоне выводится как обычно {{ blabla }}
Значит сделали не правильно. Вы наугад что ли делаете не пойму? Ошибка простая и говорящая. Нет в массиве ключа blabla Где у вас проблема?