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

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

Жанры

Разрботка расширений для 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 автора записи, дату добавления записи, текст записи. Для каждого ответа на запись храните его код, текст и код записи, к которой относится этот ответ. Должна быть страница, на которой выводятся все сообщения. Обеспечьте возможность просмотра одного сообщения со всеми ответами на него, добавления сообщения, удаления сообщения, ответа на сообщение. Формы: добавление сообщения, добавление ответа на сообщение.

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

Скандальная свадьба

Данич Дина
1. Такие разные свадьбы
Любовные романы:
современные любовные романы
эро литература
5.00
рейтинг книги
Скандальная свадьба

Орден Багровой бури. Книга 5

Ермоленков Алексей
5. Орден Багровой бури
Фантастика:
попаданцы
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Орден Багровой бури. Книга 5

Адвокат Империи 7

Карелин Сергей Витальевич
7. Адвокат империи
Фантастика:
городское фэнтези
попаданцы
альтернативная история
аниме
фантастика: прочее
5.00
рейтинг книги
Адвокат Империи 7

АН (цикл 11 книг)

Тарс Элиан
Аномальный наследник
Фантастика:
фэнтези
героическая фантастика
попаданцы
аниме
5.00
рейтинг книги
АН (цикл 11 книг)

Сердце Дракона. нейросеть в мире боевых искусств (главы 1-650)

Клеванский Кирилл Сергеевич
Фантастика:
фэнтези
героическая фантастика
боевая фантастика
7.51
рейтинг книги
Сердце Дракона. нейросеть в мире боевых искусств (главы 1-650)

Вспоминай меня ночью

Рам Янка
Любовные романы:
современные любовные романы
эро литература
5.60
рейтинг книги
Вспоминай меня ночью

Адвокат вольного города 3

Кулабухов Тимофей
3. Адвокат
Фантастика:
городское фэнтези
альтернативная история
аниме
5.00
рейтинг книги
Адвокат вольного города 3

На границе империй. Том 9. Часть 5

INDIGO
18. Фортуна дама переменчивая
Фантастика:
космическая фантастика
попаданцы
5.00
рейтинг книги
На границе империй. Том 9. Часть 5

Адвокат вольного города 4

Кулабухов Тимофей
4. Адвокат
Фантастика:
городское фэнтези
альтернативная история
аниме
5.00
рейтинг книги
Адвокат вольного города 4

Земная жена на экспорт

Шах Ольга
Любовные романы:
любовно-фантастические романы
5.57
рейтинг книги
Земная жена на экспорт

Варлорд

Астахов Евгений Евгеньевич
3. Сопряжение
Фантастика:
боевая фантастика
постапокалипсис
рпг
5.00
рейтинг книги
Варлорд

Баронесса. Эхо забытой цивилизации

Верескова Дарья
1. Проект «Фронтир Вита»
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Баронесса. Эхо забытой цивилизации

Неудержимый. Книга XVII

Боярский Андрей
17. Неудержимый
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Неудержимый. Книга XVII

Чиновникъ Особых поручений

Кулаков Алексей Иванович
6. Александр Агренев
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Чиновникъ Особых поручений