Перейти к содержанию
ArtemPitov

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

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

[ap] layout_fix


[ap] layout_fix


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

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

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

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

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

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

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

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


  • Добавил
  • Добавлено
    11.05.2016
  • Категория
  • Системные требования
    Vqmod
  • Метод активации
  • Ioncube Loader
  • OpenCart
  • 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 поддержка будет проще

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Похожий контент

    • От ArtemPitov
      Фикс позволит выводить один модули на нескольких позициях вашего сайта
      без дополнительно клонирования самого модуля
      Внимание! Фикс даёт только возможность для модификации модулей под вывод
      одного экземпляра модуля на нескольких layout-ах, а не переделывает
      сами модули, все адаптации придется делать самим
      Для вывода одного модуля на нескольких позициях следует передавать
      параметры layout_id как индексный массив со значениями id layout-а

      layout_id = array ( [1] => 1 [2] => 5 ...)
  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×