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

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

Жанры

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

Для проверки задайте в настройках сайта длину списка по умолчанию, равную 5, и добавьте вопросы так, чтобы их количество стало больше, чем 5. Примерный вид, который теперь примет список вопросов в бэкенде, показан на рис. 7.12.

(есть увеличенное изображение)

Рис. 7.12. Список вопросов с разбиением на страницы

Нацигационная цепочка

Рассмотрим,

какие элементы можно отобразить в навигационной цепочке для каждого из представлений нашего компонента:

all - название компонента; category - название компонента, название категории; question шаблон default - название компонента, название категории, текст вопроса; шаблон default_form - название компонента, текст "Задать вопрос".

Как видите, название компонента нужно выводить для всех представлений, поэтому его лучше вывести уже в методе контроллера. В методах представлений будем выводить только те элементы, которые требуют какой-либо информации из модели.

В файле /components/com_myquestions/controller.phpизмените код методов класса QuestionController так:

function display { global $app; $pathway =& $app->getPathway; $pathway->addItem(JText::_('COM_MYQUESTIONS'), JRoute::_('index.php?option=com_myquestions')); … } function showForm { global $app; $pathway =& $app->getPathway; $pathway->addItem(JText::_('COM_MYQUESTIONS'), JRoute::_('index.php?option=com_myquestions')); $pathway->addItem(JText::_('COM_MYQUESTIONS_ADD_QUESTION')); … }

Изменим метод отображения категории так, чтобы в навигационной цепочке выводилось название категории. Добавьте в метод QuestionViewCategory::display в файле /components/com_myquestions/views/category/tmpl/default.phpкод:

global $app; $pathway =& $app->getPathway; $pathway->addItem($name_cat);

Метод QuestionViewQuestion::display в файле /components/com_myquestions/views/question/tmpl/default.phpизмените так:

function display($tpl=null) { if ($tpl !== 'form') { global $option, $app; … $pathway =& $app->getPathway; $pathway->addItem($question->name_cat, $this->link_cat); $pathway->addItem(JString::substr(strip_tags($question->question), 0, 15).'...'); } parent::display($tpl); }

В случае запроса шаблона default_form в данном методе не требуется никаких изменений, так как необходимые элементы навигационной цепочки уже были добавлены в контроллере. По этой же причине не нужно ничего изменять в методе display представления all.

Добавьте в файл /language/ru-RU/ru-RU.com_myquestions.iniстроку:

COM_MYQUESTIONS="Моя система «вопрос – ответ»"

Навигационная цепочка, которая теперь отображается во фронтенде компонента, показана на рис. 7.13.

Рис. 7.13. Навигационная цепочка на странице с выводом одного вопроса

Ключевые

термины

JPagination - класс для вывода элементов формы для разбивки на страницы списков элементов. JPathway - класс для управления навигационной цепочкой.

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

По сравнению с разработкой компонента написать модуль значительно легче, так как он, как правило, не использует собственных таблиц и не обрабатывает данные, введенные пользователем.

Joomla позволяет разбивать длинные списки на страницы, задавая длину списка по умолчанию. Для вывода списков элементов с разбивкой на страницы как в бэкенде, и так и во фронтенде используется класс JPagination. Его методы генерируют HTML-код таких элементов, как счетчик страниц, ссылки на предыдущую/следующую страницу и т.д.

Для управления навигационной цепочкой в Joomla существует объект JPathway. Его методы позволяют добавлять элементы в навигационную цепочку, изменять названия отдельных элементов или весь массив целиком.

Вопросы

Почему разработать модуль легче, чем компонент?

Каким образом Joomla позволяет разбивать длинные списки на страницы?

Какой объект используется для управления навигационной цепочкой?

Упражнения

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

Файл-манифест

Рассмотрена структура файла-манифеста. Приведен практический пример создания установочного пакета для модуля и для компонента.

Цель лекции:Изучить структуру файла-манифеста и процесс создания установочных пакетов для модулей и компонентов.

Структура манифеста

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

Иерархия элементов в манифесте приведена на рис. 8.1.

(есть увеличенное изображение)

Рис. 8.1. Иерархия элементов в файле-манифесте

Корневым тегом манифеста является тег <extension></extension>. Он может иметь следующие атрибуты:

type - тип расширения: component, file, language, library, module, package, plugin; version - версия Joomla, для которой написано расширение: 1.6, 2.5 и т.д.; method - будут ли при установке перезаписаны файлы расширения, если они уже существуют: upgrade (да), new (сообщить в таком случае об ошибке); client - для модулей: задает, предназначен этот модуль для бэкенда (administrator) или фронтенда (site); group - для плагинов: группа.

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

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

Данич Дина
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
рейтинг книги
Чиновникъ Особых поручений