Утилита "Генератор фильтра для iCMS v.1.10.3 - 1.10.6"

+16
3.18K

Описывается утилита, позволяющая быстро создать работоспособную заготовку фильтра. Хотя сегодня и Первое апреля, это никакая не шутка и не прикол. Генератор фильтра работает, без дураков — можете забирать и пользоваться. Разработка посвящается прекрасной женщине Ирине, которую я безмерно уважаю. Я горжусь, что работаю с нею над одним проектом. Чмок, милая Ира!

Постановка задачи

Фильтры поддерживаются ядром движка во многих местах. Например, в статьях, в описаниях разделов. Если есть необходимость, можно прикрутить поддержку фильтров и в другие места, например, в описания рубрик Универсального каталога, в описания клубов и т.д. Я такое проделывал неоднократно, где мне нужны были фильтры.

В качестве примера могу привести ссылку в статье, которая одну группу пользователей отсылает на одну страницу, а другую группу на совсем другую страницу. Или другой пример: зарегистрированным пользователям показывается одно — а незарегистрированным гостям — другое.

Вместо ссылки может быть картинка, видеоролик, музычка или какая-то инфа из базы. Создателю контента нет нужды лезть в базу за адресом картинки или ролика. Фильтр все сделает за него автоматом. Правда, программеру, чтобы фильтр все это делал, предстоит немного попыхтеть.

Чтобы как-то избавить трудягу умственного фронта от рутины, я предлагаю этот Генератор. Думаю, он займет достойное место в ряду других Генераторов. Те, кто регулярно посещают мой блог, уже знакомы с такими утилитами, как Генератор компонента, Генератор модуля, Генератор плагина.

Фильтр — очень удобная подмога для создателя контента. Она позволяет преобразовать конструкцию типа

  1. {СЛОВО = какой то текст; параметр_0 = значение_0, параметр_1 = значение_1}

в какую-то строку, которая вставляется в статью на место фильтра.

Параметры отделяются от ключевого слова точкой с запятой, а друг от друга — запятыми. Вслед за именем параметра после знака "=" следует значение параметра.

Возможен вариант, если Вы захотите создать фильтр вообще без параметров. Утилита создает фильтр, который обрабатывает конструкцию

  1. {СЛОВО=Какой-то текст;}

Будучи вызванной из статьи, такая конструкция будет заменена фильтром на фразу «Какой-то текст».

Возможен экстремальный вариант

  1. {СЛОВО=;}

Такая конструкция будет заменена сотворенным фильтром на пустую строку. Обратите внимание, знак равенства и точка с запятой являются обязательными, даже если вы параметров не передаете.

Что конкретно будет делать созданный Генератором фильтр — уже зависит о Вашего мастерства программиста. Открывайте файл фильтра редактором — и творите. Генератор взял на себя всю рутину.

Несколько слов о безопасности

Как и другие мои утилиты, этот Генератор НЕ является файлом сайта. Поэтому он не имеет никаких средств защиты «от дурака», никаких защит от несанкционированного доступа к базе. Это ОДНОРАЗОВЫЙ файл, который должен быть удален с сайта сразу же, как только фильтр будет создан. Он напрямую подключается к базе и вносит в нее изменения — прописывает новый фильтр. Кроме того, он создает папку фильтра и сам фильтр.

Поэтому не держите Генератор в корне сайта дольше времени, необходимого для создания фильтра. Создали фильтр — удаляйте Генератор немедленно.

Как пользоваться

Как и любым другим моим Генератором. Скачиваете у меня из профиля архив, распаковываете в любое место. В архиве единственный файл — сам Генератор. Забрасываете по ftp этот файл в корень сайта. В адресной строке браузера набираете ваш_сайт.ru/generator_filter.php.

Откроется форма с кошмарным дизайном.Таким файл сделан не потому, что я красиво не умею, а потому, что нечего ею любоваться. Сделали себе фильтр — удаляйте утилиту с сайта нафиг.

Для создания фильтра требуется ответить на простые вопросы формы. Подсказки тоже имеются. Заполните поля:

1. Имя создаваемого фильтра. Это поле link в таблице cms_filters. Одновременно это имя папки фильтра. Поэтому, во избежание коллизий, утилита проверит, нет ли в базе фильтра с таким именем. Если есть — ничего не будет делать.

2. Название создаваемого фильтра. Поскольку Вы автор фильтра, вам и давать ему имя. То, что вы сюда напишите, будет отображаться в админке, в списке фильтров.

3. Ключевое слово фильтра. Это слово, от которого будет срабатывать создаваемый Вами фильтр. Проследите, чтобы оно не совпадало с ключевыми словами других фильтров. Вводите ключевое слово обязательно ПРОПИСНЫМИ буквами и обязательно по русски. Движок то русскоязычный)).

4. Имена параметров фильтра. Если Вы фильтр создаете без параметров, ничего сюда не вводите. Однако чаще всего фильтру требуется передать какую-то дополнительную информацию или команды. Для этого и нужны параметры. Если одного параметра Вам мало, можете добавить еще, нажав на ссылку «Добавить параметр». Если вы погорячились и создали лишний параметр, убрать последний можно ссылкой «Убрать параметр».

Естественно, прежде чем создавать фильтр, Вам следует хорошо продумать его функционал. В соответствии с функционалом и выбирайте число параметром и их имена.

5. Галка «Публиковать ли фильтр», будучи установленной, сразу включает фильтр. После создания заготовка уже подключена к движку и работает. Если Вы снимите галку, Вам придется включить фильтр позже, из админки, руками.

6. Описание фильтра. Здесь автор фильтра может написать краткую инструкцию по фильтру — ключевое слово, параметры, для чего фильтр предназначен. Собственно, чем больше Вы сюда напишите, тем легче вам будет объяснять создателю контента, что это за штука фильтр, как ею пользоваться и что она делает.

7. Префикс таблиц базы данных надо указать в этом поле, чтобы Генератор мог подключиться к базе и прописать в нее новый фильтр. Если при установке сайта вы использовали другой префикс, необходимо указать его здесь.

Пока Вы не нажали на кнопку «Создать фильтр», никаких изменений Генератор в сайт не внесет.

Кнопка «Очистить форму» служит для очистки всех полей.

Как скачать.

Скачать можно бесплатно, то есть даром, из моего профиля тут.

Куда говорить спасибо

Кармы добавьте :)

Удачи в сайтостроении! Всех благ!

Небольшой постсриптум

P.S. Для любителей Первой ветки сообщаю, что мой друг Делтас (deltas) написал очень хороший компонент «Фильтры». Моя и его разработка соотносятся примерно как программный и пользовательский модули Первой ветки. Если мой Генератор создает, кроме записи в базу, еще и файл фильтра, его Компонент позволяет создать фильтр, который существует в виде записи в базе. Эти две разработки ни в коем случае не являются заменой друг другу, поскольку некоторые задачи удобнее решать через программный фильтр, а некоторые — через пользовательский.

P.P.S. Спасибо, дружище Делтас, за очень интересную идею!

0
Авакадо Авакадо 8 лет назад #
Спасибо в указанные ресурсы положу за конструктор на 2йку
0
WebMan WebMan 8 лет назад #
Полезная утилита.

Я не нашёл в Вашем блоге "Генератор бреда". Это шутка? joke
+4
Странник Странник 8 лет назад #
Генератор бреда? Нет, конечно. Мне и не нужно этот Генератор писать, потому что Генератор Бреда уже есть, и работает.

Вы бы по ссылке сходили и сразу поняли, что к чему. Это наш инстантовский форум.

Отдельные личности создают настолько махровый, первоклассный, рафинированный бред, что ни один Корчеватель с ним не сравнится)))

PS. Ну, и 1 апреля сегодня жеж)) Можно пошутить малость.
0
Clear Clear 8 лет назад #
Странник, привет. Спасибо за генератор. Хотел поинтересоваться, а ты бы мог записать видео использования этого генератора с простым примером. Ну например создать фильтр который выведет все фото из определенного фотоальбома. А то есть в коробке либо одну фотку либо ссылоку. А чтобы вывести все фото нет. Я чет никак не соображу как это можно осуществить. Заранее спасибо.
+1
Странник Странник 8 лет назад #
Приветствую. Данный Генератор является всего лишь инструментом программиста. То есть человека, который и так может создать фильтр, набирая код в редакторе.

В проекте, над которым я сейчас работаю, мне понадобилось создать три фильтра один за другим. Поэтому появилась идея чуток облегчить себе( и другим, выложив Генератор сюда) рутину копирования однотипного кода из одного файла в другой. При этом копировании возможны дурацкие ошибки, возникающие от невнимательности, неправильном выделении или спешки. Приходится тратить свое драгоценное время на исправление этих ошибок.

Данная утилита позволяет сразу создать работоспособную болванку (рыбу, заготовку, шпаргалку) будущего фильтра, лишенную упомянутых ошибок. Но чтобы создать фильтр, этого Генератора недостаточно. Требуется применить навыки программиста и наполнить заготовку действиями. Таким образом, утилита для человека, который не знает php, mysql, структуры iCMS, структуры базы данных движка - совершенно бесполезна.

Само по себе использование Генератора настолько тривиально, что предложение создать видеокурс вызывает улыбку. Следует ответить на семь простых вопросов и нажать на кнопку "Создать фильтр". Какой тут еще видеокурс? Естественно, вопросы просты для программиста, который и так может написать фильтр, даже без Генератора.

Спасибо.
0
Clear Clear 8 лет назад #
Спасибо за развернутый ответ. Я конечно не спец в программировании, но все же кое что сделать могу. Пытался создать фильтр "фотоальбома" на базе существующих, но не получилось. Просто вот уже более двух лет в коробку ну никак не хотят разработчики сделать дополнительные фото для УК и Статей первой ветки. Я просто не понимаю, неужели это невозможно? Всяко доп фото НЕОБХОДИМЫ для этих компонентов, но нет же, есть всего одна и на этом все. Где тут универсальность УК. Приходиться искать дополнения от сторонних авторов изменяя файлы, тем самым обрекая себя на невозможность / осложнение дальнейшего обновления. Вот думал что хотябы фильтр такой сделать.
+1
Странник Странник 8 лет назад #
Clear:
Я просто не понимаю, неужели это невозможно?
Технически никаких препятствий нет.
Я сам сейчас в таком же состоянии - идей много, а времени на реализацию мало. Разработчики движка сейчас занимаются Второй веткой - они ясно это дали понять. Так что берите мой Генератор, делайте фильтр, который будет извлекать фото из базы и выкладывайте его. Раз считаете, что это необходимо)))
0
Странник Странник 8 лет назад #
Буду рад, если упомянете, что фильтр сделали с помощью моего генератора, но это на ваше усмотрение. Автор фильтра Вы.
0
Pasha Pasha 8 лет назад #
1. Фильтр это весьма неоднозначное изделие, тогда уже лучше плагином делать.
2. Обновления? А какова целесообразность этого действия и чего конкретно от него ожидаете вы?
3. Был у меня плагин для привязки фотоальбомов к статьям, если идете тем же путем, то прикрутите его к каталогу и не мучайтесь.
0
Странник Странник 8 лет назад #
Делать плагин или фильтр - решает программист сайта.

Вот у меня ситуация в текущем проекте такова - мне проще написать три фильтра и объяснить создателям контента, как ими пользоваться, чем городить плагин, который все это будет делать автоматом. Девчонки в восторге от "малой механизации", а я себе сэкономил немало времени)))

С другой стороны, отвязавших от девчонок, я сел писать плагин оповещения по почте, потому что решил, что так мне будет проще.
0
Странник Странник 8 лет назад #
Рекомендую обратить внимание на разработку Делтаса компонент "Фильтры"

Еще от автора

Адаптация компонента "Закладки" от 19 января 2011 к коробочной версии 1.10.7
На форуме появилась тема с пожеланиями адаптировать довольно старый компонент "Instant Bookmarks" Fuze к современным реалиям.
Утилита "Садовод" для версии InstantCMS 1.10.7.008
В этой краткой заметке описывается утилита "Садовод" для ремонта деревьев версии InstantCMS 1.10.7.008.
Изменение компонента "Баннеры" для будущей  версии 1.10.7.008
Данная статья рассказывает всем ждущим новую версию 008, что нового ожидается в будущем релизе версии 1.10.7.008.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.