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

Создать условия в шаблоне


fog

Recommended Posts

Всем привет))
 
Я новичок на форуме, поэтому не судите строго за вопрос (поиск юзал - не нашел..)
 
Задача такая: нужно вывести определенный класс для <body>
 
Не проблема, в файле controller/common/header.php прописываю

$this->data['bodyClass'] = 'test-class';// my edition

Но мне нужно выводить определенный класс в зависимости от наличия/отсутствия правой или левой колонки

Т.е. переменные $column_left и $column_right ни где не определены и условие:

if(!$column_left ) {
  $this->data['bodyClass'] = 'non-left';
}

не работает ... 

 

Подскажите пожалуйста, я вообще с файлами .tpl не работал никогда ))

Спасибо

 

Да, и в догонку вопрос:
хотелось бы создать свой настроечный файл со всеми условиями и переменными, которые можно было бы использовать в файлах шаблона. Как это можно реализовать?

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


Всем привет))

 

Я новичок на форуме, поэтому не судите строго за вопрос (поиск юзал - не нашел..)

 

Задача такая: нужно вывести определенный класс для <body>

 

Не проблема, в файле controller/common/header.php прописываю

$this->data['bodyClass'] = 'test-class';// my edition

Но мне нужно выводить определенный класс в зависимости от наличия/отсутствия правой или левой колонки

Т.е. переменные $column_left и $column_right ни где не определены и условие:

if(!$column_left ) {
  $this->data['bodyClass'] = 'non-left';
}

не работает ... 

 

Подскажите пожалуйста, я вообще с файлами .tpl не работал никогда ))

Спасибо

 

Да, и в догонку вопрос:

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

 

 

Честно говоря  не очень представляю как можно из header получить наличие или отсутствие одной из колонок.

Так Вы врядле получите наличие переменной. Собственно колонки создаются так 

$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'] == 'column_right' && $module['status']) {
						$module_data[] = array(
							'code'       => $extension['code'],
							'setting'    => $module,
							'sort_order' => $module['sort_order']
						);				
					}
				}
			}
		}

Как Вариант , Вам тоже самое нужно создавать в header, и потом проверять создался ли массив, и уже в зависимости от этого добавляться класс к body или нет

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


Или же оттолкнуться немного в сторону и возложить эту задачу на js или jquery

Потому что проверить наличие

<div id="column-left">

не должно никого озадачить.

Да и класс для body после этого тоже легко задать. 

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

Я делал так, писал условие в column_left.tpl

<?php if ($modules) { ?>
<div id="column-left">
  <?php foreach ($modules as $module) { ?>
  <?php echo $module; ?>
  <?php } ?>
</div>
<?php } else { ?>
<script type="text/javascript">
	$("body").addClass("myclass");
</script>

<?php } ?>
  • +1 1
Надіслати
Поділитися на інших сайтах

С js, конечно, вариант самый простой, но не хочется верстку латать js-ом

 

С контроллерами вариант не работает, потому что условие вывода проверяется уже непосредственно в шаблоне, как и написал pashast 

 

Вот если бы кто подсказал, как из column_left.tpl передать переменную в headr.tpl

.. если в .tpl такое возможно в принципе

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


С js, конечно, вариант самый простой, но не хочется верстку латать js-ом

Очень зря.

Потому что при выключенном js не будет работать даже добавление товара в корзину.

Значит js включен.

А значит этот вариант наиболее оптимальный.

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

Да, так наверное и сделаю, пока не разберусь что где лежит ...

 

Непривычно все это. Чтобы добавить бутстраповский класс к <div id="content" class="span8"> нужно 100500 файлов отредактировать :oops:

или опять же js

 

Спасибо!

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


 бутстраповский класс к <div id="content" class="span8"> 

О боги великих клавиатурных крошек под кнопочками!

Одним только вам известно, какими багами и конфликтами стилей будет награждён этот шаблон, если его не верстали с нуля, а просто подключили бутстрап  :lol:

 

Нет ничего страшного в редактировании 100500 файлов. Их на самом деле куда меньше. Я уже создавал чистый шаблон на бутстрапе  под опенкарт  ;)

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

Или же оттолкнуться немного в сторону и возложить эту задачу на js или jquery

Потому что проверить наличие

<div id="column-left">

не должно никого озадачить.

Да и класс для body после этого тоже легко задать. 

 

 

Что-бы проверить есть ли этот id нужно готовый DOM получить в обьект, и прежде чем выполнится условие пользователь может периодически наблюдать картинку когда колонка появилась и вдруг пропала. С этим $(doc).on('ready' ... одни проблемы(

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


О боги великих клавиатурных крошек под кнопочками!

Одним только вам известно, какими багами и конфликтами стилей будет награждён этот шаблон, если его не верстали с нуля, а просто подключили бутстрап  :lol:

 

Нет ничего страшного в редактировании 100500 файлов. Их на самом деле куда меньше. Я уже создавал чистый шаблон на бутстрапе  под опенкарт  ;)

:-) Установил бутстрап, конфликты скриптов устранил (спасибо, на форуме помогли) - все работает. 

Естественно, шаблон будет свой! Тупо врубить бутстрап конечно не прокатит ..

Просто пока переходный период : подключил свой стиль - отрубил дефолтный.

Адаптируюсь))

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


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

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

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

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

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

Вхід

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

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

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

Important Information

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