5include_once
'./Modules/DataCollection/classes/class.ilDataCollectionStandardField.php';
6include_once
'./Modules/DataCollection/classes/class.ilDataCollectionRecord.php';
139 $query =
"SELECT * FROM il_dcl_table WHERE id = " .
$ilDB->quote($this->
getId(),
"integer");
141 $rec =
$ilDB->fetchAssoc($set);
170 public function doDelete($delete_main_table =
false) {
185 $exec_delete =
false;
186 if ($delete_main_table) {
193 $query =
"DELETE FROM il_dcl_table WHERE id = " .
$ilDB->quote($this->
getId(),
"integer");
194 $ilDB->manipulate(
$query);
197 $set =
$ilDB->query(
'SELECT * FROM il_dcl_view WHERE table_id = ' .
$ilDB->quote($this->getId(),
'integer'));
199 while (
$row =
$ilDB->fetchObject($set)) {
200 $view_ids[] =
$row->id;
202 if (count($view_ids)) {
203 $ilDB->manipulate(
"DELETE FROM il_dcl_viewdefinition WHERE view_id IN (" . implode(
',', $view_ids) .
")");
205 $ilDB->manipulate(
"DELETE FROM il_dcl_view WHERE table_id = " .
$ilDB->quote($this->getId(),
'integer'));
216 $id =
$ilDB->nextId(
"il_dcl_table");
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") .
","
231 $ilDB->manipulate(
$query);
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") .
", "
238 .
$ilDB->quote(1,
"integer") .
")";
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") .
", "
245 .
$ilDB->quote(1,
"integer") .
")";
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") .
", "
252 .
$ilDB->quote(1,
"integer") .
")";
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") .
", "
259 .
$ilDB->quote(1,
"integer") .
")";
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 ),
292 "id" => array(
"integer", $this->
getId() )
321 $this->objId = $a_id;
337 $this->title = $a_title;
360 if ($this->obj == NULL) {
390 if (! count($filter)) {
395 if ($record->passThroughFilter($filter)) {
396 $filtered[] = $record;
405 if ($this->records == NULL) {
409 $query =
"SELECT id FROM il_dcl_record WHERE table_id = " .
$ilDB->quote($this->
id,
"integer");
412 while ($rec =
$ilDB->fetchAssoc($set)) {
430 $query =
"SELECT * FROM il_dcl_table WHERE obj_id = " .
$ilDB->quote($a_id,
"integer");
434 while ($rec =
$ilDB->fetchAssoc($set)) {
435 $all[$rec[
'id']] = $rec;
450 $record->deleteField($field_id);
465 foreach (
$fields as $field_1) {
466 if ($field_1->getId() == $field_id) {
484 if ($this->
fields === NULL) {
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";
495 while ($rec =
$ilDB->fetchAssoc($set)) {
497 $fields[$field->getId()] = $field;
514 if (! $field->isStandardField()) {
515 $place = $field->getOrder() + 1;
530 $this->stdFields = $this->getStandardFields();
543 public function getFieldsForFormula() {
544 $unsupported = array(
556 $return = $this->getStandardFields();
560 foreach ($this->
fields as $field) {
561 if (! in_array($field->getDatatypeId(), $unsupported)) {
575 public function getStandardFields() {
576 if ($this->stdFields == NULL) {
581 foreach ($this->stdFields as $k => $field) {
582 if ($field->getId() ==
'comments') {
583 unset($this->stdFields[$k]);
614 $visibleFields = array();
617 if ($field->isVisible()) {
618 $visibleFields[] = $field;
622 return $visibleFields;
631 $editableFields = array();
634 if (! $field->getLocked()) {
635 $editableFields[] = $field;
639 return $editableFields;
651 $filterableFields = array();
654 if ($field->isFilterable()) {
655 $filterableFields[] = $field;
659 return $filterableFields;
670 $exportableFields = array();
672 if ($field->getExportable()) {
673 $exportableFields[] = $field;
677 return $exportableFields;
789 public function hasPermissionToViewRecord(
$ref_id, $record) {
828 return ($from <= $now && $now <= $to);
855 $named[$field->getId()] = $field;
867 usort($array, array( $this,
"compareOrder" ));
881 if (! is_null($field->getOrder())) {
882 $field->setOrder($count);
883 $count = $count + $offset;
900 if ($field->getTitle() ==
$title) {
1143 $this->view_own_records_perm = (int)$view_own_perm;
1163 return (count($this->
fields) > 0) ? true :
false;
1168 if (is_null($a->getOrder() == NULL) && is_null($b->getOrder() == NULL)) {
1171 if (is_null($a->getOrder())) {
1174 if (is_null($b->getOrder())) {
1178 return $a->getOrder() < $b->getOrder() ? - 1 : 1;
1207 $org_std_fields = $original->getStandardFields();
1208 foreach ($this->getStandardFields() as $element_key => $std_field) {
1216 $new_fields = array();
1217 foreach ($original->
getFields() as $orig_field) {
1218 if (! $orig_field->isStandardField()) {
1220 $new_field->setTableId($this->
getId());
1221 $new_field->cloneStructure($orig_field->getId());
1222 $new_fields[$orig_field->getId()] = $new_field;
1243 $old_view->setTableId($original->
getId());
1245 $viewdef->setTableId($this->
id);
1246 $viewdef->setXMLContent($old_view->getXMLContent(
false));
1258 return (count($this->
getRecords()) > 0) ? true :
false;
1266 $this->
fields[$field->getId()] = $field;
1277 $query =
"SELECT * FROM il_dcl_table WHERE id = " . $table_id;
1280 return $result->numRows() != 0;
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'));
1329 $result =
$ilDB->query(
'SELECT * FROM il_dcl_field WHERE table_id = ' .
$ilDB->quote($obj_id,
'integer') .
' AND title = '
1351 $direction = strtolower($direction);
1352 $direction = (in_array($direction, array(
'desc',
'asc' ))) ? $direction :
'asc';
1355 $sort_by_status =
false;
1356 if (substr($sort, 0, 8) ==
'_status_') {
1357 $sort_by_status =
true;
1361 if (is_null($sort_field)) {
1362 $sort_field = $this->
getField(
'id');
1365 $id = $sort_field->getId();
1366 $stl = $sort_field->getStorageLocation();
1369 $where_additions =
'';
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},";
1377 $select_str .=
" record.{$id} AS field_{$id},";
1380 switch ($sort_field->getDatatypeId()) {
1382 $rating_joined =
true;
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},";
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) {
1396 $join_str .=
"LEFT JOIN ut_lp_marks AS ut ON (ut.obj_id = sort_object_data_{$id}.obj_id AND ut.usr_id = "
1399 $select_str .= (! $sort_by_status) ?
" sort_object_data_{$id}.title AS field_{$id}," :
" ut.status AS field_{$id}";
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},";
1411 $prop = $sort_field->getPropertyvalues();
1417 $select_str .= ($n_ref) ?
" GROUP_CONCAT(stloc_{$id}_joined.value) AS field_{$id}" :
"stloc_{$id}_joined.value AS field_{$id},";
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) ";
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) ";
1431 $select_str .=
" sort_stloc_{$id}.value AS field_{$id},";
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) ";
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";
1450 $where_additions .=
" AND average.rating >= " .
$ilDB->quote($filter_value * 10000,
'integer');
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 ) ";
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') .
") ";
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) ";
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') .
") ";
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()) {
1477 $where_additions .=
" AND (record.{$filter_field_id} >= " .
$ilDB->quote($date_from,
'date') .
")";
1480 $where_additions .=
" AND (record.{$filter_field_id} <= " .
$ilDB->quote($date_to,
'date') .
")";
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 ";
1488 $join_str .=
"AND filter_stloc_{$filter_field_id}.value >= " .
$ilDB->quote($date_from,
'date') .
" ";
1491 $join_str .=
"AND filter_stloc_{$filter_field_id}.value <= " .
$ilDB->quote($date_to,
'date') .
" ";
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');
1503 if (! is_null($to)) {
1504 $where_additions .=
" AND record.{$filter_field_id} <= " .
$ilDB->quote($to,
'integer');
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');
1514 if (! is_null($to)) {
1515 $join_str .=
" AND filter_stloc_{$filter_field_id}.value <= " .
$ilDB->quote($to,
'integer');
1521 if ($filter_value ==
"checked") {
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');
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)";
1538 if ($filter_field->isStandardField()) {
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') .
") ";
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') .
") ";
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') .
") ";
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();
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') .
") ";
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') .
") ";
1572 $sql =
"SELECT DISTINCT record.id, record.owner";
1575 } $sql .= rtrim($select_str,
',') .
" FROM il_dcl_record AS record ";
1577 $sql .=
" WHERE record.table_id = " .
$ilDB->quote($this->
getId(),
'integer') . $where_additions;
1579 $sql .=
" GROUP BY record.id, record.owner";
1581 $props = $sort_field->getProperties();
1583 $sql .=
" ORDER BY field_{$id} {$direction}";
1585 $set =
$ilDB->query($sql);
1586 $total_record_ids = array();
1591 while ($rec =
$ilDB->fetchAssoc($set)) {
1593 if (!$is_allowed_to_view && ($this->
getViewOwnRecordsPerm() && $ilUser->getId() != $rec[
'owner'])) {
1596 $total_record_ids[] = $rec[
'id'];
1597 $_SESSION[
'dcl_record_ids'][] = $rec[
'id'];
1601 $sort_array = array();
1602 foreach ($total_record_ids as
$id) {
1604 $sort_array[
$id] = $formula_field->getValue();
1606 switch ($direction) {
1613 arsort($sort_array);
1616 $total_record_ids = array_keys($sort_array);
1620 $sort_array = array();
1621 foreach ($total_record_ids as
$id) {
1623 $sort_array[
$id] = $url_field->getSortingValue();
1625 switch ($direction) {
1632 arsort($sort_array);
1635 $total_record_ids = array_keys($sort_array);
1638 $record_ids = array_slice($total_record_ids, $offset, $limit);
1640 foreach ($record_ids as
$id) {
1644 return array(
'records' =>
$records,
'total' => count($total_record_ids) );
static buildFieldFromRecord($rec)
static getRecordFieldCache($record, $field)
static getRecordCache($record_id=0)
static getFieldCache($field_id=0)
const INPUTFORMAT_REFERENCELIST
const INPUTFORMAT_BOOLEAN
const INPUTFORMAT_ILIAS_REF
const INPUTFORMAT_FORMULA
const INPUTFORMAT_DATETIME
const INPUTFORMAT_REFERENCE
Class ilDataCollectionField.
const PROPERTYID_URL
LINK OR EMAIL!
const PROPERTYID_N_REFERENCE
Class ilDataCollectionField.
static getIdByTableId($a_table_id)
Get view definition id by table id.
Class ilDataCollectionRecord.
static _getStandardFields($table_id)
Class ilDataCollectionField.
hasPermissionToAddRecord($ref_id)
hasPermissionToFields($ref_id)
setPublicCommentsEnabled($public_comments)
hasPermissionToDeleteRecord($ref_id, ilDataCollectionRecord $record)
getExportableFields()
Return all the fields that are marked as exportable.
setEditByOwner($edit_by_owner)
getRecordsByFilter(array $filter=array())
getRecordsByFilter
getPublicCommentsEnabled()
$default_sort_field_order
doCreate($create_views=true)
setId($a_id)
Set table id.
setExportEnabled($export_enabled)
static _hasFieldByTitle($title, $obj_id)
Checks if a table has a field with the given title.
cloneStructure(ilDataCollectionTable $original)
getFilterableFields()
getFilterableFields Returns all fields of this table who have set their filterable to true,...
getRecordFields()
Returns all fields of this table which are NOT standard fields.
getPartialRecords($sort, $direction, $limit, $offset, array $filter=array())
Return only the needed subset of record objects for the table, according to sorting,...
setIsVisible($is_visible)
getFieldByTitle($title)
Get a field by title.
setDeletePerm($delete_perm)
getFields()
Returns all fields of this table including the standard fields.
setDeleteByOwner($delete_by_owner)
setDefaultSortField($default_sort_field)
/**
hasPermissionToAddTable($ref_id)
buildOrderFields()
buildOrderFields orders the fields.
setDescription($description)
setLimitStart($limit_start)
static _getTableIdByTitle($title, $obj_id)
hasPermissionToEditRecord($ref_id, ilDataCollectionRecord $record)
updateFields()
Update fields.
setViewOwnRecordsPerm($view_own_perm)
getDefaultSortFieldOrder()
getVisibleFields()
Returns all fields of this table who have set their visibility to true, including standard fields.
sortFields(&$fields)
sortFields
hasPermissionToDeleteRecords($ref_id)
doesRecordBelongToUser(ilDataCollectionRecord $record)
hasCustomFields()
hasCustomFields
setDefaultSortFieldOrder($default_sort_field_order)
static _tableExists($table_id)
@classDescription Date and time handling
static hasAddRecordAccess($ref)
static hasReadAccess($ref)
static hasWriteAccess($ref)
Class ilObjDataCollection.
static _getAllReferences($a_id)
get all reference ids of object