19 declare(strict_types=1);
32 if ($this->db->tableExists(
'il_cert_template') && $this->db->tableColumnExists(
'il_cert_template',
'certificate_content_bu')) {
33 $this->db->dropTableColumn(
'il_cert_template',
'certificate_content_bu');
35 if ($this->db->tableExists(
'il_cert_user_cert') && $this->db->tableColumnExists(
'il_cert_user_cert',
'certificate_content_bu')) {
36 $this->db->dropTableColumn(
'il_cert_user_cert',
'certificate_content_bu');
42 if ($this->db->tableExists(
'il_cert_template') && $this->db->tableColumnExists(
'il_cert_template',
'certificate_content_backup')) {
43 $this->db->dropTableColumn(
'il_cert_template',
'certificate_content_backup');
45 if ($this->db->tableExists(
'il_cert_user_cert') && $this->db->tableColumnExists(
'il_cert_user_cert',
'certificate_content_backup')) {
46 $this->db->dropTableColumn(
'il_cert_user_cert',
'certificate_content_backup');
52 if ($this->db->tableExists(
'il_cert_bgtask_migr')) {
53 $this->db->dropTable(
'il_cert_bgtask_migr');
59 if ($this->db->tableExists(
'il_cert_user_cert') && $this->db->tableColumnExists(
'il_cert_user_cert',
'user_id')) {
60 $this->db->renameTableColumn(
'il_cert_user_cert',
'user_id',
'usr_id');
67 $this->db->tableExists(
'il_cert_template') &&
68 !$this->db->indexExistsByFields(
'il_cert_template', [
'background_image_path',
'currently_active'])
70 $this->db->addIndex(
'il_cert_template', [
'background_image_path',
'currently_active'],
'i5');
74 $this->db->tableExists(
'il_cert_user_cert') &&
75 !$this->db->indexExistsByFields(
'il_cert_user_cert', [
'background_image_path',
'currently_active'])
77 $this->db->addIndex(
'il_cert_user_cert', [
'background_image_path',
'currently_active'],
'i7');
83 if ($this->db->tableExists(
'il_cert_user_cert') &&
84 !$this->db->tableColumnExists(
'il_cert_user_cert',
'certificate_id')) {
85 $this->db->addTableColumn(
'il_cert_user_cert',
'certificate_id', [
95 if ($this->db->tableExists(
'il_cert_user_cert') &&
96 $this->db->tableColumnExists(
'il_cert_user_cert',
'certificate_id')) {
99 $this->db->dropUniqueConstraint(
'il_cert_user_cert',
'c1');
104 $this->db->manipulateF(
105 'UPDATE il_cert_user_cert SET certificate_id = %s WHERE certificate_id IS NULL',
110 $this->db->modifyTableColumn(
'il_cert_user_cert',
'certificate_id', [
121 $query =
'SELECT COUNT(*) cnt FROM il_cert_user_cert WHERE certificate_id = ' .
123 $res = $this->db->query($query);
124 $num = (
int) $this->db->fetchAssoc(
$res)[
'cnt'];
126 $this->db->addUniqueConstraint(
'il_cert_user_cert', [
'certificate_id'],
'c1');
133 $this->db->tableExists(
'il_cert_user_cert')
135 $this->db->addTableColumn(
137 'background_image_ident',
145 $this->db->addTableColumn(
147 'thumbnail_image_ident',
157 $this->db->tableExists(
'il_cert_template')
159 $this->db->addTableColumn(
161 'background_image_ident',
169 $this->db->addTableColumn(
171 'thumbnail_image_ident',
180 $res = $this->db->query(
181 'SELECT value FROM settings WHERE keyword = ' .
185 $row = $this->db->fetchAssoc(
$res);
186 $defaultImageFileName = $row[
'value'] ??
'';
188 $this->db->manipulate(
189 'DELETE FROM settings WHERE keyword = ' .
193 $this->db->insert(
'settings', [
prepare(ilDBInterface $db)