Перейти к публикации
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...

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


 Поделиться

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

В шаблоне 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 пользователей

    • Нет пользователей, просматривающих эту страницу.
×
×
  • Создать...

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

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