public static function loadEav() { if (!self::$eavQueue) { return false; } ClassLoader::import('application.model.eav.EavObject'); ClassLoader::import('application.model.eav.EavSpecificationManager'); // create array of EavObject gateway objects for all queued records $eavObjects = array(); foreach (self::$eavQueue as $class => &$records) { $field = EavObject::getClassField($class); foreach ($records as $id => $record) { $eavObjects[] = array('ID' => $record['eavObjectID'], $field => $id); } } // fetch EAV values if ($eavObjects) { EavSpecificationManager::loadSpecificationForRecordSetArray($eavObjects, true); // assign attribute values to the respective records foreach ($eavObjects as $entry) { unset($entry['ID']); foreach ($entry as $field => $refId) { if ($refId) { $class = ucfirst(substr($field, 0, -2)); if (isset($entry['attributes'])) { self::$eavQueue[$class][$refId]['attributes'] = $entry['attributes']; foreach ($entry['attributes'] as $attr) { self::$eavQueue[$class][$refId]['byHandle'][$attr['EavField']['handle']] = $attr; } } break; } } } } self::$eavQueue = array(); }
private function buildCreditCardValidator(CreditCardPayment $ccHandler = null) { $validator = $this->getValidator("creditCard", $this->request); $validator->addCheck('ccName', new IsNotEmptyCheck($this->translate('_err_enter_cc_name'))); $validator->addCheck('ccNum', new IsNotEmptyCheck($this->translate('_err_enter_cc_num'))); $validator->addCheck('ccExpiryMonth', new IsNotEmptyCheck($this->translate('_err_select_cc_expiry_month'))); $validator->addCheck('ccExpiryYear', new IsNotEmptyCheck($this->translate('_err_select_cc_expiry_year'))); if ($ccHandler) { if ($ccHandler->isCardTypeNeeded()) { $validator->addCheck('ccType', new IsNotEmptyCheck($this->translate('_err_select_cc_type'))); } if ($this->config->get('REQUIRE_CVV') && $ccHandler->isCvvRequired()) { $validator->addCheck('ccCVV', new IsNotEmptyCheck($this->translate('_err_enter_cc_cvv'))); } } $validator->addFilter('ccCVV', new RegexFilter('[^0-9]')); $validator->addFilter('ccNum', new RegexFilter('[^ 0-9]')); $eavManager = new EavSpecificationManager(EavObject::getInstanceByIdentifier('creditcard')); $eavManager->setValidation($validator); return $validator; }
private function getOfflinePaymentValidator($method) { $validator = $this->getValidator($method, $this->request); $eavManager = new EavSpecificationManager(EavObject::getInstanceByIdentifier($method)); $eavManager->setValidation($validator); return $validator; }