Joomla 1.5 глазами разработчика

Joomla является достаточно известным и взрослым проектом, мало найдется людей, кто никогда не слушал об этой CMS. Многие хабравчане работали и работают с ней. Не так давно (чуть больше года назад) все сильно поменялось, вышла стабильная версия 1.5. Это событие означало огромный поворот в развитии проекта в правильном направлении, переход на модель MVC, создание собственно фреймворка, лечении «детских» болезней ветки 1.0.
Мне, как человеку привыкшему к первой ветке, изначально было сложно заставить себя перейти на новый уровень.
Но теперь, я хочу упростить этот переход для других пользователей и открываю цикл статей по знакомству с внутренним устройством Joomla 1.5
Установка
Установка полуторной версии Joomla мало чем отличается от установки первой версии, однако есть два момента,
теперь инсталлятор не проверяет доступность папок на запись, однако теперь можно включить режим FTP в админке, мне не кажется это хорошей идеей, поэтому дальше я приведу список папок, которым неплохо бы выставить права на запись:
- administrators/backups
- administrators/cache
- administrators/components
- administrators/images
- administrators/language
- administrators/modules
- administrators/templates
- cache
- components
- images
- images/stories
- language
- logs
- media
- modules
- plugins
- plugins/autentification
- plugins/content
- plugins/editors
- plugins/search
- plugins/tmp
- plugins/user
- templates
- tmp
После установки, вам также предложат вручную удалить папку installation
Претерпел изменения и файл конфигурации, теперь конфигурационные переменные хранятся не в массиве а в классе JConfig.
Из новых параметров следует отметить только параметр legacy, который позволяет включить режим совместимости с 1.0 веткой.
Также в параметрах появилось возможность включить SSL.
Структура директорий
В этом раделе я упомяну наиболее важные директории CMS и их предназначение.
- administrator Директория традиционно отвечающая за back-end, т.е. за админку сайта. В ней есть также важные поддиректории:
- components сюда сохраняется вся back-end часть компонентов, т.е. та их часть что предназначена для работы администратора.
- includes здесь хранятся файлы реализующие Application Layer в приложении. (Об этом поговорим пожже)
- language в этой папке хранятся локализации back-end'а
- templates директория с шаблонами back-end'а
- modules папка с администраторскими модулями, такими как toolbar, или панель быстрого доступа.
- components в этой директории хранятся файлы всех установленных в системе компонентов. Каждый компонент обязан иметь определенный набор файлов предписанный API и выбранной моделью, это обсудим чуть ниже.
- images папка изображений joomla, имеет важную подпапку stories в которую сохраняются пользовательские изображения.
- includes — папка с файлами реализующими Application Layer, однако множество файлов в этой директории оставлены для совместимости со старой версией CMS
- language это лишь локализации front-end'а
- libraries содержимое этой директории реализует Framework Layer CMS, в ней хранится как сам фреймворк joomla, так и сторонние библиотеки необходимые для работы.
- modules — это модули front-end'а
- plugins в предыдущей версии CMS, они назывались Мамботы (mambots), с точки зрения проектирования, плагины — это обработчики событий, они вызываются компонентами в определенное время генерации контента, например перед его размещением.
Самым простым примером может послужить плагин безопасной вставки email'а, перед размещением контента, компонент вызывает этот плагин, который находит все вхождения emailов на странице и шифрует их, делая недоступными для спамботов.
- templates — пользовательские шаблоны, шаблоны joomla очень сильны в своей реализации, при этом они остаются достаточно просты для изготовления даже не специалистом. Особенно это стало удобно именно в новой версии.
- xmlrpc — в этой папке собраны файлы реализующие доступ к сайту по протоколу XML-RPC
Заключение
На этом первую статью я хочу закончить, если найдутся интересующиеся то в следующей статье, мы рассмотрим внутреннее устройство движка и структуру БД. После этого можно было бы обсудить процесс создание шаблона, модуля, плагина, компонента.
_________
Текст подготовлен в ХабраРедакторе



комментарии (108)