Например, есть макет страницы товара и хочется его дублировать + внести свои изменения, чтобы в дальнейшем отдельно применять к нужному товару. что для этого нужно? создать клон контроллера product2.php и клон шаблона product2.tpl потом внести изменения в контроллер product2.php PHP: if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/product/product2.tpl')) { $this->response->setOutput($this->load->view($this->config->get('config_template') . '/template/product/product2.tpl', $data)); } else { $this->response->setOutput($this->load->view('default/template/product/product2.tpl', $data)); } в разделе макеты создать новый макет Product2 и указать там путь product/product2 что я ещё упустил? никто не сталкивался с такой задачкой?
добавил к макету Product2 модуль - отображается без проблем. а вот product2.tpl (с изменениями) не отображается. отображается дефолтный product.tpl
Вы видимо не прочитали что написал! Смотрите. То что вы создали в админке макет и добавили кнему модули, а потом этот макет выбрали к товару это никак не относится к контроллеру. Это как бы виртуальный макет у вас получился! Что бы от выбранного макета, менялся шаблон, нужно как то по другому. Т.е узнаем в контроллере продукта какой макет назначен и на основании этих данных и выбираем нужный шаблон. Но зачем столько мороки? Проще в неиспользуемое поле товара писать название шаблона и потом его использовать в коде который выше указали.
По началу тема с макетами показалась стоящей )) нуссс.. попробую вылезти на неиспользуемых полях товаров спасибо Влад за подсказку!
1. Создать шаблон tpl 2. Создать контроллер php 3. В админ - панели > Создать макет и указать путь до контроллера
Пример кода взял с темы от Ravilr PHP: $template = 'category.tpl';if ($category_id == 27) { $template = 'category1.tpl'; }if ($category_id == 28) { $template = 'category2.tpl'; } if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/product/'.$template)) { $this->response->setOutput($this->load->view($this->config->get('config_template') . '/template/product/'.$template, $data));} else { $this->response->setOutput($this->load->view('default/template/product/'.$template, $data));}
Блин полдня парился поэтому скажу тут, имя контролера включает пусть например если ControllerinformationOnas значит пусть Controller/information/Onas
Ну например задача сверстать и добавить в магазин несколько страниц, выходит чтобы что то сделать мне нужен полный доступ, а на самом деле это всегда 4 файла вставить в нужное месте, и доступ мне не нужен. Кароч имхо движок должен просо парсить папку контрол и создавать автоматом страницы по всем контролам кроме например в папке "Новая папка(2)"
мне кажется вы уже не в ту степь ушли с вопросом, а точнее в область хотелок. Движок ничего сам не будет создавать, пока программист не сделает нужные контролы, шаблоны и настройки! Прошу писать только по теме!!
Простите, есть вопрос. OpenCart Version 2.1.0.2 (rs.1). Создаю новый макет для категории согласно тому, как Вы написали. Создан контроллер, создан tpl, внесены необходимые изменения в код, создан макет. Прописан путь к контроллеру и в нужных категориях подключен новый макет. Если задать в адресной строке путь вида: .../index.php?route=productnews/categorynews&path=456 (то есть по ID категории, так посоветовали в одной статье для проверки правильности), то все отлично. Все новое, все чудесно. Но если используется путь, прописанный в SEO URL, вида: .../statji-pro-sumki-i-modu то ничего не работает, макет старый. Не подскажете, куда копать и в чем может быть причина? Заранее благодарю.