ILIAS  trunk Revision v11.0_alpha-3011-gc6b235a2e85
class.ilLTIConsumeProviderSettingsGUI.php
Go to the documentation of this file.
1<?php
2
19declare(strict_types=1);
20
31
33{
34 public const CMD_SHOW_SETTINGS = 'showSettings';
35 public const CMD_SAVE_SETTINGS = 'saveSettings';
36
41
46
47 protected LOMServices $lom_services;
48
53 {
54 global $DIC;
55 $this->object = $object;
56 $this->access = $access;
57 $this->lom_services = $DIC->learningObjectMetadata();
58 }
59
63 public function executeCommand(): void
64 {
65 global $DIC; /* @var \ILIAS\DI\Container $DIC */
66
67 switch ($DIC->ctrl()->getNextClass()) {
68 default:
69
70 $command = $DIC->ctrl()->getCmd(self::CMD_SHOW_SETTINGS) . 'Cmd';
71 $this->{$command}();
72 }
73 }
74
75 protected function showSettingsCmd(ilLTIConsumeProviderFormGUI $form = null): void
76 {
77 global $DIC; /* @var \ILIAS\DI\Container $DIC */
78
79 if ($form === null) {
80 $form = $this->buildForm($this->object->getProvider());
81 }
82
83 $DIC->ui()->mainTemplate()->setContent($form->getHTML());
84 }
85
86 protected function saveSettingsCmd(): void
87 {
88 global $DIC; /* @var \ILIAS\DI\Container $DIC */
89
90 $provider = $this->object->getProvider();
91 $form = $this->buildForm($provider);
92 if ($form->checkInput()) {
93 $form->initProvider($provider);
94 $this->object->getProvider()->save();
95 $this->initMetadata($this->object);
96 $DIC->ctrl()->redirect($this, self::CMD_SHOW_SETTINGS);
97 }
98
99 $this->showSettingsCmd($form);
100 }
101
102
106 public function initMetadata(\ilObject $object): void
107 {
108 // create LOM set from scratch
109 $this->lom_services->derive()
110 ->fromBasicProperties($object->getTitle())
111 ->forObject($object->getId(), $object->getId(), $object->getType());
112
113 // in a second step, set the keywords
114 $keywords = [];
115 foreach ($object->getProvider()->getKeywordsArray() as $keyword) {
116 if ($keyword !== '') {
117 $keywords[] = $keyword;
118 }
119 }
120 $this->lom_services->manipulate($object->getId(), $object->getId(), $object->getType())
121 ->prepareCreateOrUpdate(
122 $this->lom_services->paths()->keywords(),
123 ...$keywords
124 )->execute();
125 }
126
131 {
132 global $DIC; /* @var \ILIAS\DI\Container $DIC */
133
135 $form->initForm(
136 $DIC->ctrl()->getFormAction($this),
137 self::CMD_SAVE_SETTINGS,
138 self::CMD_SHOW_SETTINGS
139 );
140
141 return $form;
142 }
143}
showSettingsCmd(ilLTIConsumeProviderFormGUI $form=null)
__construct(ilObjLTIConsumer $object, ilLTIConsumerAccess $access)
ilLTIConsumerAccess constructor.
Class ilObject Basic functions for all objects.
$provider
Definition: ltitoken.php:80
global $DIC
Definition: shib_login.php:26