Можно ли создать дизайн? В модуле - Текстовый блок - HTML я создал две контент страницы с нзванием "gggg" и "ksdjgsjdgjshdg" далее в Дизайн-Макеты добавил их выводиться на Главной. Все выводит супер. Можно ли каждому отдельному блоку задать свою разметку, чтобы её стилизовать?
А как вы думаете? Можно все. Возможно подойдет что то готовое https://shop.opencart-russia.ru/oc3_html_pro https://shop.opencart-russia.ru/oc3_information_blocks А ручками как то так \catalog\controller\extension\module\html.php в $setting находится массив с данными, поэтому можно наверно по названию модуля сделать условия для разного подключения шаблона PHP: return $this->load->view('extension/module/html', $data); на подобие PHP: if ($setting['name'] == 'блок1') { return $this->load->view('extension/module/html_block1', $data); } else { return $this->load->view('extension/module/html', $data); } ну или другие варианты по обстоятельствам.
А как сделать общую обёртку для контента? Тут получается что он каждый раз обращается к шаблону html.twig И примерно у нас генерится такой код в разметке HTML: <div class='1'>Блок 1</div><div class='2'>Блок 2</div> А мне надо по разметке вот так HTML: <div class='about'> <div class='1'>Блок 1</div> <div class='2'>Блок 2</div> </div> Или может для каждого блока в админке добавить еще поля, то как?
Выше я вам дал все. Почему не вникните? Что мешает вам, например передавать название модуля в шаблон, а в шаблоне уже строить условия по названию модуля?
так вот можно делать в шаблонах блок 1 block1.twig разметка: HTML: <div class='about'> <div class='1'>Блок 1</div> блок 2 block2.twig разметка: HTML: <div class='2'>Блок 2</div> блок 3 block3.twig разметка: HTML: <div class='3'>Блок 3</div> </div> не будет ли это ошибкой в сборке?
нет. Я же говорю. Передаете переменную в шаблон.. тот который по умолчанию и там строите условия типа Код: {% if name == 'привет' %} одна разметка {% endif %} {% if name == 'пока' %} другая разметка {% endif %}
а если так? Код: {общая разметка начало } {% if name == 'привет' %} одна разметка {% endif %} {% if name == 'пока' %} другая разметка {% endif %} { общая разметка конец }
Решил пойти таким методом. создал контроллер отдельный sectionaboutarea.php PHP: class ControllerCommonSectionaboutarea extends Controller { public function index() { $data['newsectionas'] = $this->load->view('extension/module/html'); $data['newsection'] = $this->load->controller('extension/module/html'); return $this->load->view('common/sectionaboutarea', $data); }} в шаблоне sectionaboutarea.twig HTML: <section class="about_area"> <div class="about-bg"> <img src="image/bg/about-bg.png"> </div> <div class="container bg-white"> {{ newsectionas }} {{ newsection }} </div> </section> newsectionas - выводит чисто разметку модуля newsection - а вот работа контроллера модуля html не выводит, каким-то другим методом нужно?
да, для каждого модуля в зависимости от названия я подгружаю свой шаблон. но мне надо пару модулей например с названием name1 и name2 обернуть в общий div.
Как тогда сделать в контроллере модуля html общую обертку? или то что я решить не могу не там не здесь, как это сделать?
PHP: class ControllerCommonSectionaboutarea extends Controller { public function index() { $this->load->model('setting/module'); // идентификатор модуля $module_newsectionas_id = 32; // получаем настройки модуля $setting_module_newsectionas = $this->model_setting_module->getModule($module_newsectionas_id); // получаем html модуля $data['newsectionas'] = $this->load->controller('extension/module/html', $setting_module_newsectionas); // далее все то же для второго модуля $module_newsection_id = 33; $setting_module_newsection = $this->model_setting_module->getModule($module_newsection_id); $data['newsection'] = $this->load->controller('extension/module/html', $setting_module_newsection); return $this->load->view('common/sectionaboutarea', $data); }}
в контроллере html есть условие $setting['name'] == 'block1', а как по id модуля сделать проверку? $setting['id'] как-то не подошёл.
в $setting, нет идентификатора модуля в контроллере html, из коробки, нет id модуля нужно передать, или получить
в вашем случае как-то так PHP: $setting_module_newsectionas['module_id'] = 32; $data['newsectionas'] = $this->load->controller('extension/module/html', $setting_module_newsectionas);