19 declare(strict_types=1);
33 protected InternalDataService
$data,
35 protected InternalGUIService $gui,
36 protected int $obj_id,
39 $this->global_settings = $this->domain->settings();
44 $ctrl = $this->gui->ctrl();
45 $next_class = $ctrl->getNextClass($this);
46 $cmd = $ctrl->getCmd(
"edit");
48 switch ($next_class) {
50 if (in_array($cmd, [
"edit",
"save"])) {
56 protected function edit(): void
58 $mt = $this->gui->ui()->mainTemplate();
60 $mt->setContent($form->render());
65 $settings = $this->domain->mediacastSettings()->getById($this->obj_id);
66 $lng = $this->domain->lng();
69 ->form(self::class,
"save")
70 ->section(
"general",
$lng->txt(
"mcst_settings"))
72 ->section(
"avail",
$lng->txt(
"rep_activation_availability"))
74 ->section(
"presentation",
$lng->txt(
"obj_presentation"))
78 $lng->txt(
"mcst_ordering"),
80 (string) $settings->getSortMode()
89 $lng->txt(
"mcst_viewmode"),
91 $settings->getViewMode()
98 $lng->txt(
"mcst_autoplay"),
105 (string) $settings->getAutoplayMode()
109 $lng->txt(
"mcst_nr_videos"),
111 max(1, $settings->getNumberInitialVideos()),
117 $lng->txt(
"mcst_downloadable"),
118 $lng->txt(
"mcst_downloadable_info"),
119 $settings->getDownloadable()
123 $news_set = new \ilSetting(
"news");
124 if ($news_set->get(
"enable_rss_for_internal")) {
126 ->section(
"webfeed",
$lng->txt(
"mcst_webfeed"))
129 $lng->txt(
"news_default_visibility"),
131 (string) $settings->getDefaultAccess()
135 $lng->txt(
"news_visibility_users"),
136 $lng->txt(
"news_news_item_def_visibility_users_info")
140 $lng->txt(
"news_visibility_public"),
141 $lng->txt(
"news_news_item_def_visibility_public_info")
150 $lng->txt(
"news_public_feed"),
151 $lng->txt(
"news_public_feed_info"),
156 $lng->txt(
"news_keep_minimal_x_items"),
169 $form = $form->checkbox(
171 $lng->txt(
"mcst_incl_files_in_rss"),
172 $lng->txt(
"mcst_incl_files_in_rss_info"),
173 $settings->getPublicFiles()
179 $form = $form->section(
"learning_progress",
$lng->txt(
"learning_progress"))
182 $lng->txt(
"mcst_new_items_det_lp"),
183 $lng->txt(
"mcst_new_items_det_lp_info"),
184 $settings->getNewItemsInLearningProgress()
188 if (!$this->global_settings->get(
'disable_comments')) {
189 $lng->loadLanguageModule(
"notes");
191 $form = $form->section(
"features",
$lng->txt(
'obj_features'));
192 $form = $form->checkbox(
194 $lng->txt(
"notes_comments"),
196 $this->domain->notes()->commentsActive($this->obj_id)
202 protected function save(): void
204 $mt = $this->gui->ui()->mainTemplate();
206 $ctrl = $this->gui->ctrl();
207 $lng = $this->domain->lng();
209 $old_settings = $this->domain->mediacastSettings()->getById($this->obj_id);
211 if ($form->isValid()) {
213 $form->saveStdTitleAndDescription($this->obj_id,
"mcst");
214 $form->saveStdTile($this->obj_id,
"mcst");
215 $form->saveOnline($this->obj_id,
"mcst");
217 $settings = $this->data->settings(
219 (
bool) $form->getData(
"public_files"),
220 (bool) $form->getData(
"downloadable"),
221 (
int) $form->getData(
"defaultaccess"),
222 (
int) $form->getData(
"order"),
223 (string) $form->getData(
"viewmode"),
224 (bool) $form->getData(
"autoplaymode"),
225 (
int) $form->getData(
"nr_videos"),
228 $this->domain->mediacastSettings()->update($settings);
230 if (!$this->global_settings->get(
'disable_comments')) {
231 $this->domain->notes()->activateComments(
233 $form->getData(
"comments")
237 $news_set = new \ilSetting(
"news");
238 $enable_internal_rss = $news_set->get(
"enable_rss_for_internal");
240 if ($enable_internal_rss) {
244 (
string) $form->getData(
"extra_feed"),
252 (
string) $form->getData(
"keep_rss_min"),
258 $mt->setOnScreenMessage(
"success",
$lng->txt(
"msg_obj_modified"),
true);
259 $ctrl->redirectByClass(self::class,
"edit");
261 $mt = $this->gui->ui()->mainTemplate();
262 $mt->setContent($form->render());
static _lookupRSSPeriod()
static checkAccess(int $a_ref_id, bool $a_allow_only_read=true)
check access to learning progress
static _lookup(string $a_type, string $a_setting, int $a_user=0, int $a_block_id=0)
Lookup setting from database.
static _write(string $a_type, string $a_setting, string $a_value, int $a_user=0, int $a_block_id=0)
Write setting to database.