public function index() { // get filter to select manufacturers of active products only $rootCat = Category::getRootNode(); $f = new ARSelectFilter(); $productFilter = new ProductFilter($rootCat, $f); $ids = $counts = array(); foreach (ActiveRecordModel::getDataBySQL('SELECT DISTINCT(manufacturerID), COUNT(*) AS cnt FROM Product ' . $f->createString() . ' GROUP BY manufacturerID') as $row) { $ids[] = $row['manufacturerID']; $counts[$row['manufacturerID']] = $row['cnt']; } $f = new ARSelectFilter(new InCond(new ARFieldHandle('Manufacturer', 'ID'), $ids)); $f->mergeCondition(new NotEqualsCond(new ARFieldHandle('Manufacturer', 'name'), '')); $f->setOrder(new ARFieldHandle('Manufacturer', 'name')); $manufacturers = ActiveRecordModel::getRecordSetArray('Manufacturer', $f); foreach ($manufacturers as &$manufacturer) { $manufacturer['url'] = $this->getManufacturerFilterUrl($manufacturer); } $this->addBreadCrumb($this->translate('_manufacturers'), ''); $response = new ActionResponse(); $response->setReference('manufacturers', $manufacturers); $response->set('counts', $counts); $response->set('rootCat', $rootCat->toArray()); return $response; }
public function edit() { $newsletter = ActiveRecordModel::getInstanceById('NewsletterMessage', $this->request->get('id'), ActiveRecordModel::LOAD_DATA); $form = $this->getForm(); $form->setData($newsletter->toArray()); $form->set('users', 1); $form->set('subscribers', 1); $response = new ActionResponse('form', $form); $groupsArray = array_merge(ActiveRecord::getRecordSetArray('UserGroup', select()), array(array('ID' => null, 'name' => $this->translate('Customers')))); usort($groupsArray, array($this, 'sortGroups')); $response->set('groupsArray', $groupsArray); $newsletterArray = $newsletter->toArray(); $text = strlen($newsletterArray['text']); $html = strlen($newsletterArray['html']); if ($text && $html) { $newsletterArray['format'] = self::FORMAT_HTML_TEXT; } else { if ($text) { $newsletterArray['format'] = self::FORMAT_TEXT; } else { if ($html) { $newsletterArray['format'] = self::FORMAT_HTML; } } } $response->set('newsletter', $newsletterArray); $response->set('sentCount', $newsletter->getSentCount()); $response->set('recipientCount', $this->getRecipientCount($form->getData())); return $response; }
public function lastViewed() { $response = new ActionResponse(); $response->set('randomToken', substr(md5(time() . mt_rand(1, 9999999999)), 0, 8)); $response->set('lastViewed', BackendToolbarItem::sanitizeItemArray(BackendToolbarItem::getUserToolbarItems(array(BackendToolbarItem::TYPE_PRODUCT, BackendToolbarItem::TYPE_USER, BackendToolbarItem::TYPE_ORDER), null, 'DESC'))); return $response; }
/** * Handles LiveCart update process */ public function update() { $dir = ClassLoader::getRealPath('update') . '/' . $this->getCurrentVersion(); if (!is_dir($dir)) { return new RawResponse('Update directory not found'); } $progress = array(); $errors = array(); // load SQL dump file $sql = $dir . '/update.sql'; if (file_exists($sql)) { try { Installer::loadDatabaseDump(file_get_contents($sql), true, $this->request->get('force')); $progress['sql'] = true; } catch (Exception $e) { $errors['sql'] = $e->getMessage(); } } $this->application->getConfigContainer()->clearCache(); // execute custom update code $code = $dir . '/custom.php'; if (file_exists($code)) { ob_start(); if (!(include $code)) { $errors['code'] = ob_get_contents(); } else { $progress['code'] = true; } ob_end_clean(); } $response = new ActionResponse(); $response->set('progress', $progress); $response->set('errors', $errors); return $response; }
public function index() { $response = new ActionResponse(); $response->set('isCustomizationModeEnabled', $this->application->isCustomizationMode()); $response->set('isTranslationModeEnabled', $this->application->isTranslationMode()); return $response; }
public function index() { $response = new ActionResponse(); $response->set('id', $this->request->get('id')); $response->set('ajax', $this->request->get('ajax')); $response->set('description', HTTPStatusException::getCodeMeaning($this->request->get('id'))); return $response; }
public function index() { $response = new ActionResponse(); $response->set('form', $this->getForm()); $response->set('carts', $this->getDrivers()); $response->set('dbTypes', array('mysql' => 'MySQL')); $response->set('recordTypes', LiveCartImporter::getRecordTypes()); return $response; }
public function index() { $category = Category::getInstanceByID($this->request->get('id'), Category::LOAD_DATA); $types = ProductRatingType::getCategoryRatingTypes($category)->toArray(); $response = new ActionResponse('typeList', $types); $response->set('form', $this->buildForm()); $response->set('id', $this->request->get('id')); return $response; }
public function edit() { $group = UserGroup::getInstanceByID((int) $this->request->get('id'), true); $form = $this->createUserGroupForm($group); $response = new ActionResponse(); $response->set('userGroup', $group->toArray()); $response->set('userGroupForm', $form); $group->getSpecification()->setFormResponse($response, $form); return $response; }
public function edit() { $tax = Tax::getInstanceByID((int) $this->request->get('id'), true); $form = $this->createTaxForm($tax); $form->setData($tax->toArray()); $response = new ActionResponse(); $response->set('tax', $tax->toArray()); $response->set('taxForm', $form); return $this->appendTaxRates($response, $tax->getID()); }
public function edit() { $class = ShippingClass::getInstanceByID((int) $this->request->get('id'), true); $form = $this->createClassForm($class); $form->setData($class->toArray()); $response = new ActionResponse(); $response->set('class', $class->toArray()); $response->set('classForm', $form); return $response; }
/** * Specification field index page * * @return ActionResponse */ public function index() { $categoryID = $this->request->get('id'); $defaultSpecFieldValues = array('ID' => $categoryID . '_new', 'name' => array(), 'description' => array(), 'handle' => '', 'values' => array(), 'rootId' => 'specField_item_new_' . $categoryID . '_form', 'type' => EavFieldCommon::TYPE_TEXT_SIMPLE, 'dataType' => EavFieldCommon::DATATYPE_TEXT, 'categoryID' => $categoryID, 'isDisplayed' => true); $response = new ActionResponse(); $response->set('categoryID', $categoryID); $response->set('configuration', $this->getSpecFieldConfig()); $response->set('specFieldsList', $defaultSpecFieldValues); $response->set('specFieldsWithGroups', $this->getParent($categoryID)->getSpecFieldsWithGroupsArray()); return $response; }
public function index() { $productID = (int) $this->request->get('id'); $product = Product::getInstanceByID($productID, ActiveRecord::LOAD_DATA); $response = new ActionResponse(); $response->set('ownerID', $productID); $response->set('categoryID', $product->category->get()->getID()); $response->set('items', ProductBundle::getBundledProductArray($product)); $currency = $this->application->getDefaultCurrency(); $response->set('total', $currency->getFormattedPrice(ProductBundle::getTotalBundlePrice($product, $currency))); return $response; }
public function index() { $f = new ARSelectFilter(); $f->setOrder(new ARFieldHandle('EyeExamSchedule', 'doctorName'), 'ASC'); $f->setOrder(new ARFieldHandle('EyeExamSchedule', 'date'), 'DESC'); $f->setOrder(new ARFieldHandle('EyeExamSchedule', 'time'), 'ASC'); $arrEyeSchedule = ActiveRecordModel::getRecordSetArray('EyeExamSchedule', $f); $response = new ActionResponse('eyeExamList', self::loadFormattedReferences($arrEyeSchedule)); $response->set('form', $this->buildForm()); $curDate = date("Y-m-d"); $response->set('curDate', $curDate); return $response; }
public function edit() { $this->loadLanguageFile('backend/Product'); $rpp = RecurringProductPeriod::getInstanceByID((int) $this->request->get('id'), ActiveRecord::LOAD_DATA); $rpp = $rpp->toArray(); $form = $this->createForm($rpp); $response = new ActionResponse(); $response->set('recurringProductPeriod', $rpp); $response->set('form', $form); $response->set('periodTypes', array_map(array($this, 'translate'), RecurringProductPeriod::getAllPeriodTypes(RecurringProductPeriod::PERIOD_TYPE_NAME_PLURAL))); $response->set('currencies', $this->application->getCurrencyArray(true)); return $response; }
/** * Filters group index page * * @return ActionResponse */ public function index() { $response = new ActionResponse(); $categoryID = (int) $this->request->get('id'); $category = Category::getInstanceByID($categoryID); $specFieldsList = $category->getSpecificationFieldSet(); $blankFilter = array('ID' => $categoryID . '_new', 'name' => array(), 'rootId' => 'filter_item_new_' . $categoryID . '_form', 'categoryID' => $categoryID, 'specFields' => $this->getSpecFieldOptions($category->getSpecificationFieldArray())); $response->set('filters', $this->createFiltersInGroupsCountArray($category->getFilterGroupSet())); $response->set('blankFilter', $blankFilter); $response->set('categoryID', $categoryID); $response->set('configuration', $this->getConfig()); $response->set('defaultLangCode', $this->application->getDefaultLanguageCode()); return $response; }
/** * Individual settings section */ public function edit() { $this->config->updateSettings(); $defLang = $this->application->getDefaultLanguageCode(); $languages = $this->application->getLanguageArray(LiveCart::INCLUDE_DEFAULT); $sectionId = $this->request->get('id'); $values = $this->config->getSettingsBySection($sectionId); $validation = $this->getValidationRules($values); $form = $this->getForm($values, $validation); $types = $multiLingualValues = array(); if (!$values) { return new RawResponse(); } foreach ($values as $key => $value) { if ($this->config->isMultiLingual($key) && 'string' == $value['type'] || 'longtext' == $value['type']) { foreach ($languages as $lang) { $form->set($key . ($lang != $defLang ? '_' . $lang : ''), $this->config->getValueByLang($key, $lang)); } $multiLingualValues[$key] = true; } else { $form->set($key, $this->config->get($key)); } $types[$key] = $value['type']; } $response = new ActionResponse(); $response->set('form', $form); $response->set('title', $this->translate($this->config->getSectionTitle($sectionId))); $response->set('values', $values); $response->set('types', $types); $response->set('id', $sectionId); $response->set('sectionKey', array_pop(explode('.', $sectionId))); $response->set('layout', $this->config->getSectionLayout($sectionId)); $response->set('multiLingualValues', $multiLingualValues); return $response; }
public function index() { $dir = getcwd(); @chdir('/'); $root = array('parent' => 0, 'ID' => getcwd(), 'name' => getcwd(), 'childrenCount' => 22); $response = new ActionResponse(); $response->set('directoryList', $this->getSubDirectories(getcwd())); $response->set('root', array(0 => $root)); $response->set('current', $dir); $this->setGridResponse($response); $response->set('offset', 0); $response->set('data', ''); //print_r($response->getData()); return $response; }
public function upload() { $request = $this->getRequest(); $theme = $request->get('theme'); $tfh = ThemeFile::getNewInstance($request->get('theme')); $res = $tfh->processFileUpload('file', $request->get('filename'), $request->get('orginalFileName')); $this->setLayout('iframeJs'); $response = new ActionResponse(); $response->set('theme', $theme); $response->set('result', json_encode($tfh->getFiles())); if (is_array($res)) { $response->set('highlightFileName', $res['filename']); } return $response; }
public function lastViewed() { $request = $this->getRequest(); $where = $request->get('where'); $response = new ActionResponse(); $response->set('randomToken', substr(md5(time() . mt_rand(1, 9999999999)), 0, 8)); $response->set('where', $where); $lastViewed = BackendToolbarItem::sanitizeItemArray(BackendToolbarItem::getUserToolbarItems(array(BackendToolbarItem::TYPE_PRODUCT, BackendToolbarItem::TYPE_USER, BackendToolbarItem::TYPE_ORDER), null, 'DESC')); $itemsByType = array(); foreach ($lastViewed as $item) { $itemsByType[$item['type']][] = $item; } $response->set('itemsByType', $itemsByType); return $response; }
/** * Main settings page */ public function index() { $f = new ARSelectFilter(); $f->setOrder(new ARFieldHandle('StaticPage', 'position')); $f->setOrder(new ARFieldHandle('StaticPage', 'parentID')); $s = ActiveRecordModel::getRecordSetArray('StaticPage', $f); $pages = array(); foreach ($s as $page) { $pointers[$page['ID']] = array('title' => $page['title_lang'], 'id' => $page['ID'], 'parentID' => $page['parentID']); } foreach ($pointers as $page) { if ($page['parentID'] && !empty($pointers[$page['parentID']])) { $root =& $pointers[$page['parentID']]; } else { $root =& $pages; } $root['children'][] =& $pointers[$page['id']]; } $response = new ActionResponse(); $response->set('pages', json_encode($pages)); $form = $this->getForm(); $page = StaticPage::getNewInstance(); $page->getSpecification()->setFormResponse($response, $form); $response->set('form', $form); $response->set('page', $page->toArray()); return $response; }
/** * Creates new relationship * * @role update */ public function add() { $productID = $this->request->get('relatedownerID'); $ownerID = $this->request->get('id'); $list = ActiveRecordModel::getInstanceById('ProductList', $ownerID, ActiveRecordModel::LOAD_DATA); $product = Product::getInstanceByID($productID, Product::LOAD_DATA, array('ProductImage')); if (!$list->contains($product)) { $list->addProduct($product); $response = new ActionResponse(); $response->set('product', $product->toArray()); $response->set('added', true); return $response; } else { return new JSONResponse(array('error' => $this->translate('_err_multiple'))); } }
public function index() { $order = CustomerOrder::getInstanceById($this->request->get('id')); $notes = $order->getNotes(); foreach ($notes as $note) { if (!$note->isRead->get() && !$note->isAdmin->get()) { $note->isRead->set(true); $note->save(); } } $response = new ActionResponse(); $response->set('form', $this->buildOrderNoteForm()); $response->set('order', $order->toArray()); $response->set('notes', $notes->toArray()); return $response; }
public function index() { $this->loadLanguageFile('User'); $response = new ActionResponse('email', $this->request->get('email')); $response->setHeader('NeedLogin', 1); $response->set('return', $this->request->get('return')); return $response; }
public function index() { $f = new ARSelectFilter(); $f->setOrder(new ARFieldHandle('NewsPost', 'position'), 'DESC'); $response = new ActionResponse('newsList', ActiveRecordModel::getRecordSetArray('NewsPost', $f)); $response->set('form', $this->buildForm()); return $response; }
/** * Displays category form (for creating a new category or modifying an existing one) * * @role !category * * @return ActionResponse */ public function form() { ClassLoader::import('application.LiveCartRenderer'); ClassLoader::import('application.model.presentation.CategoryPresentation'); $this->loadLanguageFile('backend/Settings'); $category = Category::getRootNode(); $form = $this->buildForm($category); $response = new ActionResponse("catalogForm", $form); $response->set('themes', array_merge(array(''), LiveCartRenderer::getThemeList())); $listStyles = array(); foreach (array('LIST', 'GRID', 'TABLE') as $style) { $listStyles[$style] = $this->translate($style); } $response->set('listStyles', array_merge(array(''), $listStyles)); $category->getSpecification()->setFormResponse($response, $form); return $response; }
public function edit() { $review = ActiveRecordModel::getInstanceById('ProductReview', $this->request->get('id'), ProductReview::LOAD_DATA, array('Product')); //$manufacturer->getSpecification(); $response = new ActionResponse('review', $review->toArray()); $form = $this->buildForm($review); $form->setData($review->toArray()); // get ratings foreach ($review->getRelatedRecordSetArray('ProductRating', new ARSelectFilter()) as $rating) { $form->set('rating_' . $rating['ratingTypeID'], $rating['rating']); } $form->set('rating_', $review->rating->get()); //$manufacturer->getSpecification()->setFormResponse($response, $form); $response->set('form', $form); $response->set('ratingTypes', ProductRatingType::getProductRatingTypes($review->product->get())->toArray()); $options = range(1, $this->config->get('RATING_SCALE')); $response->set('ratingOptions', array_combine($options, $options)); return $response; }
public function index() { $this->loadLanguageFile('Category'); $inst = SearchableModel::getInstanceByModelClass($this->request->get('type')); if (!$inst) { return null; } $query = $this->request->get('q'); $f = $inst->getSelectFilter($query); $perPage = $this->config->get('SEARCH_MODEL_PER_PAGE'); $page = $this->request->get('page', 1); $f->setLimit($perPage, $perPage * ($page - 1)); $response = new ActionResponse(); $response->set('results', $this->fetchData($inst, $f)); $response->set('page', $page); $response->set('query', $query); $response->set('perPage', $perPage); $response->set('url', $this->router->createUrl(array('controller' => 'search', 'action' => 'index', 'query' => array('type' => $inst->getClassName(), 'q' => $query, 'page' => '0')))); return $response; }
public function index() { $this->loadLanguageFile('backend/abstract/ActiveGridQuickEdit'); $this->updateApplicationUri(); // order stats $conditions = array('last' => new EqualsOrMoreCond(new ARFieldHandle('CustomerOrder', 'dateCompleted'), time() - 86400), 'new' => new IsNullCond(new ARFieldHandle('CustomerOrder', 'status')), 'processing' => new EqualsCond(new ARFieldHandle('CustomerOrder', 'status'), CustomerOrder::STATUS_PROCESSING), 'total' => new EqualsCond(new ARFieldHandle('CustomerOrder', 'isFinalized'), true)); foreach ($conditions as $key => $cond) { $f = new ARSelectFilter($cond); $f->mergeCondition(new EqualsCond(new ARFieldHandle('CustomerOrder', 'isFinalized'), true)); $f->mergeCondition(new EqualsCond(new ARFieldHandle('CustomerOrder', 'isCancelled'), false)); $orderCount[$key] = ActiveRecordModel::getRecordCount('CustomerOrder', $f); } // messages $f = new ARSelectFilter(new EqualsCond(new ARFieldHandle('OrderNote', 'isAdmin'), 0)); $f->mergeCondition(new EqualsCond(new ARFieldHandle('OrderNote', 'isRead'), 0)); $orderCount['messages'] = ActiveRecordModel::getRecordCount('OrderNote', $f); // inventory stats $lowStock = new EqualsOrLessCond(new ARFieldHandle('Product', 'stockCount'), $this->config->get('LOW_STOCK')); $lowStock->addAnd(new MoreThanCond(new ARFieldHandle('Product', 'stockCount'), 0)); $conditions = array('lowStock' => $lowStock, 'outOfStock' => new EqualsOrLessCond(new ARFieldHandle('Product', 'stockCount'), 0)); foreach ($conditions as $key => $cond) { $cond->addAnd(new EqualsCond(new ARFieldHandle('Product', 'isEnabled'), true)); $inventoryCount[$key] = ActiveRecordModel::getRecordCount('Product', new ARSelectFilter($cond)); } // overall stats $rootCat = Category::getRootNode(); $rootCat->load(); $response = new ActionResponse(); $response->set('orderCount', $orderCount); $response->set('inventoryCount', $inventoryCount); $response->set('rootCat', $rootCat->toArray()); $response->set('thisMonth', date('m')); $response->set('lastMonth', date('Y-m', strtotime(date('m') . '/15 -1 month'))); $response->set('ordersLast24', $this->getOrderCount('-24 hours', 'now')); $response->set('ordersThisWeek', $this->getOrderCount('w:Monday', 'now')); $response->set('ordersThisMonth', $this->getOrderCount(date('m') . '/1', 'now')); $response->set('ordersLastMonth', $this->getOrderCount($response->get('lastMonth') . '-1', date('m') . '/1')); $response->set('lastOrders', $this->getLastOrders()); return $response; }
public function index() { if (($zoneID = (int) $this->request->get('id')) <= 0) { $deliveryZoneArray = array('ID' => ''); $shippingServices = ShippingService::getByDeliveryZone(); } else { $deliveryZone = DeliveryZone::getInstanceByID($zoneID, true); $deliveryZoneArray = $deliveryZone->toArray(); $shippingServices = $deliveryZone->getShippingServices(); } $shippingServicesArray = array(); foreach ($shippingServices as $service) { $shippingServicesArray[$service->getID()] = $service->toArray(); $shippingServicesArray[$service->getID()]['rangeTypeString'] = $this->translate($service->rangeType->get() == 0 ? '_weight_based_rates' : '_subtotal_based_rates'); $shippingServicesArray[$service->getID()]['ratesCount'] = $service->getRates()->getTotalRecordCount(); } $form = $this->createShippingServiceForm(); $form->setData(array('rangeType' => 0)); $response = new ActionResponse(); $response->set('shippingServices', $shippingServicesArray); $response->set('newService', array('DeliveryZone' => $deliveryZoneArray)); $response->set('newRate', array('ShippingService' => array('DeliveryZone' => $deliveryZoneArray, 'ID' => ''))); $response->set('deliveryZone', $deliveryZoneArray); $response->set('defaultCurrencyCode', $this->application->getDefaultCurrency()->getID()); $response->set('form', $form); return $response; }