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

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


helen2014

Recommended Posts

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

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

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

 

файл 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)  и всё должно завестись с пол оборота...

Надіслати
Поділитися на інших сайтах

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

Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз

×
×
  • Створити...

Important Information

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