ILIAS  release_8 Revision v8.24
class.ilDclIliasReferenceFieldModel.php
Go to the documentation of this file.
1<?php
2
20{
24 public function getRecordQuerySortObject(
25 string $direction = "asc",
26 bool $sort_by_status = false
28 global $DIC;
29 $ilDB = $DIC['ilDB'];
30
31 $join_str
32 = "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 = "
33 . $ilDB->quote($this->getId(), 'integer') . ") ";
34 $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) ";
35 $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)";
36 $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)";
37
38 if ($sort_by_status) {
39 global $DIC;
40 $ilUser = $DIC['ilUser'];
41 $join_str .= "LEFT JOIN ut_lp_marks AS ut ON (ut.obj_id = sort_object_data_{$this->getId()}.obj_id AND ut.usr_id = "
42 . $ilDB->quote($ilUser->getId(), 'integer') . ") ";
43 }
44
45 $select_str = (!$sort_by_status) ? " sort_object_data_{$this->getId()}.title AS field_{$this->getId()}," : " ut.status AS field_{$this->getId()}";
46
47 $sql_obj = new ilDclRecordQueryObject();
48 $sql_obj->setSelectStatement($select_str);
49 $sql_obj->setJoinStatement($join_str);
50 $sql_obj->setOrderStatement("field_{$this->getId()} " . $direction . ", ID ASC");
51
52 return $sql_obj;
53 }
54
59 $filter_value = "",
60 ?ilDclBaseFieldModel $sort_field = null
62 global $DIC;
63 $ilDB = $DIC['ilDB'];
64
65 $join_str
66 = "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 = "
67 . $ilDB->quote($this->getId(), 'integer') . ") ";
68 $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) ";
69 $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 ) ";
70 $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 "
71 . $ilDB->quote("%$filter_value%", 'text') . ") ";
72
73 $sql_obj = new ilDclRecordQueryObject();
74 $sql_obj->setJoinStatement($join_str);
75
76 return $sql_obj;
77 }
78
79 public function getValidFieldProperties(): array
80 {
84 );
85 }
86}
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
getRecordQueryFilterObject( $filter_value="", ?ilDclBaseFieldModel $sort_field=null)
Returns a query-object for building the record-loader-sql-query.
getValidFieldProperties()
Returns all valid properties for a field-type.
getRecordQuerySortObject(string $direction="asc", bool $sort_by_status=false)
Returns a query-object for building the record-loader-sql-query.
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
global $DIC
Definition: feed.php:28
$ilUser
Definition: imgupload.php:34