/** * 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; }