19declare(strict_types=1);
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"))
71 ->addStdTitleAndDescription($this->obj_id,
"mcst")
72 ->section(
"avail",
$lng->txt(
"rep_activation_availability"))
73 ->addOnline($this->obj_id,
"mcst")
74 ->section(
"presentation",
$lng->txt(
"obj_presentation"))
75 ->addStdTile($this->obj_id,
"mcst")
78 $lng->txt(
"mcst_ordering"),
80 (
string) $settings->getSortMode()
89 $lng->txt(
"mcst_viewmode"),
91 $settings->getViewMode()
98 $lng->txt(
"mcst_nr_videos"),
100 max(1, $settings->getNumberInitialVideos()),
106 $lng->txt(
"mcst_downloadable"),
107 $lng->txt(
"mcst_downloadable_info"),
108 $settings->getDownloadable()
112 $news_set = new \ilSetting(
"news");
113 if ($news_set->get(
"enable_rss_for_internal")) {
115 ->section(
"webfeed",
$lng->txt(
"mcst_webfeed"))
118 $lng->txt(
"news_default_visibility"),
120 (
string) $settings->getDefaultAccess()
124 $lng->txt(
"news_visibility_users"),
125 $lng->txt(
"news_news_item_def_visibility_users_info")
129 $lng->txt(
"news_visibility_public"),
130 $lng->txt(
"news_news_item_def_visibility_public_info")
139 $lng->txt(
"news_public_feed"),
140 $lng->txt(
"news_public_feed_info"),
145 $lng->txt(
"news_keep_minimal_x_items"),
158 $form = $form->checkbox(
160 $lng->txt(
"mcst_incl_files_in_rss"),
161 $lng->txt(
"mcst_incl_files_in_rss_info"),
162 $settings->getPublicFiles()
168 $form = $form->section(
"learning_progress",
$lng->txt(
"learning_progress"))
171 $lng->txt(
"mcst_new_items_det_lp"),
172 $lng->txt(
"mcst_new_items_det_lp_info"),
173 $settings->getNewItemsInLearningProgress()
177 if (!$this->global_settings->get(
'disable_comments')) {
178 $lng->loadLanguageModule(
"notes");
180 $form = $form->section(
"features",
$lng->txt(
'obj_features'));
181 $form = $form->checkbox(
183 $lng->txt(
"notes_comments"),
185 $this->domain->notes()->commentsActive($this->obj_id)
191 protected function save(): void
193 $mt = $this->gui->ui()->mainTemplate();
195 $ctrl = $this->gui->ctrl();
196 $lng = $this->domain->lng();
198 $old_settings = $this->domain->mediacastSettings()->getById($this->obj_id);
200 if ($form->isValid()) {
202 $form->saveStdTitleAndDescription($this->obj_id,
"mcst");
203 $form->saveStdTile($this->obj_id,
"mcst");
204 $form->saveOnline($this->obj_id,
"mcst");
206 $settings = $this->data->settings(
208 (
bool) $form->getData(
"public_files"),
209 (
bool) $form->getData(
"downloadable"),
210 (
int) $form->getData(
"defaultaccess"),
211 (
int) $form->getData(
"order"),
212 (
string) $form->getData(
"viewmode"),
213 (
int) $form->getData(
"nr_videos"),
216 $this->domain->mediacastSettings()->update($settings);
218 if (!$this->global_settings->get(
'disable_comments')) {
219 $this->domain->notes()->activateComments(
221 $form->getData(
"comments")
225 $news_set = new \ilSetting(
"news");
226 $enable_internal_rss = $news_set->get(
"enable_rss_for_internal");
228 if ($enable_internal_rss) {
232 (
string) $form->getData(
"extra_feed"),
240 (
string) $form->getData(
"keep_rss_min"),
246 $mt->setOnScreenMessage(
"success",
$lng->txt(
"msg_obj_modified"),
true);
247 $ctrl->redirectByClass(self::class,
"edit");
249 $mt = $this->gui->ui()->mainTemplate();
250 $mt->setContent($form->render());
static _write(string $a_type, string $a_setting, string $a_value, int $a_user=0, int $a_block_id=0)
Write setting to database.
static _lookup(string $a_type, string $a_setting, int $a_user=0, int $a_block_id=0)
Lookup setting from database.
static checkAccess(int $a_ref_id, bool $a_allow_only_read=true)
check access to learning progress
static _lookupRSSPeriod()