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

[РЕШЕНО] Слайдер в шапке


Recommended Posts

Инструкция: Добавление новой позиции или расположения для модуля.

Для примера взят модуль welcome (Приветствие)

Проверено на 1.5.2.1

1. Добавляем в языковый файл админки название расположение модуля

$_['text_content_middle'] = 'Content Middle';
для примера был взят \admin\language\russian\module\welcome.php

2. добавляем в шаблон админке

в www\admin\view\template\module\welcome.tpl

после вот этого

<?php if ($module['position'] == 'column_right') { ?>
<option value="column_right" selected="selected"><?php echo $text_column_right; ?></option>
<?php } else { ?>
<option value="column_right"><?php echo $text_column_right; ?></option>
<?php } ?>
добавляем это

<?php if ($module['position'] == 'content_middle') { ?>
<option value="content_middle" selected="selected"><?php echo $text_content_middle; ?></option>
<?php } else { ?>
<option value="content_middle"><?php echo $text_content_middle; ?></option>
<?php } ?>
и после

html += ' <option value="column_right"><?php echo $text_column_right; ?></option>';
добавляем

html += ' <option value="content_middle"><?php echo $text_content_middle; ?></option>';

3. далее изменения в контроллере админке модуля велкоме

в \www\admin\controller\module\welcome.php

находим

$this->data['text_column_right'] = $this->language->get('text_column_right');
и после него вставляем

$this->data['text_content_middle'] = $this->language->get('text_content_middle');

Изменения в пользовательской части

4. в файле /catalog/controller/common/home.php

добавляем после

$this->children = array(
вот это

'common/content_middle',

5. Создаем файл content_middle.php по пути \www\catalog\controller\common

с содержимым аналогичным как и content_bottom.php

первую строку меняем на

class ControllerCommonContentMiddle extends Controller {
и в коде, вместо content_bottom заменяем все на content_middle

6. далее создаем файл content_middle.tpl по пути www\catalog\view\theme\default\template\common\

с таким же содержимым как и content_bottom.tpl

7. И в файле \www\catalog\view\theme\default\template\common\home.tpl

добавляем

<?php echo $content_middle; ?>

ВСЕ!!!!

  • +1 3
Надіслати
Поділитися на інших сайтах

Еще вопрос возник, новую позицию получилось сделать, а как теперь можно вставить эту позицию в div контейнер к примеру в header.tpl ?

возьмем тот же модуль welcome (Приветствие), хочу чтобы этот модуль отображался header.tpl (в шапке)

помогайте, выручайте :-)

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


а подумать самому?? И не надо комментировать весь код.... я и так знаю про что речь идет!!

Нет никакого удовольствия листать тупо цитатную портянку чтобы посмотреть вопрос/ответ!!!

в контролере header.php

'common/content_middle',

и в шаблоне header.tpl вывести как

<?php echo $content_middle; ?>

но не думаю что это правильно. т.к в header.tpl все позиции должны расставляться стилями, а не внедрением...

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

я уже ответил как.. читаем выше. И вообще, header.tpl не для того что бы там модули то и дело размещать. Один раз разместил и все. Если получилось... то хорошо.

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

  • 2 weeks later...

в настройках модуля слайдшоу добавить все схемы на которых он должен быть размещен.

В этом то и проблема.Добавил все схемы,отображается только на главной.Я добавлял позицию модуля по вашему мануалу.по другим расположениям (низ сайта,верх сайта) отображается,а в новой позиции тока на главной. Может где то надо метки дорасставить?
Надіслати
Поділитися на інших сайтах


да у меня именно так. с другими схемами робит,а с новой не хочет. а у вас то робит? я вместо файла welcome,брал slideshow

вот в этом файле adminviewtemplatemoduleslideshow.tpl у меня есть ошибка на 117 строке

<?php foreach ($banners as $banner) { ?>
html += '	  <option value="<?php echo $banner['banner_id']; ?>"><?php echo addslashes($banner['name']); ?></option>';
<?php } ?>
Надіслати
Поділитися на інших сайтах


Поставил по новой скрипт ocStore 1.5.2.1, сделал всё мануалу и всё равно та же песня. Отображается только на главной,может у Вас скрипт другой версии. Я пошёл другим способом,добавил в header.php в этот блок

  $this->children = array(
   'module/language',
   'module/currency',
   'module/cart'
  );
вот это

'common/content_middle',
получилось вот так

  $this->children = array(
  'common/content_middle',
   'module/language',
   'module/currency',
   'module/cart'
  );
и в header.tpl добавил перед блоком

<div id="notification"></div>
строчку

<?php echo $content_middle; ?>
при таком раскладе всё отображается на всех страницах

На сколько это правильно?

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


я об этом писал уже тут ... видимо не читали.

На всех нужных страницах не показывается т.к в файлах шаблона, например product.tpl да и во всех других присутствует конструкция

<?php echo $header; ?><?php echo $column_left; ?><?php echo $column_right; ?>
<div id="content"><?php echo $content_top; ?>
такая же как и в home.tpl

т.е в home.tpl добавили новую позицию, а во все остальное нет.

Поэтому решение тут может более верное для конкретного случая.....

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

  • 4 weeks later...

Всем привет. сделал новое расположение для "карусели" в шапке. Только косяк появился, почему то при размещении карусели в шапке, не добавляются на страницу стили от карусели. Что не так может быть?

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


  • 1 month later...

5. Создаем файл content_middle.php по пути \www\catalog\controller\common с содержимым аналогичным как и content_botton.php первую строку меняем на

class ControllerCommonContentMiddle extends Controller {
и в коде, вместо content_botton заменяем все на content_middle 6. далее создаем файл content_middle.tpl по пути www\catalog\view\theme\default\template\common\ с таким же содержимым как и content_botton.tpl
Исправьте пожалуйста ошибку: вместо botton - bottom. Спасибо.
  • +1 1
Надіслати
Поділитися на інших сайтах


Если не получается вывести позицию в header.tpl, попробуйте следующий способ:

1. Делаем все по мануалу ravilr`a с пункта 1 по 3 (изменяем только административную часть).

2. Пользовательская часть. В контроллере header.php добавляем следующий код:

$this->load->model('design/layout');

  if (isset($this->request->get['route'])) {
	 $route = $this->request->get['route'];
	} else {
	 $route = 'common/home';
	}
	$layout_id = 0;
	if (substr($route, 0, 16) == 'product/category' && isset($this->request->get['path'])) {
	 $path = explode('_', (string)$this->request->get['path']);
	 $layout_id = $this->model_catalog_category->getCategoryLayoutId(end($path));  
	}
	if (substr($route, 0, 15) == 'product/product' && isset($this->request->get['product_id'])) {
	 $layout_id = $this->model_catalog_product->getProductLayoutId($this->request->get['product_id']);
	}
	if (substr($route, 0, 23) == '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'] == 'имя_вашей_позиции_модуля' && $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;
	 }
	}

после чего в файле шаблона header.tpl в необходимом месте добавляем:

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

Не забудьте проверить, выведен ли модуль на каждой схеме. Смотрим и наслаждаемся:

post-17794-0-03683500-1344522366_thumb.png

post-17794-0-58865400-1344522367_thumb.png

post-17794-0-13942100-1344522369_thumb.png

post-17794-0-77172700-1344522370_thumb.png

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


Гість
Ця тема закрита для публікації повідомлень.

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

Important Information

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