/** * Construct. Set all depends. * * Required parameteres for options: * - resource * * @param array $options * @throws Exception If passed parameter 'resource' is wrong * @throws Exception If config parameter 'formPath' is empty * @throws Exception If config parameter 'formCode' is empty * @throws Exception If config parameter 'entity' is wrong * @throws Exception If entity is not model * @throws Exception If eav form is not found */ public function __construct($options) { if (!isset($options['resource']) || !$options['resource'] instanceof Mage_Api2_Model_Resource) { throw new Exception("Passed parameter 'resource' is wrong."); } $resource = $options['resource']; $userType = $resource->getUserType(); $validationConfig = $resource->getConfig()->getValidationConfig($resource->getResourceType(), self::CONFIG_NODE_KEY); if (empty($validationConfig[$userType]['form_model'])) { throw new Exception("Config parameter 'formPath' is empty."); } $this->_formPath = $validationConfig[$userType]['form_model']; if (empty($validationConfig[$userType]['form_code'])) { throw new Exception("Config parameter 'formCode' is empty."); } $this->_formCode = $validationConfig[$userType]['form_code']; if (empty($validationConfig[$userType]['entity_model'])) { throw new Exception("Config parameter 'entity' is wrong."); } $this->_entity = Mage::getModel($validationConfig[$userType]['entity_model']); if (empty($this->_entity) || !$this->_entity instanceof Mage_Core_Model_Abstract) { throw new Exception("Entity is not model."); } $this->_eavForm = Mage::getModel($this->_formPath); if (empty($this->_eavForm) || !$this->_eavForm instanceof Mage_Eav_Model_Form) { throw new Exception("Eav form '{$this->_formPath}' is not found."); } $this->_eavForm->setEntity($this->_entity)->setFormCode($this->_formCode)->ignoreInvisible(false); }