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

[Решено?..] Добавление блока в шаблон Home


Recommended Posts

В шаблоне home.tpl помимо content_top, column_left, column_right и content_bottom нужно добавить блок servicerow2

 

сделал следующие шаги:

1. добавил строку в catalog/controller/common/home.php

$data['servicerow'] = $this->load->controller('common/servicerow2');

2 добавил файл \catalog\controller\common\servicerow2.php c кодом

<?php
class ControllerCommonServicerow2 extends Controller {
	public function index() {
		$this->load->model('design/layout');

		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'])) {
			$this->load->model('catalog/category');

			$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'])) {
			$this->load->model('catalog/product');

			$layout_id = $this->model_catalog_product->getProductLayoutId($this->request->get['product_id']);
		}

		if ($route == 'information/information' && isset($this->request->get['information_id'])) {
			$this->load->model('catalog/information');

			$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');
		}

		$this->load->model('extension/module');

		$data['modules'] = array();

		$modules = $this->model_design_layout->getLayoutModules($layout_id, 'servicerow2');

		foreach ($modules as $module) {
			$part = explode('.', $module['code']);

			if (isset($part[0]) && $this->config->get($part[0] . '_status')) {
				$data['modules'][] = $this->load->controller('module/' . $part[0]);
			}

			if (isset($part[1])) {
				$setting_info = $this->model_extension_module->getModule($part[1]);

				if ($setting_info && $setting_info['status']) {
					$data['modules'][] = $this->load->controller('module/' . $part[0], $setting_info);
				}
			}
		}

		if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/common/servicerow2.tpl')) {
			return $this->load->view($this->config->get('config_template') . '/template/common/servicerow2.tpl', $data);
		} else {
			return $this->load->view('default/template/common/servicerow2.tpl', $data);
		}
	}
}

3 добавил файл \catalog\view\theme\default\template\common\servicerow2.tpl c кодом 

<?php foreach ($modules as $module) { ?>
<?php echo $module; ?>
<?php } ?>

4 вставил строчку в файл catalog\view\theme\default\template\common\home.tpl

<?php echo $servicerow2; ?>

на странице сайта выходит ошибка 

Notice: Undefined variable: servicerow2 in /var/www/u0128313/data/www/grc-security.ru/catalog/view/theme/default/template/common/home.tplon line 6

 

Уважаемые специалисты, подскажите, что я делаю не так?

 

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


зачем Вам блок то ? 

все что делаете не так - это добавляете блок 

Змінено користувачем ArtenPitov
Надіслати
Поділитися на інших сайтах

Не надо делать пользовательские позиции

Это не правильно

Ни один модуль не будет знать о них, плюс лишние затраты на вычисления

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

зачем Вам блок то ? 

все что делаете не так - это добавляете блок 

 

Не надо делать пользовательские позиции

Это не правильно

Ни один модуль не будет знать о них, плюс лишние затраты на вычисления

Часто встают задачи размещения блоков модулей в других местах. Например из header нужно перенести в content_top или наоборот. Если использовать javascript, то при загрузке видно, как модуль скачет по странице, что меня не устраивает. Поэтому блок делаю для того, чтобы понять как устроен механизм магазина и потом обходиться без javascript. Если модули не увидят этот блок, значит будем разбираться.

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


Часто встают задачи размещения блоков модулей в других местах. Например из header нужно перенести в content_top или наоборот. Если использовать javascript, то при загрузке видно, как модуль скачет по странице, что меня не устраивает. Поэтому блок делаю для того, чтобы понять как устроен механизм магазина и потом обходиться без javascript. Если модули не увидят этот блок, значит будем разбираться.

jquery делайте без $(document).ready(function(){

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

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

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

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

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

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

Вхід

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

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

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