19 declare(strict_types=1);
30 protected \ILIAS\Notes\DomainService
$notes;
34 protected InternalDataService
$data,
36 protected InternalGUIService $gui,
37 protected int $obj_id,
38 protected bool $in_repository,
41 $this->notes = $domain->notes();
46 $ctrl = $this->gui->ctrl();
47 $next_class = $ctrl->getNextClass($this);
48 $cmd = $ctrl->getCmd(
"edit");
50 switch ($next_class) {
52 if (in_array($cmd, [
"edit",
"save"])) {
58 protected function edit(): void
60 $mt = $this->gui->ui()->mainTemplate();
62 $mt->setContent($form->render());
67 $settings = $this->domain->portfolioSettings()->getById($this->obj_id);
68 $lng = $this->domain->lng();
70 $lng->loadLanguageModule(
"rep");
73 ->form(self::class,
"save")
74 ->section(
"general",
$lng->txt(
"prtf_edit_portfolio"));
75 if ($this->in_repository) {
77 ->addStdTitleAndDescription($this->obj_id,
"prtf");
80 ->addStdTitle($this->obj_id,
"prtf");
83 ->section(
"avail",
$lng->txt(
"rep_activation_availability"))
85 if ($this->in_repository) {
86 $form = $form->addStdAvailability($this->ref_id);
89 ->section(
"presentation",
$lng->txt(
"obj_presentation"))
92 $lng->txt(
"prtf_profile_picture"),
94 $settings->getShowPersonalPicture()
96 if ($this->in_repository) {
98 ->addStdTile($this->obj_id,
"prtf");
100 if ($this->in_repository) {
102 ->addAdditionalFeatures(
112 $lng->txt(
"prtf_public_comments"),
114 $this->notes->commentsActive($this->obj_id)
120 protected function save(): void
122 $mt = $this->gui->ui()->mainTemplate();
124 $ctrl = $this->gui->ctrl();
125 $lng = $this->domain->lng();
127 $old_settings = $this->domain->portfolioSettings()->getById($this->obj_id);
129 if ($form->isValid()) {
130 if ($this->in_repository) {
131 $form->saveStdTitleAndDescription($this->obj_id,
"prtf");
132 $form->saveStdTile($this->obj_id,
"mep");
133 $form->saveAdditionalFeatures(
140 $form->saveStdTitle($this->obj_id,
"prtf");
142 $form->saveOnline($this->obj_id,
"mep");
144 $this->notes->activateComments(
146 $form->getData(
"comments")
149 $settings = $this->data->settings(
151 (
bool) $form->getData(
"ppic")
153 $this->domain->portfolioSettings()->update($settings);
155 if ($this->in_repository) {
156 $form->saveStdAvailability($this->ref_id);
159 $mt->setOnScreenMessage(
"success",
$lng->txt(
"msg_obj_modified"),
true);
160 $ctrl->redirectByClass(self::class,
"edit");
162 $mt = $this->gui->ui()->mainTemplate();
163 $mt->setContent($form->render());
ILIAS Notes DomainService $notes
ilSetting $global_settings
__construct(protected InternalDataService $data, protected InternalDomainService $domain, protected InternalGUIService $gui, protected int $obj_id, protected bool $in_repository, protected int $ref_id=0)