ILIAS  release_5-1 Revision 5.0.0-5477-g43f3e3fab5f
ilDataCollectionTable Class Reference

Class ilDataCollectionField. More...

+ Collaboration diagram for ilDataCollectionTable:

Public Member Functions

 __construct ($a_id=0)
 
 doRead ()
 Read table. More...
 
 doCreate ($create_views=true)
 
 doUpdate ()
 
 setId ($a_id)
 Set table id. More...
 
 getId ()
 Get table id. More...
 
 setObjId ($a_id)
 
 getObjId ()
 
 setTitle ($a_title)
 
 getTitle ()
 
 getCollectionObject ()
 
 getRecords ()
 
 getRecordsByFilter (array $filter=array())
 getRecordsByFilter More...
 
 getAll ($a_id)
 
 deleteField ($field_id)
 
 getField ($field_id)
 
 getFieldIds ()
 
 getNewOrder ()
 getNewOrder More...
 
 getFields ()
 Returns all fields of this table including the standard fields. More...
 
 getRecordFields ()
 Returns all fields of this table which are NOT standard fields. More...
 
 getVisibleFields ()
 Returns all fields of this table who have set their visibility to true, including standard fields. More...
 
 getEditableFields ()
 
 getFilterableFields ()
 getFilterableFields Returns all fields of this table who have set their filterable to true, including standard fields. More...
 
 getExportableFields ()
 Return all the fields that are marked as exportable. More...
 
 hasPermissionToFields ($ref_id)
 
 hasPermissionToAddTable ($ref_id)
 
 hasPermissionToAddRecord ($ref_id)
 
 hasPermissionToEditRecord ($ref_id, ilDataCollectionRecord $record)
 
 hasPermissionToDeleteRecord ($ref_id, ilDataCollectionRecord $record)
 
 hasPermissionToDeleteRecords ($ref_id)
 
 updateFields ()
 Update fields. More...
 
 sortFields (&$fields)
 sortFields More...
 
 buildOrderFields ()
 buildOrderFields orders the fields. More...
 
 getFieldByTitle ($title)
 Get a field by title. More...
 
 setAddPerm ($add_perm)
 
 getAddPerm ()
 
 setDeletePerm ($delete_perm)
 
 getDeletePerm ()
 
 setEditByOwner ($edit_by_owner)
 
 getEditByOwner ()
 
 getDeleteByOwner ()
 
 setDeleteByOwner ($delete_by_owner)
 
 setEditPerm ($edit_perm)
 
 getEditPerm ()
 
 setLimited ($limited)
 
 getLimited ()
 
 setLimitEnd ($limit_end)
 
 getLimitEnd ()
 
 setLimitStart ($limit_start)
 
 getLimitStart ()
 
 setIsVisible ($is_visible)
 
 getIsVisible ()
 
 setDescription ($description)
 
 getDescription ()
 
 setDefaultSortField ($default_sort_field)
 /** More...
 
 getDefaultSortField ()
 
 setDefaultSortFieldOrder ($default_sort_field_order)
 
 getDefaultSortFieldOrder ()
 
 setPublicCommentsEnabled ($public_comments)
 
 getPublicCommentsEnabled ()
 
 setViewOwnRecordsPerm ($view_own_perm)
 
 getViewOwnRecordsPerm ()
 
 hasCustomFields ()
 hasCustomFields More...
 
 compareOrder ($a, $b)
 
 cloneStructure (ilDataCollectionTable $original)
 
 _hasRecords ()
 _hasRecords More...
 
 addField ($field)
 
 setExportEnabled ($export_enabled)
 
 getExportEnabled ()
 
 getPartialRecords ($sort, $direction, $limit, $offset, array $filter=array())
 Return only the needed subset of record objects for the table, according to sorting, paging and filters. More...
 

Static Public Member Functions

static _tableExists ($table_id)
 
static _getTableIdByTitle ($title, $obj_id)
 
static _hasFieldByTitle ($title, $obj_id)
 Checks if a table has a field with the given title. More...
 

Protected Member Functions

 loadObj ()
 
 loadRecords ()
 
 loadFields ()
 
 doesRecordBelongToUser (ilDataCollectionRecord $record)
 
 checkLimit ()
 
 sortByOrder (&$array)
 

Protected Attributes

 $id = 0
 
 $objId
 
 $obj
 
 $title
 
 $fields
 
 $stdFields
 
 $records
 
 $is_visible
 
 $add_perm
 
 $edit_perm
 
 $delete_perm
 
 $edit_by_owner
 
 $delete_by_owner
 
 $limited
 
 $limit_start
 
 $limit_end
 
 $export_enabled
 
 $default_sort_field = 0
 
 $default_sort_field_order = 'asc'
 
 $description = ''
 
 $public_comments = 0
 
 $view_own_records_perm = 0
 

Detailed Description

Constructor & Destructor Documentation

◆ __construct()

ilDataCollectionTable::__construct (   $a_id = 0)
Parameters
int$a_id

Definition at line 125 of file class.ilDataCollectionTable.php.

References doRead().

125  {
126  if ($a_id != 0) {
127  $this->id = $a_id;
128  $this->doRead();
129  }
130  }
+ Here is the call graph for this function:

Member Function Documentation

◆ _getTableIdByTitle()

static ilDataCollectionTable::_getTableIdByTitle (   $title,
  $obj_id 
)
static
Parameters
$titleTitle of table
$obj_idDataCollection object ID where the table belongs to
Returns
int

Definition at line 1290 of file class.ilDataCollectionTable.php.

References $id, $ilDB, $result, and $title.

Referenced by ilObjDataCollection\cloneStructure().

1290  {
1291  global $ilDB;
1292  $result = $ilDB->query('SELECT id FROM il_dcl_table WHERE title = ' . $ilDB->quote($title, 'text') . ' AND obj_id = '
1293  . $ilDB->quote($obj_id, 'integer'));
1294  $id = 0;
1295  while ($rec = $ilDB->fetchAssoc($result)) {
1296  $id = $rec['id'];
1297  }
1298 
1299  return $id;
1300  }
$result
global $ilDB
+ Here is the caller graph for this function:

◆ _hasFieldByTitle()

static ilDataCollectionTable::_hasFieldByTitle (   $title,
  $obj_id 
)
static

Checks if a table has a field with the given title.

Parameters
$titleTitle of field
$obj_idObj-ID of the table
Returns
bool

Definition at line 1327 of file class.ilDataCollectionTable.php.

References $ilDB, $result, and $title.

Referenced by ilDataCollectionFieldEditGUI\checkInput().

1327  {
1328  global $ilDB;
1329  $result = $ilDB->query('SELECT * FROM il_dcl_field WHERE table_id = ' . $ilDB->quote($obj_id, 'integer') . ' AND title = '
1330  . $ilDB->quote($title, 'text'));
1331 
1332  return ($ilDB->numRows($result)) ? true : false;
1333  }
$result
global $ilDB
+ Here is the caller graph for this function:

◆ _hasRecords()

ilDataCollectionTable::_hasRecords ( )

_hasRecords

Returns
boolean

Definition at line 1257 of file class.ilDataCollectionTable.php.

References getRecords().

1257  {
1258  return (count($this->getRecords()) > 0) ? true : false;
1259  }
+ Here is the call graph for this function:

◆ _tableExists()

static ilDataCollectionTable::_tableExists (   $table_id)
static
Parameters
$table_idint
Returns
bool returns true iff there exists a table with id $table_id

Definition at line 1275 of file class.ilDataCollectionTable.php.

References $ilDB, $query, and $result.

Referenced by ilDataCollectionRecord\doCreate(), and ilDataCollectionField\doCreate().

1275  {
1276  global $ilDB;
1277  $query = "SELECT * FROM il_dcl_table WHERE id = " . $table_id;
1278  $result = $ilDB->query($query);
1279 
1280  return $result->numRows() != 0;
1281  }
$result
global $ilDB
+ Here is the caller graph for this function:

◆ addField()

ilDataCollectionTable::addField (   $field)
Parameters
$fieldilDataCollectionField add an already created field for eg. ordering.

Definition at line 1265 of file class.ilDataCollectionTable.php.

References fields.

1265  {
1266  $this->fields[$field->getId()] = $field;
1267  }
$errors fields
Definition: imgupload.php:48

◆ buildOrderFields()

ilDataCollectionTable::buildOrderFields ( )

buildOrderFields orders the fields.

Definition at line 875 of file class.ilDataCollectionTable.php.

References $fields, getFields(), and sortByOrder().

Referenced by doCreate().

875  {
876  $fields = $this->getFields();
877  $this->sortByOrder($fields);
878  $count = 10;
879  $offset = 10;
880  foreach ($fields as $field) {
881  if (! is_null($field->getOrder())) {
882  $field->setOrder($count);
883  $count = $count + $offset;
884  $field->doUpdate();
885  }
886  }
887  }
getFields()
Returns all fields of this table including the standard fields.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ checkLimit()

ilDataCollectionTable::checkLimit ( )
protected
Returns
bool

Definition at line 823 of file class.ilDataCollectionTable.php.

References getLimited(), getLimitEnd(), getLimitStart(), and IL_CAL_DATE.

Referenced by hasPermissionToAddRecord(), hasPermissionToDeleteRecord(), and hasPermissionToEditRecord().

823  {
824  if ($this->getLimited()) {
825  $now = new ilDateTime(date("Y-m-d H:i:s"), IL_CAL_DATE);
826  $from = new ilDateTime($this->getLimitStart(), IL_CAL_DATE);
827  $to = new ilDateTime($this->getLimitEnd(), IL_CAL_DATE);
828  return ($from <= $now && $now <= $to);
829  }
830 
831  return true;
832  }
Date and time handling
const IL_CAL_DATE
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ cloneStructure()

ilDataCollectionTable::cloneStructure ( ilDataCollectionTable  $original)
Parameters
ilDataCollectionTable$original

Definition at line 1185 of file class.ilDataCollectionTable.php.

References $default_sort_field, cloneStructure(), doCreate(), doUpdate(), getAddPerm(), getDefaultSortField(), getDefaultSortFieldOrder(), getDeleteByOwner(), getDeletePerm(), getDescription(), getEditByOwner(), getEditPerm(), getExportEnabled(), getFields(), getId(), ilDataCollectionRecordViewViewdefinition\getIdByTableId(), getIsVisible(), getLimited(), getLimitEnd(), getLimitStart(), getPublicCommentsEnabled(), getTitle(), getViewOwnRecordsPerm(), setAddPerm(), setDefaultSortField(), setDefaultSortFieldOrder(), setDeleteByOwner(), setDeletePerm(), setDescription(), setEditByOwner(), setEditPerm(), setExportEnabled(), setIsVisible(), setLimited(), setLimitEnd(), setLimitStart(), setPublicCommentsEnabled(), setTitle(), and setViewOwnRecordsPerm().

Referenced by cloneStructure().

1185  {
1186  $this->setTitle($original->getTitle());
1187  $this->setDescription($original->getDescription());
1188  $this->setIsVisible($original->getIsVisible());
1189  $this->setEditByOwner($original->getEditByOwner());
1190  $this->setAddPerm($original->getAddPerm());
1191  $this->setEditPerm($original->getEditPerm());
1192  $this->setDeleteByOwner($original->getDeleteByOwner());
1193  $this->setDeletePerm($original->getDeletePerm());
1194  $this->setLimited($original->getLimited());
1195  $this->setLimitStart($original->getLimitStart());
1196  $this->setLimitEnd($original->getLimitEnd());
1197  $this->setViewOwnRecordsPerm($original->getViewOwnRecordsPerm());
1198  $this->setExportEnabled($original->getExportEnabled());
1201 
1202  $this->doCreate();
1203  // reset stdFields to get new for the created object
1204 
1205  $default_sort_field = 0;
1206  // Clone standard-fields
1207  $org_std_fields = $original->getStandardFields();
1208  foreach ($this->getStandardFields() as $element_key => $std_field) {
1209  $std_field->cloneStructure($org_std_fields[$element_key]);
1210  if ($std_field->getId() === $original->getDefaultSortField()) {
1211  $default_sort_field = $std_field->getId();
1212  }
1213  }
1214 
1215  // Clone fields
1216  $new_fields = array();
1217  foreach ($original->getFields() as $orig_field) {
1218  if (! $orig_field->isStandardField()) {
1219  $new_field = new ilDataCollectionField();
1220  $new_field->setTableId($this->getId());
1221  $new_field->cloneStructure($orig_field->getId());
1222  $new_fields[$orig_field->getId()] = $new_field;
1223 
1224  if ($orig_field->getId() == $original->getDefaultSortField()) {
1225  $default_sort_field = $new_field->getId();
1226  }
1227  }
1228  }
1229 
1231  $this->doUpdate();
1232 
1233  //TODO: Find better way to copy data (include referenced data)
1234  // Clone Records with recordfields
1235  /*foreach($original->getRecords() as $orig_record){
1236  $new_record = new ilDataCollectionRecord();
1237  $new_record->setTableId($this->getId());
1238  $new_record->cloneStructure($orig_record->getId(), $new_fields);
1239  }*/
1240 
1241  if ($old_view_id = ilDataCollectionRecordViewViewdefinition::getIdByTableId($original->getId())) {
1242  $old_view = new ilDataCollectionRecordViewViewdefinition($old_view_id);
1243  $old_view->setTableId($original->getId());
1245  $viewdef->setTableId($this->id);
1246  $viewdef->setXMLContent($old_view->getXMLContent(false));
1247  $viewdef->create();
1248  }
1249  }
static getIdByTableId($a_table_id)
Get view definition id by table id.
cloneStructure(ilDataCollectionTable $original)
setDefaultSortField($default_sort_field)
/**
getFields()
Returns all fields of this table including the standard fields.
Class ilDataCollectionField.
setDefaultSortFieldOrder($default_sort_field_order)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ compareOrder()

ilDataCollectionTable::compareOrder (   $a,
  $b 
)

Definition at line 1167 of file class.ilDataCollectionTable.php.

1167  {
1168  if (is_null($a->getOrder() == NULL) && is_null($b->getOrder() == NULL)) {
1169  return 0;
1170  }
1171  if (is_null($a->getOrder())) {
1172  return 1;
1173  }
1174  if (is_null($b->getOrder())) {
1175  return - 1;
1176  }
1177 
1178  return $a->getOrder() < $b->getOrder() ? - 1 : 1;
1179  }

◆ deleteField()

ilDataCollectionTable::deleteField (   $field_id)
Parameters
$field_id

Definition at line 445 of file class.ilDataCollectionTable.php.

References $records, ilDataCollectionCache\getFieldCache(), and getRecords().

445  {
446  $field = ilDataCollectionCache::getFieldCache($field_id);
447  $records = $this->getRecords();
448 
449  foreach ($records as $record) {
450  $record->deleteField($field_id);
451  }
452 
453  $field->doDelete();
454  }
+ Here is the call graph for this function:

◆ doCreate()

ilDataCollectionTable::doCreate (   $create_views = true)
Parameters
bool$create_views

Definition at line 213 of file class.ilDataCollectionTable.php.

References $id, $ilDB, $query, buildOrderFields(), ilDataCollectionField\EDIT_VIEW, ilDataCollectionField\EXPORTABLE_VIEW, ilDataCollectionField\FILTER_VIEW, getAddPerm(), getDefaultSortField(), getDefaultSortFieldOrder(), getDeleteByOwner(), getDeletePerm(), getDescription(), getEditByOwner(), getEditPerm(), getExportEnabled(), getId(), getIsVisible(), getLimited(), getLimitEnd(), getLimitStart(), getObjId(), getPublicCommentsEnabled(), getTitle(), getViewOwnRecordsPerm(), setId(), and ilDataCollectionField\VIEW_VIEW.

Referenced by cloneStructure().

213  {
214  global $ilDB;
215 
216  $id = $ilDB->nextId("il_dcl_table");
217  $this->setId($id);
218  $query = "INSERT INTO il_dcl_table (" . "id" . ", obj_id" . ", title" . ", add_perm" . ", edit_perm" . ", delete_perm" . ", edit_by_owner"
219  . ", limited" . ", limit_start" . ", limit_end" . ", is_visible" . ", export_enabled" . ", default_sort_field_id"
220  . ", default_sort_field_order" . ", description" . ", public_comments" . ", view_own_records_perm" . ", delete_by_owner ) VALUES ("
221  . $ilDB->quote($this->getId(), "integer") . "," . $ilDB->quote($this->getObjId(), "integer") . ","
222  . $ilDB->quote($this->getTitle(), "text") . "," . $ilDB->quote($this->getAddPerm() ? 1 : 0, "integer") . ","
223  . $ilDB->quote($this->getEditPerm() ? 1 : 0, "integer") . "," . $ilDB->quote($this->getDeletePerm() ? 1 : 0, "integer") . ","
224  . $ilDB->quote($this->getEditByOwner() ? 1 : 0, "integer") . "," . $ilDB->quote($this->getLimited() ? 1 : 0, "integer") . ","
225  . $ilDB->quote($this->getLimitStart(), "timestamp") . "," . $ilDB->quote($this->getLimitEnd(), "timestamp") . ","
226  . $ilDB->quote($this->getIsVisible() ? 1 : 0, "integer") . "," . $ilDB->quote($this->getExportEnabled() ? 1 : 0, "integer") . ","
227  . $ilDB->quote($this->getDefaultSortField(), "text") . "," . $ilDB->quote($this->getDefaultSortFieldOrder(), "text") . ","
228  . $ilDB->quote($this->getDescription(), "text") . "," . $ilDB->quote($this->getPublicCommentsEnabled(), "integer") . ","
229  . $ilDB->quote($this->getViewOwnRecordsPerm(), "integer") . "," . $ilDB->quote($this->getDeleteByOwner() ? 1 : 0, 'integer') . ")";
230 
231  $ilDB->manipulate($query);
232 
233  if ($create_views) {
234  //add view definition
235  $view_id = $ilDB->nextId("il_dcl_view");
236  $query = "INSERT INTO il_dcl_view (id, table_id, type, formtype) VALUES (" . $ilDB->quote($view_id, "integer") . ", "
237  . $ilDB->quote($this->id, "integer") . ", " . $ilDB->quote(ilDataCollectionField::VIEW_VIEW, "integer") . ", "
238  . $ilDB->quote(1, "integer") . ")";
239  $ilDB->manipulate($query);
240 
241  //add edit definition
242  $view_id = $ilDB->nextId("il_dcl_view");
243  $query = "INSERT INTO il_dcl_view (id, table_id, type, formtype) VALUES (" . $ilDB->quote($view_id, "integer") . ", "
244  . $ilDB->quote($this->id, "integer") . ", " . $ilDB->quote(ilDataCollectionField::EDIT_VIEW, "integer") . ", "
245  . $ilDB->quote(1, "integer") . ")";
246  $ilDB->manipulate($query);
247 
248  //add filter definition
249  $view_id = $ilDB->nextId("il_dcl_view");
250  $query = "INSERT INTO il_dcl_view (id, table_id, type, formtype) VALUES (" . $ilDB->quote($view_id, "integer") . ", "
251  . $ilDB->quote($this->id, "integer") . ", " . $ilDB->quote(ilDataCollectionField::FILTER_VIEW, "integer") . ", "
252  . $ilDB->quote(1, "integer") . ")";
253  $ilDB->manipulate($query);
254 
255  //add filter definition
256  $view_id = $ilDB->nextId("il_dcl_view");
257  $query = "INSERT INTO il_dcl_view (id, table_id, type, formtype) VALUES (" . $ilDB->quote($view_id, "integer") . ", "
258  . $ilDB->quote($this->id, "integer") . ", " . $ilDB->quote(ilDataCollectionField::EXPORTABLE_VIEW, "integer") . ", "
259  . $ilDB->quote(1, "integer") . ")";
260  $ilDB->manipulate($query);
261 
262  $this->buildOrderFields();
263  }
264  }
buildOrderFields()
buildOrderFields orders the fields.
global $ilDB
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ doesRecordBelongToUser()

ilDataCollectionTable::doesRecordBelongToUser ( ilDataCollectionRecord  $record)
protected
Parameters
ilDataCollectionRecord$record
Returns
bool

Definition at line 813 of file class.ilDataCollectionTable.php.

References $ilUser, and ilDataCollectionRecord\getOwner().

Referenced by hasPermissionToDeleteRecord(), and hasPermissionToEditRecord().

813  {
814  global $ilUser;
815 
816  return ($ilUser->getId() == $record->getOwner());
817  }
global $ilUser
Definition: imgupload.php:15
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ doRead()

ilDataCollectionTable::doRead ( )

Read table.

Definition at line 136 of file class.ilDataCollectionTable.php.

References $ilDB, $query, $row, getCollectionObject(), getId(), getRecordFields(), getRecords(), setAddPerm(), setDefaultSortField(), setDefaultSortFieldOrder(), setDeleteByOwner(), setDeletePerm(), setDescription(), setEditByOwner(), setEditPerm(), setExportEnabled(), setIsVisible(), setLimited(), setLimitEnd(), setLimitStart(), setObjId(), setPublicCommentsEnabled(), setTitle(), and setViewOwnRecordsPerm().

Referenced by __construct().

136  {
137  global $ilDB;
138 
139  $query = "SELECT * FROM il_dcl_table WHERE id = " . $ilDB->quote($this->getId(), "integer");
140  $set = $ilDB->query($query);
141  $rec = $ilDB->fetchAssoc($set);
142 
143  $this->setObjId($rec["obj_id"]);
144  $this->setTitle($rec["title"]);
145  $this->setAddPerm($rec["add_perm"]);
146  $this->setEditPerm($rec["edit_perm"]);
147  $this->setDeletePerm($rec["delete_perm"]);
148  $this->setEditByOwner($rec["edit_by_owner"]);
149  $this->setExportEnabled($rec["export_enabled"]);
150  $this->setLimited($rec["limited"]);
151  $this->setLimitStart($rec["limit_start"]);
152  $this->setLimitEnd($rec["limit_end"]);
153  $this->setIsVisible($rec["is_visible"]);
154  $this->setDescription($rec['description']);
155  $this->setDefaultSortField($rec['default_sort_field_id']);
156  $this->setDefaultSortFieldOrder($rec['default_sort_field_order']);
157  $this->setPublicCommentsEnabled($rec['public_comments']);
158  $this->setViewOwnRecordsPerm($rec['view_own_records_perm']);
159  $this->setDeleteByOwner($rec['delete_by_owner']);
160  }
setDefaultSortField($default_sort_field)
/**
setDefaultSortFieldOrder($default_sort_field_order)
global $ilDB
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ doUpdate()

ilDataCollectionTable::doUpdate ( )

Definition at line 270 of file class.ilDataCollectionTable.php.

References $ilDB, getAddPerm(), getDefaultSortField(), getDefaultSortFieldOrder(), getDeleteByOwner(), getDeletePerm(), getDescription(), getEditByOwner(), getEditPerm(), getExportEnabled(), getId(), getIsVisible(), getLimited(), getLimitEnd(), getLimitStart(), getObjId(), getPublicCommentsEnabled(), getTitle(), and getViewOwnRecordsPerm().

Referenced by cloneStructure().

270  {
271  global $ilDB;
272 
273  $ilDB->update("il_dcl_table", array(
274  "obj_id" => array( "integer", $this->getObjId() ),
275  "title" => array( "text", $this->getTitle() ),
276  "add_perm" => array( "integer", (int) $this->getAddPerm() ),
277  "edit_perm" => array( "integer", (int) $this->getEditPerm() ),
278  "delete_perm" => array( "integer", (int) $this->getDeletePerm() ),
279  "edit_by_owner" => array( "integer", (int) $this->getEditByOwner() ),
280  "limited" => array( "integer", $this->getLimited() ),
281  "limit_start" => array( "timestamp", $this->getLimitStart() ),
282  "limit_end" => array( "timestamp", $this->getLimitEnd() ),
283  "is_visible" => array( "integer", $this->getIsVisible() ? 1 : 0 ),
284  "export_enabled" => array( "integer", $this->getExportEnabled() ? 1 : 0 ),
285  "description" => array( "text", $this->getDescription() ),
286  "default_sort_field_id" => array( "text", $this->getDefaultSortField() ),
287  "default_sort_field_order" => array( "text", $this->getDefaultSortFieldOrder() ),
288  "public_comments" => array( "integer", $this->getPublicCommentsEnabled() ? 1 : 0 ),
289  "view_own_records_perm" => array( "integer", $this->getViewOwnRecordsPerm() ),
290  'delete_by_owner' => array('integer', $this->getDeleteByOwner() ? 1 : 0),
291  ), array(
292  "id" => array( "integer", $this->getId() )
293  ));
294  }
global $ilDB
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getAddPerm()

ilDataCollectionTable::getAddPerm ( )
Returns
boolean

Definition at line 921 of file class.ilDataCollectionTable.php.

References $add_perm.

Referenced by cloneStructure(), doCreate(), doUpdate(), and hasPermissionToAddRecord().

921  {
922  return (bool) $this->add_perm;
923  }
+ Here is the caller graph for this function:

◆ getAll()

ilDataCollectionTable::getAll (   $a_id)
Parameters
$a_id
Returns
array

Definition at line 426 of file class.ilDataCollectionTable.php.

References $ilDB, and $query.

Referenced by ilDataCollectionRecordListViewdefinitionGUI\initForm().

426  {
427  global $ilDB;
428 
429  // build query
430  $query = "SELECT * FROM il_dcl_table WHERE obj_id = " . $ilDB->quote($a_id, "integer");
431  $set = $ilDB->query($query);
432 
433  $all = array();
434  while ($rec = $ilDB->fetchAssoc($set)) {
435  $all[$rec['id']] = $rec;
436  }
437 
438  return $all;
439  }
global $ilDB
+ Here is the caller graph for this function:

◆ getCollectionObject()

ilDataCollectionTable::getCollectionObject ( )
Returns
ilObjDataCollection

Definition at line 352 of file class.ilDataCollectionTable.php.

References $obj, and loadObj().

Referenced by doRead().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getDefaultSortField()

ilDataCollectionTable::getDefaultSortField ( )
Returns
string

Definition at line 1099 of file class.ilDataCollectionTable.php.

References $default_sort_field.

Referenced by cloneStructure(), doCreate(), and doUpdate().

+ Here is the caller graph for this function:

◆ getDefaultSortFieldOrder()

ilDataCollectionTable::getDefaultSortFieldOrder ( )
Returns
string

Definition at line 1118 of file class.ilDataCollectionTable.php.

References $default_sort_field_order.

Referenced by cloneStructure(), doCreate(), and doUpdate().

+ Here is the caller graph for this function:

◆ getDeleteByOwner()

ilDataCollectionTable::getDeleteByOwner ( )
Returns
boolean

Definition at line 968 of file class.ilDataCollectionTable.php.

References $delete_by_owner.

Referenced by cloneStructure(), doCreate(), doUpdate(), and hasPermissionToDeleteRecord().

969  {
970  return (bool) $this->delete_by_owner;
971  }
+ Here is the caller graph for this function:

◆ getDeletePerm()

ilDataCollectionTable::getDeletePerm ( )
Returns
boolean

Definition at line 940 of file class.ilDataCollectionTable.php.

References $delete_perm.

Referenced by cloneStructure(), doCreate(), doUpdate(), hasPermissionToDeleteRecord(), and hasPermissionToDeleteRecords().

940  {
941 
942  return (bool) $this->delete_perm;
943  }
+ Here is the caller graph for this function:

◆ getDescription()

ilDataCollectionTable::getDescription ( )
Returns
string

Definition at line 1080 of file class.ilDataCollectionTable.php.

References $description.

Referenced by cloneStructure(), doCreate(), and doUpdate().

1080  {
1081  return $this->description;
1082  }
+ Here is the caller graph for this function:

◆ getEditableFields()

ilDataCollectionTable::getEditableFields ( )
Returns
array

Definition at line 629 of file class.ilDataCollectionTable.php.

References $fields, and getRecordFields().

629  {
630  $fields = $this->getRecordFields();
631  $editableFields = array();
632 
633  foreach ($fields as $field) {
634  if (! $field->getLocked()) {
635  $editableFields[] = $field;
636  }
637  }
638 
639  return $editableFields;
640  }
getRecordFields()
Returns all fields of this table which are NOT standard fields.
+ Here is the call graph for this function:

◆ getEditByOwner()

ilDataCollectionTable::getEditByOwner ( )
Returns
boolean

Definition at line 960 of file class.ilDataCollectionTable.php.

References $edit_by_owner.

Referenced by cloneStructure(), doCreate(), doUpdate(), and hasPermissionToEditRecord().

960  {
961  return (bool) $this->edit_by_owner;
962  }
+ Here is the caller graph for this function:

◆ getEditPerm()

ilDataCollectionTable::getEditPerm ( )
Returns
boolean

Definition at line 1000 of file class.ilDataCollectionTable.php.

References $edit_perm.

Referenced by cloneStructure(), doCreate(), doUpdate(), and hasPermissionToEditRecord().

1000  {
1001  return (bool) $this->edit_perm;
1002  }
+ Here is the caller graph for this function:

◆ getExportableFields()

ilDataCollectionTable::getExportableFields ( )

Return all the fields that are marked as exportable.

Returns
array ilDataCollectionField

Definition at line 668 of file class.ilDataCollectionTable.php.

References $fields, and getFields().

668  {
669  $fields = $this->getFields();
670  $exportableFields = array();
671  foreach ($fields as $field) {
672  if ($field->getExportable()) {
673  $exportableFields[] = $field;
674  }
675  }
676 
677  return $exportableFields;
678  }
getFields()
Returns all fields of this table including the standard fields.
+ Here is the call graph for this function:

◆ getExportEnabled()

ilDataCollectionTable::getExportEnabled ( )
Returns
boolean

Definition at line 1314 of file class.ilDataCollectionTable.php.

References $export_enabled.

Referenced by cloneStructure(), doCreate(), and doUpdate().

1314  {
1315  return $this->export_enabled;
1316  }
+ Here is the caller graph for this function:

◆ getField()

ilDataCollectionTable::getField (   $field_id)
Parameters
$field_id
Returns
ilDataCollectionField|null

Definition at line 462 of file class.ilDataCollectionTable.php.

References $fields, and getFields().

Referenced by getPartialRecords().

462  {
463  $fields = $this->getFields();
464  $field = NULL;
465  foreach ($fields as $field_1) {
466  if ($field_1->getId() == $field_id) {
467  $field = $field_1;
468  }
469  }
470 
471  return $field;
472  }
getFields()
Returns all fields of this table including the standard fields.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getFieldByTitle()

ilDataCollectionTable::getFieldByTitle (   $title)

Get a field by title.

Parameters
$title
Returns
ilDataCollectionField

Definition at line 897 of file class.ilDataCollectionTable.php.

References $title, and getFields().

Referenced by getPartialRecords().

897  {
898  $return = NULL;
899  foreach ($this->getFields() as $field) {
900  if ($field->getTitle() == $title) {
901  $return = $field;
902  break;
903  }
904  }
905 
906  return $return;
907  }
getFields()
Returns all fields of this table including the standard fields.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getFieldIds()

ilDataCollectionTable::getFieldIds ( )
Returns
array

Definition at line 478 of file class.ilDataCollectionTable.php.

References getFields().

478  {
479  return array_keys($this->getFields());
480  }
getFields()
Returns all fields of this table including the standard fields.
+ Here is the call graph for this function:

◆ getFields()

ilDataCollectionTable::getFields ( )

Returns all fields of this table including the standard fields.

Returns
ilDataCollectionField[]

Definition at line 528 of file class.ilDataCollectionTable.php.

References $fields, $stdFields, ilDataCollectionStandardField\_getStandardFields(), fields, getPublicCommentsEnabled(), ilDataCollectionDatatype\INPUTFORMAT_BOOLEAN, ilDataCollectionDatatype\INPUTFORMAT_FILE, ilDataCollectionDatatype\INPUTFORMAT_FORMULA, ilDataCollectionDatatype\INPUTFORMAT_ILIAS_REF, ilDataCollectionDatatype\INPUTFORMAT_MOB, ilDataCollectionDatatype\INPUTFORMAT_RATING, ilDataCollectionDatatype\INPUTFORMAT_REFERENCE, ilDataCollectionDatatype\INPUTFORMAT_REFERENCELIST, loadFields(), and sortByOrder().

Referenced by buildOrderFields(), cloneStructure(), getExportableFields(), getField(), getFieldByTitle(), getFieldIds(), getFilterableFields(), getNewOrder(), getVisibleFields(), and updateFields().

528  {
529  $this->loadFields();
530  $this->stdFields = $this->getStandardFields();
531  $fields = array_merge($this->fields, $this->stdFields);
532  $this->sortByOrder($fields);
533 
534  return $fields;
535  }
$errors fields
Definition: imgupload.php:48
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getFilterableFields()

ilDataCollectionTable::getFilterableFields ( )

getFilterableFields Returns all fields of this table who have set their filterable to true, including standard fields.

Returns
ilDataCollectionField[]

Definition at line 649 of file class.ilDataCollectionTable.php.

References $fields, and getFields().

649  {
650  $fields = $this->getFields();
651  $filterableFields = array();
652 
653  foreach ($fields as $field) {
654  if ($field->isFilterable()) {
655  $filterableFields[] = $field;
656  }
657  }
658 
659  return $filterableFields;
660  }
getFields()
Returns all fields of this table including the standard fields.
+ Here is the call graph for this function:

◆ getId()

ilDataCollectionTable::getId ( )

Get table id.

Returns
int

Definition at line 312 of file class.ilDataCollectionTable.php.

References $id.

Referenced by cloneStructure(), doCreate(), doRead(), doUpdate(), getPartialRecords(), ilDataCollectionRecordViewGUI\hasTableValidViewDefinition(), and loadFields().

312  {
313  return $this->id;
314  }
+ Here is the caller graph for this function:

◆ getIsVisible()

ilDataCollectionTable::getIsVisible ( )
Returns
boolean

Definition at line 1064 of file class.ilDataCollectionTable.php.

References $is_visible.

Referenced by cloneStructure(), doCreate(), and doUpdate().

1064  {
1065  return $this->is_visible;
1066  }
+ Here is the caller graph for this function:

◆ getLimited()

ilDataCollectionTable::getLimited ( )
Returns
boolean

Definition at line 1016 of file class.ilDataCollectionTable.php.

References $limited.

Referenced by checkLimit(), cloneStructure(), doCreate(), and doUpdate().

1016  {
1017  return $this->limited;
1018  }
+ Here is the caller graph for this function:

◆ getLimitEnd()

ilDataCollectionTable::getLimitEnd ( )
Returns
string

Definition at line 1032 of file class.ilDataCollectionTable.php.

References $limit_end.

Referenced by checkLimit(), cloneStructure(), doCreate(), and doUpdate().

1032  {
1033  return $this->limit_end;
1034  }
+ Here is the caller graph for this function:

◆ getLimitStart()

ilDataCollectionTable::getLimitStart ( )
Returns
string

Definition at line 1048 of file class.ilDataCollectionTable.php.

References $limit_start.

Referenced by checkLimit(), cloneStructure(), doCreate(), and doUpdate().

1048  {
1049  return $this->limit_start;
1050  }
+ Here is the caller graph for this function:

◆ getNewOrder()

ilDataCollectionTable::getNewOrder ( )

getNewOrder

Returns
int returns the place where a new field should be placed.

Definition at line 510 of file class.ilDataCollectionTable.php.

References $fields, and getFields().

510  {
511  $fields = $this->getFields();
512  $place = 0;
513  foreach ($fields as $field) {
514  if (! $field->isStandardField()) {
515  $place = $field->getOrder() + 1;
516  }
517  }
518 
519  return $place;
520  }
getFields()
Returns all fields of this table including the standard fields.
+ Here is the call graph for this function:

◆ getObjId()

ilDataCollectionTable::getObjId ( )
Returns
int

Definition at line 328 of file class.ilDataCollectionTable.php.

References $objId.

Referenced by doCreate(), doUpdate(), and getPartialRecords().

328  {
329  return $this->objId;
330  }
+ Here is the caller graph for this function:

◆ getPartialRecords()

ilDataCollectionTable::getPartialRecords (   $sort,
  $direction,
  $limit,
  $offset,
array  $filter = array() 
)

Return only the needed subset of record objects for the table, according to sorting, paging and filters.

Parameters
string$sortTitle of a field where the ilTable2GUI is sorted
string$direction'desc' or 'asc'
int$limitLimit of records
int$offsetOffset from records
array$filterContaining the filter values
Returns
array Array with two keys: 'record' => Contains the record objects, 'total' => Number of total records (without slicing)

Definition at line 1347 of file class.ilDataCollectionTable.php.

References $_SESSION, $id, $ilDB, $ilUser, $records, ilObject\_getAllReferences(), getField(), getFieldByTitle(), ilDataCollectionCache\getFieldCache(), getId(), getObjId(), ilDataCollectionCache\getRecordCache(), ilDataCollectionCache\getRecordFieldCache(), getViewOwnRecordsPerm(), ilObjDataCollectionAccess\hasWriteAccess(), ilDataCollectionDatatype\INPUTFORMAT_BOOLEAN, ilDataCollectionDatatype\INPUTFORMAT_DATETIME, ilDataCollectionDatatype\INPUTFORMAT_FILE, ilDataCollectionDatatype\INPUTFORMAT_FORMULA, ilDataCollectionDatatype\INPUTFORMAT_ILIAS_REF, ilDataCollectionDatatype\INPUTFORMAT_MOB, ilDataCollectionDatatype\INPUTFORMAT_NUMBER, ilDataCollectionDatatype\INPUTFORMAT_RATING, ilDataCollectionDatatype\INPUTFORMAT_REFERENCE, ilDataCollectionDatatype\INPUTFORMAT_TEXT, ilDataCollectionField\PROPERTYID_N_REFERENCE, and ilDataCollectionField\PROPERTYID_URL.

1347  {
1348  global $ilDB, $ilUser, $rbacreview;
1349 
1350  $sort_field = ($sort) ? $this->getFieldByTitle($sort) : $this->getField('id');
1351  $direction = strtolower($direction);
1352  $direction = (in_array($direction, array( 'desc', 'asc' ))) ? $direction : 'asc';
1353 
1354  // Sorting by a status from an ILIAS Ref field. This column is added dynamically to the table, there is no field model
1355  $sort_by_status = false;
1356  if (substr($sort, 0, 8) == '_status_') {
1357  $sort_by_status = true;
1358  $sort_field = $this->getFieldByTitle(substr($sort, 8));
1359  }
1360 
1361  if (is_null($sort_field)) {
1362  $sort_field = $this->getField('id');
1363  }
1364 
1365  $id = $sort_field->getId();
1366  $stl = $sort_field->getStorageLocation();
1367  $select_str = '';
1368  $join_str = '';
1369  $where_additions = '';
1370  $has_nref = false;
1371 
1372  if ($sort_field->isStandardField() && $id != 'comments') {
1373  if ($id == 'owner' || $id == 'last_edit_by') {
1374  $join_str .= "LEFT JOIN usr_data AS sort_usr_data_{$id} ON (sort_usr_data_{$id}.usr_id = record.{$id})";
1375  $select_str .= " sort_usr_data_{$id}.login AS field_{$id},";
1376  } else {
1377  $select_str .= " record.{$id} AS field_{$id},";
1378  }
1379  } else {
1380  switch ($sort_field->getDatatypeId()) {
1382  $rating_joined = true;
1383  // FSX Bugfix 0015735: The average is multiplied with 10000 and added to the amount of votes
1384  $join_str .= "LEFT JOIN (SELECT (ROUND(AVG(rating), 1) * 10000 + COUNT(rating)) as rating, obj_id FROM il_rating GROUP BY obj_id) AS average ON average.obj_id = record.id";
1385  $select_str .= " average.rating AS field_{$id},";
1386  break;
1388  $join_str .=
1389  "LEFT JOIN il_dcl_record_field AS sort_record_field_{$id} ON (sort_record_field_{$id}.record_id = record.id AND sort_record_field_{$id}.field_id = "
1390  . $ilDB->quote($sort_field->getId(), 'integer') . ") ";
1391  $join_str .= "LEFT JOIN il_dcl_stloc{$stl}_value AS sort_stloc_{$id} ON (sort_stloc_{$id}.record_field_id = sort_record_field_{$id}.id) ";
1392  $join_str .= "LEFT JOIN object_reference AS sort_object_reference_{$id} ON (sort_object_reference_{$id}.ref_id = sort_stloc_{$id}.value AND sort_object_reference_{$id}.deleted IS NULL)";
1393  $join_str .= "LEFT JOIN object_data AS sort_object_data_{$id} ON (sort_object_data_{$id}.obj_id = sort_object_reference_{$id}.obj_id)";
1394  if ($sort_by_status) {
1395  global $ilUser;
1396  $join_str .= "LEFT JOIN ut_lp_marks AS ut ON (ut.obj_id = sort_object_data_{$id}.obj_id AND ut.usr_id = "
1397  . $ilDB->quote($ilUser->getId(), 'integer') . ") ";
1398  }
1399  $select_str .= (! $sort_by_status) ? " sort_object_data_{$id}.title AS field_{$id}," : " ut.status AS field_{$id}";
1400  break;
1403  $join_str .=
1404  "LEFT JOIN il_dcl_record_field AS sort_record_field_{$id} ON (sort_record_field_{$id}.record_id = record.id AND sort_record_field_{$id}.field_id = "
1405  . $ilDB->quote($sort_field->getId(), 'integer') . ") ";
1406  $join_str .= "LEFT JOIN il_dcl_stloc{$stl}_value AS sort_stloc_{$id} ON (sort_stloc_{$id}.record_field_id = sort_record_field_{$id}.id) ";
1407  $join_str .= "LEFT JOIN object_data AS sort_object_data_{$id} ON (sort_object_data_{$id}.obj_id = sort_stloc_{$id}.value) ";
1408  $select_str .= " sort_object_data_{$id}.title AS field_{$id},";
1409  break;
1411  $prop = $sort_field->getPropertyvalues();
1412  $ref_field = ilDataCollectionCache::getFieldCache($sort_field->getFieldRef());
1414  if ($n_ref) {
1415  $has_nref = true;
1416  }
1417  $select_str .= ($n_ref) ? " GROUP_CONCAT(stloc_{$id}_joined.value) AS field_{$id}" : "stloc_{$id}_joined.value AS field_{$id},";
1418  $join_str .=
1419  "LEFT JOIN il_dcl_record_field AS record_field_{$id} ON (record_field_{$id}.record_id = record.id AND record_field_{$id}.field_id = "
1420  . $ilDB->quote($sort_field->getId(), 'integer') . ") ";
1421  $join_str .= "LEFT JOIN il_dcl_stloc{$stl}_value AS stloc_{$id} ON (stloc_{$id}.record_field_id = record_field_{$id}.id) ";
1422  $join_str .=
1423  "LEFT JOIN il_dcl_record_field AS record_field_{$id}_joined ON (record_field_{$id}_joined.record_id = stloc_{$id}.value AND record_field_{$id}_joined.field_id = "
1424  . $ilDB->quote($ref_field->getId(), 'integer') . ") ";
1425  $join_str .= "LEFT JOIN il_dcl_stloc{$ref_field->getStorageLocation()}_value AS stloc_{$id}_joined ON (stloc_{$id}_joined.record_field_id = record_field_{$id}_joined.id) ";
1426  break;
1431  $select_str .= " sort_stloc_{$id}.value AS field_{$id},";
1432  $join_str .=
1433  "LEFT JOIN il_dcl_record_field AS sort_record_field_{$id} ON (sort_record_field_{$id}.record_id = record.id AND sort_record_field_{$id}.field_id = "
1434  . $ilDB->quote($sort_field->getId(), 'integer') . ") ";
1435  $join_str .= "LEFT JOIN il_dcl_stloc{$stl}_value AS sort_stloc_{$id} ON (sort_stloc_{$id}.record_field_id = sort_record_field_{$id}.id) ";
1436  break;
1437  }
1438  }
1439 
1440  if (count($filter)) {
1441  foreach ($filter as $key => $filter_value) {
1442  $filter_field_id = substr($key, 7);
1443  $filter_field = $this->getField($filter_field_id);
1444  switch ($filter_field->getDatatypeId()) {
1446  if(!$rating_joined) {
1447  $join_str .= "LEFT JOIN (SELECT (ROUND(AVG(rating), 1) * 10000 + COUNT(rating)) as rating, obj_id FROM il_rating GROUP BY obj_id) AS average ON average.obj_id = record.id";
1448  }
1449  // FSX Bugfix 0015735: The average is multiplied with 10000 and added to the amount of votes
1450  $where_additions .= " AND average.rating >= " . $ilDB->quote($filter_value * 10000, 'integer');
1451  break;
1453  $join_str .=
1454  " INNER JOIN il_dcl_record_field AS filter_record_field_{$filter_field_id} ON (filter_record_field_{$filter_field_id}.record_id = record.id AND filter_record_field_{$filter_field_id}.field_id = "
1455  . $ilDB->quote($filter_field_id, 'integer') . ") ";
1456  $join_str .= " INNER JOIN il_dcl_stloc{$filter_field->getStorageLocation()}_value AS filter_stloc_{$filter_field_id} ON (filter_stloc_{$filter_field_id}.record_field_id = filter_record_field_{$filter_field_id}.id) ";
1457  $join_str .= " INNER JOIN object_reference AS filter_object_reference_{$filter_field_id} ON (filter_object_reference_{$filter_field_id}.ref_id = filter_stloc_{$filter_field_id}.value ) ";
1458  $join_str .=
1459  " INNER JOIN object_data AS filter_object_data_{$filter_field_id} ON (filter_object_data_{$filter_field_id}.obj_id = filter_object_reference_{$filter_field_id}.obj_id AND filter_object_data_{$filter_field_id}.title LIKE "
1460  . $ilDB->quote("%$filter_value%", 'text') . ") ";
1461  break;
1464  $join_str .=
1465  " INNER JOIN il_dcl_record_field AS filter_record_field_{$filter_field_id} ON (filter_record_field_{$filter_field_id}.record_id = record.id AND filter_record_field_{$filter_field_id}.field_id = "
1466  . $ilDB->quote($filter_field_id, 'integer') . ") ";
1467  $join_str .= " INNER JOIN il_dcl_stloc{$filter_field->getStorageLocation()}_value AS filter_stloc_{$filter_field_id} ON (filter_stloc_{$filter_field_id}.record_field_id = filter_record_field_{$filter_field_id}.id) ";
1468  $join_str .=
1469  " INNER JOIN object_data AS filter_object_data_{$filter_field_id} ON (filter_object_data_{$filter_field_id}.obj_id = filter_stloc_{$filter_field_id}.value AND filter_object_data_{$filter_field_id}.title LIKE "
1470  . $ilDB->quote("%$filter_value%", 'text') . ") ";
1471  break;
1473  $date_from = (isset($filter_value['from']) && is_object($filter_value['from'])) ? $filter_value['from'] : NULL;
1474  $date_to = (isset($filter_value['to']) && is_object($filter_value['to'])) ? $filter_value['to'] : NULL;
1475  if ($filter_field->isStandardField()) {
1476  if ($date_from) {
1477  $where_additions .= " AND (record.{$filter_field_id} >= " . $ilDB->quote($date_from, 'date') . ")";
1478  }
1479  if ($date_to) {
1480  $where_additions .= " AND (record.{$filter_field_id} <= " . $ilDB->quote($date_to, 'date') . ")";
1481  }
1482  } else {
1483  $join_str .=
1484  " INNER JOIN il_dcl_record_field AS filter_record_field_{$filter_field_id} ON (filter_record_field_{$filter_field_id}.record_id = record.id AND filter_record_field_{$filter_field_id}.field_id = "
1485  . $ilDB->quote($filter_field_id, 'integer') . ") ";
1486  $join_str .= " INNER JOIN il_dcl_stloc{$filter_field->getStorageLocation()}_value AS filter_stloc_{$filter_field_id} ON (filter_stloc_{$filter_field_id}.record_field_id = filter_record_field_{$filter_field_id}.id ";
1487  if ($date_from) {
1488  $join_str .= "AND filter_stloc_{$filter_field_id}.value >= " . $ilDB->quote($date_from, 'date') . " ";
1489  }
1490  if ($date_to) {
1491  $join_str .= "AND filter_stloc_{$filter_field_id}.value <= " . $ilDB->quote($date_to, 'date') . " ";
1492  }
1493  $join_str .= ") ";
1494  }
1495  break;
1497  $from = (isset($filter_value['from'])) ? (int)$filter_value['from'] : NULL;
1498  $to = (isset($filter_value['to'])) ? (int)$filter_value['to'] : NULL;
1499  if ($filter_field->isStandardField()) {
1500  if (! is_null($from)) {
1501  $where_additions .= " AND record.{$filter_field_id} >= " . $ilDB->quote($from, 'integer');
1502  }
1503  if (! is_null($to)) {
1504  $where_additions .= " AND record.{$filter_field_id} <= " . $ilDB->quote($to, 'integer');
1505  }
1506  } else {
1507  $join_str .=
1508  " INNER JOIN il_dcl_record_field AS filter_record_field_{$filter_field_id} ON (filter_record_field_{$filter_field_id}.record_id = record.id AND filter_record_field_{$filter_field_id}.field_id = "
1509  . $ilDB->quote($filter_field_id, 'integer') . ") ";
1510  $join_str .= " INNER JOIN il_dcl_stloc{$filter_field->getStorageLocation()}_value AS filter_stloc_{$filter_field_id} ON (filter_stloc_{$filter_field_id}.record_field_id = filter_record_field_{$filter_field_id}.id";
1511  if (! is_null($from)) {
1512  $join_str .= " AND filter_stloc_{$filter_field_id}.value >= " . $ilDB->quote($from, 'integer');
1513  }
1514  if (! is_null($to)) {
1515  $join_str .= " AND filter_stloc_{$filter_field_id}.value <= " . $ilDB->quote($to, 'integer');
1516  }
1517  $join_str .= ") ";
1518  }
1519  break;
1521  if ($filter_value == "checked") {
1522  $join_str .=
1523  " INNER JOIN il_dcl_record_field AS filter_record_field_{$filter_field_id} ON (filter_record_field_{$filter_field_id}.record_id = record.id AND filter_record_field_{$filter_field_id}.field_id = "
1524  . $ilDB->quote($filter_field_id, 'integer') . ") ";
1525  $join_str .= " INNER JOIN il_dcl_stloc{$filter_field->getStorageLocation()}_value AS filter_stloc_{$filter_field_id} ON (filter_stloc_{$filter_field_id}.record_field_id = filter_record_field_{$filter_field_id}.id";
1526  $join_str .= " AND filter_stloc_{$filter_field_id}.value = " . $ilDB->quote(1, 'integer');
1527  } else {
1528  $join_str .=
1529  " INNER JOIN il_dcl_record_field AS filter_record_field_{$filter_field_id} ON (filter_record_field_{$filter_field_id}.record_id = record.id AND filter_record_field_{$filter_field_id}.field_id = "
1530  . $ilDB->quote($filter_field_id, 'integer') . ") ";
1531  $join_str .= "LEFT JOIN il_dcl_stloc{$filter_field->getStorageLocation()}_value AS filter_stloc_{$filter_field_id} ON (filter_stloc_{$filter_field_id}.record_field_id = filter_record_field_{$filter_field_id}.id";
1532  $where_additions .= " AND (filter_stloc_{$filter_field_id}.value <> " . $ilDB->quote(1, 'integer')
1533  . " OR filter_stloc_{$filter_field_id}.value is NULL)";
1534  }
1535  $join_str .= " ) ";
1536  break;
1538  if ($filter_field->isStandardField()) {
1539  $join_str .=
1540  " INNER JOIN usr_data AS filter_usr_data_{$filter_field_id} ON (filter_usr_data_{$filter_field_id}.usr_id = record.{$filter_field_id} AND filter_usr_data_{$filter_field_id}.login LIKE "
1541  . $ilDB->quote("%$filter_value%", 'text') . ") ";
1542  } else {
1543  $join_str .=
1544  " INNER JOIN il_dcl_record_field AS filter_record_field_{$filter_field_id} ON (filter_record_field_{$filter_field_id}.record_id = record.id AND filter_record_field_{$filter_field_id}.field_id = "
1545  . $ilDB->quote($filter_field_id, 'integer') . ") ";
1546  $join_str .=
1547  " INNER JOIN il_dcl_stloc{$filter_field->getStorageLocation()}_value AS filter_stloc_{$filter_field_id} ON (filter_stloc_{$filter_field_id}.record_field_id = filter_record_field_{$filter_field_id}.id AND filter_stloc_{$filter_field_id}.value LIKE "
1548  . $ilDB->quote("%$filter_value%", 'text') . ") ";
1549  }
1550  break;
1552  $join_str .=
1553  " INNER JOIN il_dcl_record_field AS filter_record_field_{$filter_field_id} ON (filter_record_field_{$filter_field_id}.record_id = record.id AND filter_record_field_{$filter_field_id}.field_id = "
1554  . $ilDB->quote($filter_field_id, 'integer') . ") ";
1555  $prop = $filter_field->getPropertyvalues();
1557  if ($n_ref) {
1558  $join_str .=
1559  " INNER JOIN il_dcl_stloc{$filter_field->getStorageLocation()}_value AS filter_stloc_{$filter_field_id} ON (filter_stloc_{$filter_field_id}.record_field_id = filter_record_field_{$filter_field_id}.id AND filter_stloc_{$filter_field_id}.value LIKE "
1560  . $ilDB->quote("%$filter_value%", 'text') . ") ";
1561  } else {
1562  $join_str .=
1563  " INNER JOIN il_dcl_stloc{$filter_field->getStorageLocation()}_value AS filter_stloc_{$filter_field_id} ON (filter_stloc_{$filter_field_id}.record_field_id = filter_record_field_{$filter_field_id}.id AND filter_stloc_{$filter_field_id}.value = "
1564  . $ilDB->quote($filter_value, 'integer') . ") ";
1565  }
1566  break;
1567  }
1568  }
1569  }
1570 
1571  // Build the query string
1572  $sql = "SELECT DISTINCT record.id, record.owner";
1573  if($select_str) {
1574  $sql .= ', ';
1575  } $sql .= rtrim($select_str, ',') . " FROM il_dcl_record AS record ";
1576  $sql .= $join_str;
1577  $sql .= " WHERE record.table_id = " . $ilDB->quote($this->getId(), 'integer') . $where_additions;
1578  if ($has_nref) {
1579  $sql .= " GROUP BY record.id, record.owner";
1580  }
1581  $props = $sort_field->getProperties();
1582  if($id != 'comments' && $sort_field->getDatatypeId() != ilDataCollectionDatatype::INPUTFORMAT_FORMULA && !$props[ilDataCollectionField::PROPERTYID_URL]) {
1583  $sql .= " ORDER BY field_{$id} {$direction}";
1584  }
1585  $set = $ilDB->query($sql);
1586  $total_record_ids = array();
1587  // Save record-ids in session to enable prev/next links in detail view
1588  $_SESSION['dcl_record_ids'] = array();
1589  $_SESSION['dcl_table_id'] = $this->getId();
1590  $is_allowed_to_view = ilObjDataCollectionAccess::hasWriteAccess(array_pop(ilObject::_getAllReferences($this->getObjId())));
1591  while ($rec = $ilDB->fetchAssoc($set)) {
1592  // Quick check if the current user is allowed to view the record
1593  if (!$is_allowed_to_view && ($this->getViewOwnRecordsPerm() && $ilUser->getId() != $rec['owner'])) {
1594  continue;
1595  }
1596  $total_record_ids[] = $rec['id'];
1597  $_SESSION['dcl_record_ids'][] = $rec['id'];
1598  }
1599  // Sort by formula
1600  if ($sort_field->getDatatypeId() == ilDataCollectionDatatype::INPUTFORMAT_FORMULA) {
1601  $sort_array = array();
1602  foreach ($total_record_ids as $id) {
1603  $formula_field = ilDataCollectionCache::getRecordFieldCache(new ilDataCollectionRecord($id), $sort_field);
1604  $sort_array[$id] = $formula_field->getValue();
1605  }
1606  switch ($direction) {
1607  case 'asc':
1608  case 'ASC':
1609  asort($sort_array);
1610  break;
1611  case 'desc':
1612  case 'DESC':
1613  arsort($sort_array);
1614  break;
1615  }
1616  $total_record_ids = array_keys($sort_array);
1617  }
1618  //Sort by URL-title if existent
1620  $sort_array = array();
1621  foreach ($total_record_ids as $id) {
1622  $url_field = ilDataCollectionCache::getRecordFieldCache(new ilDataCollectionRecord($id), $sort_field);
1623  $sort_array[$id] = $url_field->getSortingValue();
1624  }
1625  switch ($direction) {
1626  case 'asc':
1627  case 'ASC':
1628  asort($sort_array);
1629  break;
1630  case 'desc':
1631  case 'DESC':
1632  arsort($sort_array);
1633  break;
1634  }
1635  $total_record_ids = array_keys($sort_array);
1636  }
1637  // Now slice the array to load only the needed records in memory
1638  $record_ids = array_slice($total_record_ids, $offset, $limit);
1639  $records = array();
1640  foreach ($record_ids as $id) {
1642  }
1643 
1644  return array( 'records' => $records, 'total' => count($total_record_ids) );
1645  }
static getRecordCache($record_id=0)
$_SESSION["AccountId"]
static _getAllReferences($a_id)
get all reference ids of object
const PROPERTYID_URL
LINK OR EMAIL!
Class ilDataCollectionRecord.
static getRecordFieldCache($record, $field)
global $ilUser
Definition: imgupload.php:15
global $ilDB
getFieldByTitle($title)
Get a field by title.
+ Here is the call graph for this function:

◆ getPublicCommentsEnabled()

ilDataCollectionTable::getPublicCommentsEnabled ( )
Returns
boolean

Definition at line 1134 of file class.ilDataCollectionTable.php.

References $public_comments.

Referenced by cloneStructure(), doCreate(), doUpdate(), and getFields().

+ Here is the caller graph for this function:

◆ getRecordFields()

ilDataCollectionTable::getRecordFields ( )

Returns all fields of this table which are NOT standard fields.

Returns
ilDataCollectionField[]

Definition at line 599 of file class.ilDataCollectionTable.php.

References $fields, and loadFields().

Referenced by doRead(), and getEditableFields().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getRecords()

ilDataCollectionTable::getRecords ( )
Returns
ilDataCollectionRecord[]

Definition at line 369 of file class.ilDataCollectionTable.php.

References $records, and loadRecords().

Referenced by _hasRecords(), deleteField(), doRead(), and getRecordsByFilter().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getRecordsByFilter()

ilDataCollectionTable::getRecordsByFilter ( array  $filter = array())

getRecordsByFilter

Parameters
$filterfilter is of the form array("filter_{field_id}" => filter); For dates and integers this filter must be of the form array("from" => from, "to" => to). In case of dates from and to have to be ilDateTime objects in case of integers they have to be integers as well.
Returns
ilDataCollectionRecord[]

Definition at line 387 of file class.ilDataCollectionTable.php.

References $records, getRecords(), and loadRecords().

387  {
388  $this->loadRecords();
389  // Only pass records trough filter if there is filtering required #performance-improvements
390  if (! count($filter)) {
391  return $this->records;
392  }
393  $filtered = array();
394  foreach ($this->getRecords() as $record) {
395  if ($record->passThroughFilter($filter)) {
396  $filtered[] = $record;
397  }
398  }
399 
400  return $filtered;
401  }
+ Here is the call graph for this function:

◆ getTitle()

ilDataCollectionTable::getTitle ( )
Returns
string

Definition at line 344 of file class.ilDataCollectionTable.php.

References $title.

Referenced by cloneStructure(), doCreate(), and doUpdate().

344  {
345  return $this->title;
346  }
+ Here is the caller graph for this function:

◆ getViewOwnRecordsPerm()

ilDataCollectionTable::getViewOwnRecordsPerm ( )
Returns
boolean

Definition at line 1150 of file class.ilDataCollectionTable.php.

References $view_own_records_perm.

Referenced by cloneStructure(), doCreate(), doUpdate(), getPartialRecords(), and hasPermissionToDeleteRecords().

1150  {
1151  return (bool)$this->view_own_records_perm;
1152  }
+ Here is the caller graph for this function:

◆ getVisibleFields()

ilDataCollectionTable::getVisibleFields ( )

Returns all fields of this table who have set their visibility to true, including standard fields.

Returns
ilDataCollectionField[]

Definition at line 611 of file class.ilDataCollectionTable.php.

References $fields, and getFields().

611  {
612  $fields = $this->getFields();
613 
614  $visibleFields = array();
615 
616  foreach ($fields as $field) {
617  if ($field->isVisible()) {
618  $visibleFields[] = $field;
619  }
620  }
621 
622  return $visibleFields;
623  }
getFields()
Returns all fields of this table including the standard fields.
+ Here is the call graph for this function:

◆ hasCustomFields()

ilDataCollectionTable::hasCustomFields ( )

hasCustomFields

Returns
boolean

Definition at line 1160 of file class.ilDataCollectionTable.php.

References fields, and loadFields().

1160  {
1161  $this->loadFields();
1162 
1163  return (count($this->fields) > 0) ? true : false;
1164  }
$errors fields
Definition: imgupload.php:48
+ Here is the call graph for this function:

◆ hasPermissionToAddRecord()

ilDataCollectionTable::hasPermissionToAddRecord (   $ref_id)
Parameters
int$ref_idy
Returns
bool

Definition at line 707 of file class.ilDataCollectionTable.php.

References $ref_id, checkLimit(), getAddPerm(), ilObjDataCollectionAccess\hasAddRecordAccess(), and ilObjDataCollectionAccess\hasWriteAccess().

707  {
709  return true;
710  }
712  return false;
713  }
714 
715  return ($this->getAddPerm() AND $this->checkLimit());
716  }
$ref_id
Definition: sahs_server.php:39
+ Here is the call graph for this function:

◆ hasPermissionToAddTable()

ilDataCollectionTable::hasPermissionToAddTable (   $ref_id)
Parameters
int$ref_id
Returns
bool

Definition at line 696 of file class.ilDataCollectionTable.php.

References $ref_id, and ilObjDataCollectionAccess\hasWriteAccess().

+ Here is the call graph for this function:

◆ hasPermissionToDeleteRecord()

ilDataCollectionTable::hasPermissionToDeleteRecord (   $ref_id,
ilDataCollectionRecord  $record 
)
Parameters
$ref_idint the reference id of the current datacollection object
$recordilDataCollectionRecord the record which will be deleted
Returns
bool

Definition at line 752 of file class.ilDataCollectionTable.php.

References $ref_id, checkLimit(), doesRecordBelongToUser(), getDeleteByOwner(), getDeletePerm(), ilObjDataCollectionAccess\hasAddRecordAccess(), and ilObjDataCollectionAccess\hasWriteAccess().

752  {
754  return true;
755  }
757  return false;
758  }
759  if (!$this->checkLimit()) {
760  return false;
761  }
762  if ($this->getDeletePerm() && !$this->getDeleteByOwner()) {
763  return true;
764  }
765  if ($this->getDeleteByOwner()) {
766  return $this->doesRecordBelongToUser($record);
767  }
768 
769  return false;
770  }
doesRecordBelongToUser(ilDataCollectionRecord $record)
$ref_id
Definition: sahs_server.php:39
+ Here is the call graph for this function:

◆ hasPermissionToDeleteRecords()

ilDataCollectionTable::hasPermissionToDeleteRecords (   $ref_id)

◆ hasPermissionToEditRecord()

ilDataCollectionTable::hasPermissionToEditRecord (   $ref_id,
ilDataCollectionRecord  $record 
)
Parameters
$ref_idint the reference id of the current datacollection object
$recordilDataCollectionRecord the record which will be edited
Returns
bool

Definition at line 725 of file class.ilDataCollectionTable.php.

References $ref_id, checkLimit(), doesRecordBelongToUser(), getEditByOwner(), getEditPerm(), ilObjDataCollectionAccess\hasAddRecordAccess(), and ilObjDataCollectionAccess\hasWriteAccess().

725  {
727  return true;
728  }
730  return false;
731  }
732  if (!$this->checkLimit()) {
733  return false;
734  }
735  if ($this->getEditPerm() && !$this->getEditByOwner()) {
736  return true;
737  }
738  if ($this->getEditByOwner()) {
739  return $this->doesRecordBelongToUser($record);
740  }
741 
742  return false;
743  }
doesRecordBelongToUser(ilDataCollectionRecord $record)
$ref_id
Definition: sahs_server.php:39
+ Here is the call graph for this function:

◆ hasPermissionToFields()

ilDataCollectionTable::hasPermissionToFields (   $ref_id)
Parameters
int$ref_id
Returns
bool

Definition at line 686 of file class.ilDataCollectionTable.php.

References $ref_id, and ilObjDataCollectionAccess\hasWriteAccess().

+ Here is the call graph for this function:

◆ loadFields()

ilDataCollectionTable::loadFields ( )
protected

Definition at line 483 of file class.ilDataCollectionTable.php.

References $fields, $ilDB, $query, ilDataCollectionCache\buildFieldFromRecord(), fields, getId(), and sortByOrder().

Referenced by getFields(), getRecordFields(), and hasCustomFields().

483  {
484  if ($this->fields === NULL) {
485  global $ilDB;
486 
487  $query = "SELECT DISTINCT field.* FROM il_dcl_field AS field
488  INNER JOIN il_dcl_view AS view ON view.table_id = field.table_id
489  INNER JOIN il_dcl_viewdefinition AS def ON def.view_id = view.id
490  WHERE field.table_id =" . $ilDB->quote($this->getId(), "integer") . "
491  ORDER BY def.field_order DESC";
492  $fields = array();
493  $set = $ilDB->query($query);
494 
495  while ($rec = $ilDB->fetchAssoc($set)) {
497  $fields[$field->getId()] = $field;
498  }
499  $this->sortByOrder($fields);
500  $this->fields = $fields;
501  }
502  }
$errors fields
Definition: imgupload.php:48
global $ilDB
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ loadObj()

ilDataCollectionTable::loadObj ( )
protected

Definition at line 359 of file class.ilDataCollectionTable.php.

Referenced by getCollectionObject().

359  {
360  if ($this->obj == NULL) {
361  $this->obj = new ilObjDataCollection($this->objId, false);
362  }
363  }
Class ilObjDataCollection.
+ Here is the caller graph for this function:

◆ loadRecords()

ilDataCollectionTable::loadRecords ( )
protected

Definition at line 404 of file class.ilDataCollectionTable.php.

References $ilDB, $query, $records, and ilDataCollectionCache\getRecordCache().

Referenced by getRecords(), and getRecordsByFilter().

404  {
405  if ($this->records == NULL) {
406  global $ilDB;
407 
408  $records = array();
409  $query = "SELECT id FROM il_dcl_record WHERE table_id = " . $ilDB->quote($this->id, "integer");
410  $set = $ilDB->query($query);
411 
412  while ($rec = $ilDB->fetchAssoc($set)) {
413  $records[$rec['id']] = ilDataCollectionCache::getRecordCache($rec['id']);
414  }
415 
416  $this->records = $records;
417  }
418  }
static getRecordCache($record_id=0)
global $ilDB
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ setAddPerm()

ilDataCollectionTable::setAddPerm (   $add_perm)
Parameters
boolean$add_perm

Definition at line 913 of file class.ilDataCollectionTable.php.

References $add_perm.

Referenced by cloneStructure(), and doRead().

913  {
914  $this->add_perm = $add_perm;
915  }
+ Here is the caller graph for this function:

◆ setDefaultSortField()

ilDataCollectionTable::setDefaultSortField (   $default_sort_field)

/**

Parameters
string$default_sort_field

Definition at line 1090 of file class.ilDataCollectionTable.php.

References $default_sort_field.

Referenced by cloneStructure(), and doRead().

1090  {
1091  $default_sort_field = ($default_sort_field) ? $default_sort_field : 0; // Change null or empty strings to zero
1092  $this->default_sort_field = $default_sort_field;
1093  }
+ Here is the caller graph for this function:

◆ setDefaultSortFieldOrder()

ilDataCollectionTable::setDefaultSortFieldOrder (   $default_sort_field_order)
Parameters
string$default_sort_field_order

Definition at line 1107 of file class.ilDataCollectionTable.php.

References $default_sort_field_order.

Referenced by cloneStructure(), and doRead().

1107  {
1108  if (! in_array($default_sort_field_order, array( 'asc', 'desc' ))) {
1109  $default_sort_field_order = 'asc';
1110  }
1111  $this->default_sort_field_order = $default_sort_field_order;
1112  }
+ Here is the caller graph for this function:

◆ setDeleteByOwner()

ilDataCollectionTable::setDeleteByOwner (   $delete_by_owner)
Parameters
boolean$delete_by_owner

Definition at line 977 of file class.ilDataCollectionTable.php.

References $delete_by_owner, and setDeletePerm().

Referenced by cloneStructure(), doRead(), and setDeletePerm().

978  {
979  $this->delete_by_owner = $delete_by_owner;
980  if ($delete_by_owner) {
981  $this->setDeletePerm(true);
982  }
983  }
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ setDeletePerm()

ilDataCollectionTable::setDeletePerm (   $delete_perm)
Parameters
boolean$delete_perm

Definition at line 929 of file class.ilDataCollectionTable.php.

References $delete_perm, and setDeleteByOwner().

Referenced by cloneStructure(), doRead(), and setDeleteByOwner().

929  {
930  $this->delete_perm = $delete_perm;
931  if (!$delete_perm) {
932  $this->setDeleteByOwner(false);
933  }
934  }
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ setDescription()

ilDataCollectionTable::setDescription (   $description)
Parameters
string$description

Definition at line 1072 of file class.ilDataCollectionTable.php.

References $description.

Referenced by cloneStructure(), and doRead().

1072  {
1073  $this->description = $description;
1074  }
+ Here is the caller graph for this function:

◆ setEditByOwner()

ilDataCollectionTable::setEditByOwner (   $edit_by_owner)
Parameters
boolean$edit_by_owner

Definition at line 949 of file class.ilDataCollectionTable.php.

References $edit_by_owner, and setEditPerm().

Referenced by cloneStructure(), doRead(), and setEditPerm().

949  {
950  $this->edit_by_owner = $edit_by_owner;
951  if ($edit_by_owner) {
952  $this->setEditPerm(true);
953  }
954  }
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ setEditPerm()

ilDataCollectionTable::setEditPerm (   $edit_perm)
Parameters
boolean$edit_perm

Definition at line 989 of file class.ilDataCollectionTable.php.

References $edit_perm, and setEditByOwner().

Referenced by cloneStructure(), doRead(), and setEditByOwner().

989  {
990  $this->edit_perm = $edit_perm;
991  if (!$edit_perm) {
992  $this->setEditByOwner(false);
993  }
994  }
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ setExportEnabled()

ilDataCollectionTable::setExportEnabled (   $export_enabled)
Parameters
boolean$export_enabled

Definition at line 1306 of file class.ilDataCollectionTable.php.

References $export_enabled.

Referenced by cloneStructure(), and doRead().

1306  {
1307  $this->export_enabled = $export_enabled;
1308  }
+ Here is the caller graph for this function:

◆ setId()

ilDataCollectionTable::setId (   $a_id)

Set table id.

Parameters
int$a_id

Definition at line 302 of file class.ilDataCollectionTable.php.

Referenced by doCreate().

302  {
303  $this->id = $a_id;
304  }
+ Here is the caller graph for this function:

◆ setIsVisible()

ilDataCollectionTable::setIsVisible (   $is_visible)
Parameters
boolean$is_visible

Definition at line 1056 of file class.ilDataCollectionTable.php.

References $is_visible.

Referenced by cloneStructure(), and doRead().

1056  {
1057  $this->is_visible = $is_visible;
1058  }
+ Here is the caller graph for this function:

◆ setLimited()

ilDataCollectionTable::setLimited (   $limited)
Parameters
boolean$limited

Definition at line 1008 of file class.ilDataCollectionTable.php.

References $limited.

Referenced by cloneStructure(), and doRead().

1008  {
1009  $this->limited = $limited;
1010  }
+ Here is the caller graph for this function:

◆ setLimitEnd()

ilDataCollectionTable::setLimitEnd (   $limit_end)
Parameters
string$limit_end

Definition at line 1024 of file class.ilDataCollectionTable.php.

References $limit_end.

Referenced by cloneStructure(), and doRead().

1024  {
1025  $this->limit_end = $limit_end;
1026  }
+ Here is the caller graph for this function:

◆ setLimitStart()

ilDataCollectionTable::setLimitStart (   $limit_start)
Parameters
string$limit_start

Definition at line 1040 of file class.ilDataCollectionTable.php.

References $limit_start.

Referenced by cloneStructure(), and doRead().

1040  {
1041  $this->limit_start = $limit_start;
1042  }
+ Here is the caller graph for this function:

◆ setObjId()

ilDataCollectionTable::setObjId (   $a_id)
Parameters
$a_id

Definition at line 320 of file class.ilDataCollectionTable.php.

Referenced by doRead().

320  {
321  $this->objId = $a_id;
322  }
+ Here is the caller graph for this function:

◆ setPublicCommentsEnabled()

ilDataCollectionTable::setPublicCommentsEnabled (   $public_comments)
Parameters
boolean$public_comments

Definition at line 1126 of file class.ilDataCollectionTable.php.

References $public_comments.

Referenced by cloneStructure(), and doRead().

1126  {
1127  $this->public_comments = $public_comments;
1128  }
+ Here is the caller graph for this function:

◆ setTitle()

ilDataCollectionTable::setTitle (   $a_title)
Parameters
$a_title

Definition at line 336 of file class.ilDataCollectionTable.php.

Referenced by cloneStructure(), and doRead().

336  {
337  $this->title = $a_title;
338  }
+ Here is the caller graph for this function:

◆ setViewOwnRecordsPerm()

ilDataCollectionTable::setViewOwnRecordsPerm (   $view_own_perm)
Parameters
boolean$view_own_perm

Definition at line 1142 of file class.ilDataCollectionTable.php.

Referenced by cloneStructure(), and doRead().

1142  {
1143  $this->view_own_records_perm = (int)$view_own_perm;
1144  }
+ Here is the caller graph for this function:

◆ sortByOrder()

ilDataCollectionTable::sortByOrder ( $array)
protected
Parameters
$arrayilDataCollectionField[] the array to sort

Definition at line 866 of file class.ilDataCollectionTable.php.

Referenced by buildOrderFields(), getFields(), loadFields(), and sortFields().

866  {
867  usort($array, array( $this, "compareOrder" ));
868  }
+ Here is the caller graph for this function:

◆ sortFields()

ilDataCollectionTable::sortFields ( $fields)

sortFields

Parameters
$fieldsilDataCollectionField[]

Definition at line 850 of file class.ilDataCollectionTable.php.

References $fields, and sortByOrder().

850  {
851  $this->sortByOrder($fields);
852  //After sorting the array loses it's keys respectivly their keys are set form $field->id to 1,2,3... so we reset the keys.
853  $named = array();
854  foreach ($fields as $field) {
855  $named[$field->getId()] = $field;
856  }
857 
858  $fields = $named;
859  }
+ Here is the call graph for this function:

◆ updateFields()

ilDataCollectionTable::updateFields ( )

Update fields.

Definition at line 838 of file class.ilDataCollectionTable.php.

References getFields().

838  {
839  foreach ($this->getFields() as $field) {
840  $field->doUpdate();
841  }
842  }
getFields()
Returns all fields of this table including the standard fields.
+ Here is the call graph for this function:

Field Documentation

◆ $add_perm

ilDataCollectionTable::$add_perm
protected

Definition at line 57 of file class.ilDataCollectionTable.php.

Referenced by getAddPerm(), and setAddPerm().

◆ $default_sort_field

ilDataCollectionTable::$default_sort_field = 0
protected

◆ $default_sort_field_order

ilDataCollectionTable::$default_sort_field_order = 'asc'
protected

◆ $delete_by_owner

ilDataCollectionTable::$delete_by_owner
protected

Definition at line 73 of file class.ilDataCollectionTable.php.

Referenced by getDeleteByOwner(), and setDeleteByOwner().

◆ $delete_perm

ilDataCollectionTable::$delete_perm
protected

Definition at line 65 of file class.ilDataCollectionTable.php.

Referenced by getDeletePerm(), and setDeletePerm().

◆ $description

ilDataCollectionTable::$description = ''
protected

Definition at line 107 of file class.ilDataCollectionTable.php.

Referenced by getDescription(), and setDescription().

◆ $edit_by_owner

ilDataCollectionTable::$edit_by_owner
protected

Definition at line 69 of file class.ilDataCollectionTable.php.

Referenced by getEditByOwner(), and setEditByOwner().

◆ $edit_perm

ilDataCollectionTable::$edit_perm
protected

Definition at line 61 of file class.ilDataCollectionTable.php.

Referenced by getEditPerm(), and setEditPerm().

◆ $export_enabled

ilDataCollectionTable::$export_enabled
protected

Definition at line 89 of file class.ilDataCollectionTable.php.

Referenced by getExportEnabled(), and setExportEnabled().

◆ $fields

◆ $id

ilDataCollectionTable::$id = 0
protected

◆ $is_visible

ilDataCollectionTable::$is_visible
protected

Definition at line 53 of file class.ilDataCollectionTable.php.

Referenced by getIsVisible(), and setIsVisible().

◆ $limit_end

ilDataCollectionTable::$limit_end
protected

Definition at line 85 of file class.ilDataCollectionTable.php.

Referenced by getLimitEnd(), and setLimitEnd().

◆ $limit_start

ilDataCollectionTable::$limit_start
protected

Definition at line 81 of file class.ilDataCollectionTable.php.

Referenced by getLimitStart(), and setLimitStart().

◆ $limited

ilDataCollectionTable::$limited
protected

Definition at line 77 of file class.ilDataCollectionTable.php.

Referenced by getLimited(), and setLimited().

◆ $obj

ilDataCollectionTable::$obj
protected

Definition at line 33 of file class.ilDataCollectionTable.php.

Referenced by getCollectionObject().

◆ $objId

ilDataCollectionTable::$objId
protected

Definition at line 29 of file class.ilDataCollectionTable.php.

Referenced by getObjId().

◆ $public_comments

ilDataCollectionTable::$public_comments = 0
protected

◆ $records

ilDataCollectionTable::$records
protected

◆ $stdFields

ilDataCollectionTable::$stdFields
protected

Definition at line 45 of file class.ilDataCollectionTable.php.

Referenced by getFields().

◆ $title

ilDataCollectionTable::$title
protected

◆ $view_own_records_perm

ilDataCollectionTable::$view_own_records_perm = 0
protected

Definition at line 119 of file class.ilDataCollectionTable.php.

Referenced by getViewOwnRecordsPerm().


The documentation for this class was generated from the following file: