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)