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),
 
  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");
 
  567                $values[
"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");
 
  941        if (!$news_item->deliverMobFile(
$_GET[
"purpose"], (
int) 
$_GET[
"presentation"])) {
 
  942            $ilCtrl->redirect($this, 
"listItems");
 
  945            $this->
object->handleLPUpdate(
$ilUser->getId(), $news_item->getMobId());
 
  959        $mob = $mc_item->getMobId();
 
  960        include_once(
"./Services/MediaObjects/classes/class.ilObjMediaObject.php");
 
  963        $m_item = $mob->getMediaItem(
"Standard");
 
  964        $file = $mob_dir . 
"/" . $m_item->getLocation();
 
  966        if ($duration != 
"00:00:00") {
 
  967            $mc_item->setPlaytime($duration);
 
  974        $ilCtrl->redirect($this, 
"listItems");
 
  987        $this->ctrl->setCmd(
"showSummary");
 
  988        $this->ctrl->setCmdClass(
"ilinfoscreengui");
 
 1001        $ilTabs->activateTab(
"id_info");
 
 1007        include_once(
"./Services/InfoScreen/classes/class.ilInfoScreenGUI.php");
 
 1010        $info->enablePrivateNotes();
 
 1013        $this->lng->loadLanguageModule(
"meta");
 
 1014        $this->lng->loadLanguageModule(
"mcst");
 
 1015        $med_items = $this->
object->getItemsArray();
 
 1016        $info->addSection($this->lng->txt(
"meta_general"));
 
 1018            $this->lng->txt(
"mcst_nr_items"),
 
 1019            (
int) count($med_items)
 
 1022        if (count($med_items) > 0) {
 
 1023            $cur = current($med_items);
 
 1029        $info->addProperty($this->lng->txt(
"mcst_last_submission"), $last);
 
 1032        $this->ctrl->forwardCommand(
$info);
 
 1046        $ilHelp->setScreenIdComponent(
"mcst");
 
 1049        if ($ilAccess->checkAccess(
'read', 
"", $this->object->getRefId())) {
 
 1052                $lng->txt(
"content"),
 
 1053                $this->ctrl->getLinkTarget($this, 
"showContent")
 
 1058        if ($ilAccess->checkAccess(
'visible', 
"", $this->object->getRefId()) ||
 
 1059            $ilAccess->checkAccess(
'read', 
"", $this->object->getRefId())) {
 
 1062                $lng->txt(
"info_short"),
 
 1063                $this->ctrl->getLinkTargetByClass(
"ilinfoscreengui", 
"showSummary")
 
 1068        if ($ilAccess->checkAccess(
'write', 
"", $this->object->getRefId())) {
 
 1071                $lng->txt(
"settings"),
 
 1072                $this->ctrl->getLinkTarget($this, 
"editSettings")
 
 1076        require_once 
'Services/Tracking/classes/class.ilLearningProgressAccess.php';
 
 1079                'learning_progress',
 
 1080                $lng->txt(
'learning_progress'),
 
 1081                $this->ctrl->getLinkTargetByClass(array(__CLASS__, 
'illearningprogressgui'), 
'')
 
 1086        if ($ilAccess->checkAccess(
"write", 
"", $this->object->getRefId())) {
 
 1089                $lng->txt(
"export"),
 
 1090                $this->ctrl->getLinkTargetByClass(
"ilexportgui", 
"")
 
 1095        if ($ilAccess->checkAccess(
'edit_permission', 
"", $this->object->getRefId())) {
 
 1098                $lng->txt(
"perm_settings"),
 
 1099                $this->ctrl->getLinkTargetByClass(
"ilpermissiongui", 
"perm")
 
 1119            $this->ctrl->getLinkTarget($this, 
"showContent")
 
 1122        if ($ilAccess->checkAccess(
"write", 
"", 
$_GET[
"ref_id"])) {
 
 1125                $lng->txt(
"mcst_manage"),
 
 1126                $this->ctrl->getLinkTarget($this, 
"listItems")
 
 1132                    $lng->txt(
"mcst_ordering"),
 
 1133                    $this->ctrl->getLinkTarget($this, 
"editOrder")
 
 1138        $ilTabs->activateSubTab($a_active);
 
 1139        $ilTabs->activateTab(
"content");
 
 1152        $ilTabs->activateTab(
"id_settings");
 
 1155        $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);
 
 1201            $lng->txt(
"mcst_ordering_title"),
 
 1205            $lng->txt(
"mcst_ordering_creation_date_asc"),
 
 1209            $lng->txt(
"mcst_ordering_creation_date_desc"),
 
 1213            $lng->txt(
"mcst_ordering_manual"),
 
 1216        $sort->setValue($this->object->getOrder());
 
 1217        $this->form_gui->addItem($sort);
 
 1226            $lng->txt(
"mcst_list"),
 
 1230            $lng->txt(
"mcst_gallery"),
 
 1235        $si->setValue($this->object->getViewMode());
 
 1236        $this->form_gui->addItem(
$si);
 
 1241        $downloadable->setChecked($this->object->getDownloadable());
 
 1242        $downloadable->setInfo(
$lng->txt(
"mcst_downloadable_info"));
 
 1243        $this->form_gui->addItem($downloadable);
 
 1246        $enable_internal_rss = $news_set->get(
"enable_rss_for_internal");
 
 1249        if ($enable_internal_rss) {
 
 1252            $sh->setTitle(
$lng->txt(
"mcst_webfeed"));
 
 1253            $this->form_gui->addItem($sh);
 
 1257            $radio_option->setInfo(
$lng->txt(
"news_news_item_def_visibility_users_info"));
 
 1258            $radio_group->addOption($radio_option);
 
 1260            $radio_option->setInfo(
$lng->txt(
"news_news_item_def_visibility_public_info"));
 
 1261            $radio_group->addOption($radio_option);
 
 1262            $radio_group->setRequired(
false);
 
 1263            $radio_group->setValue($this->object->getDefaultAccess());
 
 1264            #$ch->addSubItem($radio_group); 
 1265            $this->form_gui->addItem($radio_group);
 
 1268            include_once(
"./Services/Block/classes/class.ilBlockSetting.php");
 
 1271            $ch->setInfo(
$lng->txt(
"news_public_feed_info"));
 
 1272            $ch->setChecked($public_feed);
 
 1273            $this->form_gui->addItem($ch);
 
 1276            $ni = 
new ilNumberInputGUI($this->lng->txt(
"news_keep_minimal_x_items"), 
"keep_rss_min");
 
 1277            $ni->setMaxValue(100);
 
 1278            $ni->setMinValue(0);
 
 1279            $ni->setMaxLength(3);
 
 1281            $ni->setInfo($this->lng->txt(
"news_keep_minimal_x_items_info") . 
" (" .
 
 1284            $ch->addSubItem($ni);
 
 1288            $incl_files->setChecked($this->object->getPublicFiles());
 
 1289            $incl_files->setInfo(
$lng->txt(
"mcst_incl_files_in_rss_info"));
 
 1290            #$ch->addSubItem($incl_files); 
 1291            $this->form_gui->addItem($incl_files);
 
 1295        $this->form_gui->addCommandButton(
"saveSettings", 
$lng->txt(
"save"));
 
 1296        $this->form_gui->setFormAction(
$ilCtrl->getFormAction($this, 
"saveSettings"));
 
 1308        $ilTabs->activateTab(
"id_settings");
 
 1311        if ($this->form_gui->checkInput()) {
 
 1313            $enable_internal_rss = $news_set->get(
"enable_rss_for_internal");
 
 1315            $this->
object->setTitle($this->form_gui->getInput(
"title"));
 
 1316            $this->
object->setDescription($this->form_gui->getInput(
"description"));
 
 1317            $this->
object->setOnline($this->form_gui->getInput(
"online"));
 
 1318            $this->
object->setDownloadable($this->form_gui->getInput(
"downloadable"));
 
 1319            $this->
object->setOrder($this->form_gui->getInput(
"order"));
 
 1320            $this->
object->setViewMode($this->form_gui->getInput(
"viewmode"));
 
 1322            if ($enable_internal_rss) {
 
 1323                $this->
object->setPublicFiles($this->form_gui->getInput(
"public_files"));
 
 1324                $this->
object->setDefaultAccess($this->form_gui->getInput(
"defaultaccess"));
 
 1326            $this->
object->update();
 
 1328            if ($enable_internal_rss) {
 
 1329                include_once(
"./Services/Block/classes/class.ilBlockSetting.php");
 
 1333                    $this->form_gui->getInput(
"extra_feed"),
 
 1335                    $this->object->getId()
 
 1341                    $this->form_gui->getInput(
"keep_rss_min"),
 
 1343                    $this->object->getId()
 
 1348            $ilCtrl->redirect($this, 
"editSettings");
 
 1350            $this->form_gui->setValuesByPost();
 
 1351            $this->tpl->setContent($this->form_gui->getHTML());
 
 1360        if (is_object($this->
object)) {
 
 1361            $ilLocator->addItem($this->object->getTitle(), $this->ctrl->getLinkTarget($this, 
"listItems"), 
"", 
$_GET[
"ref_id"]);
 
 1369        $ilAccess = 
$DIC->access();
 
 1373        if ($ilAccess->checkAccess(
"read", 
"", $a_target)) {
 
 1374            $_GET[
"cmd"] = 
"showContent";
 
 1375            $_GET[
"ref_id"] = $a_target;
 
 1376            $_GET[
"baseClass"] = 
"ilmediacasthandlergui";
 
 1377            $_GET[
"cmdClass"] = 
"ilobjmediacastgui";
 
 1378            include(
"ilias.php");
 
 1380        } elseif ($ilAccess->checkAccess(
"visible", 
"", $a_target)) {
 
 1382        } elseif ($ilAccess->checkAccess(
"read", 
"", ROOT_FOLDER_ID)) {
 
 1384                $lng->txt(
"msg_no_perm_read_item"),
 
 1401        return strpos($extension, 
"audio") !== 
false;
 
 1412        include_once(
"./Services/News/classes/class.ilNewsItem.php");
 
 1415        include_once(
"./Services/MediaObjects/classes/class.ilObjMediaObjectGUI.php");
 
 1417        return $mob->getMediaItem(
"Standard");
 
 1428        include_once(
"./Services/News/classes/class.ilNewsItem.php");
 
 1431        include_once(
"./Services/MediaObjects/classes/class.ilObjMediaObjectGUI.php");
 
 1433        return $mob->getMediaItems();
 
 1444            if (
$_POST[
"value_" . $purpose]) {
 
 1445                $_POST[
"label_value_" . $purpose] = 
$_POST[
"value_" . $purpose];
 
 1449        $this->form_gui->setValuesByPost();
 
 1450        $tpl->setContent($this->form_gui->getHTML());
 
 1460        $ilTabs->activateTab(
"edit_content");
 
 1465        switch ($this->object->getOrder()) {
 
 1476        include_once(
"./Modules/MediaCast/classes/class.ilMediaCastTableGUI.php");
 
 1479        $table_gui->setTitle(
$lng->txt(
"mcst_media_cast"));
 
 1480        $table_gui->setData($this->object->getSortedItemsArray());
 
 1482        $table_gui->addCommandButton(
"saveOrder", 
$lng->txt(
"mcst_save_order"));
 
 1484        $tpl->setContent($table_gui->getHTML());
 
 1491        asort(
$_POST[
"item_id"]);
 
 1494        foreach (array_keys(
$_POST[
"item_id"]) as 
$id) {
 
 1497        $this->
object->saveOrder($items);
 
 1500        $this->ctrl->redirect($this, 
"editOrder");
 
 1518        require_once 
'Services/Tracking/classes/class.ilChangeEvent.php';
 
 1521            $this->object->getRefId(),
 
 1522            $this->object->getId(),
 
 1532        $tpl->setPermanentLink($this->object->getType(), $this->object->getRefId());
 
 1541        $tpl->addJavascript(
"./Modules/MediaCast/js/MediaCast.js");
 
 1543        $ilTabs->activateTab(
"content");
 
 1547        $ctpl = 
new ilTemplate(
"tpl.mcst_content.html", 
true, 
true, 
"Modules/MediaCast");
 
 1549        include_once(
"./Services/MediaObjects/classes/class.ilObjMediaObject.php");
 
 1550        require_once(
'./Services/WebAccessChecker/classes/class.ilWACSignedPath.php');
 
 1551        foreach ($this->object->getSortedItemsArray() as $item) {
 
 1553            $med = $mob->getMediaItem(
"Standard");
 
 1555            $ctpl->setCurrentBlock(
"item");
 
 1556            $ctpl->setVariable(
"TITLE", $item[
"title"]);
 
 1557            $ctpl->setVariable(
"TIME", $item[
"playtime"]);
 
 1558            $ctpl->setVariable(
"ID", $item[
"id"]);
 
 1560            if ($mob->getVideoPreviewPic() != 
"") {
 
 1573            if (is_object($med)) {
 
 1574                include_once(
"./Services/MediaObjects/classes/class.ilMediaPlayerGUI.php");
 
 1579                    $ilCtrl->getLinkTarget($this, 
"handlePlayerEvent", 
"", 
true, 
false)
 
 1582                if (strcasecmp(
"Reference", $med->getLocationType()) == 0) {
 
 1584                    $mpl->setFile($med->getLocation());
 
 1588                    $mpl->setFile($path_to_file);
 
 1590                $mpl->setMimeType($med->getFormat());
 
 1592                $mpl->setDisplayHeight(
"480");
 
 1593                $mpl->setDisplayWidth(
"640");
 
 1595                $mpl->setTitle($item[
"title"]);
 
 1596                $mpl->setDescription($item[
"content"]);
 
 1597                $mpl->setForceAudioPreview(
true);
 
 1598                if ($this->object->getDownloadable()) {
 
 1599                    $ilCtrl->setParameterByClass(
"ilobjmediacastgui", 
"item_id", $item[
"id"]);
 
 1600                    $ilCtrl->setParameterByClass(
"ilobjmediacastgui", 
"purpose", 
"Standard");
 
 1601                    $mpl->setDownloadLink(
$ilCtrl->getLinkTargetByClass(
"ilobjmediacastgui", 
"downloadItem"));
 
 1603                $med_alt = $mob->getMediaItem(
"VideoAlternative");
 
 1604                if (is_object($med_alt)) {
 
 1606                        $med_alt->getLocation()));
 
 1607                    $mpl->setAlternativeVideoMimeType($med_alt->getFormat());
 
 1610                $ctpl->setVariable(
"PLAYER", $mpl->getPreviewHtml());
 
 1614            $ctpl->parseCurrentBlock();
 
 1619        if ($feed_icon_html != 
"") {
 
 1620            $feed_icon_html = 
'<p>' . $feed_icon_html . 
'</p>';
 
 1623        $tpl->setContent($feed_icon_html . $ctpl->get());
 
 1639        include_once(
"./Services/MediaObjects/classes/class.ilObjMediaObjectGUI.php");
 
 1646            include_once(
"./Services/MediaObjects/classes/class.ilFFmpeg.php");
 
 1647            $med = $mob->getMediaItem(
"Standard");
 
 1651            $pi = pathinfo($new_file);
 
 1652            $med = $mob->getMediaItem($target_purpose);
 
 1653            if (!is_object($med)) {
 
 1655                $med->setMobId($mob->getId());
 
 1656                $mob->addMediaItem($med);
 
 1658                $med->setPurpose($target_purpose);
 
 1660            $med->setFormat($target_format);
 
 1661            $med->setLocation($pi[
"basename"]);
 
 1662            $med->setLocationType(
"LocalFile");
 
 1665            $add = (is_array(
$ret) && count(
$ret) > 0)
 
 1666                ? 
"<br />" . implode(
$ret, 
"<br />")
 
 1672            $add = (is_array(
$ret) && count(
$ret) > 0)
 
 1673                ? 
"<br />" . implode(
$ret, 
"<br />")
 
 1679        $ilCtrl->redirect($this, 
"editCastItem");
 
 1695        include_once(
"./Services/MediaObjects/classes/class.ilObjMediaObjectGUI.php");
 
 1699            $sec = (int) 
$_POST[
"sec"];
 
 1703            if ($mob->getVideoPreviewPic() != 
"") {
 
 1704                $mob->removeAdditionalFile($mob->getVideoPreviewPic(
true));
 
 1706            include_once(
"./Services/MediaObjects/classes/class.ilFFmpeg.php");
 
 1707            $med = $mob->getMediaItem(
"Standard");
 
 1716            if ($new_file != 
"") {
 
 1724                $add = (is_array(
$ret) && count(
$ret) > 0)
 
 1725                    ? 
"<br />" . implode(
$ret, 
"<br />")
 
 1732        $ilCtrl->redirect($this, 
"editCastItem");
 
 1743        if (
$_GET[
"event"] == 
"play") {
 
 1744            $player = explode(
"_", 
$_GET[
"player"]);
 
 1745            $news_id = (int) $player[1];
 
 1746            include_once(
"./Services/News/classes/class.ilNewsItem.php");
 
 1748            $item->increasePlayCounter();
 
 1750            $mob_id = $item->getMobId();
 
 1753                $this->
object->handleLPUpdate(
$ilUser->getId(), $mob_id);
 
sprintf('%.4f', $callTime)
if(!isset( $_REQUEST[ 'ReturnTo'])) if(!isset($_REQUEST['AuthId'])) $options
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)
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 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 sendSuccess($a_info="", $a_keep=false)
Send Success Message to Screen.
static redirect($a_script)
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
static img($a_src, $a_alt="", $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
if(!file_exists("$old.txt")) if( $old===$new) if(file_exists("$new.txt")) $file