Какие же сюрпризы открывает перед нами Joomla 1.5 по сравнению со своей предшественницей?
Самый главный сюрприз - это создание полноценного Фреймворка. Хотя для многих это пустой звук, так что поясню немного. Вообще Фреймворк - это платформа, имеющая свой набор библиотек. Фреймворк можно сравнить с полноценным языком программирования, так как программистам можно забыть многие привычные функции php и пользоваться только готовыми объектами Joomla (например, объект базы данных, объект файловой системы и т.д.).
Фактически Фреймворк Joomla дает нам язык более высшего уровня, чем сам php.
Также следует отметить, что Joomla содержит колоссальное количество готовых библиотек.
Самое интересное, как мне кажется, это:
Библиотека OpenId. По-сути просто гениальная библиотека. Например, вы зарегистрированы на каком-нибудь сайте, где есть OpenId-сервер. Из российских самые популярные яндекс, livejournal, liveinternet, мой круг, и поговаривают рамблер (его не проверял). То на свой Joomla сайт вы сможете зайти под тем же логином. Ожидаем, что скоро и мэйл будет поддерживать эту технологию. Хотя на вопрос к гендиректору мэйла "собираетесь ли вы делать поддержку openid?" получен впечатляющий ответ "а что это?":)
Библиотека xml-rpk. Тоже хорошая библиотечка для межсайтового "общения". Например, с помощью нее делается кросспостинг, что очень важно для блогосервисов.
Библиотека mootools. Довольно популярная javascript библиотека для создания различных спецэффектов. В админке например используется для создания выдвижных меню. Также mootools частично позволяет использовать ajax.
Из новшеств охото подчернкуть:
utf8. К сожалению пока авторы joomla никак не внедрят ни одной библиотеки ajax (mootools я не считаю за полноценную ajax библиотеку). Радует, что Joomla теперь работает с кодировкой utf8, и будет меньше проблем с кодировками. Столько компонентов приходилось править из-за того, что в первой Joomla была кодировка win1251, а ajax работал в utf8. Теперь будет все ок!
Улучшенные sef-ссылки. Как видите на этом сайте, у меню очень красивые ссылки, типа lessons.html, articles.html и т.д. Тажке теперь пользователь может выключать rewrite mode, правда ссылки в этом случае будут выглядеть ужасно..
ftp-layer. На многих хостингах по-умолчанию включен режим safemode, из-за которого в первой joomla не устанавливались компоненты. Тепер, чтобы не просить лишний раз хостера выключить safemode, можно прописать движку доступ для работы с файлами по frp.
Конечному пользователю конечно без разницы, а вот программисту надо знать, что компоненты Joomla теперь пишутся по принципу MVC (Model-View-Controller).
Давайте разберемся, что это и с чем едят. Поскольку пишу я для программистов, то объяснять буду не на зайцах, а на программах.
Model (модель) - некий класс, который работает с данными. Например, модель компонента com_content умеет загружать статьи из БД, сохранять их, обрабатывать и т.д.
VIEW (поскольку стандарта в переводах нет, то я предпочитаю писать "Вид". Хотя можете встретить такой перевод как "Представление") - это класс получает данные из модели, и вставляет их в шаблон (layout).
Например, тот же com_content, берет из модели статьи, и выводит их в нужном шаблоне.
Controller (контроллер)- это класс, служащий обработчиком задач. Вы видели, что Joomla получает в каждом компоненте в зависимости от действий пользователя задачу (task). Например, сохранить, удалить и т.д. Так вот, контроллер, получив задачу, выбирает нужную нам в данный момент Модель и Вид.
В каждом компоненте может быть множество файлов Контроллеров, Моделей и Видов.
Многие скажут "нафига это нужно", и только, начав писать компоненты по-этому стандарту, поймут насколько это удобно.
Например, нам не нравится, как компонент выводит статьи на сайт. Сразу лезем в папку view, находим нужный нам шаблон и просто редактируем привычный html-код.
А если нам, например, нужно добавить дополнительное поле "заметки" в компонент статей, то исправляем только модель, прописываем его обработку, и радуемся простоте процесса:)
Есть надежды, что благодаря MVC станет меньше дырявых и корявых компонентов, и думаю, эти надежды не напрасны. Подождем увидим;)
И в конце дам небольшое напутствие разработчикам.
- Если делаете компонент для массового использования, то в шаблонах вывода не используйте теги html для форматирования текста. Про них вообще давно надо забыть! Лучше подключите к компоненту свой файл стилей, чем заставлять простого пользователя копаться в ваших кодах и искать заветную строчку, чтобы убрать, например, жирный шрифт.
- Не вставляйте меню по управлению вашим компонентом в шаблон. Для этого есть компонент com_menu. И пусть пользователь сам решает, как ему выводить это меню. А если все-таки вставили меню в компонент, то позвольте хотя бы выключать его в настройках.
Статья будет дописываться по мере накопления моих познаний.





