19 declare(strict_types=1);
89 return "il_dcl_tableview";
97 public function setId(
int $id): void
129 $this->tableview_order = $order;
175 public function sleep($field_name): ?string
177 if ($field_name ==
'roles') {
178 return json_encode($this->roles);
188 public function wakeUp($field_name, $field_value): ?array
190 if ($field_name ==
'roles') {
191 return json_decode($field_value);
197 public function delete():
void 216 return parent::findOrGetInstance($primary_key, $add_constructor_args);
228 "tableview_id" => $this->
id,
230 'il_dcl_tfield_set.table_id' => $this->
getTableId(),
232 )->innerjoin(
'il_dcl_tfield_set',
'field',
'field', [])
233 ->orderBy(
'il_dcl_tfield_set.field_order')
243 if (!$this->visible_fields_cache) {
246 "tableview_id" => $this->
id,
248 'il_dcl_tfield_set.table_id' => $this->
getTableId(),
255 )->orderBy(
'il_dcl_tfield_set.field_order')->get();
257 foreach ($visible as $field_rec) {
258 $fields[] = $field_rec->getFieldObject();
260 $this->visible_fields_cache = $fields;
274 'tableview_id' => $this->
getId(),
275 'il_dcl_tfield_set.table_id' => $this->
getTableId(),
277 )->innerjoin(
'il_dcl_tfield_set',
'field',
'field', [])->orderBy(
'il_dcl_tfield_set.field_order')->get();
280 foreach ($settings as $setting) {
281 $datatype = $setting->getFieldObject()->getDatatypeId();
283 $result[] = $setting;
297 'tableview_id' => $this->
getId(),
302 public function create(
bool $create_default_settings =
true): void
305 if ($create_default_settings) {
317 foreach ($table->getFieldIds() as $field_id) {
323 if (!$table->getPublicCommentsEnabled()) {
336 'tableview_id' => $this->
id,
337 'field' => $field_id,
342 $field_set->setTableviewId($this->
id);
343 $field_set->setField($field_id);
345 $field_set->setFilterChangeable(
true);
346 $field_set->setLockedCreate(
false);
347 $field_set->setLockedEdit(
false);
348 $field_set->setRequiredCreate(
false);
349 $field_set->setRequiredEdit(
false);
350 $field_set->setVisibleCreate(
true);
351 $field_set->setVisibleEdit(
true);
352 $field_set->create();
364 $this->
setTitle($orig->
getTitle() .
' ' . $DIC->language()->txt(
'copy_of_suffix'));
377 $new_fieldsetting->setTableviewId($this->
getId());
378 if ($new_fields[$orig_fieldsetting->getField()] ??
null) {
380 $new_fieldsetting->setField($new_fields[$orig_fieldsetting->getField()]->getId());
383 $new_fieldsetting->setField($orig_fieldsetting->getField());
385 $new_field_id = $new_fieldsetting->cloneStructure($orig_fieldsetting);
388 $datatype = $orig_fieldsetting->getFieldObject()->getDatatypeId();
389 $match = ilDclTableViewBaseDefaultValue::findSingle($datatype, $orig_fieldsetting->getId());
391 if (!is_null($match)) {
392 $new_default_value =
$f->create($datatype);
393 $new_default_value->setTviewSetId($new_field_id);
394 $new_default_value->setValue($match->getValue());
395 $new_default_value->create();
415 return self::where([
'table_id' => $table_id])->orderBy(
'title')->get();
420 return self::where([
'table_id' => $table_id])->orderBy(
'tableview_order')->count();
429 if ($standardview = self::where([
'table_id' => $table_id])->
orderBy(
'tableview_order')->
first()) {
430 return $standardview;
434 $rbacreview = $DIC[
'rbacreview'];
435 $http = $DIC->http();
441 foreach ($rbacreview->getParentRoleIds(
$ref_id) as $role_array) {
442 $roles[] = $role_array[
'obj_id'];
447 $hasRefId =
$http->wrapper()->query()->has(
'ref_id');
451 $rbacreview = $DIC[
'rbacreview'];
456 foreach ($rbacreview->getParentRoleIds(
$ref_id) as $role_array) {
457 $roles[] = $role_array[
'obj_id'];
459 $view->setRoles(array_merge($roles, $rbacreview->getLocalRoles(
$ref_id)));
461 $view->setTableId($table_id);
464 $view->setTitle(
$lng->txt(
'dcl_title_standardview'));
465 $view->setTableviewOrder(10);
static createOrGetStandardView(int $table_id)
cloneStructure(ilDclTableView $orig, array $new_fields)
createFieldSetting($field_id)
create ilDclTableViewFieldSetting for this tableview and the given field id
wakeUp($field_name, $field_value)
static findOrGetInstance($primary_key, array $add_constructor_args=[])
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
static orderBy(string $orderBy, string $orderDirection='ASC')
getFilterableFieldSettings()
getFilterableFields Returns all fieldsetting-objects of this tableview which have set their filterabl...
static where($where, $operator=null)
while($session_entry=$r->fetchRow(ilDBConstants::FETCHMODE_ASSOC)) return null
setDescription(string $description)
static returnDbTableName()
static getAllDatatype(bool $force=false)
Get all possible Datatypes.
createDefaultSettings()
create default ilDclTableViewFieldSetting entries
static getCountForTableId(int $table_id)
static getTableCache(?int $table_id=null)
static setCloneOf(int $old, int $new, string $type)
static _isStandardField($field_id)
array $visible_fields_cache
create(bool $create_default_settings=true)
setRoleLimitation(bool $role_limitation)
copy(int $a_id, string $a_parent_type="", int $a_new_parent_id=0, bool $a_clone_mobs=false, int $obj_copy_id=0, bool $overwrite_existing=true)
Copy page.
getVisibleFields()
Returns all field-objects of this tableview which have set their visibility to true, including standard fields.
static getAllForTableId(int $table_id)
setTableId(int $table_id)
getFieldSetting($field_id)
setTableviewOrder(int $tableview_order)