Ejemplo n.º 1
0
 /**
  * Loads plugin
  *
  * @param	Plugin	$oPlugin	plugin instance
  * @param	string	$sName		plugin name
  * @throws	Exception
  * @return	void
  */
 public function loadPlugin(DataObject $oPlugin, $sName)
 {
     if ($oPlugin->getOwner() != $this) {
         throw new Exception('I\'m not the plugin owner');
     }
     $this->_aPlugins[$sName] = $oPlugin;
 }
Ejemplo n.º 2
0
 /**
  * (non-PHPdoc)
  * @see DataObject\Factory::update()
  */
 public function update(DataObject $oModel)
 {
     if ($oModel->isSaved()) {
         parent::update($oModel);
     } else {
         $this->create($oModel);
     }
 }
Ejemplo n.º 3
0
 /**
  * @return array
  */
 public function getRawData()
 {
     return parent::getData();
 }
Ejemplo n.º 4
0
 /**
  * Updates
  *
  * @param	DataObject $oModel	DataObject instance to save
  * @return	void
  */
 public function update(DataObject $oModel)
 {
     if (!$oModel->hasModifiedFields()) {
         return;
     }
     $this->_update($oModel->getPrimaryField(), $oModel->getModifiedFields());
 }
 /**
  * Loads plugins into given model
  *
  * @param	Pluginable	$oModel		pluginable model instance
  * @param	array		$aData		plugins data
  * @return	Pluginable
  */
 protected function loadInto(DataObject $oModel, array $aData)
 {
     foreach ($aData as $sPlugin => $aFields) {
         $sPlugin = ltrim($sPlugin, '_');
         if (!isset(self::$aPlugins[$sPlugin])) {
             continue;
         }
         if (empty($this->aCurrentPlugins[$sPlugin])) {
             throw new Exception('Plugin "' . $sPlugin . '" is not loaded');
         }
         $oFactory = $this->aCurrentPlugins[$sPlugin];
         $oModel->loadPlugin($oFactory->getPluginObject($aFields, $oModel), $sPlugin);
     }
     return $oModel;
 }