Разработка слайдера
Слайдер - это динамический блок, динамически блоки необходимо разрабатывать с помощью динамических каталогов.
Разработка динамических блоков делится на 3 этапа работ:
- Проектирование и создание каталога {MODEL}
- Программирование контроллера {CONTROLLER}
- Шаблонизация в view {VIEW}
Откройте админ-панель /pr
Перейдите: Разработчикам > Создать новый каталог
Название - это имя нашего каталога. Важно помнить про семантику, нужно назвать максимально логично.
Символьный код - это название нашей модели. Символьный код должен быть назван с помощью английских символов в формате UpperCamelCase. В нашем случае MainSlider
Режим каталога без разделов - это опция которая отключает разделы у каталога. Нам необходимо её активировать, так как у слайдера нет разделов.
После заполнения полей, нажмите сохранить и перейдите во вкладку Свойства и нажмите создать свойство.
У свойства есть 3 основных значения:
- Тип
- Код
- Имя свойства
Создаем свойство Изображение
Тип | Файл |
Код | image |
Имя свойства | Изображение |
Когда поля заполнены нажимаем сохранить и переходим во вкладку Подписи
Необходимо заполнить подписи экшнов для каталога. Все значения должны быть грамотно составлены чтобы в дальнейшем пользователю было легко работать с каталогом.
После нейминга всех подписей нажмите сохранить и нажмите на Войти в каталог
Теперь нам необходимо наполнить каталог демо-контентом. Скачайте архив с демо-изображениями.
Нажмите добавить слайд
Откроется интерфейс добавления слайда.
Таким образом нужно добавить все слайды.
Должно получиться так:
С первой частью закончили.
Теперь необходимо войти в CodeGen
После того как код скопирован, переходим в контроллер /Project/controllers/MainController.php
Теперь в нашем контроллере есть метод, который получает слайды из каталога, но он не инициализирован. Для того чтобы его инициализировать в методе index добавьте метод getMainSlider в массив инициализации.
Нажмите ctrl+alt+l для того чтобы навести порядок в коде, отформатировать его.
Тестирование.
Для тестирования будем использовать метод Pr::debug() Изучите его в документации.
Перейдем в самый конец метода getMainSlider()
И сделаем debug
Перейдите на главную страницу сайта и вы увидите результат тестирования:
Такой результат говорит о том, что все в порядке, данные обрабатываются.
Удалите или заккоментируйте Pr::debug()
Второй этап завершен. Перейдем к шаблонизации.
Шаблоны конеретных страниц хранятся по пути: /Project/views/pages
Нас интересует главная страница: /Project/views/pages/main.php - Откроем её в шторме.
Теперб нам неоходимо сюда вставить слайдер который есть в шаблоне в main.html
Получилось во так:
Теперь немного теории. В контроллере есть метод getMainSlider()
Эта строка делаем импорт массива, который мы дебажили. То есть в файле /Project/views/pages/main.php доступна переменная $mainSlider
которая является массивом.
Зная что структура массива такая:
Мы можем сделать foreach. Делаем.
Все! Готово. На сайте выглядит так:
Все круто, но теперь нужно сделать интерфейс редактирование прямо с сайта.
В контроллере есть метод getMainSlider()
Контроллер предоставляет кнопку для редактирования элементов. $cntEditormainSlider
Перейдем в шаблон и добавим эту кнопку:
Должно получиться так:
Слайдер готов!