ПолезностиФильтр "Вставка модуля"(f_module) v. 1.0.0 для instantcms

Главные вкладки

Фильтр "Вставка модуля"(f_module) v. 1.0.0 для instantcms

Фильтр "Вставка модуля"(f_module) v. 1.0.0
Для InstantCMS 1.10.3 

Автор:  Фатихов Марат 
        f-marat@mail.ru
   

Описание: Фильтр позволяет вставить результат работы модуля в любое место статьи или другого модуля. То есть любой модуль можно взять и вставить в пользовательский модуль. Также для пользовательских модулей можно вставить модуль в себя. Не советую так делать. Будет бесконечный цикл.

Также в одной статье можно выводить несколько модулей, но тут есть некоторые особенности. О них чуть ниже.

Фильтр имеет настройки параметров. Шаблоны для вставки:

{МОДУЛЬ=id_модуля} , где  id_модуля - уникальный идентификатор модуля, можно узнать в админке.

{МОДУЛЬ=id_модуля&style=css_стили_модуля&class=класс_блока_модуля} , то есть можно передать параметры

style или class. Параметры необязательны. Можно вставить шаблон без параметра, с одним параметром или двумя

параметрами.

Примеры:

{МОДУЛЬ=55}    

{МОДУЛЬ=23&style=margin:20px;float:left;}

{МОДУЛЬ=23&class=my_class}

{МОДУЛЬ=23&style=margin:20px;float:left;&class=my_class}

Установка:
1. Распаковать архив на хостинге;
2.Перейти по адресу http://ваш_сайт/f_module_install.php . Это инсталлятор фильтра.
3.Удалить на хостинге инсталлятор. Файл f_module_install.php в корне сайта.

N.B. Если вы установите в тексте более одного модуля, модуль начнет капризничать. Вы это заметите по тому как на месте второго модуля появится клон первого. Например, вы установили модуль "Случайное из каталога" {МОДУЛЬ=55}, а затем "Случайная картинка" и т.п. {МОДУЛЬ=105}. А в результате на странице увидимте два одинаковых модуля "Случайное из каталога".

Чтобы устранить сие недоразумение, в конце фильтра(/filters/f_module/filter.php) перед строками:

Код PHP:

 
  1.  
  2. //замена шаблона результатом работы модуля
  3. $text = preg_replace($regex, $output, $text);
  4.  

вставьте следующее:

Код PHP:

 
  1.  
  2. //корректируем $regex, вставивь установленный идентефикатор модуля
  3. $regex = '/{(' . $phrase . '='.$module_id.')(.*?)}/i';
  4.  

 

Скачать: 
Категория: 
Модули Instantsmc