/**
  * @param string $value
  */
 public function setValue($value)
 {
     // This should be factored out, currently there is one exception where a value needs to be parsed before storing in DB
     if ($value && $this->getIdentifier() == srCertificateTypeSetting::IDENTIFIER_VALIDITY) {
         /** @var srCertificateDefinition $definition */
         $definition = srCertificateDefinition::find($this->getDefinitionId());
         $validity_type = $definition->getSettingByIdentifier(srCertificateTypeSetting::IDENTIFIER_VALIDITY_TYPE)->getValue();
         $value = srCertificateTypeSetting::formatValidityBasedOnType($validity_type, $value);
     }
     $this->value = $value;
 }
    $setting->setEditableIn(array('crs'));
    $setting->setValue(0);
    $setting->save();
}
?>
<#17>
     <?php 
require_once './Customizing/global/plugins/Services/UIComponent/UserInterfaceHook/Certificate/classes/Definition/class.srCertificateDefinition.php';
srCertificateDefinition::updateDB();
// Migrate from signature table
global $ilDB;
if ($ilDB->tableExists('cert_signature_def')) {
    $set = $ilDB->query('SELECT * FROM cert_signature_def');
    while ($row = $ilDB->fetchObject($set)) {
        /** @var srCertificateDefinition $definition */
        $definition = srCertificateDefinition::find($row->definition_id);
        $definition->setSignatureId($row->signature_id);
        $definition->save();
    }
}
?>
<#18>
<?php 
// Change data-type for longer emails
global $ilDB;
if ($ilDB->tableExists('uihkcertificate_c')) {
    $ilDB->modifyTableColumn('uihkcertificate_c', 'value', array("type" => "clob", "default" => null, "notnull" => false));
}
?>
<#19>
<?php 
 /**
  * @param $a_set
  * @return bool
  */
 protected function hasAction($a_set)
 {
     $definition = srCertificateDefinition::find((int) $a_set['definition_id']);
     return $definition && $definition->getDownloadable() && parent::hasAction($a_set);
 }
 /**
  * @return srCertificateCustomTypeSetting
  */
 public function getCustomTypeSetting()
 {
     /** @var srCertificateDefinition $definition */
     $definition = srCertificateDefinition::find($this->getDefinitionId());
     return srCertificateCustomTypeSetting::where(array('identifier' => $this->getIdentifier(), 'type_id' => $definition->getTypeId()))->first();
 }
 /**
  * @param int $definition_id
  */
 public function setDefinitionId($definition_id)
 {
     $this->definition_id = $definition_id;
     $this->definition = srCertificateDefinition::find($definition_id);
 }
 /**
  * @return \srCertificateDefinition
  */
 public function getDefinition()
 {
     if (is_null($this->definition)) {
         $this->definition = srCertificateDefinition::find($this->getDefinitionId());
     }
     return $this->definition;
 }