Example #1
0
 /**
  * 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;
 }
Example #2
0
 /**
  * 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;
 }
Example #3
0
 /**
  * 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;
 }
Example #4
0
 /**
  * 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;
 }