Пример #1
0
 /**
  * @see DataObject::setData()
  */
 function setData($key, $value, $locale = null)
 {
     // Directly write internal settings.
     if (is_null($locale)) {
         if (in_array($key, $this->getInternalSettings()) || in_array($key, $this->getSettingNames())) {
             return parent::setData($key, $value);
         }
     } else {
         if (in_array($key, $this->getLocalizedSettingNames())) {
             return parent::setData($key, $value, $locale);
         }
     }
     // All other settings will be delegated to sub-filters.
     $settingsMapping = $this->getSettingsMappingForSetting($key);
     if (!is_array($settingsMapping)) {
         $settingsMapping = array($settingsMapping);
     }
     foreach ($settingsMapping as $compositeSettingName) {
         // Write the setting to the sub-filter.
         list($filter, $settingName) = $this->_resolveCompositeSettingName($compositeSettingName);
         $filter->setData($settingName, $value, $locale);
     }
 }