Центр документации
|
Самоучитель по интеграции дизайна и настройке Amiro.CMS на примере демонстрационной версии пакета Визитка »
ЗадачаСоздать решение на основе стандартной рубрицированной новостной ленты Amiro.CMS c поддержкой категорийности. Суть решенияЗадача будет реализована следующим образом: 1. Добавим в модель новое поле-флаг show_on_mainpage. 2.
Добавим на форму редактирования элемента панели управления флажок
"Показывать на главной", который будет управлять флагом
show_on_mainpage. 3. Добавим в список элементов панели управления столбец "На главной", который будет выделять элементы, с установленным флагом. 4. Создадим новый спецблок на основе стандартного и модифицируем его поведение согласно поставленной задаче. 5. Зарегистрируем спецблок и дадим возможность указать его заголовок для Менеджера Сайта. Далее - подробная пошаговая инструкция по реализации решения. РеализацияСоздание кода дистрибутиваИспользуя решение "Генератор решений" создадим дистрибутив стандартной новостной ленты. Добавление нового поляДобавим поле "Показать на главной" (show_on_mainpage) в модель, а так же список и форму в панели администратора. Для того чтобы новое поле появилось в модели, его необходимо прописать в SQL файле создания таблицы дистрибутива.
Добавим поле типа checkbox на форму добавления/редактирования элемента панели администратора. Для этого в файле _local/modules/data/{genModId}/amiro.multifeeds_adv/code/AmiMultifeeds_AdvancedFeed_Adm.php изменим метод инициализации отображения компоненты формы.
В файл локализации компоненты формы добавим языковые переменные для нового поля. _local/modules/data/{genModId}/amiro.multifeeds_adv/distrib/configs/ami_multifeeds/advanced_feed/locales/--modId–_form.lng
Добавим отображение столбца с индикатором поля в списке элементов модуля в панели администратора. Для этого переопределим метод инициализации компоненты списка. _local/modules/data/{genModId}/amiro.multifeeds_adv/code/AmiMultifeeds_AdvancedFeed_Adm.php
В файл локализации компоненты списка добавим языковые переменные для заголовка столбца. _local/modules/data/{genModId}/amiro.multifeeds_adv/distrib/configs/ami_multifeeds/advanced_feed/locales/--modId–_form.lng
Спецблок "Элементы на главной странице"Поведение спецблока "specblock_main" будет аналогично поведению стандартного спецблока анонса новостей со срезкой по флагу "show_on_mainpage" с включенной групировкой элементов по категориям, установленным лимитом количества элементов в категории и сортировкой по дате в обратном порядке. Данные параметры, кроме срезки по флагу, определяются опциями. Для реализации срезки понадобится модифицираовать запросы выборки элементов. В конструкторе контроллера публичной части модуля добавим поддержку спецблока "specblock_main", который будет отображать элементы на главной странице. _local/modules/data/{genModId}/amiro.multifeeds_adv/code/AmiMultifeeds_AdvancedFeed_Frn.php
Добавим контроллер и отображение компоненты нового спецблока.
Для того, чтобы спецблок стал доступен в менеджере сайта, его необходимо прописать в файлах декларации и Meta-файле. _local/modules/data/{genModId}/amiro.multifeeds_adv/code/AmiMultifeeds_AdvancedFeed_Meta.php
_local/modules/data/{genModId}/amiro.multifeeds_adv/distrib/configs/ami_multifeeds/advanced_feed/declaration/declaration.php
_local/modules/data/{genModId}/amiro.multifeeds_adv/distrib/configs/ami_multifeeds/advanced_feed/declaration/properties.php
Добавляем файлы изображений спецблока и иконку модуля. _local/modules/data/{genModId}/amiro.multifeeds_adv/distrib/configs/ami_multifeeds/advanced_feed/icons/--modId–_main_specblock_ru.gif _local/modules/data/{genModId}/amiro.multifeeds_adv/distrib/configs/ami_multifeeds/advanced_feed/icons/--modId--_specblock_ru.gif _local/modules/data/{genModId}/amiro.multifeeds_adv/distrib/configs/ami_multifeeds/advanced_feed/icons/--modId--.gif
Остается поправить содержимое файла manifest.xml и собрать архив дистрибутива в модуле "Генератор решений". |