00001 <?php
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 require_once "./classes/class.ilObjectGUI.php";
00025
00035 class ilObjMediaCastGUI extends ilObjectGUI
00036 {
00041 function ilObjMediaCastGUI($a_data, $a_id, $a_call_by_reference, $a_prepare_output = true)
00042 {
00043 global $ilCtrl, $lng;
00044
00045 $this->type = "mcst";
00046 $this->ilObjectGUI($a_data,$a_id,$a_call_by_reference,$a_prepare_output);
00047 $lng->loadLanguageModule("mcst");
00048 $lng->loadLanguageModule("news");
00049
00050 $ilCtrl->saveParameter($this, "item_id");
00051 }
00052
00053 function &executeCommand()
00054 {
00055 global $ilUser;
00056
00057 $next_class = $this->ctrl->getNextClass($this);
00058 $cmd = $this->ctrl->getCmd();
00059 $this->prepareOutput();
00060
00061 switch($next_class)
00062 {
00063 case "ilinfoscreengui":
00064 $this->checkPermission("visible");
00065 $this->infoScreen();
00066 break;
00067
00068 case 'ilpermissiongui':
00069 include_once("./classes/class.ilPermissionGUI.php");
00070 $perm_gui =& new ilPermissionGUI($this);
00071 $ret =& $this->ctrl->forwardCommand($perm_gui);
00072 break;
00073
00074 default:
00075 if(!$cmd)
00076 {
00077 $cmd = "infoScreen";
00078 }
00079 $cmd .= "Object";
00080 if ($cmd != "infoScreenObject")
00081 {
00082 $this->checkPermission("read");
00083 }
00084 else
00085 {
00086 $this->checkPermission("visible");
00087 }
00088 $this->$cmd();
00089
00090 break;
00091 }
00092
00093 return true;
00094 }
00095
00100 function saveObject()
00101 {
00102 global $rbacadmin;
00103
00104
00105 $newObj = parent::saveObject();
00106
00107
00108
00109
00110
00111
00112
00113
00114
00115
00116 ilUtil::sendInfo($this->lng->txt("object_added"),true);
00117
00118 ilUtil::redirect("ilias.php?baseClass=ilMediaCastHandlerGUI&ref_id=".$newObj->getRefId()."&cmd=listItems");
00119 }
00120
00121
00125 function listItemsObject()
00126 {
00127 global $tpl, $lng, $ilAccess;
00128
00129 $this->checkPermission("read");
00130
00131 $med_items = $this->object->getItemsArray();
00132
00133 include_once("./Modules/MediaCast/classes/class.ilMediaCastTableGUI.php");
00134 $table_gui = new ilMediaCastTableGUI($this, "listItems");
00135
00136 $table_gui->setTitle($lng->txt("mcst_media_cast"));
00137 $table_gui->setData($med_items);
00138
00139 if ($ilAccess->checkAccess("write", "", $_GET["ref_id"]))
00140 {
00141 $table_gui->addCommandButton("addCastItem", $lng->txt("add"));
00142 $table_gui->addMultiCommand("confirmDeletionItems", $lng->txt("delete"));
00143 $table_gui->setSelectAllCheckbox("item_id");
00144 }
00145
00146 include_once("./Services/Block/classes/class.ilBlockSetting.php");
00147 $public_feed = ilBlockSetting::_lookup("news", "public_feed",
00148 0, $this->object->getId());
00149
00150
00151 if ($public_feed)
00152 {
00153 $news_set = new ilSetting("news");
00154 $enable_internal_rss = $news_set->get("enable_rss_for_internal");
00155
00156 if ($enable_internal_rss)
00157 {
00158 $table_gui->addHeaderCommand(
00159 ILIAS_HTTP_PATH."/feed.php?client_id=".rawurlencode(CLIENT_ID)."&".
00160 "ref_id=".$_GET["ref_id"],
00161 $lng->txt("news_feed_url"), "_blank",
00162 ilUtil::getImagePath("rss.gif"));
00163 }
00164 }
00165
00166 $tpl->setContent($table_gui->getHTML());
00167
00168 }
00169
00173 function addCastItemObject()
00174 {
00175 global $tpl;
00176
00177 $this->checkPermission("write");
00178
00179 $this->initAddCastItemForm();
00180 $tpl->setContent($this->form_gui->getHTML());
00181 }
00182
00186 function editCastItemObject()
00187 {
00188 global $tpl;
00189
00190 $this->checkPermission("write");
00191 $med = $this->getMediaItem($_GET["item_id"]);
00192 $this->initAddCastItemForm(strcasecmp($med->getLocationType(),"Reference") == 0? "edit_reference": "edit_local");
00193 $this->getCastItemValues();
00194 $tpl->setContent($this->form_gui->getHTML());
00195 }
00196
00200 function initAddCastItemForm($a_mode = "create")
00201 {
00202 global $lng, $ilCtrl;
00203
00204 $this->checkPermission("write");
00205
00206 $lng->loadLanguageModule("mcst");
00207
00208 $news_set = new ilSetting("news");
00209 $enable_internal_rss = $news_set->get("enable_rss_for_internal");
00210
00211 include("Services/Form/classes/class.ilPropertyFormGUI.php");
00212 $this->form_gui = new ilPropertyFormGUI();
00213
00214
00215 $text_input = new ilTextInputGUI($lng->txt("title"), "title");
00216 $text_input->setRequired(true);
00217 $text_input->setMaxLength(200);
00218 $this->form_gui->addItem($text_input);
00219
00220
00221 $text_area = new ilTextAreaInputGUI($lng->txt("description"), "description");
00222 $text_area->setRequired(false);
00223 $this->form_gui->addItem($text_area);
00224
00225
00226 if ($enable_internal_rss)
00227 {
00228 $radio_group = new ilRadioGroupInputGUI($lng->txt("access_scope"), "visibility");
00229 $radio_option = new ilRadioOption($lng->txt("access_users"), "users");
00230 $radio_group->addOption($radio_option);
00231 $radio_option = new ilRadioOption($lng->txt("access_public"), "public");
00232 $radio_group->addOption($radio_option);
00233 $radio_group->setInfo($lng->txt("mcst_visibility_info"));
00234 $radio_group->setRequired(true);
00235 $radio_group->setValue("users");
00236 $this->form_gui->addItem($radio_group);
00237 }
00238
00239
00240
00241 {
00242 $file = new ilFileInputGUI($lng->txt("file"), "file");
00243 $file->setSuffixes(array("mp3","flv","gif", "png"));
00244 $this->form_gui->addItem($file);
00245 }
00246
00247
00248
00249 {
00250 $text_input = new ilRegExpInputGUI($lng->txt("url"), "url");
00251 $text_input->setPattern("/https?\:\/\/.+/i");
00252 $text_input->setInfo($lng->txt("mcst_reference_info"));
00253 $this->form_gui->addItem($text_input);
00254 }
00255
00256
00257
00258
00259 $dur = new ilDurationInputGUI($lng->txt("mcst_duration"), "duration");
00260 $dur->setInfo($lng->txt("mcst_duration_info"));
00261 $dur->setShowDays(false);
00262 $dur->setShowHours(true);
00263 $dur->setShowSeconds(true);
00264 $this->form_gui->addItem($dur);
00265
00266
00267 if ($a_mode == "create")
00268 {
00269 $this->form_gui->addCommandButton("saveCastItem", $lng->txt("save"));
00270 }
00271 else
00272 {
00273 $this->form_gui->addCommandButton("updateCastItem", $lng->txt("save"));
00274 }
00275 $this->form_gui->addCommandButton("listItems", $lng->txt("cancel"));
00276 $this->form_gui->setFormAction($ilCtrl->getFormAction($this, "saveCastItem"));
00277
00278 $this->form_gui->setTitle($lng->txt("mcst_add_new_item"));
00279 }
00280
00284 public function getCastItemValues()
00285 {
00286 $values = array();
00287 $med = $this->getMediaItem($_GET["item_id"]);
00288 $values["title"] = $this->mcst_item->getTitle();
00289 $values["description"] = $this->mcst_item->getContent();
00290 $values["visibility"] = $this->mcst_item->getVisibility();
00291 if (strcasecmp("Reference", $med->getLocationType()) == 0)
00292 $values["url"] = $med->getLocation();
00293 $length = explode(":", $this->mcst_item->getPlaytime());
00294 $values["duration"] = array("hh" => $length[0], "mm" => $length[1], "ss" => $length[2]);
00295
00296 $this->form_gui->setValuesByArray($values);
00297 }
00298
00302 function saveCastItemObject()
00303 {
00304 global $tpl, $ilCtrl, $ilUser, $lng;
00305
00306 $this->checkPermission("write");
00307
00308 $this->initAddCastItemForm();
00309
00310 if ($_POST["url"] == "" && !$_FILES['file']['tmp_name']) {
00311 ilUtil::sendInfo($lng->txt("msg_input_either_file_or_url"));
00312 $this->form_gui->setValuesByPost();
00313 $tpl->setContent($this->form_gui->getHTML());
00314 }
00315 else if ($this->form_gui->checkInput())
00316 {
00317
00318
00319 include_once("./Services/MediaObjects/classes/class.ilObjMediaObjectGUI.php");
00320 $mob = new ilObjMediaObject();
00321
00322 $mob->setTitle($this->form_gui->getInput("title"));
00323 $mob->setDescription("");
00324 $mob->create();
00325
00326 $media_item =& new ilMediaItem();
00327 $mob->addMediaItem($media_item);
00328 $media_item->setPurpose("Standard");
00329
00330 if ($this->form_gui->getInput ("url"))
00331 {
00332
00333 $file = $this->form_gui->getInput ("url");
00334 $title = basename ($file);
00335 $location = $this->form_gui->getInput ("url");
00336 $locationType = "Reference";
00337 } else {
00338
00339
00340
00341 $mob->createDirectory();
00342 $mob_dir = ilObjMediaObject::_getDirectory($mob->getId());
00343
00344 $file_name = ilUtil::getASCIIFilename($_FILES['file']['name']);
00345 $file_name = str_replace(" ", "_", $file_name);
00346
00347 $file = $mob_dir."/".$file_name;
00348 $title = $file_name;
00349 $locationType = "LocalFile";
00350 $location = $title;
00351 ilUtil::moveUploadedFile($_FILES['file']['tmp_name'],
00352 $file_name, $file);
00353 }
00354
00355
00356 $duration = $this->form_gui->getInput("duration");
00357 if ($duration["hh"] == 0 && $duration["mm"] == 0 && $duration["ss"] == 0)
00358 {
00359 include_once("./Services/MediaObjects/classes/class.ilMediaAnalyzer.php");
00360 $ana = new ilMediaAnalyzer();
00361 $ana->setFile($file);
00362 $ana->analyzeFile();
00363 $dur = $ana->getPlaytimeString();
00364 $dur = explode(":", $dur);
00365 $duration["mm"] = $dur[0];
00366 $duration["ss"] = $dur[1];
00367 }
00368 $duration =
00369 str_pad($duration["hh"], 2 , "0", STR_PAD_LEFT).":".
00370 str_pad($duration["mm"], 2 , "0", STR_PAD_LEFT).":".
00371 str_pad($duration["ss"], 2 , "0", STR_PAD_LEFT);
00372
00373
00374
00375 $format = ilObjMediaObject::getMimeType($file);
00376
00377
00378 $media_item->setFormat($format);
00379 $media_item->setLocation($location);
00380 $media_item->setLocationType($locationType);
00381 $media_item->setHeight(self::isAudio($format)?0:180);
00382 $mob->setTitle($title);
00383 $mob->setDescription($format);
00384 $media_item->setHAlign("Left");
00385
00386 ilUtil::renameExecutables($mob_dir);
00387 $mob->update();
00388
00389
00390
00391
00392
00393 $news_set = new ilSetting("news");
00394 $enable_internal_rss = $news_set->get("enable_rss_for_internal");
00395
00396
00397 include_once("./Services/News/classes/class.ilNewsItem.php");
00398 $mc_item = new ilNewsItem();
00399 $mc_item->setMobId($mob->getId());
00400 $mc_item->setContentType(NEWS_AUDIO);
00401 $mc_item->setContextObjId($this->object->getId());
00402 $mc_item->setContextObjType($this->object->getType());
00403 $mc_item->setUserId($ilUser->getId());
00404 $mc_item->setPlaytime($duration);
00405 $mc_item->setTitle($this->form_gui->getInput("title"));
00406 $mc_item->setContent($this->form_gui->getInput("description"));
00407 $mc_item->setLimitation(false);
00408 if ($enable_internal_rss)
00409 {
00410 $mc_item->setVisibility($this->form_gui->getInput("visibility"));
00411 }
00412 else
00413 {
00414 $mc_item->setVisibility("users");
00415 }
00416 $mc_item->create();
00417
00418 $ilCtrl->redirect($this, "listItems");
00419 }
00420 else
00421 {
00422 $this->form_gui->setValuesByPost();
00423 $tpl->setContent($this->form_gui->getHTML());
00424 }
00425 }
00426
00430 function updateCastItemObject()
00431 {
00432 global $tpl, $ilCtrl, $ilUser;
00433
00434 $this->checkPermission("write");
00435
00436 $this->initAddCastItemForm("edit");
00437
00438 if ($this->form_gui->checkInput())
00439 {
00440
00441 include_once("./Services/News/classes/class.ilNewsItem.php");
00442 $mc_item = new ilNewsItem($_GET["item_id"]);
00443 $mob_id = $mc_item->getMobId();
00444
00445
00446 include_once("./Services/MediaObjects/classes/class.ilObjMediaObjectGUI.php");
00447 $mob = new ilObjMediaObject($mob_id);
00448
00449 $mob->setTitle($this->form_gui->getInput("title"));
00450 $mob->setDescription("");
00451
00452
00453
00454 $mob->createDirectory();
00455 $mob_dir = ilObjMediaObject::_getDirectory($mob->getId());
00456
00457 $media_item = $mob->getMediaItem("Standard");
00458 $file = $mob_dir."/".$media_item->getLocation();
00459 if ($_FILES['file']['name'] != "")
00460 {
00461 $file_name = ilUtil::getASCIIFilename($_FILES['file']['name']);
00462 $file_name = str_replace(" ", "_", $file_name);
00463
00464 $file = $mob_dir."/".$file_name;
00465 ilUtil::moveUploadedFile($_FILES['file']['tmp_name'],
00466 $file_name, $file);
00467
00468 $format = ilObjMediaObject::getMimeType($file);
00469 $location = $file_name;
00470 $media_item->setFormat($format);
00471 $media_item->setLocation($location);
00472 $media_item->setLocationType("LocalFile");
00473 $mob->setTitle($file_name);
00474 $mob->setDescription($format);
00475 $media_item->setHAlign("Left");
00476 $media_item->setHeight(self::isAudio($format)?0:180);
00477 ilUtil::renameExecutables($mob_dir);
00478 } elseif ($this->form_gui->getInput ("url"))
00479 {
00480 $location = $this->form_gui->getInput ("url");
00481 $format = ilObjMediaObject::getMimeType($location);
00482 $media_item->setHeight(self::isAudio($format)?0:180);
00483 $media_item->setFormat($format);
00484 $media_item->setLocation($location);
00485 $media_item->setLocationType("Reference");
00486 }
00487
00488
00489
00490
00491 $mob->update();
00492
00493
00494 $duration = $this->form_gui->getInput("duration");
00495 if ($duration["hh"] == 0 && $duration["mm"] == 0 && $duration["ss"] == 0)
00496 {
00497 include_once("./Services/MediaObjects/classes/class.ilMediaAnalyzer.php");
00498 $ana = new ilMediaAnalyzer();
00499 $ana->setFile($file);
00500 $ana->analyzeFile();
00501 $dur = $ana->getPlaytimeString();
00502 $dur = explode(":", $dur);
00503 $duration["mm"] = $dur[0];
00504 $duration["ss"] = $dur[1];
00505 }
00506 $duration =
00507 str_pad($duration["hh"], 2 , "0", STR_PAD_LEFT).":".
00508 str_pad($duration["mm"], 2 , "0", STR_PAD_LEFT).":".
00509 str_pad($duration["ss"], 2 , "0", STR_PAD_LEFT);
00510
00511
00512
00513
00514
00515
00516 $news_set = new ilSetting("news");
00517 $enable_internal_rss = $news_set->get("enable_rss_for_internal");
00518
00519 $mc_item->setUserId($ilUser->getId());
00520 $mc_item->setPlaytime($duration);
00521 $mc_item->setTitle($this->form_gui->getInput("title"));
00522 $mc_item->setContent($this->form_gui->getInput("description"));
00523 if ($enable_internal_rss)
00524 {
00525 $mc_item->setVisibility($this->form_gui->getInput("visibility"));
00526 }
00527 $mc_item->update();
00528
00529 $ilCtrl->redirect($this, "listItems");
00530 }
00531 else
00532 {
00533 $this->form_gui->setValuesByPost();
00534 $tpl->setContent($this->form_gui->getHTML());
00535 }
00536 }
00537
00541 function confirmDeletionItemsObject()
00542 {
00543 global $ilCtrl, $lng, $tpl;
00544
00545 $this->checkPermission("write");
00546
00547 if (!is_array($_POST["item_id"]))
00548 {
00549 $this->listItemsObject();
00550 return;
00551 }
00552
00553 include_once("Services/Utilities/classes/class.ilConfirmationGUI.php");
00554 $c_gui = new ilConfirmationGUI();
00555
00556
00557 $c_gui->setFormAction($ilCtrl->getFormAction($this, "deleteItems"));
00558 $c_gui->setHeaderText($lng->txt("info_delete_sure"));
00559 $c_gui->setCancel($lng->txt("cancel"), "listItems");
00560 $c_gui->setConfirm($lng->txt("confirm"), "deleteItems");
00561
00562
00563 include_once("./Services/News/classes/class.ilNewsItem.php");
00564 foreach($_POST["item_id"] as $item_id)
00565 {
00566 $item = new ilNewsItem($item_id);
00567 $c_gui->addItem("item_id[]", $item_id, $item->getTitle(),
00568 ilUtil::getImagePath("icon_mcst.gif"));
00569 }
00570
00571 $tpl->setContent($c_gui->getHTML());
00572 }
00573
00577 function deleteItemsObject()
00578 {
00579 global $ilCtrl;
00580
00581 $this->checkPermission("write");
00582
00583
00584 foreach($_POST["item_id"] as $item_id)
00585 {
00586 $mc_item = new ilNewsItem($item_id);
00587 $mc_item->delete();
00588 }
00589
00590 $ilCtrl->redirect($this, "listItems");
00591 }
00592
00596 function downloadItemObject()
00597 {
00598 $this->checkPermission("read");
00599
00600 $mc_item = new ilNewsItem($_GET["item_id"]);
00601 $mob = $mc_item->getMobId();
00602 include_once("./Services/MediaObjects/classes/class.ilObjMediaObject.php");
00603 $mob = new ilObjMediaObject($mob);
00604 $mob_dir = ilObjMediaObject::_getDirectory($mob->getId());
00605 $m_item = $mob->getMediaItem("Standard");
00606 $file = $mob_dir."/".$m_item->getLocation();
00607 ilUtil::deliverFile($file, $m_item->getLocation());
00608 exit;
00609 }
00610
00614 function determinePlaytimeObject()
00615 {
00616 global $ilCtrl;
00617
00618 $mc_item = new ilNewsItem($_GET["item_id"]);
00619 $mob = $mc_item->getMobId();
00620 include_once("./Services/MediaObjects/classes/class.ilObjMediaObject.php");
00621 $mob = new ilObjMediaObject($mob);
00622 $mob_dir = ilObjMediaObject::_getDirectory($mob->getId());
00623 $m_item = $mob->getMediaItem("Standard");
00624 $file = $mob_dir."/".$m_item->getLocation();
00625
00626 include_once("./Services/MediaObjects/classes/class.ilMediaAnalyzer.php");
00627 $ana = new ilMediaAnalyzer();
00628 $ana->setFile($file);
00629 $ana->analyzeFile();
00630 $dur = $ana->getPlaytimeString();
00631 $dur = explode(":", $dur);
00632 $duration["hh"] = "00";
00633 $duration["mm"] = $dur[0];
00634 $duration["ss"] = $dur[1];
00635
00636 $duration =
00637 str_pad($duration["hh"], 2 , "0", STR_PAD_LEFT).":".
00638 str_pad($duration["mm"], 2 , "0", STR_PAD_LEFT).":".
00639 str_pad($duration["ss"], 2 , "0", STR_PAD_LEFT);
00640
00641 $mc_item->setPlaytime($duration);
00642 $mc_item->update();
00643
00644 $ilCtrl->redirect($this, "listItems");
00645 }
00646
00652 function infoScreenObject()
00653 {
00654 $this->checkPermission("visible");
00655 $this->ctrl->setCmd("showSummary");
00656 $this->ctrl->setCmdClass("ilinfoscreengui");
00657 $this->infoScreen();
00658 }
00659
00663 function infoScreen()
00664 {
00665 global $ilAccess, $ilUser;
00666
00667 if (!$ilAccess->checkAccess("visible", "", $this->object->getRefId()))
00668 {
00669 $this->ilias->raiseError($this->lng->txt("msg_no_perm_read"),$this->ilias->error_obj->MESSAGE);
00670 }
00671
00672 include_once("./Services/InfoScreen/classes/class.ilInfoScreenGUI.php");
00673 $info = new ilInfoScreenGUI($this);
00674
00675 $info->enablePrivateNotes();
00676
00677
00678
00679
00680
00681
00682
00683
00684
00685
00686 $this->lng->loadLanguageModule("meta");
00687 $this->lng->loadLanguageModule("mcst");
00688 $med_items = $this->object->getItemsArray();
00689 $info->addSection($this->lng->txt("meta_general"));
00690 $info->addProperty($this->lng->txt("mcst_nr_items"),
00691 (int) count($med_items));
00692
00693 if (count($med_items) > 0)
00694 {
00695 $cur = current($med_items);
00696 $last = $cur["creation_date"];
00697 }
00698 else
00699 {
00700 $last = "-";
00701 }
00702
00703 $info->addProperty($this->lng->txt("mcst_last_submission"), $last);
00704
00705
00706 $this->ctrl->forwardCommand($info);
00707 }
00708
00714 function getTabs(&$tabs_gui)
00715 {
00716 global $ilCtrl, $ilAccess;
00717
00718
00719 if ($ilAccess->checkAccess('read', "", $this->object->getRefId()))
00720 {
00721 $tabs_gui->addTarget("view_content",
00722 $this->ctrl->getLinkTarget($this, "listItems"), array("", "listItems"),
00723 array(strtolower(get_class($this)), ""));
00724 }
00725
00726
00727 if ($ilAccess->checkAccess('visible', "", $this->object->getRefId()))
00728 {
00729 $force_active = ($ilCtrl->getNextClass() == "ilinfoscreengui"
00730 || $_GET["cmd"] == "infoScreen")
00731 ? true
00732 : false;
00733 $tabs_gui->addTarget("info_short",
00734 $this->ctrl->getLinkTargetByClass(
00735 "ilinfoscreengui", "showSummary"),
00736 "showSummary",
00737 "", "", $force_active);
00738 }
00739
00740
00741 if ($ilAccess->checkAccess('write', "", $this->object->getRefId()))
00742 {
00743 $tabs_gui->addTarget("settings",
00744 $this->ctrl->getLinkTarget($this, "editSettings"), array("editSettings"),
00745 array(strtolower(get_class($this)), ""));
00746 }
00747
00748
00749 if ($ilAccess->checkAccess('edit_permission', "", $this->object->getRefId()))
00750 {
00751 $tabs_gui->addTarget("perm_settings",
00752 $this->ctrl->getLinkTargetByClass("ilpermissiongui", "perm"), array("perm","info","owner"), 'ilpermissiongui');
00753 }
00754 }
00755
00759 function editSettingsObject()
00760 {
00761 global $tpl;
00762
00763 $this->checkPermission("write");
00764
00765 $this->initSettingsForm();
00766 $tpl->setContent($this->form_gui->getHtml());
00767 }
00768
00772 function initSettingsForm()
00773 {
00774 global $tpl, $lng, $ilCtrl;
00775
00776 $lng->loadLanguageModule("mcst");
00777
00778 include("Services/Form/classes/class.ilPropertyFormGUI.php");
00779 $this->form_gui = new ilPropertyFormGUI();
00780 $this->form_gui->setTitle($lng->txt("mcst_settings"));
00781
00782
00783 $tit = new ilTextInputGUI($lng->txt("title"), "title");
00784 $tit->setValue($this->object->getTitle());
00785 $tit->setRequired(true);
00786 $this->form_gui->addItem($tit);
00787
00788
00789 $des = new ilTextAreaInputGUI($lng->txt("description"), "description");
00790 $des->setValue($this->object->getLongDescription());
00791 $this->form_gui->addItem($des);
00792
00793
00794 $online = new ilCheckboxInputGUI($lng->txt("online"), "online");
00795 $online->setChecked($this->object->getOnline());
00796 $this->form_gui->addItem($online);
00797
00798 $news_set = new ilSetting("news");
00799 $enable_internal_rss = $news_set->get("enable_rss_for_internal");
00800
00801
00802 if ($enable_internal_rss)
00803 {
00804
00805
00806 include_once("./Services/Block/classes/class.ilBlockSetting.php");
00807 $public_feed = ilBlockSetting::_lookup("news", "public_feed",
00808 0, $this->object->getId());
00809 $ch = new ilCheckboxInputGUI($lng->txt("news_public_feed"),
00810 "extra_feed");
00811 $ch->setInfo($lng->txt("news_public_feed_info"));
00812 $ch->setChecked($public_feed);
00813 $this->form_gui->addItem($ch);
00814
00815
00816 $incl_files = new ilCheckboxInputGUI($lng->txt("mcst_incl_files_in_rss"), "public_files");
00817 $incl_files->setChecked($this->object->getPublicFiles());
00818 $incl_files->setInfo($lng->txt("mcst_incl_files_in_rss_info"));
00819 $this->form_gui->addItem($incl_files);
00820 }
00821
00822
00823 $this->form_gui->addCommandButton("saveSettings", $lng->txt("save"));
00824 $this->form_gui->setFormAction($ilCtrl->getFormAction($this, "saveSettings"));
00825 }
00826
00830 function saveSettingsObject()
00831 {
00832 global $ilCtrl;
00833
00834 $this->checkPermission("write");
00835
00836 $this->initSettingsForm();
00837 if ($this->form_gui->checkInput())
00838 {
00839 $news_set = new ilSetting("news");
00840 $enable_internal_rss = $news_set->get("enable_rss_for_internal");
00841
00842 $this->object->setTitle($this->form_gui->getInput("title"));
00843 $this->object->setDescription($this->form_gui->getInput("description"));
00844 $this->object->setOnline($this->form_gui->getInput("online"));
00845 if ($enable_internal_rss)
00846 {
00847 $this->object->setPublicFiles($this->form_gui->getInput("public_files"));
00848 }
00849 $this->object->update();
00850
00851 if ($enable_internal_rss)
00852 {
00853 include_once("./Services/Block/classes/class.ilBlockSetting.php");
00854 ilBlockSetting::_write("news", "public_feed",
00855 $this->form_gui->getInput("extra_feed"),
00856 0, $this->object->getId());
00857 }
00858
00859 ilUtil::sendInfo($this->lng->txt("msg_obj_modified"),true);
00860 $ilCtrl->redirect($this, "editSettings");
00861 }
00862 else
00863 {
00864 $this->form_gui->setValuesByPost();
00865 $this->tpl->setContent($this->form_gui->getHTML());
00866 }
00867 }
00868
00869
00870 function addLocatorItems()
00871 {
00872 global $ilLocator;
00873
00874 if (is_object($this->object))
00875 {
00876 $ilLocator->addItem($this->object->getTitle(), $this->ctrl->getLinkTarget($this, "infoScreen"), "", $_GET["ref_id"]);
00877 }
00878 }
00879
00880 function _goto($a_target)
00881 {
00882 global $ilAccess, $ilErr, $lng;
00883
00884 if ($ilAccess->checkAccess("read", "", $a_target))
00885 {
00886 $_GET["cmd"] = "listItems";
00887 $_GET["ref_id"] = $a_target;
00888 $_GET["baseClass"] = "ilmediacasthandlergui";
00889 $_GET["cmdClass"] = "ilobjmediacastgui";
00890 include("ilias.php");
00891 exit;
00892 }
00893 else if ($ilAccess->checkAccess("visible", "", $a_target))
00894 {
00895 $_GET["cmd"] = "infoScreen";
00896 $_GET["ref_id"] = $a_target;
00897 include("repository.php");
00898 exit;
00899 }
00900 else if ($ilAccess->checkAccess("read", "", ROOT_FOLDER_ID))
00901 {
00902 $_GET["cmd"] = "frameset";
00903 $_GET["target"] = "";
00904 $_GET["ref_id"] = ROOT_FOLDER_ID;
00905 ilUtil::sendInfo(sprintf($lng->txt("msg_no_perm_read_item"),
00906 ilObject::_lookupTitle(ilObject::_lookupObjId($a_target))), true);
00907 include("repository.php");
00908 exit;
00909 }
00910
00911 $ilErr->raiseError($lng->txt("msg_no_perm_read"), $ilErr->FATAL);
00912
00913 }
00914
00921 protected static function isAudio($extension) {
00922 return strpos($extension,"audio") !== false;
00923 }
00924
00931 protected function getMediaItem ($id) {
00932 include_once("./Services/News/classes/class.ilNewsItem.php");
00933 $this->mcst_item = new ilNewsItem($id);
00934
00935 include_once("./Services/MediaObjects/classes/class.ilObjMediaObjectGUI.php");
00936 $mob = new ilObjMediaObject($this->mcst_item->getMobId());
00937 return $mob->getMediaItem("Standard");
00938 }
00939 }
00940 ?>