Коллеги программисты! Этот модуль разрабатывался 3 года, много раз переделывался и переосмысливался. За время разработки различные его версии были опробованы на множестве проектов, и сегодня я хочу представить вам финальную версию.
Итак, модуль называется "Универсальные свойства привязки", и позволяет создавать свойства привязки не только к разделам, элементам инфоблоков, блогам, форумам, опросам, валютам, а вообще к чему угодно. Как - я поясню далее.
[spoiler]
Создание связей между различными сущностями, будь то элементы и разделы инфоблоков, посты на форуме, пользователи и т.д. давно является неотъемлемой частью разработки любого интернет-проекта. Для многих сайтов достаточно стандартных средств организации таких связей, т.е. например, свойств привязки элементов инфоблоков к другим элементам, или пользователей к элементам, но очень часто возникает необходимость как привязки к нестандартным сущностям (например, веб-формам или валютам), так и просто небольшой модификации стандартных средств (например, нужна привязка только к элементам из определенного раздела инфоблока). Такая задача обычно решается либо разработкой собственных типов свойств, что является достаточно трудоемкой задачей, либо упрощением интерфейса, когда, например, пользователь сам должен заполнять идентификаторы каких-либо сущностей в стандартных свойствах типа "Строка", что является неудобным для пользователя и увеличивает количество ошибок заполнения контента. Данный модуль позволяет максимально упростить создание таких привязок, не требуя от программиста владения навыками создания и отладки собственных типов свойств, ему достаточно лишь создать источник данных, используя описание api модуля (если необходимого ему источника нет в стандартной поставке модуля).
Источники данных
Чтобы максимально упростить понимание процесса создания источников данных для модуля, структура файлов источника почти повторяет структуру файлов компонентов, которая известна даже начинающим битрикс-программистам (только гораздо проще):
(вы можете быстро скопировать любой источник и доработать его по желанию)
Пользовательские источники нужно размещать в папке /bitrix/php_interface/grain.links
Полное описание api модуля находится по адресу http://g-rain-design.ru/components/links/api/ , здесь я лишь объясню на примере как сделать простой собственный источник.
Стандартные источники данных
В поставку модуля входят следующие источники данных:
Возможны 4 типа логики выбора из списка: "аякс" (динамическая подгрузка элементов списка при наборе подстроки), "простой выбор из списка" (имитирует стандартное поле типа <select> ), "выбор из списка с возможностью поиска" (имитирует стандартное поле <select>, но с возможностью динамического поиска по подстроке, при отсутствии подстроки выводятся все элементы), и "только поиск" (динамический поиск по подстроке без возможности увидеть все элементы). Вы можете выбирать любой интерфейс в зависимости от прогнозируемого количества элементов в списке и других условий.
Тип интерфейса можно выбрать в настройках свойств.
Компонент "Выбор из списка"
Этот компонент составляет основу модуля, но одним только использованием в свойствах его применение не ограничено. По сути, он является аналогом стандартного тега <select>, но с возможностью включения поиска или режима аякс, и с успехом может использоваться в качестве замены этого тега в публичной части сайта, например в фильтрах с большим количеством параметров, и при кастомизации различных форм. Шаблон компонента легко стилизуется под при помощи правки файла style.css внутри шаблона, а изменение логики его работы, недоступное через параметры компонента, осуществляется с помощью изменения javascript-кода, который также находится внутри шаблона. Кстати, если необходимо изменение логики интерфейса в свойствах привязки, или даже осуществление взаимосвязи между разными свойствами, то копирование и изменение шаблона компонента скорее всего поможет вам в этом. Источниками элементов списка для компонента, помимо источников данных, которые были описаны выше, могут также служить как массивы разной структуры, так и уже готовый сформированный html код тега <select> (подробнее об этом здесь: http://g-rain-design.ru/components/links/api/#component-links-edit).
Интеграция с другими модулями
Вскоре поддержка модуля будет внедрена в модуль Свойства-таблицы, что позволит сделать в нем тип колонки "Привязка", в т.ч. к элементам инфоблоков, что особенно просили реализовать пользователи этого модуля, а также в модуль Дополнительные настройки, который скорее всего скоро станет бесплатным. Если вы хотите использовать функционал модуля в вашем модуле или типовом сайте, обращайтесь через контакты, думаю, мы обязательно договоримся.
Страница модуля: http://g-rain-design.ru/components/links/
Описание api: http://g-rain-design.ru/components/links/api/
Пробный период работы модуля составляет 30 дней. Если вы хотите установить модуль в пробном режиме, используйте следующую ссылку:
http://ваш-сайт/bitrix/admin/update_system_partner.php?addmodule=grain.links
Итак, модуль называется "Универсальные свойства привязки", и позволяет создавать свойства привязки не только к разделам, элементам инфоблоков, блогам, форумам, опросам, валютам, а вообще к чему угодно. Как - я поясню далее.
[spoiler]
Создание связей между различными сущностями, будь то элементы и разделы инфоблоков, посты на форуме, пользователи и т.д. давно является неотъемлемой частью разработки любого интернет-проекта. Для многих сайтов достаточно стандартных средств организации таких связей, т.е. например, свойств привязки элементов инфоблоков к другим элементам, или пользователей к элементам, но очень часто возникает необходимость как привязки к нестандартным сущностям (например, веб-формам или валютам), так и просто небольшой модификации стандартных средств (например, нужна привязка только к элементам из определенного раздела инфоблока). Такая задача обычно решается либо разработкой собственных типов свойств, что является достаточно трудоемкой задачей, либо упрощением интерфейса, когда, например, пользователь сам должен заполнять идентификаторы каких-либо сущностей в стандартных свойствах типа "Строка", что является неудобным для пользователя и увеличивает количество ошибок заполнения контента. Данный модуль позволяет максимально упростить создание таких привязок, не требуя от программиста владения навыками создания и отладки собственных типов свойств, ему достаточно лишь создать источник данных, используя описание api модуля (если необходимого ему источника нет в стандартной поставке модуля).
Источники данных
Чтобы максимально упростить понимание процесса создания источников данных для модуля, структура файлов источника почти повторяет структуру файлов компонентов, которая известна даже начинающим битрикс-программистам (только гораздо проще):
- Файл .description.php - содержит название источника
- Файл .parameters.php - содержит параметры источника, его структура повторяет аналогичный файл для компонентов битрикс, и эти параметры будут выводится в настройках свойств (необязательный)
- Файл list.php - основной файл источника, содержит непосредственно код формирования списка элементов, запросы к базе данных при помощи api (при необходимости) и т.д.
(вы можете быстро скопировать любой источник и доработать его по желанию)
Пользовательские источники нужно размещать в папке /bitrix/php_interface/grain.links
Полное описание api модуля находится по адресу http://g-rain-design.ru/components/links/api/ , здесь я лишь объясню на примере как сделать простой собственный источник.
|
Стандартные источники данных
В поставку модуля входят следующие источники данных:
- элементы инфоблока (с возможностью выборки только элементов конкретного раздела)
- разделы инфоблока (с возможностью выборки только подразделов конкретного раздела)
- инфоблоки
- типы инфоблоков
- сайты
- коллекции медиабиблиотеки (с возможностью указания родительской коллекции)
- языки интерфейса
- группы пользователей (с возможностью исключения определенных групп)
- пользователи (с возможностью выбора групп)
- валюты
- службы доставки, платежные системы, склады (при наличии модуля интернет-магазина)
- группы блогов, блоги, сообщения блогов (при наличии модуля блогов)
- группы форумов, форумы, темы форумов (при наличии модуля форумов)
- веб-формы (при наличии модуля вебформ)
- группы опросов, опросы (при наличии модуля опросов)
- рассылки, выпуски рассылок (при наличии модуля рассылок)
- типы баннеров, рекламные контракты, баннеры (при наличии модуля рекламы)
- курсы, уроки (при наличии модуля обучения)
Возможны 4 типа логики выбора из списка: "аякс" (динамическая подгрузка элементов списка при наборе подстроки), "простой выбор из списка" (имитирует стандартное поле типа <select> ), "выбор из списка с возможностью поиска" (имитирует стандартное поле <select>, но с возможностью динамического поиска по подстроке, при отсутствии подстроки выводятся все элементы), и "только поиск" (динамический поиск по подстроке без возможности увидеть все элементы). Вы можете выбирать любой интерфейс в зависимости от прогнозируемого количества элементов в списке и других условий.
Тип интерфейса можно выбрать в настройках свойств.
Компонент "Выбор из списка"
Этот компонент составляет основу модуля, но одним только использованием в свойствах его применение не ограничено. По сути, он является аналогом стандартного тега <select>, но с возможностью включения поиска или режима аякс, и с успехом может использоваться в качестве замены этого тега в публичной части сайта, например в фильтрах с большим количеством параметров, и при кастомизации различных форм. Шаблон компонента легко стилизуется под при помощи правки файла style.css внутри шаблона, а изменение логики его работы, недоступное через параметры компонента, осуществляется с помощью изменения javascript-кода, который также находится внутри шаблона. Кстати, если необходимо изменение логики интерфейса в свойствах привязки, или даже осуществление взаимосвязи между разными свойствами, то копирование и изменение шаблона компонента скорее всего поможет вам в этом. Источниками элементов списка для компонента, помимо источников данных, которые были описаны выше, могут также служить как массивы разной структуры, так и уже готовый сформированный html код тега <select> (подробнее об этом здесь: http://g-rain-design.ru/components/links/api/#component-links-edit).
Интеграция с другими модулями
Вскоре поддержка модуля будет внедрена в модуль Свойства-таблицы, что позволит сделать в нем тип колонки "Привязка", в т.ч. к элементам инфоблоков, что особенно просили реализовать пользователи этого модуля, а также в модуль Дополнительные настройки, который скорее всего скоро станет бесплатным. Если вы хотите использовать функционал модуля в вашем модуле или типовом сайте, обращайтесь через контакты, думаю, мы обязательно договоримся.
Страница модуля: http://g-rain-design.ru/components/links/
Описание api: http://g-rain-design.ru/components/links/api/
Пробный период работы модуля составляет 30 дней. Если вы хотите установить модуль в пробном режиме, используйте следующую ссылку:
http://ваш-сайт/bitrix/admin/update_system_partner.php?addmodule=grain.links
04.12.201323:4304.12.2013 23:43:52