示例#1
0
 /**
  * @copydoc Control::loadFromXml
  */
 public function loadFromXml(\SimpleXMLElement $description)
 {
     parent::loadFromXml($description);
     if ($description->options) {
         foreach ($description->options->option as $item) {
             $this->addItem((string) $item['id'], (string) $item);
         }
     }
 }
示例#2
0
 /**
  * @copydoc Control::loadFromXml
  *
  * @throws SystemException 'ERR_DEV_NO_CONTROL_TYPE'
  * @throws SystemException 'ERR_DEV_NO_CONTROL_CLASS'
  */
 public function loadFromXml(\SimpleXMLElement $description)
 {
     parent::loadFromXml($description);
     foreach ($description->control as $controlDescription) {
         if (!isset($controlDescription['type'])) {
             throw new SystemException('ERR_DEV_NO_CONTROL_TYPE', SystemException::ERR_DEVELOPER);
         }
         $controlClassName = ucfirst((string) $controlDescription['type']);
         if (!class_exists($controlClassName, false)) {
             throw new SystemException('ERR_DEV_NO_CONTROL_CLASS', SystemException::ERR_DEVELOPER, $controlClassName);
         }
         $control = new $controlClassName(isset($controlDescription['id']) ? (string) $controlDescription['id'] : null);
         $this->attachControl($control);
         $control->loadFromXml($controlDescription);
     }
 }