/** * Define line class as list of names * * @param integer $index Line index * @param \XLite\Model\AEntity $entity Line model OPTIONAL * * @return array */ protected function defineLineClass($index, \XLite\Model\AEntity $entity = null) { $classes = parent::defineLineClass($index, $entity); if ($entity && \XLite\Core\Session::getInstance()->added_labels && in_array($entity->getLabelId(), \XLite\Core\Session::getInstance()->added_labels)) { $classes[] = 'just-added'; } return $classes; }
/** * Remove entity * * @param \XLite\Model\AEntity $entity Entity * * @return boolean */ protected function removeEntity(\XLite\Model\AEntity $entity) { $product = $entity->getProduct(); if ($this->isNeedUpdateStock() && !$entity->isDeleted()) { // Return items to stock $entity->changeAmount($entity->getAmount()); } $attributes = $this->getAttributeValuesAsString($entity); \XLite\Controller\Admin\Order::setOrderChanges('Removed items:' . $entity->getItemId(), sprintf('[%s] %s (%s x %d%s)', $product->getSku(), $product->getName(), static::formatPrice($entity->getPrice(), $entity->getOrder()->getCurrency(), true), $entity->getAmount(), $attributes ? ', ' . $attributes : '')); return parent::removeEntity($entity); }
/** * Return params list to use for search * * @return \XLite\Core\CommonCell */ protected function getSearchCondition() { $result = parent::getSearchCondition(); foreach (static::getSearchParams() as $modelParam => $requestParam) { $result->{$modelParam} = $this->getParam($requestParam); } return $result; }
/** * Define line class as list of names * * @param integer $index Line index * @param \XLite\Model\AEntity $entity Line model OPTIONAL * * @return array */ protected function defineLineClass($index, \XLite\Model\AEntity $entity = null) { $classes = parent::defineLineClass($index, $entity); if ($entity && !$entity->getEnabled()) { $classes[] = 'lock'; } return $classes; }
/** * Remove entity * * @param \XLite\Model\AEntity $entity Entity * * @return boolean */ protected function removeEntity(\XLite\Model\AEntity $entity) { $this->getProduct()->getVariants()->removeElement($entity); parent::removeEntity($entity); return true; }
/** * Build entity page URL * * @param \XLite\Model\AEntity $entity Entity * @param array $column Column data * * @return string */ protected function buildEntityURL(\XLite\Model\AEntity $entity, array $column) { if ('product' == $column[static::COLUMN_CODE]) { $result = \XLite\Core\Converter::buildURL('product', '', array('product_id' => $entity->getProduct()->getProductId())); } else { $result = parent::buildEntityURL($entity, $column); } return $result; }
/** * Define line class as list of names * * @param integer $index Line index * @param \XLite\Model\AEntity $entity Line model OPTIONAL * * @return array */ protected function defineLineClass($index, \XLite\Model\AEntity $entity = null) { $classes = parent::defineLineClass($index, $entity); if ($entity) { $classes[] = $entity->getEnabled() ? 'enabled' : 'disabled'; $classes[] = $entity->isActive() ? 'active' : 'inactive'; if ($this->isInfinityUsesLeft($entity)) { $classes[] = 'uses-infinity'; } } return $classes; }
/** * Return name of the session cell identifier * * @return string */ protected function getSessionCell() { return parent::getSessionCell() . $this->getPage(); }
/** * Remove entity * * @param \XLite\Model\AEntity $entity Entity * * @return boolean */ protected function removeEntity(\XLite\Model\AEntity $entity) { return $this->isUnremovableRole($entity) ? false : parent::removeEntity($entity); }
/** * Get URL common parameters * * @return array */ protected function getCommonParams() { $this->commonParams = parent::getCommonParams(); $this->commonParams[static::PARAM_PRODUCT_ID] = \XLite\Core\Request::getInstance()->product_id; $this->commonParams['page'] = 'upselling_products'; return $this->commonParams; }
/** * Get pager parameters * * @return array */ protected function getPagerParams() { $params = parent::getPagerParams(); $params[\XLite\View\Pager\APager::PARAM_ITEMS_PER_PAGE] = 50; return $params; }
/** * Pre-validate entity * * @param \XLite\Model\AEntity $entity Entity * * @return boolean */ protected function prevalidateEntity(\XLite\Model\AEntity $entity) { $result = parent::prevalidateEntity($entity); if ($result) { $this->discountKeys[] = $entity->getFingerprint(); } return $result; }
/** * Get container class * * @return string */ protected function getContainerClass() { return parent::getContainerClass() . ' pb-export-items-list'; }
/** * Get container class * * @return string */ protected function getContainerClass() { return parent::getContainerClass() . ' shipping-markups'; }
/** * Define so called "request" parameters * * @return void */ protected function defineRequestParams() { parent::defineRequestParams(); $this->requestParams = array_merge($this->requestParams, static::getSearchParams()); }
/** * Return params list to use for search * TODO refactor * * @return \XLite\Core\CommonCell */ protected function getSearchCondition() { $result = parent::getSearchCondition(); $result->{\XLite\Model\Repo\Payment\Transaction::SEARCH_ORDERBY} = $this->getOrderBy(); foreach (static::getSearchParams() as $modelParam => $requestParam) { $paramValue = $this->getParam($requestParam); if ('' !== $paramValue && 0 !== $paramValue) { $result->{$modelParam} = $paramValue; } } return $result; }
/** * Build entity page URL * * @param \XLite\Model\AEntity $entity Entity * @param array $column Column data * * @return string */ protected function buildEntityURL(\XLite\Model\AEntity $entity, array $column) { return 'order' == $column[static::COLUMN_CODE] ? \XLite\Core\Converter::buildURL('order', '', array('order_number' => $this->getOrder($entity)->getOrderNumber())) : parent::buildEntityURL($entity, $column); }
/** * Get top actions * * @return array */ protected function getTopActions() { $actions = parent::getTopActions(); // "Send tracking information" button is visible if the tracking numbers are provided if ($this->hasResults() && !$this->isStatic()) { $actions[] = 'order/page/parts/send_tracking.tpl'; } return $actions; }
/** * Get URL common parameters * * @return array */ protected function getCommonParams() { $this->commonParams = parent::getCommonParams(); $this->commonParams[static::PARAM_CATEGORY_ID] = \XLite\Core\Request::getInstance()->{static::PARAM_CATEGORY_ID}; return $this->commonParams; }
/** * Return params list to use for search * * @return \XLite\Core\CommonCell */ protected function getSearchCondition() { $result = parent::getSearchCondition(); // We initialize structure to define order (field and sort direction) in search query. $result->{\XLite\Model\Repo\Profile::SEARCH_ORDERBY} = $this->getOrderBy(); foreach (static::getSearchParams() as $modelParam => $requestParam) { $paramValue = $this->getParam($requestParam); if (is_string($paramValue)) { $paramValue = trim($paramValue); } if ('' !== $paramValue && 0 !== $paramValue) { $result->{$modelParam} = $paramValue; } } $result->{\XLite\Model\Repo\Profile::SEARCH_ONLY_REAL} = true; if ($result->{\XLite\Model\Repo\Profile::SEARCH_MEMBERSHIP}) { $membershipCondition = $result->{\XLite\Model\Repo\Profile::SEARCH_MEMBERSHIP}; if (is_array($membershipCondition)) { $membershipIds = array_reduce($membershipCondition, function ($carry, $item) { $item = explode('_', $item); if (2 == count($item)) { $carry[$item[0]][] = $item[1]; } return $carry; }, array()); $result->{\XLite\Model\Repo\Profile::SEARCH_MEMBERSHIP} = $membershipIds; } } $permittedUserTypes = $this->getPermittedUserTypes(); if (isset($result->{\XLite\Model\Repo\Profile::SEARCH_USER_TYPE}[0]) && '' !== $result->{\XLite\Model\Repo\Profile::SEARCH_USER_TYPE}[0]) { $userTypes = array_filter($result->{\XLite\Model\Repo\Profile::SEARCH_USER_TYPE}, function ($type) use($permittedUserTypes) { return in_array($type, $permittedUserTypes); }); $result->{\XLite\Model\Repo\Profile::SEARCH_USER_TYPE} = $userTypes; } elseif (!\XLite\Core\Auth::getInstance()->isPermissionAllowed('manage admins')) { $result->{\XLite\Model\Repo\Profile::SEARCH_USER_TYPE} = $permittedUserTypes; } return $result; }
/** * Return "empty list" catalog * * @return string */ protected function getEmptyListDir() { return parent::getEmptyListDir() . '/payment/appearance'; }
/** * Get column cell class * * @param array $column Column * @param \XLite\Model\AEntity $entity Model OPTIONAL * * @return string */ protected function getColumnClass(array $column, \XLite\Model\AEntity $entity = null) { $class = parent::getColumnClass($column, $entity); if ('card' == $column[static::COLUMN_CODE]) { $class .= ' ' . strtolower($entity->getCardType()); } return $class; }
/** * Define request data * Remove duplicate by quantity and membership entities * * @return array */ protected function defineRequestData() { $requestData = parent::defineRequestData(); $delete = isset($requestData['delete']) ? $requestData['delete'] : array(); $new = isset($requestData['new']) ? $requestData['new'] : array(); $data = isset($requestData['data']) ? $requestData['data'] : array(); foreach ($new as $id => $value) { $tier = $this->getTierByQuantityAndMembership($value['quantityRangeBegin'], $value['membership']); if ($tier && !isset($delete[$tier->getId()]) && 0 > $id) { $data[$tier->getId()] = array('quantityRangeBegin' => $value['quantityRangeBegin'], 'price' => $value['price'], 'membership' => $value['membership']); unset($new[$id]); } elseif (0 == $id) { unset($new[$id]); } } foreach ($data as $id => $value) { $tier = $this->getTierByQuantityAndMembership($value['quantityRangeBegin'], $value['membership']); if ($tier && $tier->getId() !== $id && !isset($delete[$tier->getId()])) { $data[$tier->getId()] = array('quantityRangeBegin' => $value['quantityRangeBegin'], 'price' => $value['price'], 'membership' => $value['membership']); $delete[$id] = true; unset($data[$id]); } } $requestData = array_merge($requestData, array('new' => $new, 'delete' => $delete, 'data' => $data)); foreach (array('data', 'new') as $idx) { foreach ($requestData[$idx] as $id => $value) { if (empty($value['membership']) && 1 == $value['quantityRangeBegin']) { unset($requestData[$idx][$id]); \XLite\Core\TopMessage::addWarning('The base price can not be changed on this page.'); } } } return $requestData; }
/** * Get container class * * @return string */ protected function getContainerClass() { return parent::getContainerClass() . ' news_messages'; }
/** * Return params list to use for search * * @return \XLite\Core\CommonCell */ protected function getSearchCondition() { $result = parent::getSearchCondition(); $result->{\XLite\Module\XC\PitneyBowes\Model\Repo\PBParcel::P_ORDER} = $this->getOrder(); return $result; }
/** * Define line class as list of names * * @param integer $index Line index * @param \XLite\Model\AEntity $entity Line model OPTIONAL * * @return array */ protected function defineLineClass($index, \XLite\Model\AEntity $entity = null) { $result = parent::defineLineClass($index, $entity); if (!$entity->getEnabled()) { $result[] = 'disabled-method'; } return $result; }
/** * Get container class * * @return string */ protected function getContainerClass() { return parent::getContainerClass() . ' orders'; }
/** * Return params list to use for search * TODO refactor * * @return \XLite\Core\CommonCell */ protected function getSearchCondition() { $result = parent::getSearchCondition(); foreach (static::getSearchParams() as $modelParam => $requestParam) { $paramValue = $this->getParam($requestParam); if ('' !== $paramValue && 0 !== $paramValue) { $result->{$modelParam} = $paramValue; } } $result->{\XLite\Model\Repo\Category::SEARCH_PARENT} = \XLite\Core\Request::getInstance()->id ? intval(\XLite\Core\Request::getInstance()->id) : \XLite\Core\Database::getRepo('XLite\\Model\\Category')->getRootCategoryId(); return $result; }
/** * Return params list to use for search * TODO refactor * * @return \XLite\Core\CommonCell */ protected function getSearchCondition() { $result = parent::getSearchCondition(); foreach (static::getSearchParams() as $modelParam => $requestParam) { $paramValue = $this->getParam($requestParam); if ('' !== $paramValue && 0 !== $paramValue) { $result->{$modelParam} = $paramValue; } } $result->product = $this->getProduct(); return $result; }
/** * Get column value * * @param array $column Column * @param \XLite\Model\AEntity $entity Model * * @return mixed */ protected function getColumnValue(array $column, \XLite\Model\AEntity $entity) { if ('name' == $column[static::COLUMN_CODE]) { $result = parent::getColumnValue($column, $entity); } return $result; }