Example #1
0
 /**
  * Action для страницы "Новостной контент"
  */
 public function actionView($id)
 {
     $categories = Category::getCategoriesList();
     $news = News::getNewsContent($id);
     require_once ROOT . '/views/news/view.php';
     return true;
 }
 public function actionIndex()
 {
     self::checkAdmin();
     $categoryList = Category::getCategoriesList();
     require_once ROOT . '/views/admin_category/index.php';
     return true;
 }
Example #3
0
 public function __construct($options = null)
 {
     parent::__construct($options);
     $this->setName('product');
     $product_name = new Zend_Form_Element_Text('product_name');
     $product_name->setLabel('Product Name: ')->setRequired(true)->addFilter('StripTags')->addFilter('StringTrim')->addValidator('NotEmpty');
     $id = new Zend_Form_Element_Hidden('id');
     $ProductIdExists = new Zend_Validate_Db_NoRecordExists(array('table' => 'products', 'field' => 'product_id'));
     $ProductIdExists->setMessage('This Product ID is already taken');
     $product_id = new Zend_Form_Element_Text('product_id');
     $product_id->setLabel('Product ID: ')->setRequired(true)->addFilter('StripTags')->addFilter('StringTrim')->addValidator($ProductIdExists)->addValidator('NotEmpty');
     $category = new Category();
     $categoriesList = $category->getCategoriesList();
     $category_id = new Zend_Form_Element_Select('category_id');
     $category_id->setLabel('Category: ')->addMultiOptions($categoriesList)->setRequired(true)->addFilter('StripTags')->addFilter('StringTrim')->addValidator('NotEmpty');
     $product_desc = new Zend_Form_Element_Text('product_desc');
     $product_desc->setLabel('Description ')->addFilter('StripTags')->addFilter('StringTrim')->addValidator('NotEmpty');
     $product_img = new Zend_Form_Element_File('product_image');
     $product_img->setLabel('Upload an image:')->setDestination(PUBLIC_PATH . '/images');
     // ensure only 1 file
     $product_img->addValidator('Count', false, 1);
     // limit to 100K
     $product_img->addValidator('Size', false, 102400);
     // only JPEG, PNG, and GIFs
     $product_img->addValidator('Extension', false, 'jpg,png,gif');
     $submit = new Zend_Form_Element_Submit('submit');
     $submit->setAttrib('id', 'submitbutton');
     $this->setAttrib('enctype', 'multipart/form-data');
     $this->addElements(array($product_name, $product_id, $product_desc, $product_img, $id, $category_id, $submit));
 }
 /**
  * Action для страницы "Добавить категорию"
  */
 public function actionCreate()
 {
     // Получаем список категорий для выпадающего списка
     $categories = Category::getCategoriesList();
     $options = array();
     // Флаг ошибок в форме
     $errors = false;
     // Обработка формы
     if (isset($_POST['submit'])) {
         // Если форма отправлена
         // Получаем данные из формы
         $options['name'] = $_POST['name'];
         $options['sort_order'] = $_POST['sort_order'];
         $options['status'] = $_POST['status'];
         // При необходимости можно валидировать значения нужным образом
         if (!isset($options['name']) || empty($options['name'])) {
             $errors[] = 'Неправильно введено имя';
         }
         if ($errors === false) {
             // Если ошибок нет, добавляем новую категорию
             Category::createCategory($options);
             // Перенаправляем пользователя на страницу управления товарами
             header('Location: /admin/category/');
         }
     }
     require_once ROOT . '/views/admin_category/create.php';
     return true;
 }
Example #5
0
 /**
  * Action для страницы просмотра товара
  * @param integer $productId <p>id товара</p>
  */
 public function actionView($productId)
 {
     $categories = Category::getCategoriesList();
     $product = Product::getProductById($productId);
     $comments = Product::getComments($productId);
     $userEmail = false;
     $userName = false;
     $userComment = false;
     // Флаг результата
     $result = false;
     if (isset($_POST['submit'])) {
         $userEmail = $_POST['userEmail'];
         $userName = $_POST['userName'];
         $userComment = $_POST['userComment'];
         // Флаг ошибок
         $errors = false;
         if (!User::checkName($userName)) {
             $errors[] = 'Имя не должно быть короче 2-х символов';
         }
         if (!User::checkEmail($userEmail)) {
             $errors[] = 'Неверный Email';
         }
         if (strlen($userComment) <= 0) {
             $errors[] = 'Ведите текст';
         }
         if ($errors == false) {
             $result = Product::addComment($userName, $userEmail, $userComment, $productId);
             header("Location: /product/{$productId}");
         }
     }
     require_once ROOT . '/views/product/view.php';
     return true;
 }
 /**
  * @param $productId
  * @return bool
  * Метод для вывода полной информации о одном товаре
  */
 public function actionView($productId)
 {
     $categories = Category::getCategoriesList();
     $product = Product::getProductById($productId);
     $args = array('categories' => $categories, 'product' => $product);
     return self::render('view', $args);
 }
Example #7
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 #8
0
 public function actionOrder()
 {
     $categories = Category::getCategoriesList();
     if (!$categories) {
         $categories = array();
     }
     $name = '';
     $phone = '';
     $comment = '';
     $userName = '';
     $sessionProducts = Cart::getSessionProducts();
     if ($sessionProducts) {
         $productsIdsArray = array_keys($sessionProducts);
         $products = Product::getProductsByIds($productsIdsArray);
         $totalPrice = Cart::getTotalPrice($products);
         $totalProductCount = Cart::countProductsInCart();
     }
     if (isset($_POST['submit'])) {
         $name = FunctionLibrary::clearStr($_POST['name']);
         $phone = FunctionLibrary::clearStr($_POST['phone']);
         $comment = nl2br(FunctionLibrary::clearStr($_POST['comment']));
         $errors = array();
         if (!User::checkName($name)) {
             $errors[] = 'Имя не может быть пустым.';
         }
         if (!User::checkPhone($phone)) {
             $errors[] = 'Невалидный номер телефона.';
         }
         if (!User::checkName($comment)) {
             $errors[] = 'Комментарий не может быть пустым.';
         }
         if (empty($errors)) {
             if (User::isUser()) {
                 $email = User::isLogged();
                 $user = User::getUserByEmail($email);
                 $userId = htmlentities($user['id']);
             } else {
                 $userId = false;
             }
             $result = Order::save($name, $phone, $comment, $userId, $sessionProducts);
             if ($result) {
                 $_SESSION['message'] = 'Заказ оформлен!';
                 Cart::annul();
                 FunctionLibrary::redirectTo('/cart');
             }
         }
     } else {
         if (!$sessionProducts) {
             FunctionLibrary::redirectTo('/');
         }
         if (User::isUser()) {
             $email = User::isLogged();
             $user = User::getUserByEmail($email);
             $userName = htmlentities($user['name']);
         }
     }
     require_once ROOT . '/views/cart/order.php';
     return true;
 }
Example #9
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;
 }
 public function actionView($productId)
 {
     $categories = array();
     $categories = Category::getCategoriesList();
     $product = Product::getProductById($productId);
     require_once ROOT . '/views/product/view.php';
     return true;
 }
Example #11
0
 /**
  * Action для главной страницы
  */
 public function actionIndex()
 {
     $categories = Category::getCategoriesList();
     $latestProducts = Product::getLatestProducts(6);
     $sliderProducts = Product::getRecommendedProducts();
     require_once ROOT . '/views/site/index.php';
     return true;
 }
Example #12
0
 public function actionAbout()
 {
     $categories = Category::getCategoriesList();
     if (!$categories) {
         $categories = array();
     }
     require_once ROOT . '/views/site/about.php';
     return true;
 }
 public function actionIndex()
 {
     #--Список категорий товаров для меню
     $catFromDb = new Category();
     $categories = $catFromDb->getCategoriesList();
     $prodFromDb = new Product();
     $latestProducts = $prodFromDb->getLatestProducts(3);
     require_once ROOT . '/views/site/index.php';
     return true;
 }
 public function actionIndex()
 {
     $categories = Category::getCategoriesList(false);
     if (!$categories) {
         $categories = array();
     }
     $message = FunctionLibrary::sessionMessage();
     require_once ROOT . '/views/admin-category/index.php';
     return true;
 }
 /**
  * Action для страницы просмотра товара
  * @param integer $productId <p>id товара</p>
  */
 public function actionView($id)
 {
     // Список категорий для левого меню
     $categories = array();
     $categories = Category::getCategoriesList();
     // Получаем инфомрацию о товаре
     $product = Product::getProductById($id);
     require_once ROOT . '/views/product/view.php';
     return true;
 }
 public function actionIndex()
 {
     $categories = array();
     $categories = Category::getCategoriesList();
     //getting method category
     $latestProduct = array();
     $latestProduct = Product::getLatestProduct(6);
     require_once ROOT . '/views/site/index.php';
     return true;
 }
 /**
  * @return bool
  * Метод для главной страницы сайта
  */
 public function actionIndex()
 {
     $categories = Category::getCategoriesList();
     //меню Модели(слева)
     $latestProducts = Product::getNewsProducts(6);
     //вывод последних 6 товаров
     $sliderProducts = Product::getTopProducts();
     //вывод самых популярных товаров
     $args = array('categories' => $categories, 'latestProducts' => $latestProducts, 'sliderProducts' => $sliderProducts);
     return self::render('index', $args);
 }
 /**
  * @param $categoryId
  * @param int $page
  * @return bool
  * Метод для вывода товаров категорий с нумерацией страниц
  */
 public function actionCategory($categoryId, $page = 1)
 {
     $categories = Category::getCategoriesList();
     $categoryProducts = Product::getProductListByCategory($categoryId, $page);
     $total = Product::getTotalProductsInCategory($categoryId);
     //общее кол-во товаров
     //создание постраничной навигации(общее кол-во товаров,текущая страница,на одной странице,ключ в роутах);
     $pagination = new Pagination($total, $page, 3, 'page-');
     $args = array('categories' => $categories, 'categoryProducts' => $categoryProducts, 'total' => $total, 'pagination' => $pagination, 'categoryId' => $categoryId);
     return self::render('category', $args);
 }
Example #19
0
 /**
  * Action для страницы "Категория товаров"
  */
 public function actionCategory($categoryId, $page = 1)
 {
     $categories = Category::getCategoriesList();
     $categoryProducts = Product::getProductsListByCategory($categoryId, $page);
     // Общее количетсво товаров (необходимо для постраничной навигации)
     $total = Product::getTotalProductsInCategory($categoryId);
     // Создаем объект Pagination - постраничная навигация
     $pagination = new Pagination($total, $page, Product::SHOW_BY_DEFAULT, 'page-');
     require_once ROOT . '/views/catalog/category.php';
     return true;
 }
 public function actionIndex()
 {
     $categories = array();
     $categories = Category::getCategoriesList();
     $latestProduct = array();
     $latestProduct = Product::getLatestProducts(6);
     $recomProdSlideList = array();
     $recomProdSlideList = Product::getRecomendedProduct();
     require_once ROOT . '/views/site/index.php';
     return true;
 }
 public function actionUpdate($id)
 {
     $categories = Category::getCategoriesList();
     if (!$categories) {
         $categories = array();
     }
     $product = Product::getProductById($id);
     if (!$product) {
         $product = array();
     }
     if (isset($_POST['submit'])) {
         $options['name'] = FunctionLibrary::clearStr($_POST['name']);
         $options['code'] = FunctionLibrary::clearInt($_POST['code']);
         $options['price'] = FunctionLibrary::clearFloat($_POST['price']);
         $options['brand'] = FunctionLibrary::clearStr($_POST['brand']);
         $options['category_id'] = FunctionLibrary::clearInt($_POST['category_id']);
         $options['availability'] = FunctionLibrary::clearInt($_POST['availability']);
         $options['is_new'] = FunctionLibrary::clearInt($_POST['is_new']);
         $options['is_recommended'] = FunctionLibrary::clearInt($_POST['is_recommended']);
         $options['status'] = FunctionLibrary::clearInt($_POST['status']);
         $options['description'] = FunctionLibrary::clearStr($_POST['description']);
         $errors = array();
         if (!User::checkName($options['name'])) {
             $errors[] = 'Название не может быть пустым.';
         }
         if ($id && empty($errors)) {
             $result = Product::updateProductById($id, $options);
             if (!$result) {
                 $message = 'Произошла ошибка при редактировании!';
             } else {
                 if (!empty($_FILES['image']['tmp_name'])) {
                     $fileName = $_FILES['image']['tmp_name'];
                     if (is_uploaded_file($fileName)) {
                         /*
                          * Следующие две строки для того чтобы
                          * иметь возможность поменять запись no-image
                          * в базе данных (а иначе поменяется только
                          * картинка в папке на сервере)
                          */
                         $imagePath = "/images/home/product{$id}.jpg";
                         $result = Product::putImageToDataBase($id, $imagePath);
                         if ($result) {
                             $destination = ROOT . "/template" . $imagePath;
                             move_uploaded_file($fileName, $destination);
                         }
                     }
                 }
                 FunctionLibrary::redirectTo('/admin/product');
             }
         }
     }
     require_once ROOT . '/views/admin-product/update.php';
     return true;
 }
Example #22
0
 public function actionView($productId)
 {
     $categories = array();
     $categories = Category::getCategoriesList();
     $product = Product::getProductById($productId);
     $view = new View();
     $view->categories = $categories;
     $view->product = $product;
     $view->display('product/view.php');
     return true;
 }
 public function actionCategory($categoryId, $page = 1)
 {
     #--Список категорий товаров для меню
     $catObj = new Category();
     $categories = $catObj->getCategoriesList();
     $prodObj = new Product();
     $categoryProducts = $prodObj->getProductsListByCategory($categoryId, $page);
     $total = $prodObj->getTotalProductsInCategory($categoryId);
     $pagination = new Pagination($total, $page, Product::SHOW_BY_DEFAULT, 'page-');
     require_once ROOT . '/views/catalog/category.php';
     return true;
 }
 public function actionCategory($categoryId, $page = 1)
 {
     $categories = array();
     $categories = Category::getCategoriesList();
     $categoryProducts = array();
     $categoryProducts = Product::getProductsListByCategory($categoryId, $page);
     $total = Product::getTotalProductsInCategory($categoryId);
     //Создаем обьект Pagination - постраничная навигация
     $pagination = new Pagination($total, $page, Product::SHOW_BY_DEFAULT, 'page-');
     require_once ROOT . '/views/catalog/category.php';
     return true;
 }
Example #25
0
 public function actionIndex()
 {
     // Список категорий для левого меню
     $categories = Category::getCategoriesList();
     // Список последних товаров
     $latestProducts = Product::getLatestProducts(9);
     // Список товаров для слайдера
     $sliderProducts = Product::getRecommendedProducts();
     // Подключаем вид
     require_once ROOT . '/views/site/index.php';
     return true;
 }
 public function actionView($productId)
 {
     #--Список категорий товаров для меню
     #$categories 	= array();
     $catFromDb = new Category();
     $categories = $catFromDb->getCategoriesList();
     #$product 		= array();
     $prodFromDb = new Product();
     $product = $prodFromDb->getProductById($productId);
     require_once ROOT . '/views/product/view.php';
     return true;
 }
Example #27
0
 public function actionCategory($categoryId, $page = 1)
 {
     $categories = array();
     $categories = Category::getCategoriesList();
     $categoryProducts = array();
     $categoryProducts = Product::getProductsListByCategory($categoryId, $page);
     $total = Product::getTotalProductsInCategory($categoryId);
     //creem obiectul paginarii - construim navigatia
     $pagination = new Pagination($total, $page, Product::SHOW_BY_DEFAULT, 'page-');
     require_once ROOT . '/views/catalog/category.php';
     return true;
 }
Example #28
0
 public function actionIndex()
 {
     $categories = array();
     $categories = Category::getCategoriesList();
     $latestProducts = array();
     $latestProducts = Product::getLatestProducts(6);
     //        var_dump($latestProducts);die;
     $view = new View();
     $view->category = $categories;
     $view->latestProducts = $latestProducts;
     $view->display('site/index.php');
 }
 public function actionIndex()
 {
     $catObj = new Category();
     $categories = $catObj->getCategoriesList();
     $productsInCart = Cart::getProducts() ? Cart::getProducts() : false;
     if ($productsInCart) {
         $productIds = array_keys($productsInCart);
         $products = Product::getProductsByIds($productIds);
         $totalPrice = Cart::getTotalPrice($products);
     }
     require_once ROOT . '/views/cart/index.php';
     return true;
 }
 /**
  * Action для главной страницы
  */
 public function actionIndex($params = 0)
 {
     $categories = array();
     // Cписок категорий для левого меню
     $categories = Category::getCategoriesList();
     $latestProducts = array();
     // Cписок последних товаров
     $latestProducts = Product::getLatestProducts();
     // Список рекомендуемых товаров
     $sliderProducts = Product::getRecommendedProducts();
     require_once ROOT . '/views/site/index.php';
     return true;
 }