1. Осознание проблемы
• Обзор системы, которая у Вас есть после прохождения PHP2
• Примеры сайтов с бесконечной вложенностью страниц
• Бюджеты этих же сайтов
• Понимаем, что нам нужно и начинаем работать
2. Разработка системы с бесконечной вложенностью контент-страниц
• Хранение в БД иерархической информации
• Создание контроллера контент-страниц
• Кэширование url-адресов страниц
• Зачем же на самом деле нужна рекурсия
3. Ckeditor
• Что будет, если текст страниц редактировать из обычной textarea
• Где скачать и как подключить
• Создание Ajax-загрузчика изображений
• Добавление изображений в текст
4. Динамические меню
• Чем по жизни отличаются динамика и статика
• Создание таблиц для хранения меню
• Связь "многие ко многим" на практике
• Добавление возможности сортировки пунктов
• JqueryUI или как сделать адекватную сортировку
5. Обсуждаем возможности дальнейшего развития системы
Лента новостей, она же блог
• Загрузчик больших файлов на сервер
• Динамические галереи фотографий
• flash-проигрыватели музыки и видео
• Думаем, что нам ещё нужно для счастья
6. Галерея фотографий
• Передача картинок без перезагрузки страницы
• Drag & Drop
• Формирование галерей изображений
• Редактирование мета-информации изображений
• Сортировка изображений в галерее
7. Многоуровневые меню
• Ориентация на структуру страниц
• Выделение активных пунктов меню
• Разные способы вывода иерархического меню
• Сортировка страниц в дереве
8. Виджеты
• Кусок кода без базового шаблона
• Встраивание виджетов на сайт
9. Разделение прав доступа
• Роли, привилегии, пользователи
• Настройка доступа к методам контроллеров
• Настройка показа верхнего меню в зависимости от прав
10. Домашнее задание
• Постраничная навигация
• Валидация
• Фронт
• Плагин под CKEditor
• Блог
11. Разбор домашних работ
• Встраивание дз в CMS
• Исправление ляпов
• Оптимизация кода
• Обработка шорткодов для встраивания галерей в произвольное место контент-страниц
12. Создание идеальной модели
• Что такое идеальная модель
• Создание базового класса
• Обратный порядок валидации
• Правила расширения
13. Универсальный модуль поиска
• Карта поиска
• Динамическая генерация условий поиска
• Шаблоны для вывода результатов
• Наслаждение результатом
14. Выбор шаблона страницы
• Зачем уметь подключать разные шаблоны
• Внутренний шаблон vs внешний шаблон
• Подключение шаблонов
15. Редактирование контента с фронта
• Почему заказчики хотят этого
• Идентификация полей для редактирования
• Пишем плохой код
16. Загрузка больших файлов на сервер
• Почему не пройдёт обычный способ
• Идея загрузки по частям
• Допиливаем и внедряем после семинара