/** * Action для главной страницы */ public function actionIndex() { // Список категорий для левого меню $categories = Category::getCategoriesList(); // Список последних товаров $latestProducts = Product::getLatestProducts(6); // Список товаров для слайдера $sliderProducts = Product::getRecommendedProducts(); // Показывыем в корзине информацию о добавленных товарах $productsInCart = Cart::getProducts(); if ($productsInCart) { // Если в корзине есть товары, получаем полную информацию о товарах для списка // Получаем массив только с идентификаторами товаров $productsIds = array_keys($productsInCart); // Получаем массив с полной информацией о необходимых товарах $products = Product::getProdustsByIds($productsIds); // Получаем общую стоимость товаров $totalPrice = Cart::getTotalPrice($products); } // Получаем идентификатор пользователя из сессии $userId = $_SESSION['user']; // Получаем информацию о пользователе из БД $user = User::getUserById($userId); // Подключаем вид require_once ROOT . '/views/site/index.php'; return true; }
/** * Action для страницы "Оформление покупки" */ public function actionCheckout() { $productsInCart = Cart::getProducts(); if ($productsInCart == false) { header("Location: /"); } $categories = Category::getCategoriesList(); // Находим общую стоимость $productsIds = array_keys($productsInCart); $products = Product::getProdustsByIds($productsIds); $totalPrice = Cart::getTotalPrice($products); // Количество товаров $totalQuantity = Cart::countItems(); $userName = false; $userPhone = false; $userComment = false; $result = false; if (!User::isGuest()) { // Если пользователь не гость // Получаем информацию о пользователе из БД $userId = User::checkLogged(); $user = User::getUserById($userId); $userName = $user['name']; } else { // Если гость, поля формы останутся пустыми $userId = false; } if (isset($_POST['submit'])) { $userName = $_POST['userName']; $userPhone = $_POST['userPhone']; $userComment = $_POST['userComment']; // Флаг ошибок $errors = false; if (!User::checkName($userName)) { $errors[] = 'Неправильное имя'; } if (!User::checkPhone($userPhone)) { $errors[] = 'Неправильный телефон'; } if ($errors == false) { // Если ошибок нет // Сохраняем заказ в базе данных $result = Order::save($userName, $userPhone, $userComment, $userId, $productsInCart); if ($result) { // Если заказ успешно сохранен // Оповещаем администратора о новом заказе по почте $adminEmail = '*****@*****.**'; $message = '<a href="localhost/admin/orders">Список заказов</a>'; $subject = 'Новый заказ!'; mail($adminEmail, $subject, $message); // Очищаем корзину Cart::clear(); } } } // Подключаем вид require_once ROOT . '/views/cart/checkout.php'; return true; }
/** * Action для страницы "Просмотр заказа" */ public function actionView($id) { $order = Order::getOrderById($id); // Получаем массив с идентификаторами и количеством товаров $productsQuantity = json_decode($order['products'], true); // Получаем массив с индентификаторами товаров $productsIds = array_keys($productsQuantity); // Получаем список товаров в заказе $products = Product::getProdustsByIds($productsIds); // Подключаем вид require_once ROOT . '/views/admin_order/view.php'; return true; }
/** * Action для страницы "Оформление покупки" */ public function actionCheckout() { // Получием данные из корзины $productsInCart = Cart::getProducts(); // Если товаров нет, отправляем пользователи искать товары на главную if ($productsInCart == false) { header("Location: /"); } // Список категорий для левого меню $categories = Category::getCategoriesList(); // Находим общую стоимость $productsIds = array_keys($productsInCart); $products = Product::getProdustsByIds($productsIds); $totalPrice = Cart::getTotalPrice($products); // Количество товаров $totalQuantity = Cart::countItems(); // Поля для формы $userName = false; $userPhone = false; $userComment = false; // Статус успешного оформления заказа $result = false; // Проверяем является ли пользователь гостем if (!User::isGuest()) { // Если пользователь не гость // Получаем информацию о пользователе из БД $userId = User::checkLogged(); $user = User::getUserById($userId); $userName = $user['name']; } else { // Если гость, поля формы останутся пустыми $userId = false; } // Обработка формы if (isset($_POST['submit'])) { // Если форма отправлена // Получаем данные из формы $userName = $_POST['userName']; $userPhone = $_POST['userPhone']; $userComment = $_POST['userComment']; // Флаг ошибок $errors = false; // Валидация полей if (!User::checkName($userName)) { $errors[] = 'Неправильное имя'; } if (!User::checkPhone($userPhone)) { $errors[] = 'Неправильный телефон'; } if ($errors == false) { // Если ошибок нет // Сохраняем заказ в базе данных $result = Order::save($userName, $userPhone, $userComment, $userId, $productsInCart); if ($result) { // Если заказ успешно сохранен // Оповещаем администратора о новом заказе по почте $adminEmail = '*****@*****.**'; $message = '<a href="http://digital-mafia.net/admin/orders">Список заказов</a>'; $subject = 'Новый заказ!'; mail($adminEmail, $subject, $message); // Очищаем корзину Cart::clear(); } } } // Подключаем вид require_once ROOT . '/views/cart/checkout.php'; return true; }