Перейти к содержанию
helen2014

Как вывести дополнительную позицию для модуля

Рекомендуемые сообщения

Здравствуйте! Хочу вывести модуль похожие товары на стронице товара внизу по всей ширене.

Помогите вывести дополнительную позицыю.

В адмике все прописано правельно, позицыя в модуле есть.

 

файл column_below_content.php для вывода позицыии лежит в

  /catalog / controller / common / column_below_content.php

  /catalog / view / theme / default / template / column_below_content.tpl

 

Что делать дальше нужно?

 

 

 

 

 

post-683118-0-78080400-1412270205_thumb.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Первое и самое основное - создать в файле стилей нужного блока аттрибуты и прикрутить например к какому то id (#), далее - создать контроллер в каталоге catalog\controller\common\column_below_content.php следующего содержания:

<?php  
class ControllerCommonColumnBelowContent extends Controller {
	protected 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'] == 'footer_bottom' && $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/column_below_content.tpl')) {
			$this->template = $this->config->get('config_template') . '/template/common/column_below_content.tpl';
		} else {
			$this->template = 'default/template/common/column_below_content.tpl';
		}
								
		$this->render();
	}
}
?>

Сам же column_below_content.tpl может содержать приметно такой вывод:

<?php if ($modules) { ?>
<div id="column_below_content">
  <?php foreach ($modules as $module) { ?>
  <?php echo $module; ?>
  <?php } ?>
</div>
<?php } ?>

ну и на последок - добавить в админке соотв. схему (layout_id)  и всё должно завестись с пол оборота...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Большое Вам спасибо! Сейчас пойду, попробую!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

То, что Вы написали, два этих файла уже были созданы и лежат там, где надо. Вся проблема в том, что я не знаю что делать дальше. в админке, в модуле выбрана новая созданная позиция, но модуль все равно не выводиться как нужно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В самом файле product.tpl, что нужно прописать?  сейчас прописано вот так,  <div id="column_below_content"></div>  правильно?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если есть тимвьювер, то напишите в ЛС, посмотрим на проблему вместе...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Похожий контент

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.