Вход Регистрация
Файл: mg-core/controllers/catalog.php
Строк: 104
<?php

/**
 * Контроллер: Catalog
 *
 * Класс Controllers_Catalog обрабатывает действия пользователей в каталоге интернет-магазина.
 * - Формирует список товаров для конкретной страницы;
 * - Добавляет товар в корзину.
 *
 * @author Авдеев Марк <mark-avdeev@mail.ru>
 * @package moguta.cms
 * @subpackage Controller
 */
class Controllers_Catalog extends BaseController {

  function 
__construct() {
    
$settings MG::get('settings');
    
// Если нажата кнопка купить.
    
$_REQUEST['category_id'] = URL::getQueryParametr('category_id');

    if (!empty(
$_REQUEST['inCartProductId'])) {
      
$cart = new Models_Cart;
      
$property $cart->createProperty($_POST);
      
$cart->addToCart($_REQUEST['inCartProductId'], $_REQUEST['amount_input'], $property);
      
SmalCart::setCartData();
      
MG::redirect('/cart');
    }
    
    if (!empty(
$_REQUEST['fastsearch'])) {
      
$this->getSearchData();  
    }

    
$countСatalogProduct $settings['countСatalogProduct'];
    
// Показать первую страницу выбранного раздела.
    
$page 1;

    
// Запрашиваемая страница.
    
if (isset($_REQUEST['p'])) {
      
$page $_REQUEST['p'];
    }

    
$model = new Models_Catalog;

    
// Если происходит поиск по ключевым словам.
    
$keyword URL::getQueryParametr('search');

    if (!empty(
$keyword)) {
      
$items $model->getListProductByKeyWord($keywordfalsetrue);   
      
$searchData = array('keyword' => $keyword'count' => $items['numRows']);
    } else {

      
// Получаем список вложенных категорий, для вывода всех продуктов, на страницах текущей категории.
      
$model->categoryId MG::get('category')->getCategoryList($_REQUEST['category_id']);

      
// В конец списка, добавляем корневую текущую категорию.
      
$model->categoryId[] = $_REQUEST['category_id'];

      
// Передаем номер требуемой страницы, и количество выводимых объектов.
      
$countСatalogProduct $settings['countСatalogProduct'];
      
$items $model->getList($countСatalogProductfalsetrue);
    
    }
              
      
$settings MG::get('settings');     
      if(empty(
$items['catalogItems'])){
        
$items['catalogItems'] = array();      
      }else{
          foreach (
$items['catalogItems'] as $item) {
            if(
$item['id']){
            
$productIds[] = $item['id'];      
            }
          }
   
      
$product = new Models_Product;
      
$blocksVariants = empty($productIds)?null:$product->getBlocksVariantsToCatalog($productIds);
      
$blockedProp $product->noPrintProperty();

      
$actionButton MG::getSetting('actionInCatalog') === "true" 'actionBuy' 'actionView';

      foreach (
$items['catalogItems'] as $k => $item) {
        
$imagesUrl explode("|"$item['image_url']);
        
$items['catalogItems'][$k]["image_url"] = "";
        if (!empty(
$imagesUrl[0])) {
          
$items['catalogItems'][$k]["image_url"] = $imagesUrl[0];
        }

        
$items['catalogItems'][$k]['title'] = MG::modalEditor('catalog'$item['title'], 'edit'$item["id"]);

        if(
$items['catalogItems'][$k]['count']==0){
          
$buyButton $items['catalogItems'][$k]['actionView'];          
        }else{
          
$buyButton $items['catalogItems'][$k][$actionButton]; 
        }

          
// Легкая форма без характеристик.
          
$liteFormData $product->createPropertyForm($param = array(
            
'id' => $item['id'],
            
'maxCount' => $item['count'],
            
'productUserFields' => null,
            
'action' => "/catalog",
            
'method' => "POST",
            
'ajax' => true,
            
'blockedProp' => $blockedProp,
            
'noneAmount' => true,
            
'titleBtn' => "В корзину 888",
            
'blockVariants' => $blocksVariants[$item['id']],
            
'buyButton' => $buyButton    
          
));
  
        
         
$items['catalogItems'][$k]['liteFormData'] = $liteFormData['html'];

         
$buyButton $items['catalogItems'][$k]['liteFormData'];
         
$items['catalogItems'][$k]['buyButton'] = $buyButton;
      }
    }
    
$categoryDesc MG::get('category')->getDesctiption($_REQUEST['category_id']);

    if (
$_REQUEST['category_id']) {
      
$categoryDesc MG::inlineEditor(PREFIX.'category'"html_content"$_REQUEST['category_id'], $categoryDesc);
    }
   
    
$catImg SITE.MG::get('category')->getImageCategory($_REQUEST['category_id']);
    
    
$data = array(
      
'items' => $items['catalogItems'],
      
'titeCategory' => $model->currentCategory['title'],
      
'cat_desc' => $categoryDesc,
      
'cat_img' => $catImg,
      
'pager' => $items['pager'],
      
'searchData' => empty($searchData) ? '' $searchData,
      
'meta_title' => !empty($model->currentCategory['meta_title']) ? $model->currentCategory['meta_title'] : $model->currentCategory['title'],
      
'meta_keywords' => !empty($model->currentCategory['meta_keywords']) ? $model->currentCategory['meta_keywords'] : "товары,продукты,изделия",
      
'meta_desc' => !empty($model->currentCategory['meta_desc']) ? $model->currentCategory['meta_desc'] : "В каталоге нашего магазина есть все.",
      
'currency' => $settings['currency'],
      
'actionButton' => $actionButton
    
);

    if (
URL::isSection('catalog')) {  
      
$html MG::get('pages')->getPageByUrl('catalog');
      
$html['html_content'] = MG::inlineEditor(PREFIX.'page'"html_content"$html['id'], $html['html_content']);
      
$data['meta_title'] = $html['meta_title'] ? $html['meta_title'] : $html['title'];
      
$data['meta_title'] = $data['meta_title'] ? $data['meta_title'] : $model->currentCategory['title'];
      
$data['meta_keywords'] = $html['meta_keywords'];
      
$data['meta_desc'] = $html['meta_desc'];
      
$data['cat_desc'] = $html['html_content'];
    }
    if (
$keyword) {
      
$data['meta_title'] = 'Поиск по фразе: '.$keyword;
    }

    
$this->data $data;
  }

       
/**
   * Получает список продуктов при вводе в поле поиска
   */
  
public function getSearchData() {
    
$keyword URL::getQueryParametr('text');
    if (!empty(
$keyword)) {
      
$catalog = new Models_Catalog;
      
$items $catalog->getListProductByKeyWord($keywordtruetrue);

      
$searchData = array(
        
'status' => 'success',
        
'item' => array(
          
'keyword' => $keyword,
          
'count' => $items['numRows'],
          
'items' => $items,
        ),
        
'currency' => MG::getSetting('currency')
      );
    }

    echo 
json_encode($searchData);
    exit;
  }
}
Онлайн: 1
Реклама