19declare(strict_types=1);
82 return "il_dcl_tableview";
148 public function sleep($field_name): ?string
150 if ($field_name ==
'roles') {
151 return json_encode($this->roles);
161 public function wakeUp($field_name, $field_value): ?array
163 if ($field_name ==
'roles') {
164 return json_decode($field_value);
170 public function delete():
void
189 return parent::findOrGetInstance($primary_key, $add_constructor_args);
201 "tableview_id" => $this->
id,
203 'il_dcl_tfield_set.table_id' => $this->
getTableId(),
205 )->innerjoin(
'il_dcl_tfield_set',
'field',
'field', [])
206 ->orderBy(
'il_dcl_tfield_set.field_order')
216 if (!$this->visible_fields_cache) {
219 "tableview_id" => $this->
id,
221 'il_dcl_tfield_set.table_id' => $this->
getTableId(),
228 )->orderBy(
'il_dcl_tfield_set.field_order')->get();
230 foreach ($visible as $field_rec) {
231 $fields[] = $field_rec->getFieldObject();
233 $this->visible_fields_cache = $fields;
247 'tableview_id' => $this->
getId(),
248 'il_dcl_tfield_set.table_id' => $this->
getTableId(),
250 )->innerjoin(
'il_dcl_tfield_set',
'field',
'field', [])->orderBy(
'il_dcl_tfield_set.field_order')->get();
253 foreach ($settings as $setting) {
254 $datatype = $setting->getFieldObject()->getDatatypeId();
256 $result[] = $setting;
270 'tableview_id' => $this->
getId(),
275 public function create(
bool $create_default_settings =
true): void
278 if ($create_default_settings) {
290 foreach ($table->getFieldIds() as $field_id) {
296 if (!$table->getPublicCommentsEnabled()) {
309 'tableview_id' => $this->
id,
310 'field' => $field_id,
315 $field_set->setTableviewId($this->
id);
316 $field_set->setField($field_id);
318 $field_set->setFilterChangeable(
true);
319 $field_set->setLockedCreate(
false);
320 $field_set->setLockedEdit(
false);
321 $field_set->setRequiredCreate(
false);
322 $field_set->setRequiredEdit(
false);
323 $field_set->setVisibleCreate(
true);
324 $field_set->setVisibleEdit(
true);
325 $field_set->create();
349 $new_fieldsetting->setTableviewId($this->
getId());
350 if ($new_fields[$orig_fieldsetting->getField()] ??
null) {
352 $new_fieldsetting->setField($new_fields[$orig_fieldsetting->getField()]->getId());
355 $new_fieldsetting->setField($orig_fieldsetting->getField());
357 $new_field_id = $new_fieldsetting->cloneStructure($orig_fieldsetting);
360 $datatype = $orig_fieldsetting->getFieldObject()->getDatatypeId();
361 $match = ilDclTableViewBaseDefaultValue::findSingle($datatype, $orig_fieldsetting->getId());
363 if (!is_null($match)) {
364 $new_default_value =
$f->create($datatype);
365 $new_default_value->setTviewSetId($new_field_id);
366 $new_default_value->setValue($match->getValue());
367 $new_default_value->create();
375 $orig_pageobject->copy($this->
getId());
396 if ($standardview = self::where([
'table_id' =>
$table_id])->
first()) {
397 return $standardview;
401 $rbacreview =
$DIC[
'rbacreview'];
408 foreach ($rbacreview->getParentRoleIds(
$ref_id) as $role_array) {
409 $roles[] = $role_array[
'obj_id'];
414 $hasRefId =
$http->wrapper()->query()->has(
'ref_id');
418 $rbacreview =
$DIC[
'rbacreview'];
423 foreach ($rbacreview->getParentRoleIds(
$ref_id) as $role_array) {
424 $roles[] = $role_array[
'obj_id'];
426 $view->setRoles(array_merge(
$roles, $rbacreview->getLocalRoles(
$ref_id)));
431 $view->setTitle(
$lng->txt(
'dcl_title_standardview'));
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
static where($where, $operator=null)
static getTableCache(?int $table_id=null)
static setCloneOf(int $old, int $new, string $type)
static getAllDatatype(bool $force=false)
Get all possible Datatypes.
static _isStandardField($field_id)
createDefaultSettings()
create default ilDclTableViewFieldSetting entries
wakeUp($field_name, $field_value)
getVisibleFields()
Returns all field-objects of this tableview which have set their visibility to true,...
setRoleLimitation(bool $role_limitation)
setTableId(int $table_id)
static createOrGetStandardView(int $table_id)
static getAllForTableId(int $table_id)
cloneStructure(ilDclTableView $orig, array $new_fields)
getFieldSetting($field_id)
setDescription(string $description)
static findOrGetInstance($primary_key, array $add_constructor_args=[])
array $visible_fields_cache
create(bool $create_default_settings=true)
getFilterableFieldSettings()
getFilterableFields Returns all fieldsetting-objects of this tableview which have set their filterabl...
createFieldSetting($field_id)
create ilDclTableViewFieldSetting for this tableview and the given field id
static returnDbTableName()