ILIAS  release_5-3 Revision v5.3.23-19-g915713cf615
class.ilDclIliasReferenceFieldModel.php
Go to the documentation of this file.
1<?php
2
3
11{
12
18 public function getRecordQuerySortObject($direction = "asc", $sort_by_status = false)
19 {
20 global $DIC;
21 $ilDB = $DIC['ilDB'];
22
23 $join_str = "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 = "
24 . $ilDB->quote($this->getId(), 'integer') . ") ";
25 $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) ";
26 $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)";
27 $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)";
28
29 if ($sort_by_status) {
30 global $DIC;
31 $ilUser = $DIC['ilUser'];
32 $join_str .= "LEFT JOIN ut_lp_marks AS ut ON (ut.obj_id = sort_object_data_{$this->getId()}.obj_id AND ut.usr_id = "
33 . $ilDB->quote($ilUser->getId(), 'integer') . ") ";
34 }
35
36 $select_str = (!$sort_by_status) ? " sort_object_data_{$this->getId()}.title AS field_{$this->getId()}," : " ut.status AS field_{$this->getId()}";
37
38 $sql_obj = new ilDclRecordQueryObject();
39 $sql_obj->setSelectStatement($select_str);
40 $sql_obj->setJoinStatement($join_str);
41 $sql_obj->setOrderStatement("field_{$this->getId()} " . $direction);
42
43 return $sql_obj;
44 }
45
46
54 public function getRecordQueryFilterObject($filter_value = "", ilDclBaseFieldModel $sort_field = null)
55 {
56 global $DIC;
57 $ilDB = $DIC['ilDB'];
58
59 $join_str = "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 = "
60 . $ilDB->quote($this->getId(), 'integer') . ") ";
61 $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) ";
62 $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 ) ";
63 $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 "
64 . $ilDB->quote("%$filter_value%", 'text') . ") ";
65
66 $sql_obj = new ilDclRecordQueryObject();
67 $sql_obj->setJoinStatement($join_str);
68
69 return $sql_obj;
70 }
71
75 public function getValidFieldProperties()
76 {
78 }
79}
An exception for terminatinating execution or to throw for unit testing.
Class ilDclBaseFieldModel.
getRecordQuerySortObject($direction="asc", $sort_by_status=false)
Returns a query-object for building the record-loader-sql-query.
getRecordQueryFilterObject($filter_value="", ilDclBaseFieldModel $sort_field=null)
Returns a query-object for building the record-loader-sql-query.
Class ilDclRecordQueryObject.
global $DIC
Definition: saml.php:7
global $ilDB
$ilUser
Definition: imgupload.php:18