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

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

Жанры

Разрботка расширений для 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 - для плагинов: группа.

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

Возвышение Меркурия. Книга 4

Кронос Александр
4. Меркурий
Фантастика:
героическая фантастика
боевая фантастика
попаданцы
5.00
рейтинг книги
Возвышение Меркурия. Книга 4

Герцогиня в ссылке

Нова Юлия
2. Магия стихий
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Герцогиня в ссылке

Эра мангуста. Том 4

Третьяков Андрей
4. Рос: Мангуст
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Эра мангуста. Том 4

Бастард Императора

Орлов Андрей Юрьевич
1. Бастард Императора
Фантастика:
фэнтези
аниме
5.00
рейтинг книги
Бастард Императора

Законы Рода. Том 4

Flow Ascold
4. Граф Берестьев
Фантастика:
юмористическое фэнтези
аниме
5.00
рейтинг книги
Законы Рода. Том 4

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

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

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

Сапфир Олег
11. Лекарь
Фантастика:
фэнтези
аниме
5.00
рейтинг книги
Идеальный мир для Лекаря 11

Кодекс Крови. Книга ХIV

Борзых М.
14. РОС: Кодекс Крови
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Кодекс Крови. Книга ХIV

Сонный лекарь 4

Голд Джон
4. Не вывожу
Фантастика:
альтернативная история
аниме
5.00
рейтинг книги
Сонный лекарь 4

Мужчина моей судьбы

Ардова Алиса
2. Мужчина не моей мечты
Любовные романы:
любовно-фантастические романы
8.03
рейтинг книги
Мужчина моей судьбы

Отмороженный 5.0

Гарцевич Евгений Александрович
5. Отмороженный
Фантастика:
боевая фантастика
рпг
5.00
рейтинг книги
Отмороженный 5.0

Гром над Академией. Часть 2

Машуков Тимур
3. Гром над миром
Фантастика:
боевая фантастика
5.50
рейтинг книги
Гром над Академией. Часть 2

Назад в СССР 5

Дамиров Рафаэль
5. Курсант
Фантастика:
попаданцы
альтернативная история
6.64
рейтинг книги
Назад в СССР 5

Наследник старого рода

Шелег Дмитрий Витальевич
1. Живой лёд
Фантастика:
фэнтези
8.19
рейтинг книги
Наследник старого рода