ILIAS  release_9 Revision v9.13-25-g2c18ec4c24f
class.ilDataCollection9HotfixDBUpdateSteps.php
Go to the documentation of this file.
1 <?php
2 
19 declare(strict_types=1);
20 
22 {
23  protected ilDBInterface $db;
24 
25  public function prepare(ilDBInterface $db): void
26  {
27  $this->db = $db;
28  }
29 
30  public function step_1(): void
31  {
32  $stmt = $this->db->queryF(
33  'SELECT DISTINCT tableview_id FROM il_dcl_tview_set WHERE il_dcl_tview_set.tableview_id NOT IN (SELECT DISTINCT tableview_id FROM il_dcl_tview_set WHERE field = %s);',
35  ['comments']
36  );
37  while ($row = $this->db->fetchAssoc($stmt)) {
38  $field_set = new ilDclTableViewFieldSetting();
39  $field_set->setTableviewId((int) $row['tableview_id']);
40  $field_set->setField('comments');
41  $field_set->setFilterChangeable(true);
42  $field_set->setVisibleCreate(true);
43  $field_set->setVisibleEdit(true);
44  $field_set->create();
45  }
46  }
47 
48  public function step_2(): void
49  {
50  $this->db->manipulateF(
51  'UPDATE il_dcl_stloc1_value ' .
52  'LEFT JOIN il_dcl_record_field ON il_dcl_stloc1_value.record_field_id = il_dcl_record_field.id ' .
53  'LEFT JOIN il_dcl_field ON il_dcl_record_field.field_id = il_dcl_field.id ' .
54  'LEFT JOIN il_dcl_field_prop ON il_dcl_field.id = il_dcl_field_prop.field_id AND il_dcl_field_prop.name = "multiple_selection" ' .
55  'SET il_dcl_stloc1_value.value = REPLACE(il_dcl_stloc1_value.value, %s, %s) ' .
56  'WHERE il_dcl_field.datatype_id = %s AND il_dcl_field_prop.value = %s',
58  [', ', '; ', ilDclDatatype::INPUTFORMAT_COPY, 1]
59  );
60  }
61 }