Основы разработки компонентов для Joomla! CMS 1.5
Автор работы: Пользователь скрыл имя, 16 Ноября 2010 в 16:53
Описание работы
Курсовая работа
Файлы: 1 файл
Курсовая работа Колмаков Р.А..doc
— 506.00 Кб (Скачать файл)
Рисунок
1.5 – Различия в поддержке между открытыми
и закрытыми системами управления контентом
Современная
CMS система должна позволять, не прибегая
к дополнительному
1.7. Система управления содержимым Joomla CMS
Joomla (произносится джу́мла) — система управления содержимым, написанная на языке PHP, использующая в качестве хранилища базу данных MySQL. Является свободным программным обеспечением, распространяемым под лицензией GNU GPL. Название «Joomla» фонетически идентично слову «Jumla», которое в переводе с языка суахили означает «все вместе» или «единое целое», что отражает подход разработчиков и сообщества к развитию системы.
Joomla CMS включает в себя различные инструменты для изготовления веб-сайта. Важной особенностью системы является минимальный набор инструментов при начальной установке, который дополняется по мере необходимости. Это снижает загромождение административной панели ненужными элементами, а также снижает нагрузку на сервер и экономит место на хостинге.
Joomla CMS позволяет отображать интерфейс фронтальной и административной части на любом языке. Каталог расширений содержит множество языковых пакетов, которые устанавливаются штатными средствами администрирования. Доступны пакеты русского, украинского и ещё некоторых языков стран СНГ.
1.7.1. История возникновения Joomla CMS
Система управления содержимым Joomla! является ответвлением широко известной CMS Mambo. Команда независимых разработчиков отделилась от проекта Mambo по причине несогласия в экономической политике. 16 сентября 2005 года в свет вышла первая версия Joomla, являющаяся по сути переименованной Mambo 4.5.2.3 и включающая в себя исправления найденных на тот момент ошибок и уязвимостей.
В
настоящее время актуальна
К лету 2009 года по числу ежедневных скачиваний Joomla обогнала Wordpress и заняла первое место со значительным отрывом от других подобных систем.
В 2006 году Joomla заняла первое место в категории Best Linux/Open Source Project на выставке UK LinuxWorld 2006.
Так же стоит отметить награды Joomla в популярном издании Packt Publishing:
2006 г. - признана лучшей бесплатной системой управления сайтами;
2007 г. - признана лучшей бесплатной CMS основанной на PHP;
2008 г. - разделила 2-е место с CMS Made Simple в номинации лучшая бесплатная CMS основанная на PHP.
1.7.2. Базовые (стандартные) возможности
Благодаря стандартному функционалу система подходит как для небольшого, так и для крупного корпоративного сайта или информационного проекта. При необходимости, расширить стандартный функционал системы можно с помощью более чем 3000 созданных расширений. Стандартные возможности системы:
- Возможность создавать неограниченное количество страниц
- Четкая организация структуры сайта
- Для каждой динамической страницы можно создать свое описание и ключевые слова в целях повышения рейтинга в поисковых системах
- Начало и окончание публикации любых материалов можно запрограммировать по календарю
- Возможность ограничить доступ к определенным разделам сайта только для зарегистрированных пользователей
- Секции новостей, продукции или услуг легко редактируемы и управляемы
- Полностью настраиваемые схемы расположения элементов по 5 областям, что позволяет сделать оригинальный дизайн
- Опросы и голосования для эффективной обратной связи
- Различные компоненты - такие как последние новости, счетчик посещений, подробная статистика посещений, гостевая книга, форум и т.д.
- Возможность создания не одной, а нескольких форм обратной связи для каждого контакта.
- Генератор показа случайной новости.
- Компонент приёма от удалённых авторов новостей, статей и ссылок.
- Иерархия объектов - количество секций, разделов, подразделов и страниц, зависит от вашего желания.
- Менеджер рассылки новостей.
- Менеджер архива для старых материалов сайта
- Возможность распечатать или отправить другу на e-mail любую статью с сайта.
- Выбор из 3 визуальных редакторов, что упрощает редактирование материалов до уровня редактирования текста в программе Word.
- Предварительный просмотр перед окончательным размещением.
- Возможность легкой смены дизайна.
- Экономное использование места на сервере за счет использование базы данных MYSQL.
- Возможность использования адресов страниц адаптированных для лучшей индексации всеми поисковыми системами.
1.7.3. Технические требования
Минимальные технические требования Joomla CMS к хостингу:
- Apache-вepcии 1.13 (или выше, желательно 2.x);
- РНР-версии 4.3.1 (или выше, желательно 5.x);
- MySQL-версии 3.23 (или выше, желательно 5.x).
Что же касается места на диске, то для установки системы понадобится как минимум 50 Мб, но лучше использовать хостинг с местом от 100 Мб — все зависит от того, какая информация планируется к размещению на сайте.
1.7.4. Интерфейс прикладного программирования Joomla
Интерфейс прикладного программирования (англ. Application Programming Interface, API) — набор готовых классов, функций, структур и констант, предоставляемых системой для использования во внешних программных продуктах.
В Joomla 1.5 разработчиками реализован собственный API, работающий по принципу Model-View-Controller.
Model-View-Controller
(в дальнейшем - MVC) является схемой-паттерном
для создания гибких и легко
расширяемых приложений с
В компоненте, построенном с помощью технологии MVC, используются три основные части:
Модель (Model) - это часть компонента, которая оперирует данными приложения. В общем случае модель содержит методы добавления, удаления, и обновления информации. Таким образом, если программа сохраняет данные в файлы, а нужно сохранять их в БД, то для этого нужно изменить только модель, не трогая остальной код.
Вид (View) – это часть компонента, которая берет данные из модели и выводит их в пользовательский интерфейс. Для простых веб-приложений, Вид генерирует html-страницу, с входными данными. Т.е. вид берет данные из модели, и вносит их в шаблон, который в конечном итоге и видит пользователь. Вид не изменяет данные, он только отображает их из модели.
Контроллер
(Controller) - отвечает за действия пользователя.
По сути, действие пользователя - это запрос
страницы. Контроллер в зависимости от
запроса, вызывает модель, для управления
данными, и управляет переходом Модели
на Вид. Таким образом, контроллер не отображает
данные, а лишь вызывает модель, которая
изменяет данные, а затем передает модель
в вид, который отображается на экране.
Схема принципа работы технологии MVC представлена
на рисунке 1.6.
Рис.
1.6 – Принцип работы технологии Model-View-Controller
Такое разделение удобно для групповой работы над проектом, дисциплинирует и дает отличное качество получаемого кода.
MVC
позволяет избежать
В Joomla 1.5, технология MVC использует три класса: JModel , JView и JController .
Глава II. Разработка компонента для Joomla 1.5
В этой главе будут рассмотрены основные принципы проектирования и реализации компонентов для Joomla CMS версии 1.5 на примере разработки простого компонента “Hello”, использующего основные методы и функции внутреннего интерфейса программирования системы.
2.1. Общая структура компонента
Каждый компонент Joomla, реализованный по технологии MVC, имеет структуру расположения файлов, представленную на рисунке 2.1.
Рис. 2.1
– Начальная структура компонента
Joomla 1.5
Директория «admin» содержит файлы по настройке и управлению компонента из административной панели Joomla CMS.
Директория «site» содержит файлы для лицевой части компонента, видимой посетителями сайта. Рассмотрим наиболее важные файлы этой директории:
- /site/{componentname}.php
Точка
входа (или точка отправления) для лицевой
части компонента. Является обязательным
исполнительным файлом.
- /site/controller.php
Является основным управлением компонента, либо подключает дополнительные файлы, в зависимости от переданных внешних данных.
- /site/views/{viewname}/view.
html.php
Обработчик полученных данных. После обработки передает данные для вывода на сайте.
- /site/views/{viewname}/tmpl
Шаблон вывода полученных данных от обработчика.
- /site/models
Директория содержит модели, используемые компонентов в процессе работы.
- /site/controllers
Директория
содержит расширяющие контроллеры для
основного, либо набор необходимых компоненту
контроллеров.
Файловая структура директории «admin» в точности повторяет структуру лицевой части компонента, описанной выше. Необходимо учитывать, что директории «site» и «admin» не пересекаются в процессе работы компоненты. По большому счету, эти две директории можно рассматривать как два различных подкомпонента одного большого компонента.
Joomla CMS обрабатывает компонент в следующей последовательности:
- Joomla интерпретирует полученные значения в URL.
- Ищет составляющую таблицу компонента в базе данных.
- Затем определяет директорию компонента.
- В этой директории запускает исполнительный файл компонента. В данном случае – это файл hello.php.
- Исполняет этот файл.
2.2.
Создание точки входа компонента
(файл hello.php)
Joomla всегда обрабатывает ссылку в корневом файле index.php для страниц лицевой части сайта или administrator/index.php для страниц административного интерфейса системы. Функция обработки URL загружает требуемый компонент, основанный на значении 'option' в URL (используется метод передачи данных GET) или переданных данных методом POST.
Для разрабатываемого компонента, URL будет выглядеть следующим образом:
index.php? option=com_hello&view=hello
Эта
ссылка запускает выполнение файла, являющего
точкой входа в компонент: components/com_hello/hello.
Ниже приведен листинг файла hello.php:
<?php
// Защита от прямого обращения к скрипту
defined( '_JEXEC' ) or die( 'Restricted access' );
// Подключение файла контроллера.
require_once(
JPATH_COMPONENT.DS.'
// Проверка на дополнительные контроллеры
if($controller = JRequest::getVar( 'controller' )) {
require_once( JPATH_COMPONENT.DS.'
}
// Создание класса контроллера компонента