19 declare(strict_types=1);
32 $this->type = $this::TYPE;
38 if (
$data = $this->db->fetchObject($stmt)) {
47 protected function doCreate(
bool $clone_mode =
false): void
51 $main_table->setObjId($this->
getId());
52 $main_table->setTitle($this->
getTitle());
53 $main_table->setAddPerm(
true);
54 $main_table->setEditPerm(
true);
55 $main_table->setDeletePerm(
false);
56 $main_table->setDeleteByOwner(
true);
57 $main_table->setEditByOwner(
true);
58 $main_table->setLimited(
false);
59 $main_table->setIsVisible(
true);
60 $main_table->doCreate();
79 $table->doDelete(
false,
true);
117 $mail->setType($action);
118 $mail->setActor($this->
user->getId());
119 $mail->setObjId($this->
getId());
121 $mail->setRecord($record);
124 foreach ($users as $user_id) {
126 $user_id !== $this->
user->getId() &&
127 $record->
getTable()->hasPermissionToViewRecord($this->
getRefId(), $record, $user_id) &&
128 [] !== $record->
getTable()->getVisibleTableViews($user_id)
130 $mail->addRecipient($user_id);
144 $new_obj->cloneStructure($this->
getRefId());
153 $this->
setRating($original->getRating());
157 foreach ($original->getTables() as $table) {
159 $new_table->setObjId($this->
getId());
160 $new_table->cloneStructure($table);
164 $table->afterClone();
170 $this->is_online = $a_val;
180 $this->rating = $a_val;
190 $this->public_notes = $a_val;
200 $this->approval = $a_val;
223 $stmt = $this->db->queryF(
224 'SELECT id FROM il_dcl_table WHERE obj_id = %s ORDER BY table_order',
229 while ($rec = $this->db->fetchAssoc($stmt)) {
247 if ($table->getIsVisible() && $table->getVisibleTableViews()) {
248 $tables[$table->getId()] = $table;
const TYPE_DATACOLLECTION
sendRecordNotification(int $action, ilDclBaseRecordModel $record)
setNotification(bool $a_val)
doCloneObject(ilObject2 $new_obj, int $a_target_id, ?int $a_copy_id=null)
static getNotificationsForObject(int $type, int $id, ?int $page_id=null, bool $ignore_threshold=false)
Get all users/recipients for given object.
const TYPE_DATA_COLLECTION
static getTableCache(int $table_id=null)
static setCloneOf(int $old, int $new, string $type)
static updateNotificationTime(int $type, int $id, array $user_ids, ?int $page_id=null, bool $activate_new_entries=true)
Update the last mail timestamp for given object and users.
setPublicNotes(bool $a_val)
doCreate(bool $clone_mode=false)
static _getInstance(int $a_copy_id)
getTableById(int $table_id)
cloneStructure(int $original_id)