Проба пера или первый мой модуль по Drupal 7

ccfcollapse

Вот и вышел долгожданный релиз Drupal 7. В целом продукт мне понравился, и для того, что бы получше изучить новое АПИ я решил постепенно перевести написанные мной модули под новую платформу. Первой ласточкой стал один из элементов модуля ccfilter – collapse text. Но, что бы было поинтересней, я не просто перевел его под D7, но и несколько расширил функциональность.

Новый модуль ccfcollpase позволяет встраивать при помощи специальных тэгов (аля BBCode) в материалы сворачиваемый/разворачиваемый текст.
По сравнению с версией для D6, данный фильтр позволяет вставлять вложенные элементы, кроме того предусмотрен блок врапера, который позволяет разворачивать/сворачивать все элементы находящиеся внутри данного врапера. Также можно установить с помощью дополнительных атрибутов индивидуально для каждого слайдера некоторые параметры поведения, как то скорость сворачивания/разворачивания и метод сворачивания/разворачивания (пока доступны три метода slide, fade, slidefade).

В дальнейшем данный фильтр будет использован как один из составляющих элементов ccfilter под D7.

Примечание: далее в тексте примеров , что бы не срабатывал фильтр я заменил английскую букву c на русскую с.

Общий синтаксис:

/**
 * Структура обработки фильтра:
 * в треугольные скобки помещены не обязательные синтаксические конструкции
 * одинарные кавычки в параметрах обязательны, порядок параметров произвольный
 *
 *******************************************************************************
 *  <[сollapse-wrapper <hide|show> <title-show='Expand All' title-hide='Collapse all'>]>
 *  [сollapse <attributes>]
 *   <материал внутри слайдера>
 *     <[сollapse <attributes>]>
 *       <материал внутри вложенного слайдера>
 *     <[/сollapse]>
 *   <продолжение материала внутри слайдера>
 *  [/сollapse]
 *  <[/сollapse-wrapper]>
 *******************************************************************************
 * опциональные атрибуты задают режим работы слайдера
 * если аттрибуты не установлены, то беруться предустановленные параметы в настройках фильтра
 *   attributes =
 *   <hide|collapsed|show|expanded>  - определяют как будет выглядить слайдер
 *   при загрузки страницы hide или collapsed - свернутый слайдер,
 *   show или expanded - развернутый слайдер
 *   <title-show='Expand'>  - определяет префикс заголовка для разворачивания слайдера
 *   <title-hide='Collapse'>   - определяет префикс заголовка для сворачивания слайдера
 *   <title=''>  определяет постфикс заголовка слайдера
 *   например для комбинации title-show='Показать' title-hide='Скрыть' title='материал'
 *   для развернутого слайдера будет сформирован заголовок - Показать материал
 *   и при сворачивании он будет меняться на - Скрыть материал
 *   <speed-show='slow|fast'> <speed-hide='slow|fast'> - скорость разворачивания и
 *   соответственно сворачивания слайдера, кроме значений slow и fast можно указать
 *   число миллисекунд
 *   <method-show='Slide|Fade|SlideFade'>  - метод анимации при разворачивании
 *   <method-hide='Slide|Fade|SlideFade'>  - метод анимации при сворачивании
 *
 *    [сollapse-wrapper <show|hide> <title-show='Expand All' title-hide='Collapse all'>]
 *    ......-
 *    [/сollapse-wrapper]
 *     определяет контейнер для нескольких слайдеров, и добавляет ссылку c возможностью
 *     развернуть или свернуть все слайдеры внутри контейнера
 *     атрибут show hide  - определяет начальное значение обработчика враппера
 */

Если атрибуты не проставлены (а все они необязательны), то их значения берутся из предопределенных значений определенных в настройке фильтра.
В атрибутах имеющих значение – обязательны одинарные кавычки.
Порядок и наличие атрибутов произвольный, если какой либо из атрибутов не определен, то его значение берется из предопределенного в настройках фильтра .
Значения по умолчанию:
title-show=t(’show’)
title-hide=t(’hide’)
title=”
speed-show=’fast’
speed-hide=’fast’
method-show=’slide’
method-hide=’slide’

Допускаются вложенные сполеры (т.е. внутри сполера вы можете расположить еще дополнительные сполеры), уровень вложенности технически не ограничен и определяется здравым смыслом и ограничениями дизайна (верстки) сайта.

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

Так как данный сайт (имеется ввиду мой домашний сайт) все еще на D6, для экспериментов и тестирования я создал новый сайтик www.printarts.ru, примеры работы фильтра можно посмотреть на страничке http://www.printarts.ru/article/proverka-raboty-ccfcollapse-filtra

Жду отзывов и багрепортов тестирования данного модуля.

Оригинал материала на сайте www.hotel-prog.ru

Прикрепленный файл Размер
ccfcollapse.zip 5.7 кб

Источник: http://drupal.ru/node/56981

Добавить комментарий к записи "Проба пера или первый мой модуль по Drupal 7"

Чтобы комментировать, необходимо войти в систему.

© 2009 Обзор CMS