Фильтр "Вставка модуля" v 1.0.0

3197
Приветик!
Давненько что-то я ничего не писал )
Не знаю было это или не было, вчера увидел темку, решил сделать немного по-другому. Вещь то нужная. Сделать так, чтобы можно было выводить любой модуль фильтром в любом нужном месте, просто вставивь {МОДУЛЬ=id_модуля}. Пока добрался до компа и наваял, в теме уже успели продвинуться и Pasha уже высказал подобную мысль. Ну, раз сделал, выложу ))

Фильтр позволяет вставить в любое место, где доступны фильтры подобный шаблон и в этом месте будет выводиться результат работы нужного модуля. Мало вывести модуль, нужно ещё и оформить. Поэтому в фильтре доступны параметры.
Шаблоны для вставки:
{МОДУЛЬ=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 в корне сайта.

Скачать архив фильтра

Демо: localhost
Ничего сложного не вижу, как установить фильтр на копии сайта на локалхосте и протестировать. У каждого есть копии icms на локалхосте, думаю smile

Вроде всё работает. Поверхностно тестировал. На большее нет времени.

Приятного пользования.

P.S. Друзья, фильтр как есть. Дальнейшей поддержки не обещаю. Получится - хорошо. Нет, значит нет. Также и прошлые разработки. Не держите зла.

UPDATE 19.12.2013

Архив перезалит. Подробности в комментарии.
PHP классы для работы с VK API и с API Яндекс Метрики | Плагин "Фронт-редактор" v.1.0.0 для ICMS 1.10.4
Комментарии (27)
Марат 16 декабря 2013 в 19:45 +6
Забыл упомянуть некоторые нюансы. Модуль можно вставить везде, где работают фильтры. А работают они в статьях и модулях. Получается любой модуль можно вставить в пользовательский модуль. Также для пользовательских модулей можно вставить модуль в себя. Не советую так делать. Будет бесконечный цикл.
Также в одной статье можно выводить несколько модулей. Если в модуле есть какие то ajax подгрузки, то две копии одного модуля могут работать некорректно. Поэтому, если есть такая необходимость, лучше делать другую копию модуля. и выводить уже две разные модули. Если аякс подгрузок нет, например какой-то пользовательский модуль с кодом какой то контекстной рекламы, то можно выводить несколько копий одного модуля. В общем, масло масляное. Кому надо, разберутся hoho
Олег Васильевич я 16 декабря 2013 в 20:58 +2
Спойлер
deltas 16 декабря 2013 в 21:01 +2
Скрытый текст виден только зарегистрированным пользователям
eoleg 16 декабря 2013 в 21:37 +2
Скрытый текст виден только зарегистрированным пользователям
smile
deltas 16 декабря 2013 в 23:28 +3
Ну да! Поэтому и писал под хайдом, боялся гости не поймут))
Сорри за флуд zst
GoodMade 16 декабря 2013 в 22:58 0
это в магазинах, под скидками маскируют распродажу.. у нас всё по совести :)
Марат 17 декабря 2013 в 18:55 0
Распродажу людям испортите такими подарками laugh
Да нет. Я не такой laugh
deltas 16 декабря 2013 в 21:03 +2
Как всегда, Марат на высоте +
Только вчера задумался модуль вывести в нужном блоке без шаблона, как то не сообразил что его надо кешировать...
Amurland 17 декабря 2013 в 04:07 +1
Круто! Была мысль, но не знал как оформить установщик! Молодец!
Майкл 17 декабря 2013 в 04:50 +2
Спасибо Марат, за полезную и бесплатную вещь!
lezginka.ru 17 декабря 2013 в 14:18 +1
я устал ставить плюсы Марату :)
сделайте кто-нибудь скрипт, чтобы от меня(юзера) при каждом посте можно было бы плюсовать определенным кодерам :)
letsgo 17 декабря 2013 в 15:50 0
Спасибо Марат, как всегда полезная деталь. С наступающим годом тебя, пусть поменьше будет забот и больше радости. Услышал недавно фразу: не работая не проживешь, работая - жизнь не увидишь. Понравилась, поэтому желаю тебе заниматься любимым делом, чтобы и работа шла и жизнь дарила больше радости.
Марат 17 декабря 2013 в 18:59 +1
Спасибо, Саня!
И тебя с наступающим!
letsgo:
поэтому желаю тебе заниматься любимым делом, чтобы и работа шла и жизнь дарила больше радости
Скорее всего, всё к тому и идет smile
Марат 17 декабря 2013 в 18:56 +2
Друзья, всем спасибо за добрые слова!
Работает хоть? Проверял кто? Или в преддверии праздника уже всем не до работы? smile
Guga 17 декабря 2013 в 19:10 0
Работает. Спасибо. Все отлично. Покроет такой способ 80% случаев.
Олег Васильевич я 17 декабря 2013 в 19:39 0
Работает без проблем. Ещё раз, спасибо!
Юрий (Pizza Celentano) 18 декабря 2013 в 23:37 0
А у меня почему-то несовсем корректно работает, если более одного модуля вставлять, то просто дублируется первый на месте второго. Например вставляю модуль случайное из каталога {МОДУЛЬ=55} и следом например случайная картинка или другой модуль {МОДУЛЬ=105}, в итоге получается два случайное из каталога {МОДУЛЬ=55}, в чём может быть проблема?
Марат 19 декабря 2013 в 07:07 +2
Есть такое дело. Спасибо!
Чтобы исправить, перед строками в конце фильтра(/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.  
Юрий (Pizza Celentano) 19 декабря 2013 в 10:47 0
Да, спасибо, теперь всё чётко работает, нужно перезалить архив с исправлением.
Модератор Реальности 14 января 2014 в 07:58 0
установил почему то выдал ошибку
Марат 14 января 2014 в 08:52 0
Поконкретнее пожалуйста. Какая ошибка, при каких условиях? Может можно увидеть где. Чтобы я смог воспроизвести и понять причину. Можно в личку.
Маратище! Спасибище! От меня огромный ПЛЮСИЩЕ!
Если серьезно, друг, очень пригодилось. Только стала задача сделать что-то подобное, я уже сел писать свои каракули (тоже фильтр), а тут глядь: УЖЕ ВСЕ ГОТОВО на 98%!!!!!
Для своей задачи допилил за 15 мин.
Спасибо!
Александр 23 октября 2014 в 00:51 0
Огромное спасибо ура я нашел это)) так хотел сейчас такое применить статистику вывести в 1 статье))) Спасибо!!!!!
Кирилл Эдуардович (Странник) 23 октября 2014 в 02:20 0
Для справки еще фильтры
Тимофей 24 июня 2015 в 10:16 0
Ни кто не подскажет, а что нужно исправить чтобы под 1.10.1 заработало?
Если фильтр сделан под 1.10.3 и позже, под 1.10.1 он работать не будет. Причина - различие методов ядра в этих версиях. Выход - сделать миграцию до 1.10.3
Юрий 21 августа 2015 в 01:19 0
Марат, большой Рахмет ! 1.10.6 работает