/** * 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; }
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; } }
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; }
public function toolbarBlock() { $response = new BlockResponse(); $response->set('dropButtons', BackendToolbarItem::sanitizeItemArray(BackendToolbarItem::getUserToolbarItems(BackendToolbarItem::TYPE_MENU))); return $response; }
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; }
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; }
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; }
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); } }
/** * Add form * * @role !category.create * * @return ActionRedirectResponse */ public function add() { $response = new BlockResponse(); $response->set('form', $this->buildAddForm()); return $response; }