• Main Page
  • Related Pages
  • Modules
  • Namespaces
  • Data Structures
  • Files
  • File List
  • Globals

Modules/MediaCast/classes/class.ilObjMediaCastGUI.php

Go to the documentation of this file.
00001 <?php
00002 /*
00003         +-----------------------------------------------------------------------------+
00004         | ILIAS open source                                                           |
00005         +-----------------------------------------------------------------------------+
00006         | Copyright (c) 1998-2001 ILIAS open source, University of Cologne            |
00007         |                                                                             |
00008         | This program is free software; you can redistribute it and/or               |
00009         | modify it under the terms of the GNU General Public License                 |
00010         | as published by the Free Software Foundation; either version 2              |
00011         | of the License, or (at your option) any later version.                      |
00012         |                                                                             |
00013         | This program is distributed in the hope that it will be useful,             |
00014         | but WITHOUT ANY WARRANTY; without even the implied warranty of              |
00015         | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               |
00016         | GNU General Public License for more details.                                |
00017         |                                                                             |
00018         | You should have received a copy of the GNU General Public License           |
00019         | along with this program; if not, write to the Free Software                 |
00020         | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA. |
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();    // forwards command
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                 // create and insert forum in objecttree
00105                 $newObj = parent::saveObject();
00106 
00107                 // setup rolefolder & default local roles
00108                 //$roles = $newObj->initDefaultRoles();
00109 
00110                 // ...finally assign role to creator of object
00111                 //$rbacadmin->assignUser($roles[0], $newObj->getOwner(), "y");
00112 
00113                 // put here object specific stuff
00114                         
00115                 // always send a message
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                 // rss icon/link
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                 // Property Title
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                 // Property Content
00221                 $text_area = new ilTextAreaInputGUI($lng->txt("description"), "description");
00222                 $text_area->setRequired(false);
00223                 $this->form_gui->addItem($text_area);
00224                 
00225                 // Property Visibility
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                 // File
00240                 //if ($a_mode == "edit_local" || $a_mode == "create") 
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                 // Property URL
00248                 //if ($a_mode == "edit_reference" || $a_mode == "create") 
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                 // Duration
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                 // save/cancel button
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                         // create dummy object in db (we need an id)
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                                 // http 
00333                                 $file = $this->form_gui->getInput ("url");
00334                                 $title = basename ($file);
00335                                 $location = $this->form_gui->getInput ("url");
00336                                 $locationType = "Reference";
00337                         } else {
00338                                 // lokal
00339                                 // determine and create mob directory, move uploaded file to directory
00340                                 //$mob_dir = ilUtil::getWebspaceDir()."/mobs/mm_".$this->object->getId();
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                         // determine duration
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                         // get mime type
00375                         $format = ilObjMediaObject::getMimeType($file);
00376 
00377                         // set real meta and object data
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                         // @todo: save usage
00391                         //
00392                         
00393                         $news_set = new ilSetting("news");
00394                         $enable_internal_rss = $news_set->get("enable_rss_for_internal");
00395                         
00396                         // create new media cast item
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                         // create new media cast item
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                         // create dummy object in db (we need an id)
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                         // determine and create mob directory, move uploaded file to directory
00453                         //$mob_dir = ilUtil::getWebspaceDir()."/mobs/mm_".$this->object->getId();
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'] != "") // && strcasecmp ($media_item->getLocationType(), "LocaleFile") == 0)
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                                 // get mime type
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")) // && strcasecmp ($media_item->getLocationType(), "Reference") == 0)
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                         // set real meta and object data
00491                         $mob->update();
00492 
00493                         // determine duration
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                         // @todo: save usage
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                 // set confirm/cancel commands
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                 // add items to delete
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                 // delete all selected news items
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                 $info->enableNews();
00679                 if ($ilAccess->checkAccess("write", "", $_GET["ref_id"]))
00680                 {
00681                         //$info->enableNewsEditing();
00682                         $info->setBlockProperty("news", "settings", true);
00683                 }*/
00684                 
00685                 // general information
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                 // forward the command
00706                 $this->ctrl->forwardCommand($info);
00707         }
00708 
00714         function getTabs(&$tabs_gui)
00715         {
00716                 global $ilCtrl, $ilAccess;
00717                 
00718                 // list items
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                 // info screen
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                 // settings
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                 // edit permissions
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                 // Title
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                 // description
00789                 $des = new ilTextAreaInputGUI($lng->txt("description"), "description");
00790                 $des->setValue($this->object->getLongDescription());
00791                 $this->form_gui->addItem($des);
00792 
00793                 // Online
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                 // if rss is globally activated...
00802                 if ($enable_internal_rss)
00803                 {
00804                 
00805                         // Extra Feed
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                         // Include Files in Pubic Items
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                 // Form action and save button
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         // add media cast to locator
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                 // create dummy object in db (we need an id)
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 ?>

Generated on Fri Dec 13 2013 17:56:52 for ILIAS Release_3_9_x_branch .rev 46835 by  doxygen 1.7.1