Пример #1
0
 public function index()
 {
     //error_reporting(E_ALL);ini_set('display_errors', 1);
     $product = Product::getInstanceByID($this->request->get('id'), true);
     $mirror = null;
     foreach ($product->getRelatedRecordSetArray('ProductImage', select()) as $image) {
         if ($image['title_lang'] == 'Virtual Mirror') {
             $mirror = $image['urls'][3];
         }
     }
     if ($mirror) {
         $response = new BlockResponse();
         $response->set('mirror', $mirror);
         return $response;
     }
 }
Пример #2
0
 /**
  *  View shopping cart contents
  */
 public function addConfirmation()
 {
     if (!$this->user->isAnonymous()) {
         if (!$this->order->user->get() || $this->order->user->get()->getID() != $this->user->getID()) {
             $this->order->setUser($this->user);
             $this->order->save();
         }
     } else {
         if ($this->config->get('DISABLE_GUEST_CART')) {
             return new ActionRedirectResponse('user', 'login', array('returnPath' => true));
         }
     }
     $response = new BlockResponse();
     $response->set('msg', $this->request->get('message'));
     $response->set('error', $this->request->get('err'));
     $response->set('cart', $this->order->toArray());
     return $response;
 }
Пример #3
0
 public function blockQuickNavBlock()
 {
     $response = new BlockResponse();
     // manufacturer list
     ClassLoader::import('application.controller.ManufacturersController');
     $controller = new ManufacturersController($this->application);
     $man = $controller->index();
     $response->set('manufacturers', $man->get('manufacturers'));
     $response->set('rootCat', $man->get('rootCat'));
     // category tree
     $cat = $this->dynamicCategoryMenuBlock();
     $response->set('categories', $cat->get('categories'));
     return $response;
 }
Пример #4
0
 public function toolbarBlock()
 {
     $response = new BlockResponse();
     $response->set('dropButtons', BackendToolbarItem::sanitizeItemArray(BackendToolbarItem::getUserToolbarItems(BackendToolbarItem::TYPE_MENU)));
     return $response;
 }
Пример #5
0
 public function purchaseVariationsBlock()
 {
     $variations = $this->getVariations();
     if (!$variations) {
         return null;
     }
     $prefixes = $ids = array();
     foreach ($variations['products'] as $product) {
         $prefixes[] = 'product_' . $product['ID'] . '_';
         $ids[] = $product['ID'];
     }
     // load product instances
     Product::getRecordSet(select(in('Product.ID', $ids)));
     foreach ($variations['products'] as $product) {
         $quant = $this->getQuantities(Product::getInstanceByID($product['ID']));
         $quant = array('' => 0) + $quant;
         $quantities[$product['ID']] = $quant;
     }
     // check if there price is the same for all variations
     $curr = $this->getRequestCurrency();
     $samePrice = true;
     foreach ($variations['products'] as $product) {
         if (!empty($product['price_' . $curr]) && 0 != $product['price_' . $curr]) {
             $samePrice = false;
             break;
         }
     }
     $response = new BlockResponse('variations', $variations);
     $response->set('cartForm', $this->buildAddToCartForm($this->getOptions(), array(), $prefixes));
     $response->set('quantities', $quantities);
     $response->set('samePrice', $samePrice);
     return $response;
 }
Пример #6
0
 private function productForm($isExisting)
 {
     ClassLoader::import('application.LiveCartRenderer');
     ClassLoader::import('application.model.presentation.CategoryPresentation');
     $response = new BlockResponse();
     $response->set('themes', array_merge(array(''), LiveCartRenderer::getThemeList()));
     $form = $this->buildForm($isExisting);
     // status values
     $status = array(0 => $this->translate('_disabled'), 1 => $this->translate('_enabled'));
     // product types
     $types = array(Product::TYPE_TANGIBLE => $this->translate('_tangible'), Product::TYPE_DOWNLOADABLE => $this->translate('_intangible'), Product::TYPE_BUNDLE => $this->translate('_bundle'), Product::TYPE_RECURRING => $this->translate('_recurring'));
     //$product->type->set(substr($this->config->get('DEFAULT_PRODUCT_TYPE'), -1));
     $response->set("productForm", $form);
     $response->set("productTypes", $types);
     $response->set("productStatuses", $status);
     $response->set("baseCurrency", $this->application->getDefaultCurrency()->getID());
     $response->set("otherCurrencies", $this->application->getCurrencyArray(LiveCart::EXCLUDE_DEFAULT_CURRENCY));
     $response->set("shippingClasses", $this->getSelectOptionsFromSet(ShippingClass::getAllClasses()));
     $response->set("taxClasses", $this->getSelectOptionsFromSet(TaxClass::getAllClasses()));
     // get user groups
     $f = new ARSelectFilter();
     $f->setOrder(new ARFieldHandle('UserGroup', 'name'));
     $groups[0] = $this->translate('_all_customers');
     foreach (ActiveRecordModel::getRecordSetArray('UserGroup', $f) as $group) {
         $groups[$group['ID']] = $group['name'];
     }
     $groups[''] = '';
     $response->set('userGroups', $groups);
     return $response;
 }
Пример #7
0
 public function invoicesMenuBlock()
 {
     if ($this->user->isAnonymous()) {
         return;
     }
     $response = new BlockResponse();
     $hasPendingInvoices = $this->user->hasPendingInvoices();
     $response->set('hasPendingInvoices', $hasPendingInvoices);
     $response->set('hasInvoices', $hasPendingInvoices ? true : $this->user->hasInvoices());
     // if user has pending invoice, he invoices (at least one pending invoice)
     return $response;
 }
Пример #8
0
 public function __toString()
 {
     return sprintf('<div id="content_%1$s" class="su-content su-content-%2$s su-content-%2$s-%1$s">%3$s</div>', $this->block->getId(), $this->block->getComponentName(), parent::__toString());
 }
Пример #9
0
 public function boxFilterTopBlock()
 {
     if (!$this->productFilter) {
         $this->index();
     }
     if ($this->config->get('TOP_FILTER_CONTINUOS')) {
         $groups = $this->getCategory()->getFilterGroupSet()->filter('displayLocation', FilterGroup::LOC_TOP);
         // find filters that will be included for selection automatically
         $appliedFilters = array();
         foreach ($this->filters as $filter) {
             if ($filter instanceof PriceFilter && !$this->config->get('TOP_FILTER_PRICE') || $filter instanceof ManufacturerFilter && !$this->config->get('TOP_FILTER_MANUFACTURER') || $filter instanceof SearchFilter || $filter instanceof SpecificationFilterInterface && $filter->getFilterGroup()->displayLocation->get() != FilterGroup::LOC_TOP) {
                 $appliedFilters[] = $filter;
             }
         }
         $productFilter = clone $this->productFilter;
         $productCount = new ProductCount($productFilter, $this->application);
         if ($this->config->get('TOP_FILTER_PRICE')) {
             $productFilter->setFilters($appliedFilters);
             $priceFilters = array('filters' => $this->removeEmptyFilters($this->createPriceFilterSet($productCount->getCountByPrices(true))), 'appliedFilters' => $this->transformToArray($appliedFilters));
             foreach ($this->filters as $index => $filter) {
                 if ($filter instanceof PriceFilter) {
                     $appliedFilters[] = $filter;
                 }
             }
         }
         if ($this->config->get('TOP_FILTER_MANUFACTURER')) {
             $productFilter->setFilters($appliedFilters);
             $manFilters = array('filters' => $this->removeEmptyFilters($this->createManufacturerFilterSet($productCount->getCountByManufacturers(true))), 'appliedFilters' => $this->transformToArray($appliedFilters));
             foreach ($this->filters as $index => $filter) {
                 if ($filter instanceof ManufacturerFilter) {
                     $appliedFilters[] = $filter;
                 }
             }
         }
         $categoryFilters = $this->getCategory()->getFilterSet();
         $filterGroups = $this->getCategory()->getFilterGroupSet()->filter('displayLocation', FilterGroup::LOC_TOP);
         $groups = array();
         foreach ($filterGroups as $group) {
             $appliedGroupFilter = $this->getFiltersByGroup($this->filters, $group);
             $groups[$group->getID()] = $group->toArray();
             if (isset($stop)) {
                 continue;
             }
             $productFilter->setFilters($appliedFilters);
             $c = $productCount->getCountByFilterSet($this->getFiltersByGroup($categoryFilters, $group), true);
             $groups[$group->getID()] = array_shift($this->createFilterGroupSet(array($groups[$group->getID()]), $c));
             $groups[$group->getID()]['filters'] = $this->removeEmptyFilters($groups[$group->getID()]['filters']);
             $groups[$group->getID()]['appliedFilters'] = $this->transformToArray($appliedFilters);
             if (!$appliedGroupFilter) {
                 $stop = true;
             } else {
                 $appliedFilters[] = array_shift($appliedGroupFilter);
             }
         }
         $response = new BlockResponse();
         if (isset($manFilters)) {
             $response->set('manGroup', $manFilters);
         }
         if (isset($priceFilters)) {
             $response->set('priceGroup', $priceFilters);
         }
         $response->set('filters', $this->getAppliedFilterArray());
         $response->set('category', $this->getCategory()->toArray());
         $response->set('groups', $groups);
         return $response;
     } else {
         return $this->boxFilterBlock(false);
     }
 }
Пример #10
0
 /**
  * Add form
  *
  * @role !category.create
  *
  * @return ActionRedirectResponse
  */
 public function add()
 {
     $response = new BlockResponse();
     $response->set('form', $this->buildAddForm());
     return $response;
 }