ILIAS  trunk Revision v11.0_alpha-1723-g8e69f309bab
All Data Structures Namespaces Files Functions Variables Enumerations Enumerator Modules Pages
class.ilDclIliasReferenceFieldModel.php
Go to the documentation of this file.
1 <?php
2 
19 declare(strict_types=1);
20 
22 {
26  public function getRecordQuerySortObject(
27  string $direction = "asc",
28  bool $sort_by_status = false
30  $join_str
31  = "LEFT JOIN il_dcl_record_field AS sort_record_field_{$this->getId()} ON (sort_record_field_{$this->getId()}.record_id = record.id AND sort_record_field_{$this->getId()}.field_id = "
32  . $this->db->quote($this->getId(), 'integer') . ") ";
33  $join_str .= "LEFT JOIN il_dcl_stloc{$this->getStorageLocation()}_value AS sort_stloc_{$this->getId()} ON (sort_stloc_{$this->getId()}.record_field_id = sort_record_field_{$this->getId()}.id) ";
34  $join_str .= "LEFT JOIN object_reference AS sort_object_reference_{$this->getId()} ON (sort_object_reference_{$this->getId()}.ref_id = sort_stloc_{$this->getId()}.value AND sort_object_reference_{$this->getId()}.deleted IS NULL)";
35  $join_str .= "LEFT JOIN object_data AS sort_object_data_{$this->getId()} ON (sort_object_data_{$this->getId()}.obj_id = sort_object_reference_{$this->getId()}.obj_id)";
36 
37  if ($sort_by_status) {
38  global $DIC;
39  $ilUser = $DIC['ilUser'];
40  $join_str .= "LEFT JOIN ut_lp_marks AS ut ON (ut.obj_id = sort_object_data_{$this->getId()}.obj_id AND ut.usr_id = "
41  . $this->db->quote($ilUser->getId(), 'integer') . ") ";
42  }
43 
44  $select_str = (!$sort_by_status) ? " sort_object_data_{$this->getId()}.title AS field_{$this->getId()}," : " ut.status AS field_{$this->getId()}";
45 
46  $sql_obj = new ilDclRecordQueryObject();
47  $sql_obj->setSelectStatement($select_str);
48  $sql_obj->setJoinStatement($join_str);
49  $sql_obj->setOrderStatement("field_{$this->getId()} " . $direction . ", ID ASC");
50 
51  return $sql_obj;
52  }
53 
57  public function getRecordQueryFilterObject(
58  $filter_value = "",
59  ?ilDclBaseFieldModel $sort_field = null
61  global $DIC;
62  $ilDB = $DIC['ilDB'];
63 
64  $join_str
65  = "INNER JOIN il_dcl_record_field AS filter_record_field_{$this->getId()} ON (filter_record_field_{$this->getId()}.record_id = record.id AND filter_record_field_{$this->getId()}.field_id = "
66  . $ilDB->quote($this->getId(), 'integer') . ") ";
67  $join_str .= "INNER JOIN il_dcl_stloc{$this->getStorageLocation()}_value AS filter_stloc_{$this->getId()} ON (filter_stloc_{$this->getId()}.record_field_id = filter_record_field_{$this->getId()}.id) ";
68  $join_str .= "INNER JOIN object_reference AS filter_object_reference_{$this->getId()} ON (filter_object_reference_{$this->getId()}.ref_id = filter_stloc_{$this->getId()}.value ) ";
69  $join_str .= "INNER JOIN object_data AS filter_object_data_{$this->getId()} ON (filter_object_data_{$this->getId()}.obj_id = filter_object_reference_{$this->getId()}.obj_id AND filter_object_data_{$this->getId()}.title LIKE "
70  . $ilDB->quote("%$filter_value%", 'text') . ") ";
71 
72  $sql_obj = new ilDclRecordQueryObject();
73  $sql_obj->setJoinStatement($join_str);
74 
75  return $sql_obj;
76  }
77 
78  public function getValidFieldProperties(): array
79  {
83  ];
84  }
85 }
getRecordQueryFilterObject( $filter_value="", ?ilDclBaseFieldModel $sort_field=null)
Returns a query-object for building the record-loader-sql-query.
getRecordQuerySortObject(string $direction="asc", bool $sort_by_status=false)
Returns a query-object for building the record-loader-sql-query.
while($session_entry=$r->fetchRow(ilDBConstants::FETCHMODE_ASSOC)) return null
global $DIC
Definition: shib_login.php:22