Урок 1. Вступление
Урок 2. Структура приложения
Урок 3. Конфигурация приложения
Урок 4. Класс Реестр
Урок 5. Класс обработки ошибок
Урок 6. Класс маршрутизатор. Часть 1
Урок 7. Класс маршрутизатор. Часть 2
Урок 8. Базовый контроллер
Урок 9. Класс View. Часть 1
Урок 10. Класс View. Часть 2
Урок 11. Класс Модели
Урок 12. ORM RedBeanPHP
Урок 13. Класс для кэширования
Урок 1. Перенос шаблона в структуру CMS
Урок 2. Структура БД
Урок 3. Вывод брендов
Урок 4. Популярные товары
Урок 5. Виджет выбора валют. Часть 1
Урок 6. Виджет выбора валют. Часть 2
Урок 7. Пересчет цены товара в выбранной валюте
Урок 8. Виджет категорий. Часть 1
Урок 9. Виджет категорий. Часть 2
Урок 10. Виджет категорий. Часть 3
Урок 11. Карточка товара. Часть 1
Урок 12. Карточка товара. Часть 2
Урок 13. Карточка товара. Модуль Связанные товары
Урок 14. Карточка товара. Картинки галереи
Урок 15. Карточка товара. Модуль Просмотренные товары
Урок 16. Карточка товара. Хлебные крошки
Урок 17. Карточка товара. Модификации товара
Урок 18. Корзина. Часть 1
Урок 19. Корзина. Часть 2
Урок 20. Корзина. Часть 3
Урок 21. Корзина. Часть 4
Урок 22. Корзина. Часть 5
Урок 23. Поиск. Часть 1
Урок 24. Поиск. Часть 2
Урок 25. Товары категории
Урок 26. Класс Pagination
Урок 27. Регистрация. Часть 1
Урок 28. Регистрация. Часть 2
Урок 29. Регистрация. Часть 3
Урок 30. Регистрация. Часть 4
Урок 31. Регистрация. Часть 5
Урок 32. Оформление заказа. Часть 1
Урок 33. Оформление заказа. Часть 2
Урок 34. Оформление заказа. Часть 3
Урок 35. Оформление заказа. Часть 4
Урок 36. Фильтры. Часть 1
Урок 37. Фильтры. Часть 2
Урок 38. Фильтры. Часть 3
Урок 39. Фильтры. Часть 4
Урок 40. Фильтры. Часть 5
Урок 1. Шаблон AdminLTE
Урок 2. Авторизация администратора
Урок 3. Виджеты главной страницы
Урок 4. Список заказов
Урок 5. Обработка заказа. Часть 1
Урок 6. Обработка заказа. Часть 2
Урок 7. Управление категориями. Часть 1
Урок 8. Управление категориями. Часть 2
Урок 9. Управление категориями. Часть 3
Урок 10. Управление категориями. Часть 4
Урок 11. Управление категориями. Часть 5
Урок 12. Управление кэшем
Урок 13. Управление пользователями. Часть 1
Урок 14. Управление пользователями. Часть 2
Урок 15. Управление пользователями. Часть 3
Урок 16. Управление пользователями. Часть 4
Урок 17. Управление товарами. Список товарова
Урок 18. Управление товарами. Форма добавления
Урок 19. Управление товарами. CKEditor
Урок 20. Управление товарами. Добавление фильтров
Урок 21. Управление товарами. Связанные товары. Часть 1
Урок 22. Управление товарами. Связанные товары. Часть 2
Урок 23. Управление товарами. Загрузка картинок. Часть 1
Урок 24. Управление товарами. Загрузка картинок. Часть 2
Урок 25. Управление товарами. Редактирование товара. Часть 1
Урок 26. Управление товарами. Редактирование товара. Часть 2
Урок 27. Управление товарами. Редактирование товара. Часть 3
Урок 28. Управление фильтрами. Часть 1
Урок 29. Управление фильтрами. Часть 2
Урок 30. Управление фильтрами. Часть 3
Урок 31. Управление валютами. Часть 1
Урок 32. Управление валютами. Часть 2
Урок 1. Введение в программирование на PHP
Урок 2. Синтаксис PHP. Основы синтаксиса языка PHP
Урок 3. PHP переменные и константы
Урок 4. Типы данных в PHP
Урок 5. Операторы в PHP. Часть 1
Урок 6. Операторы в PHP. Часть 2
Урок 7. Управляющие конструкции PHP. Условия
Урок 8. Управляющие конструкции PHP. Цикл while и do-while
Урок 9. Массивы в PHP
Урок 10. PHP: Функции для работы с массивами
Урок 11. Цикл for в PHP
Урок 12. Цикл foreach в PHP
Урок 13. Альтернативный синтаксис PHP
Урок 14. require и include в PHP
Урок 15. Пользовательские функции в PHP
Урок 16. Функция header в PHP. Часть 1
Урок 17. Функция header в PHP. Часть 2
Урок 18. Функции работы со строками в PHP. Часть 1
Урок 19. Функции работы со строками в PHP. Часть 2
Урок 20. Функции работы со строками в PHP. Часть 3
Урок 21. Функции даты и времени в PHP. Часть 1
Урок 22. Функции даты и времени в PHP. Часть 2
Урок 23. Методы GET и POST в PHP
Урок 24. Загрузка файлов в PHP
Урок 25. Работа с сессиями в PHP
Урок 26. Работа с куками в PHP
Урок 27. Функции для работы с файлами в PHP
Урок 28. Практика создания гостевой книги
Урок 29. Сервер MySQL
Урок 30. Функции PHP для работы с базами данных. Часть 1
Урок 31. Функции PHP для работы с базами данных. Часть 2
Урок 32. Практика создания гостевой книги с использованием БД
Урок 33. PHP 7. Часть 1
Урок 34. PHP 7. Часть 2
Урок 35. PHP 7. Часть 3
Урок 36. PHP 7. Часть 4
Урок 37. PHP 7. Часть 5
Урок 38. PHP 7. Часть 6
Урок 39. PHP 7. Часть 7
Урок 1. Класс и объект
Урок 2. Свойства объекта
Урок 3. Методы объекта
Урок 4. Методы __construct и __destruct
Урок 5. Домашнее задание. Класс для работы с файлом
Урок 6. Константы класса. Статические свойства и методы
Урок 7. Наследование. Часть 1
Урок 8. Наследование. Часть 2
Урок 9. Модификаторы доступа
Урок 10. Абстрактные классы и интерфейсы
Урок 11. Интерфейсы и контроль типа
Урок 12. Автозагрузка и пространства имен
Урок 13. Composer и автозагрузка
Урок 14. Трейты
Урок 15. Позднее статическое связывание
Урок 16. Магические методы
Урок 17. Шаблоны проектирования
Урок 1. Перенос сайта на хостинг
Урок 1. Подключение платежной системы. Часть 1
Урок 2. Подключение платежной системы. Часть 2
Урок 1. Личный кабинет покупателя. Часть 1
Урок 2. Личный кабинет покупателя. Часть 2
Урок 1. Канонические URL
app\views\Main\index.php (line 78)
app\controllers\CurrencyController (line 15)
app\views\Main\index.php (line 71, 74)
app\controllers\ProductController (line 39)
ДЗ 2-17 - модификации товара (цвет + размер, обновлять старую цену вместе с базовой (старые цены для модификаций излишне))
app\controllers\ProductController (line 54)
app\views\Product\view.php (line 66, 75)
- цена может отличать и от цвета и от размера
- можно сделать что-то вроде зависимых списков - при выборе 1 подгружить что-то другое (и наоборот)
- также учитывать, что 1 цвет может быть все цвета, а другой цвет - не все (часть списка)
app\controllers\CartController
app\models\Cart
public\js\main.js
app\controllers\UserController
app\layouts\watches.php (line 176)
app\views\User\signup.php
app\views\User\login.php
ДЗ 2-31 - при регистрации авторизовывать пользователя (+ перенапрявлять со страницы входа уже авторизованного пользователя)
app\controllers\UserController
app\models\User
app\models\Order->saveOrder() (line 8)
app\controllers\CartController
app\models\Cart
- использовать транзакции в БД (интернет) - сначала сохраняем заказ, потом выгружаем товары по заказу. Есть шанс, что мы сохраним заказ, а в момент выгрузки товаров сервер откажет и будет заказ без товаров (order_product). Оформление заказа и выгрузку товаров сделать 1 транзакцией - в случае ошибки на 1 из этапов откатываются все изменения в цепочке (если не выгрузились товары, откатывается изменение в заказах и данный заказ удаляется).
- кол-во сделать input и при изменении данного инпута или нажатии кнопки пересчитать
- собираем все инпуты и id товаров и пересчитываем корзину с помощью метода recalc()
ДЗ 2-36 - добавить фильтры по брендам и диапазону цен + выводить в фильтрах виды полей (checkbox, select, radio-button, input)
app\widgets\Filter
app\widgets\filter_tpl.php
- в attribute_value добавляем поле type, на основе которого формируется соответствующий html-код
- type: checkbox | select | boolean | string | int (диапазон цен)
- checkbox | select | radio-button | input(str) | input(int)
https://zlob.in/2013/01/struktura-tablic-dlya-kataloga-tovarov-internet-magazina/
http://softtime.ru/forum/read.php?id_forum=3&id_theme=88061
https://gist.github.com/greabock/afc4a08577806b60dc61
ДЗ 3-5 - сделать наименование товара в заказе ссылкой (вытащить алиас через join из таблицы product по product_id)
app\views\admin\Order\view.php
app\controllers\admin\OrderController.php
app\controllers\admin\OrderController.php => changeAction()
- view - отображает пользователя, edit - принимает и обрабатывает данные из формы
app\controllers\admin\UserController.php => editAction()
app\controllers\admin\UserController.php => viewAction()
app\models\admin\Product.php => editFilter()
public\adminlte\my.js
app\controllers\admin\ProductController.php => addAction()
ДЗ 3-25 - реализовать удаление базовой картинки по аналогии с удалением картинок галлереи (при клике на картинку)
app\controllers\admin\ProductController.php => editAction()
ДЗ 3-27 - реализовать удаление товаров (параллельно удалять модификации, фильтры, связанные товары, галлерею, товары заказа (?))
app\controllers\admin\ProductController.php => deleteAction()