public static function deleteByID($className, $id, $foreignKeyName) { $inst = ActiveRecordModel::getInstanceById($className, $id, ActiveRecordModel::LOAD_DATA); $inst->getOwner()->load(); $inst->deleteImageFiles(); // check if main image is being deleted $owner = $inst->getOwner(); $owner->load(array(get_class($inst))); if ($owner->defaultImage->get()->getID() == $id) { // set next image (by position) as the main image $f = new ARSelectFilter(); $cond = new EqualsCond(new ARFieldHandle(get_class($inst), $foreignKeyName), $owner->getID()); $cond->addAND(new NotEqualsCond(new ARFieldHandle(get_class($inst), 'ID'), $inst->getID())); $f->setCondition($cond); $f->setOrder(new ARFieldHandle(get_class($inst), 'position')); $f->setLimit(1); $newDefaultImage = ActiveRecordModel::getRecordSet(get_class($inst), $f); if ($newDefaultImage->size() > 0) { $owner->defaultImage->set($newDefaultImage->get(0)); $owner->save(); } } ActiveRecordModel::executeUpdate('SET FOREIGN_KEY_CHECKS=0'); ActiveRecordModel::executeUpdate('UPDATE ' . $className . ' SET ' . $foreignKeyName . '=NULL , protectedFields="|' . $foreignKeyName . '|" WHERE ID=' . $id); //return parent::deleteByID($className, $id); }
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 edit() { $condition = ActiveRecordModel::getInstanceById('DiscountCondition', $this->request->get('id'), DiscountCondition::LOAD_DATA, DiscountCondition::LOAD_REFERENCES); $condition->loadAll(); $response = new ActionResponse('condition', $condition->toArray()); $records = array(); $zones = ActiveRecordModel::getRecordSetArray('DeliveryZone', new ARSelectFilter()); //$zones = array_merge(array(DeliveryZone::getDefaultZoneInstance()->toArray()), $zones); //$this->loadLanguageFile('backend/DeliveryZone'); //$zones[0]['name'] = $this->translate('_default_zone'); $records['DeliveryZone'] = $zones; $records['UserGroup'] = ActiveRecordModel::getRecordSetArray('UserGroup', new ARSelectFilter()); $response->set('records', $records); $response->set('serializedValues', array('RuleConditionPaymentMethodIs' => $this->getPaymentMethods(), 'RuleConditionCurrencyIs' => $this->getCurrencies(), 'RuleConditionShippingMethodIs' => $this->getShippingMethods())); $form = $this->buildForm(); $form->setData($condition->toArray()); $response->set('form', $form); // actions $f = new ARSelectFilter(); $f->setOrder(new ARFieldHandle('DiscountAction', 'position')); $actions = $condition->getRelatedRecordSet('DiscountAction', $f, array('DiscountCondition', 'DiscountCondition_ActionCondition')); foreach ($actions as $action) { if ($action->actionCondition->get()) { $action->actionCondition->get()->load(); $action->actionCondition->get()->loadAll(); } } $response->set('actions', $actions->toArray()); $this->setEditResponse($response); return $response; }
public function delete() { $product = Product::getInstanceByID($this->request->get('id'), ActiveRecord::LOAD_DATA, array('Category')); $category = Category::getInstanceByID($this->request->get('categoryId'), ActiveRecord::LOAD_DATA); $relation = ActiveRecordModel::getInstanceById('ProductCategory', array('productID' => $product->getID(), 'categoryID' => $category->getID())); $relation->delete(); return new JSONResponse(array('data' => $relation->toFlatArray())); }
/** * @role update */ public function save() { $validator = $this->buildValidator(); if (!$validator->isValid()) { return new JSONResponse(array('err' => $validator->getErrorList())); } $post = $this->request->get('id') ? ActiveRecordModel::getInstanceById('ProductRatingType', $this->request->get('id'), ActiveRecordModel::LOAD_DATA) : ProductRatingType::getNewInstance(Category::getInstanceByID($this->request->get('categoryId'), Category::LOAD_DATA)); $post->loadRequestData($this->request); $post->save(); return new JSONResponse($post->toArray()); }
public function save() { $clonedStore = ActiveRecordModel::getInstanceById('ClonedStore', $this->request->get('id'), true); $validator = $this->buildValidator(); if ($validator->isValid()) { $clonedStore->loadRequestData($this->request); $clonedStore->save(); return new JSONResponse(array('clonedStore' => $clonedStore->toArray()), 'success', $this->translate('Store configuration was successfully saved')); } else { return new JSONResponse(array('errors' => $validator->getErrorList()), 'failure'); } }
/** * Return Currency instance by ID and provide additional validation. If the currency doesn't exist * or is not valid, instance of the default currency is returned. * * @return Currency */ public static function getValidInstanceById($id, $loadData = true) { try { $instance = ActiveRecordModel::getInstanceById(__CLASS__, $id, $loadData); } catch (ARNotFoundException $e) { $instance = null; } if (!$instance || !$instance->isEnabled->get()) { $instance = self::getApplication()->getDefaultCurrency(); } return $instance; }
/** * @role update */ public function sort() { $target = $this->request->get('target'); preg_match('/_(\\d+)$/', $target, $match); // Get group. foreach ($this->request->get($this->request->get('target'), array()) as $position => $id) { $item = ActiveRecordModel::getInstanceByID('ProductListItem', $id); $item->position->set($position); if (isset($match[1])) { $item->productList->set(ActiveRecordModel::getInstanceById('ProductList', $match[1])); } $item->save(); } return new JSONResponse(false, 'success'); }
/** * @role update */ public function save() { $validator = $this->buildValidator(); if (!$validator->isValid()) { return new JSONResponse(array('err' => $validator->getErrorList())); } $post = $this->request->get('id') ? ActiveRecordModel::getInstanceById('EyeExamSchedule', $this->request->get('id'), ActiveRecordModel::LOAD_DATA) : ActiveRecordModel::getNewInstance('EyeExamSchedule'); $post->loadRequestData($this->request); $post->save(); $postArr = $post->toArray(); if (!isset($locale)) { $locale = self::getApplication()->getLocale(); } $date = strtotime($postArr['date']); $postArr['formatted_date'] = $locale->getFormattedTime($date); return new JSONResponse($postArr); }
public function update() { $review = ActiveRecordModel::getInstanceById('ProductReview', $this->request->get('id'), ProductReview::LOAD_DATA, array('Product')); $validator = $this->buildValidator($review); if ($validator->isValid()) { $review->loadRequestData($this->request); $review->save(); // set ratings foreach ($review->getRelatedRecordSet('ProductRating', new ARSelectFilter()) as $rating) { $typeId = $rating->ratingType->get() ? $rating->ratingType->get()->getID() : ''; $rating->rating->set($this->request->get('rating_' . $typeId)); $rating->save(); } return new JSONResponse(array('review' => $review->toFlatArray()), 'success', $this->translate('_review_was_successfully_saved')); } else { return new JSONResponse(array('errors' => $validator->getErrorList()), 'failure'); } }
public function update() { return $this->save(ActiveRecordModel::getInstanceById('Manufacturer', $this->request->get('id'), Manufacturer::LOAD_DATA, Manufacturer::LOAD_REFERENCES)); }
public static function getInstanceById($id, $loadData = self::LOAD_DATA, $loadReferencedRecords = false) { return parent::getInstanceById('UserAddress', $id, $loadData, $loadReferencedRecords); }
/** * @role login */ public function item() { $item = ActiveRecordModel::getInstanceById('OrderedItem', $this->request->get('id'), ActiveRecordModel::LOAD_DATA, OrderedItem::LOAD_REFERENCES); $item->customerOrder->get()->loadAll(); $item->loadOptions(); $subItems = $item->getSubitems(); $item = $item->toArray(); $this->addAccountBreadcrumb(); $this->addFilesBreadcrumb(); $this->addBreadCrumb(isset($item['Product']['name_lang']) ? $item['Product']['name_lang'] : $item['Product']['Parent']['name_lang'], ''); $f = new ARSelectFilter(new EqualsCond(new ARFieldHandle('OrderedItem', 'ID'), $item['ID'])); $f->mergeCondition(new EqualsCond(new ARFieldHandle('CustomerOrder', 'userID'), $this->user->getID())); $fileArray = $this->loadDownloadableItems($f); if (!$fileArray && !$subItems) { return new ActionRedirectResponse('user', 'index'); } $response = new ActionResponse(); $response->set('user', $this->user->toArray()); $response->set('files', $fileArray); $response->set('item', $item); if ($subItems) { $response->set('subItems', $subItems->toArray()); } return $response; }
public function variationForm() { $this->loadLanguageFile('Frontend'); $this->loadLanguageFile('Product'); $this->loadLanguageFile('backend/Shipment'); $item = ActiveRecordModel::getInstanceById('OrderedItem', $this->request->get('id'), true, true); $item->customerOrder->get()->loadAll(); $c = new OrderController($this->application); $response = $c->variationForm($item->customerOrder->get(), ''); $response->set('currency', $item->customerOrder->get()->currency->get()->getID()); $response->set('variations', $item->getProduct()->getVariationData($this->application)); return $response; }
public static function getInstanceById($id) { return parent::getInstanceById(__CLASS__, $id, self::LOAD_DATA, self::LOAD_REFERENCES); }
/** * @role status * @return JSONResponse */ public function setEnabled() { $post = ActiveRecordModel::getInstanceById('NewsPost', $this->request->get('id'), NewsPost::LOAD_DATA); $post->isEnabled->set($this->request->get("status")); $post->save(); return new JSONResponse($post->toArray()); }
public static function getInstanceById($id, $loadData = self::LOAD_DATA, $loadReferencedRecords = false) { return ActiveRecordModel::getInstanceById(__CLASS__, $id, $loadData, $loadReferencedRecords); }
public function view() { return new ActionResponse('note', ActiveRecordModel::getInstanceById('OrderNote', $this->request->get('id'), OrderNote::LOAD_DATA, OrderNote::LOAD_REFERENCES)->toArray()); }
public function reduceBaseTaxes($price, $product = null) { $product = $product ? $product : $this->getProduct(); if (!is_array($product)) { $class = $product->getParent()->taxClass->get(); } else { $product = empty($product['Parent']) ? $product : $product['Parent']; $class = empty($product['taxClassID']) ? null : ActiveRecordModel::getInstanceById('TaxClass', $product['taxClassID']); } foreach (DeliveryZone::getDefaultZoneInstance()->getTaxRates() as $rate) { if ($rate->taxClass->get() === $class) { $price = $price / (1 + $rate->rate->get() / 100); } } return $price; }
public function unserialize($serialized) { parent::unserialize($serialized); if ($this->availableShippingRates) { foreach ($this->availableShippingRates as $rate) { $rate->setApplication($this->getApplication()); } } if ($this->itemIds) { $this->items = array(); foreach ($this->itemIds as $id) { if ($id) { try { $this->items[] = ActiveRecordModel::getInstanceById('OrderedItem', $id, ActiveRecordModel::LOAD_DATA); } catch (ARNotFoundException $e) { } } } $this->itemIds = array(); } }
public static function getInstanceById($id, $loadData = self::LOAD_DATA, $loadReferencedRecords = false) { return parent::getInstanceById('CustomerOrder', $id, $loadData, $loadReferencedRecords); }
public function uploadOptionFile() { ClassLoader::import('application.model.order.OrderedItemOption'); $field = 'upload_' . $this->request->get('field'); $option = ActiveRecordModel::getInstanceById('ProductOption', $this->request->get('id'), true); $validator = $this->getValidator('optionFile'); $this->addOptionValidation($validator, $option->toArray(), $field); if (!$validator->isValid()) { return new JSONResponse(array('error' => $validator->getErrorList())); } // create tmp file $file = $_FILES[$field]; $tmp = 'tmp_' . $field . md5($file['tmp_name']) . '__' . $file['name']; $dir = ClassLoader::getRealPath('public.upload.optionImage.'); $path = $dir . $tmp; if (!file_exists($dir)) { mkdir($dir); chmod($dir, 0777); } move_uploaded_file($file['tmp_name'], $path); // create thumbnail $thumb = null; if (@getimagesize($path)) { $thumb = 'tmp_thumb_' . $tmp; $thumbPath = $dir . $thumb; OrderedItemOption::resizeImage($path, $thumbPath, 1); } return new JSONResponse(array('name' => $file['name'], 'file' => $tmp, 'thumb' => $thumb)); }
public function delete() { $relation = ActiveRecordModel::getInstanceById('CategoryRelationship', $this->request->get('categoryId')); $relation->delete(); return new JSONResponse(array('data' => $relation->toFlatArray())); }