Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Ya2mama

Новачок
  
  • Публікації

    2
  • З нами

  • Відвідування

Усі публікації користувача Ya2mama

  1. Ребята, решение есть - ссылка. Но на всякий пожарный, если вдруг через несколько дней (недель, месяцев и т.д) страница с решением перестанет открываться, привожу инструкцию ниже: Начнем. Главное что нужно запомнить перед началом добавления, структуру папки по адресу admin/view/template/module/название.tpl, каждый шаблон отвечает за вывод модуля. Важно выбрать один необходимый модуль, можно несколько или хоть все. Например шаблон featured.tpl отвечает за вывод рекомендуемых товаров и т.д. Сейчас по порядку. Пример: Допустим нам нужно вывести модуль слайдера в отдельный блок и назвать его <?php echo $content_slider; ?> 1. Создание контроллера Нужно создать головной файл с настройками в catalog/controller/common/ с названием content_slider.php в него добавить код: <?php class ControllerCommonContentSlider extends Controller { public function index() { $this->load->model('design/layout'); $this->load->model('catalog/category'); $this->load->model('catalog/product'); $this->load->model('catalog/information'); if (isset($this->request->get['route'])) { $route = (string)$this->request->get['route']; } else { $route = 'common/home'; } $layout_id = 0; if ($route == 'product/category' && isset($this->request->get['path'])) { $path = explode('_', (string)$this->request->get['path']); $layout_id = $this->model_catalog_category->getCategoryLayoutId(end($path)); } if ($route == 'product/product' && isset($this->request->get['product_id'])) { $layout_id = $this->model_catalog_product->getProductLayoutId($this->request->get['product_id']); } if ($route == 'information/information' && isset($this->request->get['information_id'])) { $layout_id = $this->model_catalog_information->getInformationLayoutId($this->request->get['information_id']); } if (!$layout_id) { $layout_id = $this->model_design_layout->getLayout($route); } if (!$layout_id) { $layout_id = $this->config->get('config_layout_id'); } $module_data = array(); $this->load->model('setting/extension'); $extensions = $this->model_setting_extension->getExtensions('module'); foreach ($extensions as $extension) { $modules = $this->config->get($extension['code'] . '_module'); if ($modules) { foreach ($modules as $module) { if ($module['layout_id'] == $layout_id && $module['position'] == 'content_slider' && $module['status']) { $module_data[] = array( 'code' => $extension['code'], 'setting' => $module, 'sort_order' => $module['sort_order'] ); } } } } $sort_order = array(); foreach ($module_data as $key => $value) { $sort_order[$key] = $value['sort_order']; } array_multisort($sort_order, SORT_ASC, $module_data); $this->data['modules'] = array(); foreach ($module_data as $module) { $module = $this->getChild('module/' . $module['code'], $module['setting']); if ($module) { $this->data['modules'][] = $module; } } if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/common/content_slider.tpl')) { $this->template = $this->config->get('config_template') . '/template/common/content_slider.tpl'; } else { $this->template = 'default/template/common/content_slider.tpl'; } $this->render(); } } ?> обязательно проверьте номера строк: 2 (ControllerCommonContentSlider), 50, 79, 80, 82 в них должны быть имена совпадающие с названием шаблона у меня это content_slider, в дальнейшем при создании новых блоков необязательно копировать весь текст, достаточно поправить строчки с необходимым названием, например content_sale и т.д. 2. Создание шаблона Далее нам необходимо сделать файл шаблона для вывода модуля в catalog/view/theme/default/template/common/ здесь создаем шаблон с именем который у нас носит контроллер content_slider.tpl с внутренностями <?php foreach ($modules as $module) { ?> <?php echo $module; ?> <?php } ?> 3. Объявляем модуль в нужном месте Теперь необходимо дать понять движку где выводить наш модуль, на главной в хедере или футере. Переходим в catalog/controller/common/название.php для вывода слайдера на главной мне нужен home.php открываю его и дописываю в код $this->children = array( 'common/column_left', 'common/column_right', 'common/content_top', 'common/content_bottom', 'common/footer', 'common/header', ); строчку ’common/content_slider’, (Будьте внимательны, дописывайте код перед футером и хедером. Связано это из за возможных проблем с jQuery!) получится: $this->children = array( 'common/column_left', 'common/column_right', 'common/content_top', 'common/content_bottom', 'common/content_slider', 'common/footer', 'common/header' ); если Вы добавляете например в футер, то там Вы можете не обнаружить строчку $this->children = array, в этом случает перед $this->render(); добавьте $this->children = array(‘common/content_slider’); 4. Вывод хозяйства в шаблоне Выводим наш модуль в шаблоне, для этого я в catalog/view/theme/default/template/common/home.tpl добавляю строчку в нужном мне месте <?php echo $content_slider; ?> 5. Отображение в Админке Что бы мы могли выбрать нашу новую позицию нам нужно что бы она отображалась в админке, это логично;) тут вспоминаем что было сказано в самом начале о самом важном, выбираем в admin/view/template/module/название.tpl нужный шаблон, у меня это slideshow.tpl, в нем находим <?php if ($module['position'] == 'content_top') { ?> <option value="content_top" selected="selected"><?php echo $text_content_top; ?></option> <?php } else { ?> <option value="content_top"><?php echo $text_content_top; ?></option> <?php } ?> и перед ним (можно после, эта строка отвечает за вывод названия из выпадающего списка в адмике) вставляем <?php if ($module['position'] == 'content_slider') { ?> <option value="content_slider" selected="selected">Slider Box</option> <?php } else { ?> <option value="content_slider">Slider Box</option> <?php } ?> теперь в этом же файле (ниже), ищем строку html += ' <option value="content_top"><?php echo $text_content_top; ?></option>'; и добавляем перед ним строку html += ' <option value="content_slider">Slider Box</option>'; Все! Проверено мной - работает!
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.