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

[Поддержка] [ap] layout_fix


ArtemPitov

Recommended Posts

[ap] layout_fix


[ap] layout_fix


Фикс позволит выводить один модули на нескольких позициях вашего сайта

без дополнительно клонирования самого модуля

Внимание! Фикс даёт только возможность для модификации модулей под вывод

одного экземпляра модуля на нескольких layout-ах, а не переделывает

сами модули, все адаптации придется делать самим

Для вывода одного модуля на нескольких позициях следует передавать

параметры layout_id как индексный массив со значениями id layout-а

layout_id = array ( [1] => 1 [2] => 5 ...)


  • Добавил
  • Добавлено
    11.05.2016
  • Категория
  • Системные требования
    Vqmod
  • Метод активации
  • Ioncube Loader
  • ocStore
  • OpenCart.Pro, ocShop
  • Обращение к серверу разработчика

 

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

всё это можно было описать одним правилом
 

<file name="catalog/controller/common/*.php">
	<operation error="skip">
		<search position="replace"><![CDATA[if ($module['layout_id'] == $layout_id]]></search>
                <add><![CDATA[if ((is_array($module['layout_id']) && in_array($layout_id, $module['layout_id']) || !is_array($module['layout_id']) && $module['layout_id'] == $layout_id)]]></add>
	</operation>
</file>

всё. 6 строк.
но вопрос в другом. откуда в layout_id array ?

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

всё это можно было описать одним правилом

 

<file name="catalog/controller/common/*.php">
	<operation error="skip">
		<search position="replace"><![CDATA[if ($module['layout_id'] == $layout_id]]></search>
                <add><![CDATA[if ((is_array($module['layout_id']) && in_array($layout_id, $module['layout_id']) || !is_array($module['layout_id']) && $module['layout_id'] == $layout_id)]]></add>
	</operation>
</file>

всё. 6 строк.

 

не получиться так, если в самом модуле layout_id передается как массив, то нам нужно это массива проверить на соответствия с $layout_id и после этого только выводит, а при Вашем варианте получиться ошибка вида illegal string offset так как при is_array($module['layout_id']) отрабатывает тоже условия что и при !is_array($module['layout_id'])

 

<file name="catalog/controller/common/*.php">

зачем проверять по всех файлах common ? 

 

 

 

но вопрос в другом. откуда в layout_id array ?

 

Для вывода одного модуля на нескольких позициях следует передавать

параметры layout_id как индексный массив со значениями id layout-а

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

да кто их передавать-то будет?

там массивов не было никогда

 

 

так я для этого написал

Внимание! Фикс даёт только возможность для модификации модулей под вывод
одного экземпляра модуля на нескольких layout-ах, а не переделывает
сами модули, все адаптации придется делать самим

Зачем клонировать один тот же модуль по 150 раз ?  если он нужен на всех страницах или выборочно на  2х - 3х ? 

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

похвально стремление сделать много хороших и полезных модулей.

Но не все можно сделать модулями, и многие модули только усугубят поддержку сайта.

Если это делать параллельно система или через vqmod поддержка будет проще

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

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

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

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

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

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

Вхід

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

Вхід зараз
×
×
  • Створити...

Important Information

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