Главная > AJAX, ExtJS Framework, Open Source, веб-обзоры > Пользовательские расширения для фреймворка ExtJS

Пользовательские расширения для фреймворка ExtJS

11 ноября 2007

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

Если ваш проект посвящён, например, графике, то вам может понадобится инструмент точного выбора цвета, и, хотя присутствующий в стандартной поставке компонент предоставляет базовый функционал, но пользователи, увидевшие Photoshop втайне мечтают о чем-то подобном. Раньше, вспоминая однажды беседу со вторым нашим соавтором, Иваном, о том, что все приложения могут уже сейчас мигрировать в онлайн, разве что за исключением Photoshopa, я был скептически настроен, но отслеживая недавние новости о скором выпуске онлайновой версии этого редактора, призадумался. Ну а пока пользователи ExtJS могут получить хоть бы один из функционалов - расширенный и мощный компонент выбора цвета - ColorPicker (автор Amon). Он позволяет как визуально указывать цвет, выбрав его мышью из полной цветовой палитры, так и вручную установив координаты цвета, причём, не только в стандартной схеме RGB, но и в HSV, а также сразу получить его шестнадцатеричное значение. Компонент есть как для 1.1.1, так и для версии 2.0 библиотеки ExtJS, а на странице автора можно прочитать детальное описание возможностей и процесс установки, а также сразу посмотреть его в действии. Компонент распространяется под лицензией LGPLv3

Следующий компонент реализует несколько вариантов шифрования, что может пригодится при разработке систем аутентификации и авторизации, ограничения доступа к различным модулям системы, работы с конфиденциальными данными и т.п. Хотя, по правде сказать, выбор алгоритмов для реализации несколько странный, более уместно смотрелись бы варианты хёшей и другие алгоритмы шифрования, но при необходимости, можно самому реализовать недостающие возможности, благо в сети есть алгоритмы на JavaScript для многих систем шифрования и криптографии. А наш компонент Crypto реализует алгоритмы AES, TEA и SHA-1, а на сайте компонента обнаружилась реализация ещё и Blowfish, о чем на портале ExtJS ничего не сказано. Не хватает ещё MD5, SHA-256 и различных вариантов DES и RSA для почти полного набора популярных алгоритмов. Распространяется под лицензией LGPL.

А если вам необходимо генерировать универсальные идентификаторы UUID на стороне клиента, то этот же автор (Jeff Howden) предлагает вам ещё один компонент - Ext.ux.UUID.

Для версии 1.1.1 библиотеки также есть несколько совершенно необходимых компонент для любой веб-разработки.

Если вам необходимо загружать файлы через форму на сервер, причём, файлов может быть достаточно много, то без компонента UploadForm вам просто не обойтись. Он расширяет функционал стандартной формы, добавляя возможность очереди загрузки с индикацией прогресса, возможность отмены загрузки каждого файла по отдельности и просто приятный интерфейс. Можно так же загружать файлы через Flash-объект, такой компонент называется SWFUpload. Вместе они покрывают все необходимые возможности для реализации удобной и простой загрузки любых файлов на сервер, что может быть необходимым при создании файловых менеджеров, галерей и аудио/видео сервисов, CMS и других сайтов, имеющих дело с пользовательскими файлами.

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

И ещё один подобный компонент обнаружился (на мой взгляд, более привлекательный в плане исполнения) - PasswordMeter (страница с исходниками и примером использования).

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

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

  1. Игорь
    28 апреля 2008 в 22:41 | #1

    Что то не одно из этих расширений не доступно для скачивания. Так же как регистрация http://extjs.com/user/register

Комментирование отключено.