ILIAS  release_5-4 Revision v5.4.26-12-gabc799a52e6
class.ilDclIliasReferenceFieldModel.php
Go to the documentation of this file.
1 <?php
2 
10 {
11 
17  public function getRecordQuerySortObject($direction = "asc", $sort_by_status = false)
18  {
19  global $DIC;
20  $ilDB = $DIC['ilDB'];
21 
22  $join_str
23  = "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
60  = "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 = "
61  . $ilDB->quote($this->getId(), 'integer') . ") ";
62  $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) ";
63  $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 ) ";
64  $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 "
65  . $ilDB->quote("%$filter_value%", 'text') . ") ";
66 
67  $sql_obj = new ilDclRecordQueryObject();
68  $sql_obj->setJoinStatement($join_str);
69 
70  return $sql_obj;
71  }
72 
73 
77  public function getValidFieldProperties()
78  {
80  }
81 }
Class ilDclBaseFieldModel.
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
getRecordQuerySortObject($direction="asc", $sort_by_status=false)
Returns a query-object for building the record-loader-sql-query.
$ilUser
Definition: imgupload.php:18
global $ilDB