Чтение онлайн

на главную - закладки

Жанры

Разрботка расширений для CMS Joomla
Шрифт:

MOD_MYQUESTIONS_XML_DESCRIPTION="Выводит вопросы из системы Вопрос - ответ" MOD_MYQUESTIONS_RANDOMIZE_LABEL="Случайный вопрос" MOD_MYQUESTIONS_RANDOMIZE_LABEL_DESC="Выводить один случайный вопрос?" MOD_MYQUESTIONS_ITEMS_LABEL="Количество вопросов"; MOD_MYQUESTIONS_ITEMS_LABEL_DESC="Сколько вопросов выводить?" MOD_MYQUESTIONS_MAXLEN_LABEL="Длина вопроса" MOD_MYQUESTIONS_MAXLEN_LABEL_DESC="Сколько первых символов вопроса отображать?" MOD_MYQUESTIONS_AUTHOR_LABEL="Автор вопроса" MOD_MYQUESTIONS_AUTHOR_LABEL_DESC="Выводить имя автора?" MOD_MYQUESTIONS_DATE_LABEL="Дата вопроса" MOD_MYQUESTIONS_DATE_LABEL_DESC="Выводить дату написания вопроса?"

В панели управления перейдите в " Расширения" - " Менеджер модулей". Выберите из списка модуль " Новые вопросы", и в правой части открывшейся страницы будет отображена группа элементов формы для установки параметров модуля (рис. 8.4).

Рис. 8.4. Установка параметров модуля

Упаковка модуля

Для упаковки модуля добавьте в файл /modules/mod_myquestions/mod_myquestions.xmlвыделенный код:

(есть

увеличенное изображение)

Создайте в папке /modules/mod_myquestionsпапку language, в ней - папку ru-RU. Скопируйте в нее файл ru-RU.mod_myquestions.iniиз папки language/ru-RU. Создайте файл /modules/mod_myquestions/language/ru-RU/ru-RU.mod_myquestions.sys.ini:

MOD_MYQUESTIONS="Новые вопросы" MOD_MYQUESTIONS_XML_DESCRIPTION="Выводит вопросы из системы Вопрос - ответ"

Создайте из содержимого папки /modules/mod_myquestionsархив mod_myquestions.zip. Это и есть установочный пакет для модуля. Обратите внимание, что в архиве должно находиться именно содержимое папки mod_myquestions, а не сама эта папка.

Ключевые термины

Манифест - файл XML, содержащий метаданные о расширении, данные для установки и/или описание его настроек.

Краткие итоги

Для каждого расширения Joomla может существовать файл-манифест, содержащий метаданные о расширении, данные для установки и/или описание его настроек. Манифест должен называться <имя расширения>.xmlи находиться в корневой директории установочного пакета.

Настройки расширения описаны для модулей непосредственно в манифесте, а для компонентов - в отдельном файле config.xmlв корневой директории бэкенда компонента.

Установочные пакеты для модуля и для компонента представляют собой ZIP-архивы определенной структуры.

Для компонента установочный пакет включает манифест и папки adminи site, содержащие файлы и папки бэкенда и фронтенда соответственно и, возможно, некоторые дополнительные файлы и папки, например, SQL-скрипты.

Для модуля установочный пакет просто включает все его папки и файлы.

Вопросы

Какие данные содержит манифест расширения Joomla?

Где описаны настройки модулей и компонентов?

Какова структура установочного пакет для модуля и для компонента?

Упражнения

Адаптируйте код из раздела " Практика" для своего варианта (см. список вариантов в дополнительных материалах).

Заключение

В рамках курса были рассмотрены основы программирования под CMS Joomla. Были предложены для изучения такие темы, как архитектура Joomla, работа с базой данных, генерация элементов HTML, организация иерархии пунктов меню, создание и отправка электронных писем, генерация SEF-ссылок, основы реализации архитектуры MVC с помощью Joomla, разработка простых модулей, организация постраничного вывода списков, управление навигационной цепочкой, создание манифестов расширений и установочных пакетов. Изучен ряд классов фреймворка Joomla. Таким образом, успешное освоение материалов данного курса достаточно для разработки небольших компонентов и модулей для Joomla.

Общий глоссарий

JAdministrator– приложение, управляющее функциями для администрирования Joomla. JApplication– класс, позволяющий работать с очередью сообщений, осуществлять перенаправление браузера, получать параметры конфигурации сайта, определять тип запущенного приложения Joomla. JController– абстрактный класс для реализации контроллеров. JDatabase– абстрактный класс, предоставляющий доступ к соединению с базой данных, создающемуся при инициализации приложения Joomla. JDatabaseQuery– класс, методы которого совпадают с ключевыми словами языка SQL и позволяют упростить создание сложных SQL-запросов. JDate– класс для работы с датами. JDocument– класс для работы с документом. JEditor– класс для работы с WYSIWYG-редактором. JError– класс для работы с ошибками. JFactory– класс Joomla, реализующий паттерн "фабрика" и позволяющий получить доступ к глобальным объектам фреймворка. JHTML– класс для вывода элементов XHTML. JHTMLBehavior– поддерживающий класс, который позволяет вывести календарь, дерево элементов, файловый загрузчик и некоторые другие элементы управления. JHTMLEmail– поддерживающий класс, содержащий метод для скрытия адреса электронной почты в целях его защиты от спам-ботов. JHTMLForm– поддерживающий класс, содержащий метод, который возвращает код скрытого поля формы для уменьшения риска CSRF-атак. JHTMLGrid– поддерживающий класс, позволяющий вывести в таблице в панели управления такие элементы, как чекбокс, пиктограмма для переключения состояния "опубликовано"/"не опубликовано", отобразить заголовок столбца как ссылки для сортировки по этому столбцу и др. JHTMLImage– поддерживающий класс, содержащий методы для поиска изображения в фронтенде и бэкенде. JHTMLList– поддерживающий класс для создания списков некоторых конкретных значений. JHTMLSelect– поддерживающий класс для генерации кода списков. JInstallation– приложение, которое запускается при установке Joomla. JMail– класс для создания и отправки электронных писем. JMailHelper– класс для очистки данных перед добавлением к электронному письму и проверки, является ли заданная строка корректным адресом электронной почты. JModel– абстрактный класс для реализации моделей. JPagination– класс для вывода элементов формы для разбивки на страницы списков элементов. JPathway– класс для управления навигационной цепочкой. JRequest– класс Joomla, использующийся для работы с переменными HTTP-запроса. JRoute– класс для создания SEF-ссылок. JSite– приложение, отвечающее за компоновку и отображение фронтенда. JTable– класс, реализующий паттерн Active Record и использующийся для управления таблицами базы данных. JToolBarHelper– класс Joomla, содержащий методы, которые генерируют HTML-код для построения кнопок панелей инструментов. JURI– класс для работы с URI. JUser– класс для работы с данными о пользователе. JView– абстрактный класс для реализации представлений. XML-RPC– приложение, позволяющее администрировать сайт Joomla удаленно. Библиотека– файл, который требуется для работы фреймворка или сторонних

расширений. Бэкенд– система администрирования сайта. Документ– буфер, использующийся для хранения содержимого веб-страницы, которая будет показана пользователю после выполнения запроса. Иерархия пунктов меню– дерево, состоящее из пунктов меню и организованное с помощью вложенных множеств. Ключ– эквивалент текста, подлежащего переводу. Компонент– основной тип расширений Joomla, вызов которого происходит при каждом обращении к Joomla. Манифест– файл XML, содержащий метаданные о расширении, данные для установки и/или описание его настроек. Модуль– расширение Joomla, использующееся для отображения небольших фрагментов контента, обычно в левой или правой колонке или верхней или нижней областях страницы. Основной метод класса JHTML– метод JHTML::_, который вызывает метод, определяющийся его первым параметром, и передает ему свои остальные параметры. Очередь сообщений– массив строк, которые будут выведены на экран при следующей загрузке какой-либо страницы. Перевод– строка, содержащая перевод текста, соответствующего заданному ключу, на какой-либо язык. Плагин– расширение Joomla, позволяющее зарегистрировать функции и классы для обработки каких-либо событий, вызванных Joomla, например, поиск по сайту. Поддерживающие классы– классы для вывода элементов XHTML и поведений Javascript. Префикс таблиц базы данных– строка, которая присоединяется к названию каждой таблицы Joomla в базе данных. Приложение– глобальный объект, использующийся для обработки запросов. Реальный префикс– то конкретное сочетание символов, которое используется в названиях таблиц базы данных. Регистрация задачи– сопоставление ее какому-либо методу класса, производного от JController. Связывание– процесс присвоения каждому полю производного от JTable класса значения элемента массива переменных запроса, так что ключ элемента совпадает с названием поля. Символический префикссочетание "#__" (решетка и два знака подчеркивания), которое используется в запросах вместо реального префикса. Уровень приложения– часть архитектуры Joomla, которая состоит из приложений, расширяющих абстрактный класс JApplication. Уровень расширений– часть архитектуры Joomla, которая состоит из расширений фреймворка Joomla и приложений. Уровень фреймворка– часть архитектуры Joomla, которая обеспечивает ее базовую функциональность с помощью набора библиотек и плагинов и собственно ядра Joomla. Фреймворк Joomla ("ядро")– набор классов, обеспечивающих базовую функциональность Joomla (JDatabase, JUser, JForm, JEditor и т.д.). Фронтенд– часть сайта, доступная пользователю. Функция генерации SEF-ссылок– функция, которая принимает массив элементов HTTP-запроса и возвращает массив сегментов SEF-ссылки. Функция декодирования SEF-ссылок– функция, которая из массива сегментов SEF-ссылки создает массив переменных HTTP-запроса. Шаблон– расширение Joomla, отвечающее за внешний вид сайта. Шаблон SEF-ссылок– последовательность сегментов. Языковый файл– расширение Joomla, позволяющее представить ее контент на нескольких языках.

Список сокращений

CCK Content Construction Kit Конструктор контента CMS Content Management System Система управления контентом MVC Model - View - Controller Архитектура "Модель - Представление - Контроллер" SEF Search Engine Friendly Ссылка, удобная для восприятия поисковыми системами

Варианты заданий для лабораторных работ

Варианты заданий для лабораторных работ

1. Интернет-магазинДля товара храните в базе данных его код, название, цену, описание и фотографию (можно хранить название файла с фотографией, а сами файлы помещать в какую-нибудь папку). Пользователь может заказать товар - для этого он нажимает на кнопку " Заказать" и вводит свой адрес. Для каждого заказа храните в базе данных его дату, адрес покупателя и код товара. Должна быть также возможность добавлять и удалять товары, а также просматривать список товаров, страницу с конкретным товаром и список заказов. При удалении товара заодно удаляйте с диска файл с изображением. Формы: добавление товара, заказ товара. 2. Фотогалерея с категориямиДля фотографии храните в базе данных его код, название соответствующего файла, название фотографии, описание фотографии, место съемки, размер файла, код категории. Можно хранить в базе данных только название файла с фотографией, а сами файлы помещать в какую-нибудь папку. Для каждой категории храните в базе данных ее код и название. Обеспечьте возможность добавления и удаления фотографий и категорий, просмотра списка всех категорий, списка всех фотографий в конкретной категории, просмотра одной фотографии. При удалении записи о фотографии из базы данных заодно удаляйте с диска файл с фотографией. Формы: добавление фотографии, добавление категории. 3. Архив mp3 с категориямиДля аудиофайла храните в базе данных его код, название файла, название песни, имя исполнителя, длительность звучания песни, размер файла, код категории. Сам файл храните в какой-нибудь папке на диске. Обеспечьте возможность просмотра списка категорий, списка песен в конкретной категории, просмотра определенной песни (то есть должна быть страница, на которой выводятся все данные об аудиофайле и можно прослушать песню). Должна быть также возможность добавлять песни и удалять их, а также добавлять и удалять категории. Для каждой категории храните в базе данных ее код и название. При удалении записи об аудиофайле из базы данных заодно удаляйте с диска сам файл. Формы: добавление песни, добавление категории. 4. Видеогалерея с категориямиДля видеофайла храните в базе данных его код, название файла, название видеоролика, описание видеоролика, длительность видеоролика, размер файла, код категории. Сам файл храните в какой-нибудь папке на диске. Обеспечьте возможность просмотра списка категорий, списка всех видеофайлов в конкретной категории, просмотра определенного файла (то есть должна быть страница, на которой выводятся все данные о видеофайле и можно посмотреть это видео). Должна быть также возможность добавлять файлы, просматривать их список и удалять их, а также добавлять и удалять категории. Для каждой категории храните в базе данных ее код и название.

При удалении записи о видеофайле из базы данных заодно удаляйте с диска сам файл. Формы: добавление видеоролика, добавление категории. 5. Гостевая книгаДля каждой записи (сообщения) вашей гостевой книги храните в базе данных ее код, имя автора записи, e-mail автора записи, ICQ автора записи, дату добавления записи, текст записи. Для каждого ответа на запись храните его код, текст и код записи, к которой относится этот ответ. Должна быть страница, на которой выводятся все сообщения. Обеспечьте возможность просмотра одного сообщения со всеми ответами на него, добавления сообщения, удаления сообщения, ответа на сообщение. Формы: добавление сообщения, добавление ответа на сообщение.

Поделиться:
Популярные книги

Здравствуй, 1985-й

Иванов Дмитрий
2. Девяностые
Фантастика:
альтернативная история
5.25
рейтинг книги
Здравствуй, 1985-й

Идеальный мир для Лекаря 16

Сапфир Олег
16. Лекарь
Фантастика:
боевая фантастика
юмористическая фантастика
аниме
5.00
рейтинг книги
Идеальный мир для Лекаря 16

Кодекс Охотника. Книга VII

Винокуров Юрий
7. Кодекс Охотника
Фантастика:
фэнтези
попаданцы
аниме
4.75
рейтинг книги
Кодекс Охотника. Книга VII

Назад в СССР: 1984

Гаусс Максим
1. Спасти ЧАЭС
Фантастика:
попаданцы
альтернативная история
4.80
рейтинг книги
Назад в СССР: 1984

Как я строил магическую империю

Зубов Константин
1. Как я строил магическую империю
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Как я строил магическую империю

Дядя самых честных правил 8

Горбов Александр Михайлович
8. Дядя самых честных правил
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Дядя самых честных правил 8

Попаданка в академии драконов 4

Свадьбина Любовь
4. Попаданка в академии драконов
Любовные романы:
любовно-фантастические романы
7.47
рейтинг книги
Попаданка в академии драконов 4

Стеллар. Трибут

Прокофьев Роман Юрьевич
2. Стеллар
Фантастика:
боевая фантастика
рпг
8.75
рейтинг книги
Стеллар. Трибут

6 Секретов мисс Недотроги

Суббота Светлана
2. Мисс Недотрога
Любовные романы:
любовно-фантастические романы
эро литература
7.34
рейтинг книги
6 Секретов мисс Недотроги

Лорд Системы 11

Токсик Саша
11. Лорд Системы
Фантастика:
фэнтези
попаданцы
рпг
5.00
рейтинг книги
Лорд Системы 11

Золотая осень 1977

Арх Максим
3. Регрессор в СССР
Фантастика:
альтернативная история
7.36
рейтинг книги
Золотая осень 1977

Я не князь. Книга XIII

Дрейк Сириус
13. Дорогой барон!
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Я не князь. Книга XIII

Моя (не) на одну ночь. Бесконтрактная любовь

Тоцка Тала
4. Шикарные Аверины
Любовные романы:
современные любовные романы
7.70
рейтинг книги
Моя (не) на одну ночь. Бесконтрактная любовь

Раб и солдат

Greko
1. Штык и кинжал
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Раб и солдат