Урок 1. Введение
- Первый видеоурок является вводным. В нем я расскажу Вам:
- Общую информация о курсе;
- Какие программы нам понадобятся для работы;
- На что обратить внимание при использовании любого редактора кода.
Урок 2. Создаем новый хост и проект для сайта
- Создание хоста в денвере (какой момент необходимо при этом учесть);
- Где можно брать готовые бесплатные шаблоны для сайтов;
- Переносим файлы шаблона на наш новый хост;
- Создаем проект в phpDesigner для удобства работы;
- На что обратить внимание при работе с кодировками;
- Как изменить кодировку веб-сервера при работе с денвером.
Урок 3. Правим шаблон сайта: JavaScript и стили CSS
- Занимаемся JavaScript-файлами, подключенными к шаблону;
- Правим стили шаблона;
- Где взять специальный плагин для FireFox для более комфортной разработки.
Урок 4. Работаем с текстом, картинками и типом HTML-документа
- Занимаемся текстовым наполнением шаблона;
- Меняем картинки в слайдере;
- Меняем тип HTML-документа;
- Проверяем шаблон на соответствие стандарту HTML5.
Урок 5. Правим шаблон сайта: доработка стилей и мелкие правки
- Дорабатываем файлы стилей;
- Модифицируем футер;
- Подчищаем шаблон от лишнего кода.
Урок 6. Перенос сайта на CodeIgniter
- Выводим приветственную страницу фреймворка CodeIgniter;
- Добиваемся вывода шаблона, с которым мы работали ранее, средствами фреймворка;
- Прописываем абсолютные пути для всех подключаемых к шаблону ресурсов (стили, скрипты и картинки);
- Прописываем абсолютные пути до необходимой графики в файле стилей и в файле настроек слайдера.
Урок 7. Работа с URL-адресами в CodeIgniter
- Общий принцип обработки url-адресов;
- Рассматриваем файл routes.php, отвечающий за настройку url-адресов в CodeIgniter;
- Общий принцип формирования url-адресов в CodeIgniter и понятие сегмента;
- Общее понятие объектно-ориентированного подхода применительно к процессу формирования url-адресов;
- Понятия класса и объекта;
- Понятия свойства и метода класса.
Урок 8. MVC и понятие класса
- Понятие контроллера;
- Модель MVC (Модель-Вид-Контроллер) и ее смысл в веб-разработке;
- Разбор компонентов модели MVC и их взаимодействия в веб-приложении;
- Изучаем структуру класса на примере одного из классов CodeIgniter;
- Понятие расширения класса;
- Рассматриваем пример создания метода внутри класса и передачу ему параметра;
- Понятие конструкции $this;
- Где хранятся Модели, Виды и Контроллеры.
Урок 9. Создаем первый Контроллер
- Создаем первый контроллер - Pages;
- Изменяем контроллер по умолчанию при обращении к сайту;
- Разбиваем шаблон на отдельные логические блоки (Виды);
- Последовательно загружаем Виды, собирая страницу целиком.
Урок 10. Начинаем работать с базой данных
- Что такое phpMyAdmin и для чего нужен данный инструмент;
- Что нужно для работы с базой данных;
- Создаем первую базу данных;
- На что нужно обратить внимание при создании базы данных;
- Рассматриваем пример готовой базы данных на примере одного из моих проектов;
- Осваиваемся в интерфейсе phpMyAdmin;
- Создаем первую таблицу в новой базе данных;
- Как создавать поля в таблице базы данных.
Урок 11. Продолжаем работу с базой данных
- Создаем пользователя для базы данных;
- Какие моменты нужно учесть при создании пользователя;
- Окончательно дорабатываем шаблон сайта.
Урок 12. Наполняем базу и "подключаем" ее в настройках CodeIgniter
- Наполняем базу данных контентом для главной страницы сайта;
- Производим необходимые настройки в конфигурационном файле database.php для работы с базой данных.
Урок 13. Интегрируем знания для вывода информации из базы данных
- Создаем Модель для работы с базой данных;
- Пишем функцию, которая будет получать информацию из базы по главной странице;
- Как задать условие при выборке информации из базы данных;
- Как произвести запрос к базе;
- Как обработать полученную из базы информацию;
- Как вернуть результат работы функции, и что это означает;
- Понятие загрузки ресурса в CodeIgniter;
- Передаем полученную из базы информацию в файл Вида для вывода ее на экран;
- В каком виде передается информация из Контроллера в Вид;
- Модифицируем файл Вида главной страницы для вывода необходимого контента;
- Добиваемся автоматической установки соединения с базой данных с помощью файла autoload.php;
- Как произвести распечатку массива в отладочных целях.
Урок 14. Совершенствуем функцию, получающую информацию из базы
- Используем сокращенную форму записи вывода переменных и проставляем соответствующую настройку в файле config.php;
- Экспериментируем с передачей данных в файл Вида;
- Создаем в базе данных новую страницу "О нас";
- Пишем новую универсальную функцию, отвечающую за отображение любой страницы сайта;
- Создаем универсальную функцию, получающую из базы данных информацию по любой странице;
- Перенастраиваем Контроллер по умолчанию в файле routes.php.
Урок 15. Улучшаем URL-адреса нашего сайта
- Прописываем необходимую настройку в config.php;
- Используем специальный файл .htaccess для скрытия файла index.php из url-адреса;
- Убираем из адреса универсальную функцию, обрабатывающую все страницы, с помощью файла routes.php.
Урок 16. Применяем несколько полезных функций и настроек в CodeIgniter
- Модифицируем функцию отображения страниц;
- Используем специальный хэлпер url для более удобной работы с url-адресами;
- Учимся проверять на пустоту массив или переменную;
- Знакомимся с функцией redirect, предназначенной для перенаправления пользователя на указанный адрес;
- Знакомимся с настройкой base_url, позволяющей задать "базовый" адрес сайта;
- Переделываем меню сайта с использованием функции base_url;
- Заполняем базу данных информацией по оставшимся страницам сайта.
Урок 17. Заканчиваем с выводом из базы и начинаем создавать контактную форму
- Выводим из базы данных на страницы содержимое всех остальных полей, помимо поля с контентом;
- Дорабатываем пути до стилей и модифицируем футер;
- Начинаем реализовывать контактную форму на странице "О нас";
- Создаем Вид для страницы контактов.
Урок 18. Работаем над внешними аспектами формы обратной связи
- Создаем стили для контактной формы;
- Разбираемся с графикой для оформления контактной формы;
- Создаем JavaScript-файл, который будет управлять визуальными эффектами для полей формы;
- Подключаем к сайту наш новый JavaScript-файл;
- Модифицируем универсальную функцию отображения страниц для работы со страницей контактов;
- Изучаем полезную конструкцию switch-case.
Урок 19. Добиваемся отправки почты безо всяких дополнительных функций
- Добиваемся отправки почты из формы обратной связи;
- Как проверить на существование некую переменную;
- Как задать настройки при отправке письма;
- Какой класс в CodeIgniter предназначен для работы с массивом POST;
- Тестируем отправку почты средствами Денвера.
Урок 20. Дорабатываем контактную форму до необходимого состояния. Часть 1
- Что нам потребуется для реализации полноценной работы формы обратной связи;
- Создаем в базе данных таблицу для хранения сессий (выполняем SQL-запрос через phpMyAdmin);
- Выставляем ключ шифрования в файле config.php для корректной работы сессий;
- Учимся использовать базу данных для хранения сессий;
- Создаем библиотеку, отвечающую за генерацию защитного кода - капчи;
- Получение доступа к ресурсам CodeIgniter внутри библиотек, написанных нами;
- Генерируем случайное число для использования в капче и записываем его в сессию;
- Создаем массив с настройками для создания капчи и генерируем ее.
Урок 21. Дорабатываем контактную форму до необходимого состояния. Часть 2
- Загружаем в контроллере необходимую для работы капчи библиотеку;
- Передаем в Вид код капчи в составе массива;
- Модифицируем Вид для вывода капчи;
- Создаем библиотеку с правилами валидации для формы обратной связи;
- Изучаем структуру правил для проверки полей формы.
Урок 22. Дорабатываем контактную форму до необходимого состояния. Часть 3
- Создаем новый Контроллер для обработки данных, отправленных из формы обратной связи;
- Загружаем необходимые для работы библиотеки;
- Используем правила валидации для проверки данных из формы;
- Проверяем, совпадает ли введенная человеком капча с капчей, хранящейся в сессии;
- Переносим логику отправки письма в наш новый Контроллер.
Урок 23. Дорабатываем контактную форму до необходимого состояния. Часть 4
- Разбираем анатомию Ajax-запроса;
- Как предотвратить отправку содержимого формы при использовании Ajax-запроса на адрес, указанный в атрибуте action;
- Сталкиваемся с мелкими ошибками и устраняем их;
- Тестируем все варианты ошибок и сообщений при отправке формы;
- Дорабатываем стили для информационных сообщений.
Урок 24. Обновление капчи без перезагрузки страницы
- Модифицируем Вид файла с формой обратной связи;
- Пишем новую функцию для обновления кода капчи;
- Пишем Ajax-запрос для обновления капчи без перезагрузки страницы;
- Вносим небольшие изменения в стили.
Урок 25. Убираем нерациональности в коде
- Ставим в автозагрузку часто используемые ресурсы;
- Рационализируем загрузку ресурсов, объединяя однородные элементы в массив;
- Выносим в файл scripts.js JavaScript-код, управляющий ротатором контента в шапке сайта.
Урок 26. Создаем Контроллер управления панелью администратора
- Создаем новый контроллер;
- Создаем файлы Вида для главной страницы админки;
- Правим файлы Вида и подготавливаем необходимые картинки;
- Создаем стили для навигационного меню админки.
Урок 27. Занимаемся функцией добавления новых страниц. Часть 1
- Пишем новую функцию;
- Создаем необходимый файл Вида;
- Создаем форму добавления новой страницы;
- Используем две функции из хэлпера url для того, чтобы сделать заполнение формы максимально удобным.
Урок 28. Занимаемся функцией добавления новых страниц. Часть 2
- Создаем правила валидации для формы добавления новой страницы;
- Разбираем общую схему работы функции добавления страницы;
- Дорабатываем функцию, руководящую процессом добавления новой страницы.
Урок 29. Занимаемся функцией добавления новых страниц. Часть 3
- Пишем в модели функцию, непосредственно добавляющую страницу в базу;
- Рассматриваем логику процесса обновления базы данных при создании новой страницы;
- Массив какого вида нам нужно предоставить функции создания новой страницы для вставки информации в базу;
- Учимся формировать массив с данными для создания новой страницы;
- Учимся вставлять информацию в базу данных.
Урок 30. Автоматический вывод страниц в навигационном меню
- Добиваемся отображения новой добавленной страницы в навигационном меню;
- Создаем в таблице pages новое поле для хранения названий страниц в навигационном меню;
- Пишем функцию для автоматического формирования ссылок в навигации;
- Какая функция позволяет осуществить выбор определенных полей в базе данных;
- Модифицируем функцию вывода страниц с учетом изменений в выводе меню;
- Используем цикл в Виде для меню.
Урок 31. Добавляем опцию изменения порядка следования пунктов меню. Часть 1
- Создаем в таблице pages поле для хранения порядкового номера пункта меню;
- Модифицируем функцию управления меню для вывода в соответствии с порядковыми номерами;
- Пишем новую функцию, отвечающую за редактирование порядка следования пунктов в навигации;
- Создаем Вид для страницы редактирования меню;
- Добиваемся отображения в админке текущего порядка следования пунктов меню.
Урок 32. Добавляем опцию изменения порядка следования пунктов меню. Часть 2
- Формируем в цикле список существующих пунктов меню и поля, в которые мы будем проставлять нужный нам номер для пункта меню;
- Модифицируем функцию вывода пунктов меню.
Урок 33. Добавляем опцию изменения порядка следования пунктов меню. Часть 3
- Дописываем в контроллере функцию, отвечающую за изменение порядка следования пунктов меню;
- Рассматриваем логику работы данной функции;
- Экспериментируем, чтобы увидеть работу функции "изнутри".
Урок 34. Добавляем опцию изменения порядка следования пунктов меню. Часть 4
- Создаем информационный Вид, сообщающий об успешном изменении меню;
- Добавляем информационный Вид при добавлении новой страницы;
- Дорабатываем форму добавления новой страницы.
- Создаем правила валидации для новых полей при добавлении страницы.
Урок 35. Добиваемся вывода ошибок валидации на русском языке
- Находим исходный файл, отвечающий за вывод сообщений на английском языке;
- Используем альтернативный файл с русскоязычными сообщениями;
- Какую еще настройку нам нужно указать для вывода ошибок на русском языке.
Урок 36. Подключаем к админке визуальный редактор контента - CKEditor
- Модифицируем файл .htaccess;
- Подключаем JavaScript-файл, необходимый для работы редактора;
- Подключаем визуальный редактор к полю textarea в Виде добавления страницы.
Урок 37. Создаем функцию редактирования страницы. Часть 1
- Прописываем правильную ссылку в навигационном меню;
- Реализуем функцию вывода списка страниц для редактирования;
- Пишем функцию, получающую из базы информацию по всем страницам;
- Создаем файл Вида для вывода списка страниц;
- Вносим небольшие правки в стили для нормального отображения списка.
Урок 38. Создаем функцию редактирования страницы. Часть 2
- Создаем функцию, отвечающую за вывод страницы на редактирование;
- Создаем файл Вида для редактирования страницы;
- Загружаем библиотеку валидации для корректной работы страницы редактирования.
Урок 39. Занимаемся функцией обновления страницы в базе
- Разбираем общую логику работы функции обновления;
- Реализуем функцию обновления;
- Пишем функцию обновления, производящую взаимодействие с базой.
Урок 40. Реализуем функцию удаления страницы
- Прописываем правильную ссылку в навигационном меню;
- Разбираем общую логику работы функции удаления;
- Пишем функцию, управляющую процессом удаления страницы;
- Пишем функцию удаления, производящую взаимодействие с базой;
- Создаем файл Вида для удаления страницы.
Урок 41. Производим доработки сайта. Часть 1
- Автоматизируем вывод пунктов меню в футере;
- Подчищаем футер в админке;
- Делаем в админке возможность выбора: выводить добавляемую страницу в меню или нет;
- Правим форму добавления страницы;
- Пишем JavaScript-функцию для автоматического скрытия ненужных полей;
- Создаем в базе данных дополнительное поле, в котором фиксируем выбор опции отображения / не отображения страницы в меню;
- Модифицируем библиотеку с правилами валидации;
- Модифицируем функцию, забирающую информацию из базы для формирования меню.
Урок 42. Производим доработки сайта. Часть 2
- Дорабатываем форму редактирования страницы;
- Проставляем / не проставляем динамически атрибут checked на основании данных из базы;
Урок 43. Приступаем к защите администраторской панели
- Что нам понадобится для реализации этой функции;
- Создаем в базе данных таблицу для хранения авторизационных данных администратора;
- Создаем Вид для страницы авторизации;
- Создаем правила валидации для полей логина и пароля.
Урок 44. Работаем с функцией авторизации. Часть 1
- Пишем функцию, управляющую процессом входа в админку;
- Загружаем необходимые для работы библиотеки и разбираем логику работы функции в целом;
- Устанавливаем правила валидации;
- Создаем вид для страницы входа в админку.
Урок 45. Работаем с функцией авторизации. Часть 2
- Пишем новую библиотеку и функцию для получения настроек из базы;
- Создаем новую библиотеку - библиотеку авторизации;
- Пишем в библиотеке авторизации функцию, осуществляющую процесс входа.
Урок 46. Работаем с функцией авторизации. Часть 3
- Пишем функцию генерации специальной защитной строки для дополнительной защиты;
- Принцип работы функции md5, генерирующей хэш переданной ей строки;
- Создаем функцию, проверяющую, был ли осуществлен вход в админку.
Урок 47. Работаем с функцией авторизации. Часть 4
- Пишем функцию, руководящую процессом отмены авторизации (выхода);
- Пишем функцию, непосредственно осуществляющую отмену авторизации (выход);
- Ставим в автозагрузку библиотеку авторизации;
- Защищаем страницы админки с помощью вызова специальной функции;
- Проверяем установленную нами защиту;
- Устраняем ошибки, допущенные при написании авторизации;
- Тестируем процедуры входа и выхода из админки.
Урок 48. Управляем настройками из админки. Часть 1
- Создаем файл вида для страницы настроек;
- Создаем правила валидации для настроек;
- Используем важное правило, позволяющее проверить на совпадение значения, введенные пользователем в разные поля формы.
Урок 49. Управляем настройками из админки. Часть 2
- Разбираем устройство функции, работающей с настройкам;
- Реализуем функцию на практике;
- Применяем проход циклом foreach с использованием пар "ключ-значение" для обновления настроек в базе;
- Тестируем процедуру изменения настроек.
Урок 50. Оптимизируем сайт. Часть 1
Урок 51. Оптимизируем сайт. Часть 2
Урок 52. Оптимизируем сайт. Часть 3Урок 53. Реализуем выделение текущего пункта меню
Урок 54. Переносим сайт на реальный сервер. Часть 1
Урок 55. Переносим сайт на реальный сервер. Часть 2