Оглавление
Joomla
Популярная CMS: разработка модулей, плагинов и компонентов, макеты и работа с базой данных.
1.Начало работы
- Знакомство с JoomlaЧто такое Joomla, для какой версии написан курс, как установить её на свой компьютер и включить режим отладки.
- Папки сайтаКак устроена папка сайта Joomla: часть для посетителей и часть администратора, где лежат расширения, настройки и таблицы базы.
- Основные понятияИз чего состоит сайт на Joomla: статьи, категории, меню, позиции модулей, компоненты, плагины и шаблоны — и как из них собирается страница.
- Расширения и файл описанияВиды расширений Joomla, правила имён, файл описания XML (манифест) и два способа установки: архивом и через поиск.
2.Модули
- Первый модульСоздание модуля Joomla с нуля: манифест, провайдер сервисов, диспетчер и макет. Установка модуля и вывод его в позиции шаблона.
- Помощник модуляКласс Helper в модуле Joomla: где он лежит, как получить его в диспетчере и как выбрать из базы последние статьи для вывода в макете.
- Параметры модуляНастройки модуля Joomla: как описать поля в манифесте, где администратор их заполняет и как прочитать значения в диспетчере.
- Макеты и переопределенияФайлы макетов в папке tmpl, второй макет модуля на выбор и переопределение макета в папке html шаблона без правки расширения.
- Стили и скриптыWeb Asset Manager в Joomla: куда класть файлы CSS и JS расширения, как подключить их в макете и описать в файле joomla.asset.json.
- Языковые файлыПереводы в расширении Joomla: файлы ini в папке language, ключи, вывод через Text::_, подстановка значений и перевод подписей в манифесте.
3.Плагины
- Первый плагинЧто такое события в Joomla и как написать плагин группы content: структура папки, манифест, провайдер, класс с SubscriberInterface и параметры.
- Группы плагинов и событияКакие бывают группы плагинов Joomla, какие события происходят при запросе, пример системного плагина и плагина группы user.
4.Компонент
- Компонент: структура и точка входаИз чего состоит компонент Joomla: папки для сайта и для панели, манифест, провайдер сервисов и установка через поиск.
- Контроллер, представление и макетПервая страница компонента Joomla: DisplayController, класс HtmlView и макет в папке tmpl. Как адрес запроса связан с именами классов.
- МоделиМодели компонента Joomla: таблица для записей, модель списка ListModel, модель одной записи ItemModel и вызов модели из представления.
- Запросы к базе данныхПостроитель запросов Joomla: как получить объект базы, собрать SELECT с условиями, безопасно привязать значения, прочитать результат и изменить данные.
- Список в панели управленияАдминистративная часть компонента Joomla: контроллер, модель и представление списка записей, панель инструментов и форма adminForm.
- Таблицы и сохранение данныхСохранение записей в компоненте Joomla: класс Table для строки таблицы, модель AdminModel, контроллер FormController и экран редактирования.
- ФормыФормы Joomla в файлах XML: типы полей, обязательные поля, правила проверки validate, фильтры filter и вывод полей в макете.
- Права доступаПрава в компоненте Joomla: действия в access.xml, экран настроек config.xml, проверка authorise в коде и уровни просмотра.
- Адреса и пункты менюСсылки на страницы компонента через Route::_, тип пункта меню в файле default.xml и что нужно для понятных адресов SEF.
5.Шаблон, API и консоль
- Шаблон сайтаОсновы шаблона Joomla: файлы templateDetails.xml и index.php, теги jdoc:include, позиции модулей, подключение стилей и дочерние шаблоны.
- Веб-сервисы APIAPI Joomla: встроенные адреса и токен доступа, плагин группы webservices с маршрутами и папка api компонента с контроллером и представлением.
- Консольные командыКонсоль Joomla: встроенные команды cli/joomla.php, своя команда в плагине группы console и запуск планировщика через cron.
6.Выпуск расширения
- Файлы SQL и скрипт установкиЧто выполняется при установке расширения Joomla: файлы SQL для создания, обновления и удаления таблиц и класс скрипта установки.
- Архив, пакет и сервер обновленийПодготовка расширения Joomla к распространению: структура архива ZIP, пакет из нескольких расширений и сервер обновлений.
- Размещение сайта и безопасностьПеренос сайта Joomla на сервер, рабочие настройки, права на папки и список проверок безопасности для сайта и собственных расширений.