Jump to content
Sign in to follow this  
ArtemPitov

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

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
  • OpenCart
  • ocStore
  • OpenCart.Pro, ocShop

 

Share this post


Link to post
Share on other sites

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

<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 ?

Share this post


Link to post
Share on other sites

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

 

<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-а

Edited by ArtenPitov

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

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

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

 

 

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

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

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

Share this post


Link to post
Share on other sites

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

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

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

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Similar Content

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

      layout_id = array ( [1] => 1 [2] => 5 ...)
  • Recently Browsing   0 members

    No registered users viewing this page.

×

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.