Пример #1
0
    <?php 
/*
 * Add new setting "notification_user" to certificate types and every existing definitions
 */
require_once './Customizing/global/plugins/Services/UIComponent/UserInterfaceHook/Certificate/classes/Definition/class.srCertificateDefinition.php';
require_once './Customizing/global/plugins/Services/UIComponent/UserInterfaceHook/Certificate/classes/Type/class.srCertificateType.php';
$types = srCertificateType::get();
/** @var srCertificateType $type */
foreach ($types as $type) {
    if (is_null($type->getSettingByIdentifier(srCertificateTypeSetting::IDENTIFIER_NOTIFICATION_USER))) {
        $setting = new srCertificateTypeSetting();
        $setting->setIdentifier(srCertificateTypeSetting::IDENTIFIER_NOTIFICATION_USER);
        $setting->setValue(0);
        $setting->setEditableIn($type->getAvailableObjects());
        $setting->setTypeId($type->getId());
        $setting->create();
    }
}
$definitions = srCertificateDefinition::get();
/** @var srCertificateDefinition $def */
foreach ($definitions as $def) {
    if (is_null($def->getSettingByIdentifier(srCertificateTypeSetting::IDENTIFIER_NOTIFICATION_USER))) {
        $setting = new srCertificateDefinitionSetting();
        $setting->setIdentifier(srCertificateTypeSetting::IDENTIFIER_NOTIFICATION_USER);
        $setting->setValue(0);
        $setting->setDefinitionId($def->getId());
        $setting->create();
    }
}
?>
<#5>
 /**
  * Create corresponding default settings after creating type object
  *
  */
 protected function createDefaultSettings()
 {
     foreach (self::$default_settings as $identifier => $config) {
         $setting = new srCertificateTypeSetting();
         $setting->setIdentifier($identifier);
         $setting->setEditableIn($this->available_objects);
         $setting->setTypeId($this->getId());
         $setting->setValue($config['default_value']);
         $setting->create();
         $this->settings[] = $setting;
     }
 }