10 require_once
"./Services/Object/classes/class.ilObjectGUI.php";
58 public function __construct($a_data, $a_id, $a_call_by_reference, $a_prepare_output =
true)
62 $this->ctrl = $DIC->ctrl();
63 $this->lng = $DIC->language();
64 $this->
user = $DIC->user();
65 $this->tabs = $DIC->tabs();
66 $this->tpl = $DIC[
"tpl"];
67 $this->access = $DIC->access();
68 $this->toolbar = $DIC->toolbar();
69 $this->filesystem = $DIC->filesystem()->web();
70 $this->log = $DIC[
"ilLog"];
71 $this->error = $DIC[
"ilErr"];
72 $this->
help = $DIC[
"ilHelp"];
73 $this->locator = $DIC[
"ilLocator"];
75 $lng = $DIC->language();
79 $lng->loadLanguageModule(
"mcst");
80 $lng->loadLanguageModule(
"news");
81 $lng->loadLanguageModule(
"rep");
83 $ilCtrl->saveParameter($this,
"item_id");
85 include_once(
"./Modules/MediaCast/classes/class.ilMediaCastSettings.php");
87 $this->purposeSuffixes =
$settings->getPurposeSuffixes();
88 $this->mimeTypes = array();
90 foreach ($mime_types as $mt) {
91 $this->mimeTypes[$mt] = $mt;
94 include_once(
"./Services/Utilities/classes/class.ilMimeTypeUtil.php");
96 $this->mimeTypes[$mt] = $mt;
98 asort($this->mimeTypes);
106 $next_class = $this->ctrl->getNextClass($this);
107 $cmd = $this->ctrl->getCmd();
110 switch ($next_class) {
111 case "ilinfoscreengui":
120 $ilTabs->activateTab(
"export");
121 include_once(
"./Services/Export/classes/class.ilExportGUI.php");
123 $exp_gui->addFormat(
"xml");
124 $ret = $this->ctrl->forwardCommand($exp_gui);
128 case 'ilpermissiongui':
129 $ilTabs->activateTab(
"id_permissions");
130 include_once(
"Services/AccessControl/classes/class.ilPermissionGUI.php");
132 $ret = $this->ctrl->forwardCommand($perm_gui);
135 case 'ilobjectcopygui':
136 include_once
'./Services/Object/classes/class.ilObjectCopyGUI.php';
138 $cp->setType(
'mcst');
139 $this->ctrl->forwardCommand($cp);
142 case "ilcommonactiondispatchergui":
143 include_once(
"Services/Object/classes/class.ilCommonActionDispatcherGUI.php");
145 $this->ctrl->forwardCommand($gui);
148 case "illearningprogressgui":
149 $ilTabs->activateTab(
'learning_progress');
150 require_once
'Services/Tracking/classes/class.ilLearningProgressGUI.php';
153 $this->object->getRefId(),
156 $this->ctrl->forwardCommand($new_gui);
157 $this->tabs_gui->setTabActive(
'learning_progress');
165 if ($cmd !=
"infoScreenObject") {
182 $forms = array(self::CFORM_NEW => $this->
initCreateForm($a_new_type),
196 ilUtil::sendSuccess($this->lng->txt(
"object_added"),
true);
213 if ($a_presentation_mode) {
219 $med_items = $this->
object->getSortedItemsArray();
221 include_once(
"./Modules/MediaCast/classes/class.ilMediaCastTableGUI.php");
222 if ($a_presentation_mode) {
228 $table_gui->setData($med_items);
230 if ($ilAccess->checkAccess(
"write",
"",
$_GET[
"ref_id"]) && !$a_presentation_mode) {
231 $ilToolbar->addButton(
$lng->txt(
"add"), $this->ctrl->getLinkTarget($this,
"addCastItem"));
233 $table_gui->addMultiCommand(
"confirmDeletionItems",
$lng->txt(
"delete"));
234 $table_gui->setSelectAllCheckbox(
"item_id");
238 if ($feed_icon_html !=
"") {
239 $table_gui->setHeaderHTML($feed_icon_html);
242 $tpl->setContent($table_gui->getHTML());
257 include_once(
"./Services/Block/classes/class.ilBlockSetting.php");
262 $this->object->getId()
268 $enable_internal_rss = $news_set->get(
"enable_rss_for_internal");
270 if ($enable_internal_rss) {
272 $items = $this->
object->getItemsArray();
273 include_once(
"./Services/MediaObjects/classes/class.ilObjMediaObjectGUI.php");
276 foreach ($items as $id => $item) {
279 if ($mob->hasPurposeItem($purpose)) {
283 $url =
ILIAS_HTTP_PATH .
"/feed.php?client_id=" . rawurlencode(CLIENT_ID) .
"&" .
"ref_id=" .
$_GET[
"ref_id"] .
"&purpose=$purpose";
284 $title =
$lng->txt(
"news_feed_url");
286 include_once(
"./Services/News/classes/class.ilRSSButtonGUI.php");
287 switch (strtolower($purpose)) {
288 case "audioportable":
293 case "videoportable":
304 if ($this->object->getPublicFiles()) {
305 $url = preg_replace(
"/https?/i",
"itpc",
$url);
306 $title =
$lng->txt(
"news_feed_url");
308 include_once(
"./Services/News/classes/class.ilRSSButtonGUI.php");
337 $tpl->setContent($this->form_gui->getHTML());
352 include_once(
"./Services/MediaObjects/classes/class.ilFFmpeg.php");
355 include_once(
"./Services/MediaObjects/classes/class.ilObjMediaObjectGUI.php");
361 foreach (array(
"Standard") as $p) {
396 if (is_object($med)) {
399 include_once(
"./Services/Form/classes/class.ilTextInputGUI.php");
401 $ni->setMaxLength(4);
404 $ilToolbar->addInputItem($ni,
true);
406 $ilToolbar->addFormButton($this->lng->txt(
"mcst_extract_preview_image"),
"extractPreviewImage");
407 $ilToolbar->setFormAction(
$ilCtrl->getFormAction($this));
420 $tpl->setContent($this->form_gui->getHTML());
433 $ilTabs->activateTab(
"edit_content");
435 $lng->loadLanguageModule(
"mcst");
438 $enable_internal_rss = $news_set->get(
"enable_rss_for_internal");
440 include_once(
"Services/Form/classes/class.ilPropertyFormGUI.php");
442 $this->form_gui->setMultipart(
true);
446 $text_input->setMaxLength(200);
447 $this->form_gui->addItem($text_input);
452 $this->form_gui->addItem($text_area);
455 if ($enable_internal_rss) {
458 $radio_group->addOption($radio_option);
460 $radio_group->addOption($radio_option);
461 $radio_group->
setInfo(
$lng->txt(
"mcst_visibility_info"));
462 $radio_group->setRequired(
true);
463 $radio_group->setValue($this->object->getDefaultAccess() == 0 ?
"users" :
"public");
464 $this->form_gui->addItem($radio_group);
470 $dur->setShowDays(
false);
471 $dur->setShowHours(
true);
472 $dur->setShowSeconds(
true);
473 $this->form_gui->addItem($dur);
476 if ($purpose ==
"VideoAlternative" &&
477 $a_mode ==
"create") {
482 $section->setTitle(
$lng->txt(
"mcst_" . strtolower($purpose) .
"_title"));
484 if ($a_mode !=
"create") {
487 $label->
setPostVar(
"label_value_" . $purpose);
488 $label->setInfo(
$lng->txt(
"mcst_current_value_info"));
489 $this->form_gui->addItem($label);
490 $this->form_gui->addItem($value);
493 $file->
setSuffixes($this->purposeSuffixes[$purpose]);
494 $this->form_gui->addItem($file);
497 $text_input->setInfo(
$lng->txt(
"mcst_reference_info"));
498 $this->form_gui->addItem($text_input);
499 if ($purpose !=
"Standard") {
501 $clearCheckBox->setPostVar(
"delete_" . $purpose);
502 $clearCheckBox->setTitle(
$lng->txt(
"mcst_clear_purpose_title"));
503 $this->form_gui->addItem($clearCheckBox);
508 $mimeTypeSelection->setPostVar(
"mimetype_" . $purpose);
509 $mimeTypeSelection->setTitle(
$lng->txt(
"mcst_mimetype"));
510 $mimeTypeSelection->setInfo(
$lng->txt(
"mcst_mimetype_info"));
511 $options = array(
"" =>
$lng->txt(
"mcst_automatic_detection"));
512 $options = array_merge($options, $this->mimeTypes);
513 $mimeTypeSelection->setOptions($options);
514 $this->form_gui->addItem($mimeTypeSelection);
519 $pp->setInfo(
$lng->txt(
"mcst_preview_picture_info") .
" mp4, mp3, png, jp(e)g, gif");
520 $this->form_gui->addItem($pp);
525 if ($a_mode ==
"create") {
526 $this->form_gui->setTitle(
$lng->txt(
"mcst_add_new_item"));
527 $this->form_gui->addCommandButton(
"saveCastItem",
$lng->txt(
"save"));
529 $this->form_gui->setTitle(
$lng->txt(
"mcst_edit_item"));
530 $this->form_gui->addCommandButton(
"updateCastItem",
$lng->txt(
"save"));
532 $this->form_gui->addCommandButton(
"listItems",
$lng->txt(
"cancel"));
533 $this->form_gui->setFormAction(
$ilCtrl->getFormAction($this,
"saveCastItem"));
545 include_once(
"./Services/MediaObjects/classes/class.ilObjMediaObjectGUI.php");
551 $i = $this->form_gui->getItemByPostVar(
"preview_pic");
558 if (count($mediaItems) > 0) {
559 foreach ($mediaItems as $med) {
560 if (!isset($values[
"title"])) {
562 $values[
"title"] = $this->mcst_item->getTitle();
563 $values[
"description"] = $this->mcst_item->getContent();
564 $values[
"visibility"] = $this->mcst_item->getVisibility();
565 $length = explode(
":", $this->mcst_item->getPlaytime());
566 $values[
"duration"] = array(
"hh" => $length[0],
"mm" => $length[1],
"ss" => $length[2]);
569 $values[
"value_" . $med->getPurpose()] = (strlen($med->getLocation()) > 100) ?
"..." . substr($med->getLocation(), strlen($med->getLocation()) - 100) : $med->getLocation();
570 $values[
"label_value_" . $med->getPurpose()] = (strlen($med->getLocation()) > 100) ?
"..." . substr($med->getLocation(), strlen($med->getLocation()) - 100) : $med->getLocation();
571 $values[
"mimetype_" . $med->getPurpose()] = $med->getFormat();
575 if (!isset($values[
"value_" . $purpose])) {
576 $values[
"label_value_" . $purpose] =
$lng->txt(
"none");
577 $values[
"value_" . $purpose] =
$lng->txt(
"none");
580 $this->form_gui->setValuesByArray($values);
595 $ilTabs->activateTab(
"edit_content");
599 if (!$this->form_gui->checkInput() ||
600 (
$_POST[
"url_Standard"] ==
"" && !$_FILES[
'file_Standard'][
'tmp_name'])) {
601 if ((
$_POST[
"url_Standard"] ==
"" && !$_FILES[
'file_Standard'][
'tmp_name'])) {
607 include_once(
"./Services/MediaObjects/classes/class.ilObjMediaObjectGUI.php");
616 $title = $this->form_gui->getInput(
"title") !=
"" ? $this->form_gui->getInput(
"title") : basename($file);
617 $description = $this->form_gui->getInput(
"description");
618 $mob->setTitle($title);
619 $mob->setDescription($description);
622 $prevpic = $this->form_gui->getInput(
"preview_pic");
623 if ($prevpic[
"size"] > 0) {
624 $mob->uploadVideoPreviewPic($prevpic);
631 foreach ($this->additionalPurposes as $purpose) {
633 $file_gui = $this->form_gui->getInput(
"file_" . $purpose);
634 $url_gui = $this->form_gui->getInput(
"url_" . $purpose);
635 if ($url_gui || $file_gui[
"size"] > 0) {
642 if ($prevpic[
"size"] == 0) {
653 $enable_internal_rss = $news_set->get(
"enable_rss_for_internal");
656 include_once(
"./Services/News/classes/class.ilNewsItem.php");
658 $mc_item->setMobId($mob->getId());
660 $mc_item->setContextObjId($this->object->getId());
661 $mc_item->setContextObjType($this->object->getType());
662 $mc_item->setUserId(
$ilUser->getId());
663 $mc_item->setPlaytime($duration);
664 $mc_item->setTitle($title);
665 $mc_item->setContent($description);
666 $mc_item->setLimitation(
false);
667 if ($enable_internal_rss) {
668 $mc_item->setVisibility($this->form_gui->getInput(
"visibility"));
670 $mc_item->setVisibility(
"users");
674 $ilCtrl->redirect($this,
"listItems");
686 $duration = isset($this->form_gui)
687 ? $this->form_gui->getInput(
"duration")
688 : array(
"hh" => 0,
"mm" => 0,
"ss" => 0);
689 if ($duration[
"hh"] == 0 && $duration[
"mm"] == 0 && $duration[
"ss"] == 0 && is_file($file)) {
690 include_once(
"./Services/MediaObjects/classes/class.ilMediaAnalyzer.php");
692 $ana->setFile($file);
694 $dur = $ana->getPlaytimeString();
695 $dur = explode(
":", $dur);
696 $duration[
"mm"] = $dur[0];
697 $duration[
"ss"] = $dur[1];
699 $duration = str_pad($duration[
"hh"], 2,
"0", STR_PAD_LEFT) .
":" .
700 str_pad($duration[
"mm"], 2,
"0", STR_PAD_LEFT) .
":" .
701 str_pad($duration[
"ss"], 2,
"0", STR_PAD_LEFT);
714 $mob->addMediaItem($mediaItem);
715 $mediaItem->setPurpose($purpose);
730 $purpose = $mediaItem->getPurpose();
731 $locationType = $mediaItem->getLocationType();
732 $url_gui = $this->form_gui->getInput(
"url_" . $purpose);
733 $file_gui = $this->form_gui->getInput(
"file_" . $purpose);
736 $file = $this->form_gui->getInput(
"url_" . $purpose);
737 $title = basename($file);
738 $location = $this->form_gui->getInput(
"url_" . $purpose);
739 $locationType =
"Reference";
740 } elseif ($file_gui[
"size"] > 0) {
744 if (!is_dir($mob_dir)) {
745 $mob->createDirectory();
747 $dir = LegacyPathHelper::createRelativePath($mob_dir);
748 $old_files = $this->filesystem->finder()->in([$dir])->exclude([$dir .
'/mob_vpreview.png'])->files();
749 foreach ($old_files as $file) {
750 $this->filesystem->delete($file->getPath());
755 $file_name = str_replace(
" ",
"_", $file_name);
757 $file = $mob_dir .
"/" . $file_name;
759 $locationType =
"LocalFile";
766 if (
$_POST[
"mimetype_" . $purpose] !=
"") {
767 $mediaItem->setFormat(
$_POST[
"mimetype_" . $purpose]);
768 } elseif ($mediaItem->getLocation() !=
"") {
770 $mediaItem->setFormat(
$format);
780 $mediaItem->setFormat(
$format);
782 $mediaItem->setLocationType($locationType);
783 $mediaItem->setHAlign(
"Left");
784 $mediaItem->setHeight(self::isAudio(
$format)?0:180);
787 if ($purpose ==
"Standard") {
789 $mob->setTitle($title);
812 if ($this->form_gui->checkInput()) {
814 include_once(
"./Services/News/classes/class.ilNewsItem.php");
816 $mob_id = $mc_item->getMobId();
819 include_once(
"./Services/MediaObjects/classes/class.ilObjMediaObjectGUI.php");
824 if ($this->form_gui->getInput(
"delete_" . $purpose)) {
825 $mob->removeMediaItem($purpose);
826 $ilLog->write(
"Mcst: deleting purpose $purpose");
829 $media_item = $mob->getMediaItem($purpose);
830 $url_gui = $this->form_gui->getInput(
"url_" . $purpose);
831 $file_gui = $this->form_gui->getInput(
"file_" . $purpose);
833 if ($media_item == null) {
834 if ($purpose !=
"Standard" &&
835 ($url_gui || $file_gui[
"size"] > 0)) {
844 if ($purpose ==
"Standard") {
846 $title = $this->form_gui->getInput(
"title") !=
"" ? $this->form_gui->getInput(
"title") : basename($file);
847 $description = $this->form_gui->getInput(
"description");
849 $mob->setTitle($title);
850 $mob->setDescription($description);
852 $prevpic = $this->form_gui->getInput(
"preview_pic");
853 if ($prevpic[
"size"] > 0) {
854 $mob->uploadVideoPreviewPic($prevpic);
856 $prevpici = $this->form_gui->getItemByPostVar(
"preview_pic");
857 if ($prevpici->getDeletionFlag()) {
858 $mob->removeAdditionalFile($mob->getVideoPreviewPic(
true));
872 $enable_internal_rss = $news_set->get(
"enable_rss_for_internal");
874 $mc_item->setUserId(
$ilUser->getId());
875 if (isset($duration)) {
876 $mc_item->setPlaytime($duration);
878 $mc_item->setTitle($title);
879 $mc_item->setContent($description);
880 if ($enable_internal_rss) {
881 $mc_item->setVisibility($this->form_gui->getInput(
"visibility"));
885 $ilCtrl->redirect($this,
"listItems");
902 $ilTabs->activateTab(
"edit_content");
904 if (!is_array(
$_POST[
"item_id"])) {
909 include_once(
"Services/Utilities/classes/class.ilConfirmationGUI.php");
913 $c_gui->setFormAction(
$ilCtrl->getFormAction($this,
"deleteItems"));
914 $c_gui->setHeaderText(
$lng->txt(
"info_delete_sure"));
915 $c_gui->setCancel(
$lng->txt(
"cancel"),
"listItems");
916 $c_gui->setConfirm(
$lng->txt(
"confirm"),
"deleteItems");
919 include_once(
"./Services/News/classes/class.ilNewsItem.php");
920 foreach (
$_POST[
"item_id"] as $item_id) {
930 $tpl->setContent($c_gui->getHTML());
943 foreach (
$_POST[
"item_id"] as $item_id) {
948 $ilCtrl->redirect($this,
"listItems");
961 $this->
object->handleLPUpdate(
$ilUser->getId(), $news_item->getMobId());
962 if (!$news_item->deliverMobFile(
$_GET[
"purpose"], (
int)
$_GET[
"presentation"])) {
963 $ilCtrl->redirect($this,
"listItems");
977 $mob = $mc_item->getMobId();
978 include_once(
"./Services/MediaObjects/classes/class.ilObjMediaObject.php");
981 $m_item = $mob->getMediaItem(
"Standard");
982 $file = $mob_dir .
"/" . $m_item->getLocation();
984 if ($duration !=
"00:00:00") {
985 $mc_item->setPlaytime($duration);
987 ilUtil::sendSuccess(
$lng->txt(
"mcst_set_playtime"),
true);
992 $ilCtrl->redirect($this,
"listItems");
1005 $this->ctrl->setCmd(
"showSummary");
1006 $this->ctrl->setCmdClass(
"ilinfoscreengui");
1019 $ilTabs->activateTab(
"id_info");
1025 include_once(
"./Services/InfoScreen/classes/class.ilInfoScreenGUI.php");
1028 $info->enablePrivateNotes();
1031 $this->lng->loadLanguageModule(
"meta");
1032 $this->lng->loadLanguageModule(
"mcst");
1033 $med_items = $this->
object->getItemsArray();
1034 $info->addSection($this->lng->txt(
"meta_general"));
1036 $this->lng->txt(
"mcst_nr_items"),
1037 (int) count($med_items)
1040 if (count($med_items) > 0) {
1041 $cur = current($med_items);
1047 $info->addProperty($this->lng->txt(
"mcst_last_submission"), $last);
1050 $this->ctrl->forwardCommand($info);
1064 $ilHelp->setScreenIdComponent(
"mcst");
1067 if ($ilAccess->checkAccess(
'read',
"", $this->object->getRefId())) {
1070 $lng->txt(
"content"),
1071 $this->ctrl->getLinkTarget($this,
"showContent")
1076 if ($ilAccess->checkAccess(
'visible',
"", $this->object->getRefId()) ||
1077 $ilAccess->checkAccess(
'read',
"", $this->object->getRefId())) {
1080 $lng->txt(
"info_short"),
1081 $this->ctrl->getLinkTargetByClass(
"ilinfoscreengui",
"showSummary")
1086 if ($ilAccess->checkAccess(
'write',
"", $this->object->getRefId())) {
1089 $lng->txt(
"settings"),
1090 $this->ctrl->getLinkTarget($this,
"editSettings")
1094 require_once
'Services/Tracking/classes/class.ilLearningProgressAccess.php';
1097 'learning_progress',
1098 $lng->txt(
'learning_progress'),
1099 $this->ctrl->getLinkTargetByClass(array(__CLASS__,
'illearningprogressgui'),
'')
1104 if ($ilAccess->checkAccess(
"write",
"", $this->object->getRefId())) {
1107 $lng->txt(
"export"),
1108 $this->ctrl->getLinkTargetByClass(
"ilexportgui",
"")
1113 if ($ilAccess->checkAccess(
'edit_permission',
"", $this->object->getRefId())) {
1116 $lng->txt(
"perm_settings"),
1117 $this->ctrl->getLinkTargetByClass(
"ilpermissiongui",
"perm")
1137 $this->ctrl->getLinkTarget($this,
"showContent")
1140 if ($ilAccess->checkAccess(
"write",
"",
$_GET[
"ref_id"])) {
1143 $lng->txt(
"mcst_manage"),
1144 $this->ctrl->getLinkTarget($this,
"listItems")
1150 $lng->txt(
"mcst_ordering"),
1151 $this->ctrl->getLinkTarget($this,
"editOrder")
1156 $ilTabs->activateSubTab($a_active);
1157 $ilTabs->activateTab(
"content");
1170 $ilTabs->activateTab(
"id_settings");
1173 $tpl->setContent($this->form_gui->getHtml());
1186 $lng->loadLanguageModule(
"mcst");
1188 require_once(
"Services/Form/classes/class.ilPropertyFormGUI.php");
1190 $this->form_gui->setTitle(
$lng->txt(
"mcst_settings"));
1194 $tit->setValue($this->object->getTitle());
1195 $tit->setRequired(
true);
1196 $this->form_gui->addItem($tit);
1200 $des->
setValue($this->object->getLongDescription());
1201 $this->form_gui->addItem($des);
1204 $sh->setTitle(
$lng->txt(
"rep_activation_availability"));
1205 $this->form_gui->addItem($sh);
1209 $online->
setChecked($this->object->getOnline());
1210 $this->form_gui->addItem($online);
1214 $sh->setTitle(
$lng->txt(
"obj_presentation"));
1215 $this->form_gui->addItem($sh);
1218 $obj_service->commonSettings()->legacyForm($this->form_gui, $this->
object)->addTileImage();
1223 $lng->txt(
"mcst_ordering_title"),
1227 $lng->txt(
"mcst_ordering_creation_date_asc"),
1231 $lng->txt(
"mcst_ordering_creation_date_desc"),
1235 $lng->txt(
"mcst_ordering_manual"),
1238 $sort->setValue($this->object->getOrder());
1239 $this->form_gui->addItem($sort);
1248 $lng->txt(
"mcst_list"),
1252 $lng->txt(
"mcst_gallery"),
1257 $si->setValue($this->object->getViewMode());
1258 $this->form_gui->addItem($si);
1263 $downloadable->
setChecked($this->object->getDownloadable());
1264 $downloadable->setInfo(
$lng->txt(
"mcst_downloadable_info"));
1265 $this->form_gui->addItem($downloadable);
1268 $enable_internal_rss = $news_set->get(
"enable_rss_for_internal");
1271 if ($enable_internal_rss) {
1274 $sh->setTitle(
$lng->txt(
"mcst_webfeed"));
1275 $this->form_gui->addItem($sh);
1279 $radio_option->
setInfo(
$lng->txt(
"news_news_item_def_visibility_users_info"));
1280 $radio_group->addOption($radio_option);
1282 $radio_option->
setInfo(
$lng->txt(
"news_news_item_def_visibility_public_info"));
1283 $radio_group->addOption($radio_option);
1284 $radio_group->setRequired(
false);
1285 $radio_group->setValue($this->object->getDefaultAccess());
1286 #$ch->addSubItem($radio_group); 1287 $this->form_gui->addItem($radio_group);
1290 include_once(
"./Services/Block/classes/class.ilBlockSetting.php");
1294 $ch->setChecked($public_feed);
1295 $this->form_gui->addItem($ch);
1298 $ni =
new ilNumberInputGUI($this->lng->txt(
"news_keep_minimal_x_items"),
"keep_rss_min");
1300 $ni->setMinValue(0);
1301 $ni->setMaxLength(3);
1303 $ni->setInfo($this->lng->txt(
"news_keep_minimal_x_items_info") .
" (" .
1306 $ch->addSubItem($ni);
1310 $incl_files->
setChecked($this->object->getPublicFiles());
1311 $incl_files->setInfo(
$lng->txt(
"mcst_incl_files_in_rss_info"));
1312 #$ch->addSubItem($incl_files); 1313 $this->form_gui->addItem($incl_files);
1317 $this->form_gui->addCommandButton(
"saveSettings",
$lng->txt(
"save"));
1318 $this->form_gui->setFormAction(
$ilCtrl->getFormAction($this,
"saveSettings"));
1331 $ilTabs->activateTab(
"id_settings");
1334 if ($this->form_gui->checkInput()) {
1336 $enable_internal_rss = $news_set->get(
"enable_rss_for_internal");
1338 $this->
object->setTitle($this->form_gui->getInput(
"title"));
1339 $this->
object->setDescription($this->form_gui->getInput(
"description"));
1340 $this->
object->setOnline($this->form_gui->getInput(
"online"));
1341 $this->
object->setDownloadable($this->form_gui->getInput(
"downloadable"));
1342 $this->
object->setOrder($this->form_gui->getInput(
"order"));
1343 $this->
object->setViewMode($this->form_gui->getInput(
"viewmode"));
1346 $obj_service->commonSettings()->legacyForm($this->form_gui, $this->
object)->saveTileImage();
1348 if ($enable_internal_rss) {
1349 $this->
object->setPublicFiles($this->form_gui->getInput(
"public_files"));
1350 $this->
object->setDefaultAccess($this->form_gui->getInput(
"defaultaccess"));
1352 $this->
object->update();
1354 if ($enable_internal_rss) {
1355 include_once(
"./Services/Block/classes/class.ilBlockSetting.php");
1359 $this->form_gui->getInput(
"extra_feed"),
1361 $this->
object->getId()
1367 $this->form_gui->getInput(
"keep_rss_min"),
1369 $this->
object->getId()
1373 ilUtil::sendSuccess($this->lng->txt(
"msg_obj_modified"),
true);
1374 $ilCtrl->redirect($this,
"editSettings");
1376 $this->form_gui->setValuesByPost();
1377 $this->tpl->setContent($this->form_gui->getHTML());
1386 if (is_object($this->
object)) {
1387 $ilLocator->addItem($this->object->getTitle(), $this->ctrl->getLinkTarget($this,
"listItems"),
"",
$_GET[
"ref_id"]);
1395 $ilAccess = $DIC->access();
1397 $lng = $DIC->language();
1399 if ($ilAccess->checkAccess(
"read",
"", $a_target)) {
1400 $_GET[
"cmd"] =
"showContent";
1401 $_GET[
"ref_id"] = $a_target;
1402 $_GET[
"baseClass"] =
"ilmediacasthandlergui";
1403 $_GET[
"cmdClass"] =
"ilobjmediacastgui";
1404 include(
"ilias.php");
1406 } elseif ($ilAccess->checkAccess(
"visible",
"", $a_target)) {
1408 } elseif ($ilAccess->checkAccess(
"read",
"", ROOT_FOLDER_ID)) {
1410 $lng->txt(
"msg_no_perm_read_item"),
1427 return strpos($extension,
"audio") !==
false;
1438 include_once(
"./Services/News/classes/class.ilNewsItem.php");
1441 include_once(
"./Services/MediaObjects/classes/class.ilObjMediaObjectGUI.php");
1454 include_once(
"./Services/News/classes/class.ilNewsItem.php");
1457 include_once(
"./Services/MediaObjects/classes/class.ilObjMediaObjectGUI.php");
1470 if (
$_POST[
"value_" . $purpose]) {
1471 $_POST[
"label_value_" . $purpose] =
$_POST[
"value_" . $purpose];
1475 $this->form_gui->setValuesByPost();
1476 $tpl->setContent($this->form_gui->getHTML());
1486 $ilTabs->activateTab(
"edit_content");
1491 switch ($this->object->getOrder()) {
1502 include_once(
"./Modules/MediaCast/classes/class.ilMediaCastTableGUI.php");
1505 $table_gui->setTitle(
$lng->txt(
"mcst_media_cast"));
1506 $table_gui->setData($this->object->getSortedItemsArray());
1508 $table_gui->addCommandButton(
"saveOrder",
$lng->txt(
"mcst_save_order"));
1510 $tpl->setContent($table_gui->getHTML());
1517 asort(
$_POST[
"item_id"]);
1520 foreach (array_keys(
$_POST[
"item_id"]) as $id) {
1523 $this->
object->saveOrder($items);
1525 ilUtil::sendSuccess(
$lng->txt(
"settings_saved"),
true);
1526 $this->ctrl->redirect($this,
"editOrder");
1545 require_once
'Services/Tracking/classes/class.ilChangeEvent.php';
1548 $this->object->getRefId(),
1549 $this->
object->getId(),
1554 require_once
'Services/Tracking/classes/class.ilLPStatusWrapper.php';
1563 $tpl->setPermanentLink($this->object->getType(), $this->
object->getRefId());
1572 $tpl->addJavascript(
"./Modules/MediaCast/js/MediaCast.js");
1574 $ilTabs->activateTab(
"content");
1578 $ctpl =
new ilTemplate(
"tpl.mcst_content.html",
true,
true,
"Modules/MediaCast");
1580 include_once(
"./Services/MediaObjects/classes/class.ilObjMediaObject.php");
1581 require_once(
'./Services/WebAccessChecker/classes/class.ilWACSignedPath.php');
1582 foreach ($this->object->getSortedItemsArray() as $item) {
1584 $med = $mob->getMediaItem(
"Standard");
1586 $ctpl->setCurrentBlock(
"item");
1587 $ctpl->setVariable(
"TITLE", $item[
"title"]);
1588 $ctpl->setVariable(
"TIME", $item[
"playtime"]);
1589 $ctpl->setVariable(
"ID", $item[
"id"]);
1591 if ($mob->getVideoPreviewPic() !=
"") {
1604 if (is_object($med)) {
1605 include_once(
"./Services/MediaObjects/classes/class.ilMediaPlayerGUI.php");
1610 $ilCtrl->getLinkTarget($this,
"handlePlayerEvent",
"",
true,
false)
1613 if (strcasecmp(
"Reference", $med->getLocationType()) == 0) {
1619 $mpl->setMimeType($med->getFormat());
1624 $mpl->setTitle($item[
"title"]);
1625 $mpl->setDescription($item[
"content"]);
1626 $mpl->setForceAudioPreview(
true);
1627 if ($this->object->getDownloadable()) {
1628 $ilCtrl->setParameterByClass(
"ilobjmediacastgui",
"item_id", $item[
"id"]);
1629 $ilCtrl->setParameterByClass(
"ilobjmediacastgui",
"purpose",
"Standard");
1630 $mpl->setDownloadLink(
$ilCtrl->getLinkTargetByClass(
"ilobjmediacastgui",
"downloadItem"));
1632 $med_alt = $mob->getMediaItem(
"VideoAlternative");
1633 if (is_object($med_alt)) {
1635 $med_alt->getLocation()));
1636 $mpl->setAlternativeVideoMimeType($med_alt->getFormat());
1639 $ctpl->setVariable(
"PLAYER", $mpl->getPreviewHtml());
1643 $ctpl->parseCurrentBlock();
1648 if ($feed_icon_html !=
"") {
1649 $feed_icon_html =
'<p>' . $feed_icon_html .
'</p>';
1652 $tpl->setContent($feed_icon_html . $ctpl->get());
1668 include_once(
"./Services/MediaObjects/classes/class.ilObjMediaObjectGUI.php");
1675 include_once(
"./Services/MediaObjects/classes/class.ilFFmpeg.php");
1676 $med = $mob->getMediaItem(
"Standard");
1680 $pi = pathinfo($new_file);
1681 $med = $mob->getMediaItem($target_purpose);
1682 if (!is_object($med)) {
1684 $med->setMobId($mob->getId());
1685 $mob->addMediaItem($med);
1687 $med->setPurpose($target_purpose);
1689 $med->setFormat($target_format);
1690 $med->setLocation($pi[
"basename"]);
1691 $med->setLocationType(
"LocalFile");
1694 $add = (is_array(
$ret) && count(
$ret) > 0)
1695 ?
"<br />" . implode(
"<br />",
$ret)
1701 $add = (is_array(
$ret) && count(
$ret) > 0)
1702 ?
"<br />" . implode(
"<br />",
$ret)
1708 $ilCtrl->redirect($this,
"editCastItem");
1724 include_once(
"./Services/MediaObjects/classes/class.ilObjMediaObjectGUI.php");
1728 $sec = (int)
$_POST[
"sec"];
1732 if ($mob->getVideoPreviewPic() !=
"") {
1733 $mob->removeAdditionalFile($mob->getVideoPreviewPic(
true));
1735 include_once(
"./Services/MediaObjects/classes/class.ilFFmpeg.php");
1736 $med = $mob->getMediaItem(
"Standard");
1745 if ($new_file !=
"") {
1753 $add = (is_array(
$ret) && count(
$ret) > 0)
1754 ?
"<br />" . implode(
"<br />",
$ret)
1761 $ilCtrl->redirect($this,
"editCastItem");
1772 if (
$_GET[
"event"] ==
"play") {
1773 $player = explode(
"_",
$_GET[
"player"]);
1774 $news_id = (int) $player[1];
1775 include_once(
"./Services/News/classes/class.ilNewsItem.php");
1777 $item->increasePlayCounter();
1779 $mob_id = $item->getMobId();
1782 $this->
object->handleLPUpdate(
$ilUser->getId(), $mob_id);
static _recordReadEvent( $a_type, $a_ref_id, $obj_id, $usr_id, $isCatchupWriteEvents=true, $a_ext_rc=false, $a_ext_time=false)
Records a read event and catches up with write events.
This class represents an option in a radio group.
static getLastReturnValues()
Get last return values.
static _write($a_type, $a_setting, $a_value, $a_user=0, $a_block_id=0)
Write setting to database.
static _lookupRSSPeriod()
GUI class for the workflow of copying objects.
static convert($a_file, $a_target_mime, $a_target_dir="", $a_target_filename="")
Convert file to target mime type.
static _updateStatus($a_obj_id, $a_usr_id, $a_obj=null, $a_percentage=false, $a_force_raise=false)
Update status.
setValue($a_value)
Set Value.
static _gotoRepositoryRoot($a_raise_error=false)
Goto repository root.
static _lookupTitle($a_id)
lookup object title
fillCloneTemplate($a_tpl_varname, $a_type)
Fill object clone template This method can be called from any object GUI class that wants to offer ob...
setInfo($a_info)
Set Info.
static getASCIIFilename($a_filename)
convert utf8 to ascii filename
static formatDate(ilDateTime $date, $a_skip_day=false, $a_include_wd=false, $include_seconds=false)
Format a date public.
static sendInfo($a_info="", $a_keep=false)
Send Info Message to Screen.
Export User Interface Class.
static checkAccess($a_ref_id, $a_allow_only_read=true)
check access to learning progress
initImportForm($a_new_type)
Init object import form.
prepareOutput($a_show_subobjects=true)
prepare output
static extractImage( $a_file, $a_target_filename, $a_target_dir="", $a_sec=1)
Extract image from video file.
static _gotoRepositoryNode($a_ref_id, $a_cmd="frameset")
Goto repository root.
static getImagePath($img, $module_path="", $mode="output", $offline=false)
get image path (for images located in a template directory)
static moveUploadedFile($a_file, $a_name, $a_target, $a_raise_errors=true, $a_mode="move_uploaded")
move uploaded file
Class ilObjectGUI Basic methods of all Output classes.
static _lookupObjId($a_id)
static _lookup($a_type, $a_setting, $a_user=0, $a_block_id=0)
Lookup setting from database.
initCreateForm($a_new_type)
Init object creation form.
static stripSlashes($a_str, $a_strip_html=true, $a_allow="")
strip slashes if magic qoutes is enabled
static signFile($path_to_file)
static img($a_src, $a_alt=null, $a_width="", $a_height="", $a_border=0, $a_id="", $a_class="")
Build img tag.
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
This class represents a non editable value in a property form.
static renameExecutables($a_dir)
Rename uploaded executables for security reasons.
__construct(Container $dic, ilPlugin $plugin)
const LP_CONTEXT_REPOSITORY
This class represents a text area property in a property form.
getRefId()
get reference id public
checkPermission($a_perm, $a_cmd="", $a_type="", $a_ref_id=null)
Check permission and redirect on error.
New PermissionGUI (extends from old ilPermission2GUI) RBAC related output.
static enabled()
Checks, whether FFmpeg support is enabled (path is set in the setup)
static redirect($a_script)
addHeaderAction()
Add header action menu.
checkPermissionBool($a_perm, $a_cmd="", $a_type="", $a_ref_id=null)
Check permission.
Class ilObjUserTrackingGUI.
static getInstanceFromAjaxCall()
(Re-)Build instance from ajax call
Confirmation screen class.
static supportsImageExtraction($a_mime)
Check if mime type supports image extraction.