5require_once
"./Services/Object/classes/class.ilObjectGUI.php";
49 public function __construct($a_data, $a_id, $a_call_by_reference, $a_prepare_output =
true)
53 $this->ctrl =
$DIC->ctrl();
54 $this->lng =
$DIC->language();
55 $this->
user = $DIC->user();
56 $this->tabs =
$DIC->tabs();
57 $this->tpl =
$DIC[
"tpl"];
58 $this->access =
$DIC->access();
59 $this->toolbar =
$DIC->toolbar();
60 $this->log =
$DIC[
"ilLog"];
61 $this->
error = $DIC[
"ilErr"];
62 $this->help =
$DIC[
"ilHelp"];
63 $this->locator =
$DIC[
"ilLocator"];
68 parent::__construct($a_data, $a_id, $a_call_by_reference, $a_prepare_output);
69 $lng->loadLanguageModule(
"mcst");
70 $lng->loadLanguageModule(
"news");
71 $lng->loadLanguageModule(
"rep");
73 $ilCtrl->saveParameter($this,
"item_id");
75 include_once(
"./Modules/MediaCast/classes/class.ilMediaCastSettings.php");
77 $this->purposeSuffixes =
$settings->getPurposeSuffixes();
78 $this->mimeTypes = array();
80 foreach ($mime_types as $mt) {
81 $this->mimeTypes[$mt] = $mt;
84 include_once(
"./Services/Utilities/classes/class.ilMimeTypeUtil.php");
86 $this->mimeTypes[$mt] = $mt;
88 asort($this->mimeTypes);
96 $next_class = $this->ctrl->getNextClass($this);
97 $cmd = $this->ctrl->getCmd();
100 switch ($next_class) {
101 case "ilinfoscreengui":
110 $ilTabs->activateTab(
"export");
111 include_once(
"./Services/Export/classes/class.ilExportGUI.php");
113 $exp_gui->addFormat(
"xml");
114 $ret = $this->ctrl->forwardCommand($exp_gui);
118 case 'ilpermissiongui':
119 $ilTabs->activateTab(
"id_permissions");
120 include_once(
"Services/AccessControl/classes/class.ilPermissionGUI.php");
122 $ret = $this->ctrl->forwardCommand($perm_gui);
125 case 'ilobjectcopygui':
126 include_once
'./Services/Object/classes/class.ilObjectCopyGUI.php';
128 $cp->setType(
'mcst');
129 $this->ctrl->forwardCommand($cp);
132 case "ilcommonactiondispatchergui":
133 include_once(
"Services/Object/classes/class.ilCommonActionDispatcherGUI.php");
135 $this->ctrl->forwardCommand($gui);
138 case "illearningprogressgui":
139 $ilTabs->activateTab(
'learning_progress');
140 require_once
'Services/Tracking/classes/class.ilLearningProgressGUI.php';
143 $this->object->getRefId(),
146 $this->ctrl->forwardCommand($new_gui);
147 $this->tabs_gui->setTabActive(
'learning_progress');
155 if ($cmd !=
"infoScreenObject") {
172 $forms = array(self::CFORM_NEW => $this->
initCreateForm($a_new_type),
186 ilUtil::sendSuccess($this->lng->txt(
"object_added"),
true);
203 if ($a_presentation_mode) {
209 $med_items = $this->
object->getSortedItemsArray();
211 include_once(
"./Modules/MediaCast/classes/class.ilMediaCastTableGUI.php");
212 if ($a_presentation_mode) {
218 $table_gui->setData($med_items);
220 if ($ilAccess->checkAccess(
"write",
"",
$_GET[
"ref_id"]) && !$a_presentation_mode) {
221 $ilToolbar->addButton(
$lng->txt(
"add"), $this->ctrl->getLinkTarget($this,
"addCastItem"));
223 $table_gui->addMultiCommand(
"confirmDeletionItems",
$lng->txt(
"delete"));
224 $table_gui->setSelectAllCheckbox(
"item_id");
228 if ($feed_icon_html !=
"") {
229 $table_gui->setHeaderHTML($feed_icon_html);
232 $tpl->setContent($table_gui->getHTML());
247 include_once(
"./Services/Block/classes/class.ilBlockSetting.php");
252 $this->object->getId()
258 $enable_internal_rss = $news_set->get(
"enable_rss_for_internal");
260 if ($enable_internal_rss) {
262 $items = $this->
object->getItemsArray();
263 include_once(
"./Services/MediaObjects/classes/class.ilObjMediaObjectGUI.php");
266 foreach ($items as
$id => $item) {
269 if ($mob->hasPurposeItem($purpose)) {
273 $url = ILIAS_HTTP_PATH .
"/feed.php?client_id=" . rawurlencode(CLIENT_ID) .
"&" .
"ref_id=" .
$_GET[
"ref_id"] .
"&purpose=$purpose";
276 include_once(
"./Services/News/classes/class.ilRSSButtonGUI.php");
277 switch (strtolower($purpose)) {
278 case "audioportable":
283 case "videoportable":
294 if ($this->object->getPublicFiles()) {
295 $url = preg_replace(
"/https?/i",
"itpc",
$url);
298 include_once(
"./Services/News/classes/class.ilRSSButtonGUI.php");
327 $tpl->setContent($this->form_gui->getHTML());
342 include_once(
"./Services/MediaObjects/classes/class.ilFFmpeg.php");
345 include_once(
"./Services/MediaObjects/classes/class.ilObjMediaObjectGUI.php");
351 foreach (array(
"Standard") as $p) {
385 $med = $mob->getMediaItem($p);
386 if (is_object($med)) {
389 include_once(
"./Services/Form/classes/class.ilTextInputGUI.php");
391 $ni->setMaxLength(4);
394 $ilToolbar->addInputItem($ni,
true);
396 $ilToolbar->addFormButton($this->lng->txt(
"mcst_extract_preview_image"),
"extractPreviewImage");
397 $ilToolbar->setFormAction(
$ilCtrl->getFormAction($this));
410 $tpl->setContent($this->form_gui->getHTML());
423 $ilTabs->activateTab(
"edit_content");
425 $lng->loadLanguageModule(
"mcst");
428 $enable_internal_rss = $news_set->get(
"enable_rss_for_internal");
430 include_once(
"Services/Form/classes/class.ilPropertyFormGUI.php");
432 $this->form_gui->setMultipart(
true);
436 $text_input->setMaxLength(200);
437 $this->form_gui->addItem($text_input);
441 $text_area->setRequired(
false);
442 $this->form_gui->addItem($text_area);
445 if ($enable_internal_rss) {
448 $radio_group->addOption($radio_option);
450 $radio_group->addOption($radio_option);
451 $radio_group->setInfo(
$lng->txt(
"mcst_visibility_info"));
452 $radio_group->setRequired(
true);
453 $radio_group->setValue($this->object->getDefaultAccess() == 0 ?
"users" :
"public");
454 $this->form_gui->addItem($radio_group);
459 $dur->setInfo(
$lng->txt(
"mcst_duration_info"));
460 $dur->setShowDays(
false);
461 $dur->setShowHours(
true);
462 $dur->setShowSeconds(
true);
463 $this->form_gui->addItem($dur);
466 if ($purpose ==
"VideoAlternative" &&
467 $a_mode ==
"create") {
472 $section->setTitle(
$lng->txt(
"mcst_" . strtolower($purpose) .
"_title"));
474 if ($a_mode !=
"create") {
477 $label->setPostVar(
"label_value_" . $purpose);
478 $label->setInfo(
$lng->txt(
"mcst_current_value_info"));
479 $this->form_gui->addItem($label);
480 $this->form_gui->addItem($value);
483 $file->setSuffixes($this->purposeSuffixes[$purpose]);
484 $this->form_gui->addItem($file);
486 $text_input->setPattern(
"/https?\:\/\/.+/i");
487 $text_input->setInfo(
$lng->txt(
"mcst_reference_info"));
488 $this->form_gui->addItem($text_input);
489 if ($purpose !=
"Standard") {
491 $clearCheckBox->setPostVar(
"delete_" . $purpose);
492 $clearCheckBox->setTitle(
$lng->txt(
"mcst_clear_purpose_title"));
493 $this->form_gui->addItem($clearCheckBox);
498 $mimeTypeSelection->setPostVar(
"mimetype_" . $purpose);
499 $mimeTypeSelection->setTitle(
$lng->txt(
"mcst_mimetype"));
500 $mimeTypeSelection->setInfo(
$lng->txt(
"mcst_mimetype_info"));
501 $options = array(
"" =>
$lng->txt(
"mcst_automatic_detection"));
503 $mimeTypeSelection->setOptions(
$options);
504 $this->form_gui->addItem($mimeTypeSelection);
508 $pp->setSuffixes(array(
"png",
"jpeg",
"jpg"));
509 $pp->setInfo(
$lng->txt(
"mcst_preview_picture_info") .
" mp4, mp3, png, jp(e)g, gif");
510 $this->form_gui->addItem($pp);
515 if ($a_mode ==
"create") {
516 $this->form_gui->setTitle(
$lng->txt(
"mcst_add_new_item"));
517 $this->form_gui->addCommandButton(
"saveCastItem",
$lng->txt(
"save"));
519 $this->form_gui->setTitle(
$lng->txt(
"mcst_edit_item"));
520 $this->form_gui->addCommandButton(
"updateCastItem",
$lng->txt(
"save"));
522 $this->form_gui->addCommandButton(
"listItems",
$lng->txt(
"cancel"));
523 $this->form_gui->setFormAction(
$ilCtrl->getFormAction($this,
"saveCastItem"));
535 include_once(
"./Services/MediaObjects/classes/class.ilObjMediaObjectGUI.php");
539 $ppic = $mob->getVideoPreviewPic();
541 $i = $this->form_gui->getItemByPostVar(
"preview_pic");
548 if (count($mediaItems) > 0) {
549 foreach ($mediaItems as $med) {
550 if (!isset(
$values[
"title"])) {
552 $values[
"title"] = $this->mcst_item->getTitle();
553 $values[
"description"] = $this->mcst_item->getContent();
554 $values[
"visibility"] = $this->mcst_item->getVisibility();
555 $length = explode(
":", $this->mcst_item->getPlaytime());
556 $values[
"duration"] = array(
"hh" => $length[0],
"mm" => $length[1],
"ss" => $length[2]);
559 $values[
"value_" . $med->getPurpose()] = (strlen($med->getLocation()) > 100) ?
"..." . substr($med->getLocation(), strlen($med->getLocation()) - 100) : $med->getLocation();
560 $values[
"label_value_" . $med->getPurpose()] = (strlen($med->getLocation()) > 100) ?
"..." . substr($med->getLocation(), strlen($med->getLocation()) - 100) : $med->getLocation();
561 $values[
"mimetype_" . $med->getPurpose()] = $med->getFormat();
565 if (!isset(
$values[
"value_" . $purpose])) {
566 $values[
"label_value_" . $purpose] =
$lng->txt(
"none");
570 $this->form_gui->setValuesByArray(
$values);
585 $ilTabs->activateTab(
"edit_content");
589 if (!$this->form_gui->checkInput() ||
590 (
$_POST[
"url_Standard"] ==
"" && !$_FILES[
'file_Standard'][
'tmp_name'])) {
591 if ((
$_POST[
"url_Standard"] ==
"" && !$_FILES[
'file_Standard'][
'tmp_name'])) {
597 include_once(
"./Services/MediaObjects/classes/class.ilObjMediaObjectGUI.php");
606 $title = $this->form_gui->getInput(
"title") !=
"" ? $this->form_gui->getInput(
"title") : basename($file);
607 $description = $this->form_gui->getInput(
"description");
612 $prevpic = $this->form_gui->getInput(
"preview_pic");
613 if ($prevpic[
"size"] > 0) {
614 $mob->uploadVideoPreviewPic($prevpic);
621 foreach ($this->additionalPurposes as $purpose) {
623 $file_gui = $this->form_gui->getInput(
"file_" . $purpose);
624 $url_gui = $this->form_gui->getInput(
"url_" . $purpose);
625 if ($url_gui || $file_gui[
"size"] > 0) {
632 if ($prevpic[
"size"] == 0) {
635 $mob->generatePreviewPic(320, 240);
643 $enable_internal_rss = $news_set->get(
"enable_rss_for_internal");
646 include_once(
"./Services/News/classes/class.ilNewsItem.php");
648 $mc_item->setMobId($mob->getId());
650 $mc_item->setContextObjId($this->object->getId());
651 $mc_item->setContextObjType($this->object->getType());
652 $mc_item->setUserId(
$ilUser->getId());
653 $mc_item->setPlaytime($duration);
654 $mc_item->setTitle(
$title);
656 $mc_item->setLimitation(
false);
657 if ($enable_internal_rss) {
658 $mc_item->setVisibility($this->form_gui->getInput(
"visibility"));
660 $mc_item->setVisibility(
"users");
664 $ilCtrl->redirect($this,
"listItems");
676 $duration = isset($this->form_gui)
677 ? $this->form_gui->getInput(
"duration")
678 : array(
"hh" => 0,
"mm" => 0,
"ss" => 0);
679 if ($duration[
"hh"] == 0 && $duration[
"mm"] == 0 && $duration[
"ss"] == 0 && is_file($file)) {
680 include_once(
"./Services/MediaObjects/classes/class.ilMediaAnalyzer.php");
682 $ana->setFile($file);
684 $dur = $ana->getPlaytimeString();
685 $dur = explode(
":", $dur);
686 $duration[
"mm"] = $dur[0];
687 $duration[
"ss"] = $dur[1];
689 $duration = str_pad($duration[
"hh"], 2,
"0", STR_PAD_LEFT) .
":" .
690 str_pad($duration[
"mm"], 2,
"0", STR_PAD_LEFT) .
":" .
691 str_pad($duration[
"ss"], 2,
"0", STR_PAD_LEFT);
704 $mob->addMediaItem($mediaItem);
705 $mediaItem->setPurpose($purpose);
718 $purpose = $mediaItem->getPurpose();
719 $url_gui = $this->form_gui->getInput(
"url_" . $purpose);
720 $file_gui = $this->form_gui->getInput(
"file_" . $purpose);
723 $file = $this->form_gui->getInput(
"url_" . $purpose);
725 $location = $this->form_gui->getInput(
"url_" . $purpose);
726 $locationType =
"Reference";
727 } elseif ($file_gui[
"size"] > 0) {
731 if (!is_dir($mob_dir)) {
732 $mob->createDirectory();
736 $file_name = str_replace(
" ",
"_", $file_name);
738 $file = $mob_dir .
"/" . $file_name;
740 $locationType =
"LocalFile";
742 ilUtil::moveUploadedFile($_FILES[
'file_' . $purpose][
'tmp_name'], $file_name, $file);
747 if (
$_POST[
"mimetype_" . $purpose] !=
"") {
748 $mediaItem->setFormat(
$_POST[
"mimetype_" . $purpose]);
749 } elseif ($mediaItem->getLocation() !=
"") {
751 $mediaItem->setFormat(
$format);
761 $mediaItem->setFormat(
$format);
763 $mediaItem->setLocationType($locationType);
764 $mediaItem->setHAlign(
"Left");
765 $mediaItem->setHeight(self::isAudio(
$format)?0:180);
768 if ($purpose ==
"Standard") {
793 if ($this->form_gui->checkInput()) {
795 include_once(
"./Services/News/classes/class.ilNewsItem.php");
797 $mob_id = $mc_item->getMobId();
800 include_once(
"./Services/MediaObjects/classes/class.ilObjMediaObjectGUI.php");
805 if ($this->form_gui->getInput(
"delete_" . $purpose)) {
806 $mob->removeMediaItem($purpose);
807 $ilLog->write(
"Mcst: deleting purpose $purpose");
810 $media_item = $mob->getMediaItem($purpose);
811 $url_gui = $this->form_gui->getInput(
"url_" . $purpose);
812 $file_gui = $this->form_gui->getInput(
"file_" . $purpose);
814 if ($media_item ==
null) {
815 if ($purpose !=
"Standard" &&
816 ($url_gui || $file_gui[
"size"] > 0)) {
825 if ($purpose ==
"Standard") {
827 $title = $this->form_gui->getInput(
"title") !=
"" ? $this->form_gui->getInput(
"title") : basename($file);
828 $description = $this->form_gui->getInput(
"description");
833 $prevpic = $this->form_gui->getInput(
"preview_pic");
834 if ($prevpic[
"size"] > 0) {
835 $mob->uploadVideoPreviewPic($prevpic);
837 $prevpici = $this->form_gui->getItemByPostVar(
"preview_pic");
838 if ($prevpici->getDeletionFlag()) {
839 $mob->removeAdditionalFile($mob->getVideoPreviewPic(
true));
853 $enable_internal_rss = $news_set->get(
"enable_rss_for_internal");
855 $mc_item->setUserId(
$ilUser->getId());
856 if (isset($duration)) {
857 $mc_item->setPlaytime($duration);
859 $mc_item->setTitle(
$title);
861 if ($enable_internal_rss) {
862 $mc_item->setVisibility($this->form_gui->getInput(
"visibility"));
866 $ilCtrl->redirect($this,
"listItems");
883 $ilTabs->activateTab(
"edit_content");
885 if (!is_array(
$_POST[
"item_id"])) {
890 include_once(
"Services/Utilities/classes/class.ilConfirmationGUI.php");
894 $c_gui->setFormAction(
$ilCtrl->getFormAction($this,
"deleteItems"));
895 $c_gui->setHeaderText(
$lng->txt(
"info_delete_sure"));
896 $c_gui->setCancel(
$lng->txt(
"cancel"),
"listItems");
897 $c_gui->setConfirm(
$lng->txt(
"confirm"),
"deleteItems");
900 include_once(
"./Services/News/classes/class.ilNewsItem.php");
901 foreach (
$_POST[
"item_id"] as $item_id) {
911 $tpl->setContent($c_gui->getHTML());
924 foreach (
$_POST[
"item_id"] as $item_id) {
929 $ilCtrl->redirect($this,
"listItems");
942 $this->
object->handleLPUpdate(
$ilUser->getId(), $news_item->getMobId());
943 if (!$news_item->deliverMobFile(
$_GET[
"purpose"], (
int)
$_GET[
"presentation"])) {
944 $ilCtrl->redirect($this,
"listItems");
958 $mob = $mc_item->getMobId();
959 include_once(
"./Services/MediaObjects/classes/class.ilObjMediaObject.php");
962 $m_item = $mob->getMediaItem(
"Standard");
963 $file = $mob_dir .
"/" . $m_item->getLocation();
965 if ($duration !=
"00:00:00") {
966 $mc_item->setPlaytime($duration);
968 ilUtil::sendSuccess(
$lng->txt(
"mcst_set_playtime"),
true);
973 $ilCtrl->redirect($this,
"listItems");
986 $this->ctrl->setCmd(
"showSummary");
987 $this->ctrl->setCmdClass(
"ilinfoscreengui");
1000 $ilTabs->activateTab(
"id_info");
1006 include_once(
"./Services/InfoScreen/classes/class.ilInfoScreenGUI.php");
1009 $info->enablePrivateNotes();
1012 $this->lng->loadLanguageModule(
"meta");
1013 $this->lng->loadLanguageModule(
"mcst");
1014 $med_items = $this->
object->getItemsArray();
1015 $info->addSection($this->lng->txt(
"meta_general"));
1017 $this->lng->txt(
"mcst_nr_items"),
1018 (
int) count($med_items)
1021 if (count($med_items) > 0) {
1022 $cur = current($med_items);
1028 $info->addProperty($this->lng->txt(
"mcst_last_submission"), $last);
1031 $this->ctrl->forwardCommand(
$info);
1045 $ilHelp->setScreenIdComponent(
"mcst");
1048 if ($ilAccess->checkAccess(
'read',
"", $this->object->getRefId())) {
1051 $lng->txt(
"content"),
1052 $this->ctrl->getLinkTarget($this,
"showContent")
1057 if ($ilAccess->checkAccess(
'visible',
"", $this->object->getRefId()) ||
1058 $ilAccess->checkAccess(
'read',
"", $this->object->getRefId())) {
1061 $lng->txt(
"info_short"),
1062 $this->ctrl->getLinkTargetByClass(
"ilinfoscreengui",
"showSummary")
1067 if ($ilAccess->checkAccess(
'write',
"", $this->object->getRefId())) {
1070 $lng->txt(
"settings"),
1071 $this->ctrl->getLinkTarget($this,
"editSettings")
1075 require_once
'Services/Tracking/classes/class.ilLearningProgressAccess.php';
1078 'learning_progress',
1079 $lng->txt(
'learning_progress'),
1080 $this->ctrl->getLinkTargetByClass(array(__CLASS__,
'illearningprogressgui'),
'')
1085 if ($ilAccess->checkAccess(
"write",
"", $this->object->getRefId())) {
1088 $lng->txt(
"export"),
1089 $this->ctrl->getLinkTargetByClass(
"ilexportgui",
"")
1094 if ($ilAccess->checkAccess(
'edit_permission',
"", $this->object->getRefId())) {
1097 $lng->txt(
"perm_settings"),
1098 $this->ctrl->getLinkTargetByClass(
"ilpermissiongui",
"perm")
1118 $this->ctrl->getLinkTarget($this,
"showContent")
1121 if ($ilAccess->checkAccess(
"write",
"",
$_GET[
"ref_id"])) {
1124 $lng->txt(
"mcst_manage"),
1125 $this->ctrl->getLinkTarget($this,
"listItems")
1131 $lng->txt(
"mcst_ordering"),
1132 $this->ctrl->getLinkTarget($this,
"editOrder")
1137 $ilTabs->activateSubTab($a_active);
1138 $ilTabs->activateTab(
"content");
1151 $ilTabs->activateTab(
"id_settings");
1154 $tpl->setContent($this->form_gui->getHtml());
1167 $lng->loadLanguageModule(
"mcst");
1169 require_once(
"Services/Form/classes/class.ilPropertyFormGUI.php");
1171 $this->form_gui->setTitle(
$lng->txt(
"mcst_settings"));
1175 $tit->setValue($this->object->getTitle());
1176 $tit->setRequired(
true);
1177 $this->form_gui->addItem($tit);
1181 $des->setValue($this->object->getLongDescription());
1182 $this->form_gui->addItem($des);
1185 $sh->setTitle(
$lng->txt(
"rep_activation_availability"));
1186 $this->form_gui->addItem($sh);
1190 $online->setChecked($this->object->getOnline());
1191 $this->form_gui->addItem($online);
1195 $sh->setTitle(
$lng->txt(
"obj_presentation"));
1196 $this->form_gui->addItem($sh);
1199 $obj_service->commonSettings()->legacyForm($this->form_gui, $this->
object)->addTileImage();
1204 $lng->txt(
"mcst_ordering_title"),
1208 $lng->txt(
"mcst_ordering_creation_date_asc"),
1212 $lng->txt(
"mcst_ordering_creation_date_desc"),
1216 $lng->txt(
"mcst_ordering_manual"),
1219 $sort->setValue($this->object->getOrder());
1220 $this->form_gui->addItem($sort);
1229 $lng->txt(
"mcst_list"),
1233 $lng->txt(
"mcst_gallery"),
1238 $si->setValue($this->object->getViewMode());
1239 $this->form_gui->addItem(
$si);
1244 $downloadable->setChecked($this->object->getDownloadable());
1245 $downloadable->setInfo(
$lng->txt(
"mcst_downloadable_info"));
1246 $this->form_gui->addItem($downloadable);
1249 $enable_internal_rss = $news_set->get(
"enable_rss_for_internal");
1252 if ($enable_internal_rss) {
1255 $sh->setTitle(
$lng->txt(
"mcst_webfeed"));
1256 $this->form_gui->addItem($sh);
1260 $radio_option->setInfo(
$lng->txt(
"news_news_item_def_visibility_users_info"));
1261 $radio_group->addOption($radio_option);
1263 $radio_option->setInfo(
$lng->txt(
"news_news_item_def_visibility_public_info"));
1264 $radio_group->addOption($radio_option);
1265 $radio_group->setRequired(
false);
1266 $radio_group->setValue($this->object->getDefaultAccess());
1267 #$ch->addSubItem($radio_group);
1268 $this->form_gui->addItem($radio_group);
1271 include_once(
"./Services/Block/classes/class.ilBlockSetting.php");
1274 $ch->setInfo(
$lng->txt(
"news_public_feed_info"));
1275 $ch->setChecked($public_feed);
1276 $this->form_gui->addItem($ch);
1279 $ni =
new ilNumberInputGUI($this->lng->txt(
"news_keep_minimal_x_items"),
"keep_rss_min");
1280 $ni->setMaxValue(100);
1281 $ni->setMinValue(0);
1282 $ni->setMaxLength(3);
1284 $ni->setInfo($this->lng->txt(
"news_keep_minimal_x_items_info") .
" (" .
1287 $ch->addSubItem($ni);
1291 $incl_files->setChecked($this->object->getPublicFiles());
1292 $incl_files->setInfo(
$lng->txt(
"mcst_incl_files_in_rss_info"));
1293 #$ch->addSubItem($incl_files);
1294 $this->form_gui->addItem($incl_files);
1298 $this->form_gui->addCommandButton(
"saveSettings",
$lng->txt(
"save"));
1299 $this->form_gui->setFormAction(
$ilCtrl->getFormAction($this,
"saveSettings"));
1312 $ilTabs->activateTab(
"id_settings");
1315 if ($this->form_gui->checkInput()) {
1317 $enable_internal_rss = $news_set->get(
"enable_rss_for_internal");
1319 $this->
object->setTitle($this->form_gui->getInput(
"title"));
1320 $this->
object->setDescription($this->form_gui->getInput(
"description"));
1321 $this->
object->setOnline($this->form_gui->getInput(
"online"));
1322 $this->
object->setDownloadable($this->form_gui->getInput(
"downloadable"));
1323 $this->
object->setOrder($this->form_gui->getInput(
"order"));
1324 $this->
object->setViewMode($this->form_gui->getInput(
"viewmode"));
1327 $obj_service->commonSettings()->legacyForm($this->form_gui, $this->
object)->saveTileImage();
1329 if ($enable_internal_rss) {
1330 $this->
object->setPublicFiles($this->form_gui->getInput(
"public_files"));
1331 $this->
object->setDefaultAccess($this->form_gui->getInput(
"defaultaccess"));
1333 $this->
object->update();
1335 if ($enable_internal_rss) {
1336 include_once(
"./Services/Block/classes/class.ilBlockSetting.php");
1340 $this->form_gui->getInput(
"extra_feed"),
1342 $this->object->getId()
1348 $this->form_gui->getInput(
"keep_rss_min"),
1350 $this->object->getId()
1354 ilUtil::sendSuccess($this->lng->txt(
"msg_obj_modified"),
true);
1355 $ilCtrl->redirect($this,
"editSettings");
1357 $this->form_gui->setValuesByPost();
1358 $this->tpl->setContent($this->form_gui->getHTML());
1367 if (is_object($this->
object)) {
1368 $ilLocator->addItem($this->object->getTitle(), $this->ctrl->getLinkTarget($this,
"listItems"),
"",
$_GET[
"ref_id"]);
1376 $ilAccess =
$DIC->access();
1380 if ($ilAccess->checkAccess(
"read",
"", $a_target)) {
1381 $_GET[
"cmd"] =
"showContent";
1382 $_GET[
"ref_id"] = $a_target;
1383 $_GET[
"baseClass"] =
"ilmediacasthandlergui";
1384 $_GET[
"cmdClass"] =
"ilobjmediacastgui";
1385 include(
"ilias.php");
1387 } elseif ($ilAccess->checkAccess(
"visible",
"", $a_target)) {
1389 } elseif ($ilAccess->checkAccess(
"read",
"", ROOT_FOLDER_ID)) {
1391 $lng->txt(
"msg_no_perm_read_item"),
1408 return strpos($extension,
"audio") !==
false;
1419 include_once(
"./Services/News/classes/class.ilNewsItem.php");
1422 include_once(
"./Services/MediaObjects/classes/class.ilObjMediaObjectGUI.php");
1424 return $mob->getMediaItem(
"Standard");
1435 include_once(
"./Services/News/classes/class.ilNewsItem.php");
1438 include_once(
"./Services/MediaObjects/classes/class.ilObjMediaObjectGUI.php");
1440 return $mob->getMediaItems();
1451 if (
$_POST[
"value_" . $purpose]) {
1452 $_POST[
"label_value_" . $purpose] =
$_POST[
"value_" . $purpose];
1456 $this->form_gui->setValuesByPost();
1457 $tpl->setContent($this->form_gui->getHTML());
1467 $ilTabs->activateTab(
"edit_content");
1472 switch ($this->object->getOrder()) {
1483 include_once(
"./Modules/MediaCast/classes/class.ilMediaCastTableGUI.php");
1486 $table_gui->setTitle(
$lng->txt(
"mcst_media_cast"));
1487 $table_gui->setData($this->object->getSortedItemsArray());
1489 $table_gui->addCommandButton(
"saveOrder",
$lng->txt(
"mcst_save_order"));
1491 $tpl->setContent($table_gui->getHTML());
1498 asort(
$_POST[
"item_id"]);
1501 foreach (array_keys(
$_POST[
"item_id"]) as
$id) {
1504 $this->
object->saveOrder($items);
1506 ilUtil::sendSuccess(
$lng->txt(
"settings_saved"),
true);
1507 $this->ctrl->redirect($this,
"editOrder");
1525 require_once
'Services/Tracking/classes/class.ilChangeEvent.php';
1528 $this->object->getRefId(),
1529 $this->object->getId(),
1534 require_once
'Services/Tracking/classes/class.ilLPStatusWrapper.php';
1543 $tpl->setPermanentLink($this->object->getType(), $this->object->getRefId());
1552 $tpl->addJavascript(
"./Modules/MediaCast/js/MediaCast.js");
1554 $ilTabs->activateTab(
"content");
1558 $ctpl =
new ilTemplate(
"tpl.mcst_content.html",
true,
true,
"Modules/MediaCast");
1560 include_once(
"./Services/MediaObjects/classes/class.ilObjMediaObject.php");
1561 require_once(
'./Services/WebAccessChecker/classes/class.ilWACSignedPath.php');
1562 foreach ($this->object->getSortedItemsArray() as $item) {
1564 $med = $mob->getMediaItem(
"Standard");
1566 $ctpl->setCurrentBlock(
"item");
1567 $ctpl->setVariable(
"TITLE", $item[
"title"]);
1568 $ctpl->setVariable(
"TIME", $item[
"playtime"]);
1569 $ctpl->setVariable(
"ID", $item[
"id"]);
1571 if ($mob->getVideoPreviewPic() !=
"") {
1584 if (is_object($med)) {
1585 include_once(
"./Services/MediaObjects/classes/class.ilMediaPlayerGUI.php");
1590 $ilCtrl->getLinkTarget($this,
"handlePlayerEvent",
"",
true,
false)
1593 if (strcasecmp(
"Reference", $med->getLocationType()) == 0) {
1595 $mpl->setFile($med->getLocation());
1599 $mpl->setFile($path_to_file);
1601 $mpl->setMimeType($med->getFormat());
1603 $mpl->setDisplayHeight(
"480");
1604 $mpl->setDisplayWidth(
"640");
1606 $mpl->setTitle($item[
"title"]);
1607 $mpl->setDescription($item[
"content"]);
1608 $mpl->setForceAudioPreview(
true);
1609 if ($this->object->getDownloadable()) {
1610 $ilCtrl->setParameterByClass(
"ilobjmediacastgui",
"item_id", $item[
"id"]);
1611 $ilCtrl->setParameterByClass(
"ilobjmediacastgui",
"purpose",
"Standard");
1612 $mpl->setDownloadLink(
$ilCtrl->getLinkTargetByClass(
"ilobjmediacastgui",
"downloadItem"));
1614 $med_alt = $mob->getMediaItem(
"VideoAlternative");
1615 if (is_object($med_alt)) {
1617 $med_alt->getLocation()));
1618 $mpl->setAlternativeVideoMimeType($med_alt->getFormat());
1621 $ctpl->setVariable(
"PLAYER", $mpl->getPreviewHtml());
1625 $ctpl->parseCurrentBlock();
1630 if ($feed_icon_html !=
"") {
1631 $feed_icon_html =
'<p>' . $feed_icon_html .
'</p>';
1634 $tpl->setContent($feed_icon_html . $ctpl->get());
1650 include_once(
"./Services/MediaObjects/classes/class.ilObjMediaObjectGUI.php");
1657 include_once(
"./Services/MediaObjects/classes/class.ilFFmpeg.php");
1658 $med = $mob->getMediaItem(
"Standard");
1662 $pi = pathinfo($new_file);
1663 $med = $mob->getMediaItem($target_purpose);
1664 if (!is_object($med)) {
1666 $med->setMobId($mob->getId());
1667 $mob->addMediaItem($med);
1669 $med->setPurpose($target_purpose);
1671 $med->setFormat($target_format);
1672 $med->setLocation($pi[
"basename"]);
1673 $med->setLocationType(
"LocalFile");
1676 $add = (is_array(
$ret) && count(
$ret) > 0)
1677 ?
"<br />" . implode(
$ret,
"<br />")
1683 $add = (is_array(
$ret) && count(
$ret) > 0)
1684 ?
"<br />" . implode(
$ret,
"<br />")
1690 $ilCtrl->redirect($this,
"editCastItem");
1706 include_once(
"./Services/MediaObjects/classes/class.ilObjMediaObjectGUI.php");
1710 $sec = (int)
$_POST[
"sec"];
1714 if ($mob->getVideoPreviewPic() !=
"") {
1715 $mob->removeAdditionalFile($mob->getVideoPreviewPic(
true));
1717 include_once(
"./Services/MediaObjects/classes/class.ilFFmpeg.php");
1718 $med = $mob->getMediaItem(
"Standard");
1727 if ($new_file !=
"") {
1735 $add = (is_array(
$ret) && count(
$ret) > 0)
1736 ?
"<br />" . implode(
$ret,
"<br />")
1743 $ilCtrl->redirect($this,
"editCastItem");
1754 if (
$_GET[
"event"] ==
"play") {
1755 $player = explode(
"_",
$_GET[
"player"]);
1756 $news_id = (int) $player[1];
1757 include_once(
"./Services/News/classes/class.ilNewsItem.php");
1759 $item->increasePlayCounter();
1761 $mob_id = $item->getMobId();
1764 $this->
object->handleLPUpdate(
$ilUser->getId(), $mob_id);
An exception for terminatinating execution or to throw for unit testing.
error($a_errmsg)
set error message @access public
static _write($a_type, $a_setting, $a_value, $a_user=0, $a_block_id=0)
Write setting to database.
static _lookup($a_type, $a_setting, $a_user=0, $a_block_id=0)
Lookup setting from database.
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.
static getInstanceFromAjaxCall()
(Re-)Build instance from ajax call
Confirmation screen class.
static formatDate(ilDateTime $date, $a_skip_day=false, $a_include_wd=false, $include_seconds=false)
Format a date @access public.
@classDescription Date and time handling
Base class for ILIAS Exception handling.
Export User Interface Class.
static enabled()
Checks, whether FFmpeg support is enabled (path is set in the setup)
static convert($a_file, $a_target_mime, $a_target_dir="", $a_target_filename="")
Convert file to target mime type.
static getLastReturnValues()
Get last return values.
static supportsImageExtraction($a_mime)
Check if mime type supports image extraction.
static extractImage( $a_file, $a_target_filename, $a_target_dir="", $a_sec=1)
Extract image from video file.
static _updateStatus($a_obj_id, $a_usr_id, $a_obj=null, $a_percentage=false, $a_force_raise=false)
Update status.
static checkAccess($a_ref_id, $a_allow_only_read=true)
check access to learning progress
const LP_CONTEXT_REPOSITORY
Class ilObjUserTrackingGUI.
static _lookupRSSPeriod()
This class represents a non editable value in a property form.
GUI class for the workflow of copying objects.
Class ilObjectGUI Basic methods of all Output classes.
checkPermission($a_perm, $a_cmd="", $a_type="", $a_ref_id=null)
Check permission and redirect on error.
initImportForm($a_new_type)
Init object import form.
prepareOutput($a_show_subobjects=true)
prepare output
initCreateForm($a_new_type)
Init object creation form.
static _gotoRepositoryNode($a_ref_id, $a_cmd="frameset")
Goto repository root.
static _gotoRepositoryRoot($a_raise_error=false)
Goto repository root.
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...
checkPermissionBool($a_perm, $a_cmd="", $a_type="", $a_ref_id=null)
Check permission.
addHeaderAction()
Add header action menu.
Class ilObject Basic functions for all objects.
static _lookupObjId($a_id)
static _lookupTitle($a_id)
lookup object title
getRefId()
get reference id @access public
New PermissionGUI (extends from old ilPermission2GUI) RBAC related output.
This class represents an option in a radio group.
special template class to simplify handling of ITX/PEAR
This class represents a text area property in a property form.
This class represents a text property in a property form.
static redirect($a_script)
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
static img($a_src, $a_alt=null, $a_width="", $a_height="", $a_border=0, $a_id="", $a_class="")
Build img tag.
static getASCIIFilename($a_filename)
convert utf8 to ascii filename
static stripSlashes($a_str, $a_strip_html=true, $a_allow="")
strip slashes if magic qoutes is enabled
static sendInfo($a_info="", $a_keep=false)
Send Info Message to Screen.
static getImagePath($img, $module_path="", $mode="output", $offline=false)
get image path (for images located in a template directory)
static renameExecutables($a_dir)
Rename uploaded executables for security reasons.
static signFile($path_to_file)
static signFolderOfStartFile($start_file_path)
if(!array_key_exists('StateId', $_REQUEST)) $id