ILIAS  Release_4_0_x_branch Revision 61816
 All Data Structures Namespaces Files Functions Variables Groups Pages
ilObjMediaCastGUI Class Reference

Class ilObjMediaCastGUI. More...

+ Inheritance diagram for ilObjMediaCastGUI:
+ Collaboration diagram for ilObjMediaCastGUI:

Public Member Functions

 ilObjMediaCastGUI ($a_data, $a_id, $a_call_by_reference, $a_prepare_output=true)
 Constructor public.
executeCommand ()
 execute command
 saveObject ()
 save object public
 listItemsObject ()
 List items of media cast.
 addCastItemObject ()
 Add media cast item.
 editCastItemObject ()
 Edit media cast item.
 initAddCastItemForm ($a_mode="create")
 Init add cast item form.
 getCastItemValues ()
 Get cast item values into form.
 saveCastItemObject ()
 Save new cast item.
 updateCastItemObject ()
 Update cast item.
 confirmDeletionItemsObject ()
 Confirmation Screen.
 deleteItemsObject ()
 Delete news items.
 downloadItemObject ()
 Delete news items.
 determinePlaytimeObject ()
 Delete news items.
 infoScreenObject ()
 this one is called from the info button in the repository not very nice to set cmdClass/Cmd manually, if everything works through ilCtrl in the future this may be changed
 infoScreen ()
 show information screen
 getTabs (&$tabs_gui)
 get tabs public
 editSettingsObject ()
 Edit settings.
 initSettingsForm ()
 Init Settings Form.
 saveSettingsObject ()
 Save Settings.
 addLocatorItems ()
 should be overwritten to add object specific items (repository items are preloaded)
 _goto ($a_target)
- Public Member Functions inherited from ilObjectGUI
 ilObjectGUI ($a_data, $a_id=0, $a_call_by_reference=true, $a_prepare_output=true)
 Constructor public.
 withReferences ()
 determines wether objects are referenced or not (got ref ids or not)
 setCreationMode ($a_mode=true)
 if true, a creation screen is displayed the current $_GET[ref_id] don't belong to the current class! the mode is determined in ilrepositorygui
 getCreationMode ()
 get creation mode
 getAdminTabs (&$tabs_gui)
 administration tabs show only permissions and trash folder
 getHTML ()
 undeleteObject ()
 Get objects back from trash.
 confirmedDeleteObject ()
 confirmed deletion of object -> objects are moved to trash or deleted immediately, if trash is disabled
 cancelDeleteObject ()
 cancel deletion of object
 removeFromSystemObject ()
 remove objects from trash bin and all entries therefore every object needs a specific deleteObject() method
 createObject ()
 create new object form
 cancelObject ($in_rep=false)
 cancel action and go back to previous page public
 editObject ()
 edit object
 updateObject ()
 updates object entry in object_data
 getFormAction ($a_cmd, $a_formaction="")
 get form action for command (command is method name without "Object", e.g.
 isVisible ($a_ref_id, $a_type)
 viewObject ()
 list childs of current object
 deleteObject ($a_error=false)
 Display deletion confirmation screen.
 trashObject ()
 Show trash content of object.
 getTemplateFile ($a_cmd, $a_type="")
 get a template blockfile format: tpl.
 cloneAllObject ()
 Clone single (not container object) Method is overwritten in ilContainerGUI.
 copyWizardHasOptions ($a_mode)
 Check if there is any modules specific option.

Protected Member Functions

 getMediaItem ($id)
 get MediaItem for id and updates local variable mcst_item
 getMediaItems ($id)
 get MediaItems for id and updates local variable mcst_item
- Protected Member Functions inherited from ilObjectGUI
 assignObject ()
 prepareOutput ()
 prepare output
 setTitleAndDescription ()
 called by prepare output
 showUpperIcon ()
 setTabs ()
 set admin tabs public
 setAdminTabs ()
 set admin tabs public
 setLocator ()
 set Locator
 omitLocator ($a_omit=true)
 addAdminLocatorItems ()
 should be overwritten to add object specific items (repository items are preloaded)
 displayEditForm ($fields)
 display edit form (usually called by editObject)
 afterUpdate ()
 setFormAction ($a_cmd, $a_formaction)
 set specific form action for command
 getReturnLocation ($a_cmd, $a_location="")
 get return location for command (command is method name without "Object", e.g.
 setReturnLocation ($a_cmd, $a_location)
 set specific return location for command
 getTargetFrame ($a_cmd, $a_target_frame="")
 get target frame for command (command is method name without "Object", e.g.
 setTargetFrame ($a_cmd, $a_target_frame)
 set specific target frame for command
 showPossibleSubObjects ()
 show possible subobjects (pulldown menu)
 getTitlesByRefId ($a_ref_ids)
 get Titles of objects this method is used for error messages in methods cut/copy/paste
 __showButton ($a_cmd, $a_text, $a_target= '')
 hitsperpageObject ()
__initTableGUI ()
 __setTableGUIBasicData (&$tbl, &$result_set, $a_from="")
 standard implementation for tables use 'from' variable use different initial setting of table
 __showClipboardTable ($a_result_set, $a_from="")
 redirectToRefId ($a_ref_id, $a_cmd="")
 redirects to (repository) view per ref id usually to a container and usually used at the end of a save/import method where the object gui type (of the new object) doesn't match with the type of the current $_GET["ref_id"] value
 fillCloneTemplate ($a_tpl_varname, $a_type)
 Fill object clone template This method can be called from any object GUI class that wants to offer object cloning.
 fillCloneSearchTemplate ($a_tpl_varname, $a_type)
 Add an object search in case the number of existing objects is too big to offer a selection list.
 searchCloneSourceObject ()
 Search clone source by title.
 buildCloneSelect ($existing_objs)
 Build a select box for clonable objects (permission write)
 getCenterColumnHTML ()
 Get center column.
 getRightColumnHTML ()
 Display right column.
 setColumnSettings ($column_gui)
 May be overwritten in subclasses.
 checkPermission ($a_perm, $a_cmd="")

Static Protected Member Functions

static isAudio ($extension)
 detect audio mimetype

Private Member Functions

 getDuration ($file)
 get duration from form or from file analyzer
 createMediaItemForPurpose ($mob, $purpose)
 handle media item for given purpose
 updateMediaItem ($mob, &$mediaItem)
 update media item from form
 populateFormFromPost ()

Private Attributes

 $additionalPurposes = array ("VideoPortable", "AudioPortable")
 $purposeSuffixes = array ()
 $mimeTypes = array()

Additional Inherited Members

- Data Fields inherited from ilObjectGUI
const COPY_WIZARD_NEEDS_PAGE = 1
 $ilias
 $objDefinition
 $tpl
 $tree
 $lng
 $data
 $object
 $ref_id
 $obj_id
 $maxcount
 $formaction
 $return_location
 $target_frame
 $tab_target_script
 $actions
 $sub_objects
 $omit_locator = false

Detailed Description

Member Function Documentation

ilObjMediaCastGUI::_goto (   $a_target)

Definition at line 1042 of file class.ilObjMediaCastGUI.php.

References $_GET, $ilErr, ilObjectGUI\$lng, ilObject\_lookupObjId(), ilObject\_lookupTitle(), exit, and ilUtil\sendFailure().

{
global $ilAccess, $ilErr, $lng;
if ($ilAccess->checkAccess("read", "", $a_target))
{
$_GET["cmd"] = "listItems";
$_GET["ref_id"] = $a_target;
$_GET["baseClass"] = "ilmediacasthandlergui";
$_GET["cmdClass"] = "ilobjmediacastgui";
include("ilias.php");
}
else if ($ilAccess->checkAccess("visible", "", $a_target))
{
$_GET["cmd"] = "infoScreen";
$_GET["ref_id"] = $a_target;
include("repository.php");
}
else if ($ilAccess->checkAccess("read", "", ROOT_FOLDER_ID))
{
$_GET["cmd"] = "frameset";
$_GET["target"] = "";
$_GET["ref_id"] = ROOT_FOLDER_ID;
ilUtil::sendFailure(sprintf($lng->txt("msg_no_perm_read_item"),
include("repository.php");
}
$ilErr->raiseError($lng->txt("msg_no_perm_read"), $ilErr->FATAL);
}

+ Here is the call graph for this function:

ilObjMediaCastGUI::addCastItemObject ( )

Add media cast item.

Definition at line 209 of file class.ilObjMediaCastGUI.php.

References ilObjectGUI\$tpl, ilObjectGUI\checkPermission(), and initAddCastItemForm().

{
global $tpl;
$this->checkPermission("write");
$tpl->setContent($this->form_gui->getHTML());
}

+ Here is the call graph for this function:

ilObjMediaCastGUI::addLocatorItems ( )

should be overwritten to add object specific items (repository items are preloaded)

Reimplemented from ilObjectGUI.

Definition at line 1032 of file class.ilObjMediaCastGUI.php.

References $_GET.

{
global $ilLocator;
if (is_object($this->object))
{
$ilLocator->addItem($this->object->getTitle(), $this->ctrl->getLinkTarget($this, "listItems"), "", $_GET["ref_id"]);
}
}
ilObjMediaCastGUI::confirmDeletionItemsObject ( )

Confirmation Screen.

Definition at line 676 of file class.ilObjMediaCastGUI.php.

References $_POST, $ilCtrl, ilObjectGUI\$lng, ilObjectGUI\$tpl, ilObjectGUI\checkPermission(), ilUtil\getImagePath(), and listItemsObject().

{
global $ilCtrl, $lng, $tpl;
$this->checkPermission("write");
if (!is_array($_POST["item_id"]))
{
$this->listItemsObject();
return;
}
include_once("Services/Utilities/classes/class.ilConfirmationGUI.php");
$c_gui = new ilConfirmationGUI();
// set confirm/cancel commands
$c_gui->setFormAction($ilCtrl->getFormAction($this, "deleteItems"));
$c_gui->setHeaderText($lng->txt("info_delete_sure"));
$c_gui->setCancel($lng->txt("cancel"), "listItems");
$c_gui->setConfirm($lng->txt("confirm"), "deleteItems");
// add items to delete
include_once("./Services/News/classes/class.ilNewsItem.php");
foreach($_POST["item_id"] as $item_id)
{
$item = new ilNewsItem($item_id);
$c_gui->addItem("item_id[]", $item_id, $item->getTitle(),
ilUtil::getImagePath("icon_mcst.gif"));
}
$tpl->setContent($c_gui->getHTML());
}

+ Here is the call graph for this function:

ilObjMediaCastGUI::createMediaItemForPurpose (   $mob,
  $purpose 
)
private

handle media item for given purpose

Parameters
ilMediaObject$mob
stringfile

Definition at line 496 of file class.ilObjMediaCastGUI.php.

References updateMediaItem().

Referenced by saveCastItemObject(), and updateCastItemObject().

{
$mediaItem = new ilMediaItem();
$mob->addMediaItem($mediaItem);
$mediaItem->setPurpose($purpose);
return $this->updateMediaItem($mob, $mediaItem);
}

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

ilObjMediaCastGUI::deleteItemsObject ( )

Delete news items.

Definition at line 712 of file class.ilObjMediaCastGUI.php.

References $_POST, $ilCtrl, and ilObjectGUI\checkPermission().

{
global $ilCtrl;
$this->checkPermission("write");
// delete all selected news items
foreach($_POST["item_id"] as $item_id)
{
$mc_item = new ilNewsItem($item_id);
$mc_item->delete();
}
$ilCtrl->redirect($this, "listItems");
}

+ Here is the call graph for this function:

ilObjMediaCastGUI::determinePlaytimeObject ( )

Delete news items.

Definition at line 765 of file class.ilObjMediaCastGUI.php.

References $_GET, $file, $ilCtrl, ilObjectGUI\$lng, ilObjMediaObject\_getDirectory(), getDuration(), ilUtil\sendFailure(), and ilUtil\sendSuccess().

{
global $ilCtrl, $lng;
$mc_item = new ilNewsItem($_GET["item_id"]);
$mob = $mc_item->getMobId();
include_once("./Services/MediaObjects/classes/class.ilObjMediaObject.php");
$mob = new ilObjMediaObject($mob);
$mob_dir = ilObjMediaObject::_getDirectory($mob->getId());
$m_item = $mob->getMediaItem("Standard");
$file = $mob_dir."/".$m_item->getLocation();
$duration = $this->getDuration($file);
if ($duration != "00:00:00")
{
$mc_item->setPlaytime($duration);
$mc_item->update();
ilUtil::sendSuccess($lng->txt("mcst_set_playtime"), true);
}
else
{
ilUtil::sendFailure($lng->txt("mcst_unable_to_determin_playtime"), true);
}
$ilCtrl->redirect($this, "listItems");
}

+ Here is the call graph for this function:

ilObjMediaCastGUI::downloadItemObject ( )

Delete news items.

Definition at line 731 of file class.ilObjMediaCastGUI.php.

References $_GET, $file, $ilCtrl, ilObjMediaObject\_getDirectory(), ilObjectGUI\checkPermission(), ilUtil\deliverFile(), exit, ilUtil\redirect(), and ilUtil\sendFailure().

{
global $ilCtrl;
$this->checkPermission("read");
$mc_item = new ilNewsItem($_GET["item_id"]);
$mob = $mc_item->getMobId();
include_once("./Services/MediaObjects/classes/class.ilObjMediaObject.php");
$mob = new ilObjMediaObject($mob);
$mob_dir = ilObjMediaObject::_getDirectory($mob->getId());
$purpose = $_GET["purpose"];
$m_item = $mob->getMediaItem($purpose);
if ($m_item->getLocationType() != "Reference")
{
$file = $mob_dir."/".$m_item->getLocation();
if (file_exists($file) && is_file($file))
{
ilUtil::deliverFile($file, $m_item->getLocation());
}
else {
ilUtil::sendFailure("File not found!",true);
$ilCtrl->redirect($this, "listItems");
}
}
else
{
ilUtil::redirect($m_item->getLocation());
}
}

+ Here is the call graph for this function:

ilObjMediaCastGUI::editCastItemObject ( )

Edit media cast item.

Definition at line 222 of file class.ilObjMediaCastGUI.php.

References ilObjectGUI\$tpl, ilObjectGUI\checkPermission(), getCastItemValues(), and initAddCastItemForm().

{
global $tpl;
$this->checkPermission("write");
$this->initAddCastItemForm("edit");
$tpl->setContent($this->form_gui->getHTML());
}

+ Here is the call graph for this function:

ilObjMediaCastGUI::editSettingsObject ( )

Edit settings.

Definition at line 903 of file class.ilObjMediaCastGUI.php.

References ilObjectGUI\$tpl, ilObjectGUI\checkPermission(), and initSettingsForm().

{
global $tpl;
$this->checkPermission("write");
$this->initSettingsForm();
$tpl->setContent($this->form_gui->getHtml());
}

+ Here is the call graph for this function:

& ilObjMediaCastGUI::executeCommand ( )

execute command

Reimplemented from ilObjectGUI.

Definition at line 44 of file class.ilObjMediaCastGUI.php.

References $cmd, $ret, ilObjectGUI\checkPermission(), infoScreen(), and ilObjectGUI\prepareOutput().

{
global $ilUser;
$next_class = $this->ctrl->getNextClass($this);
$cmd = $this->ctrl->getCmd();
$this->prepareOutput();
switch($next_class)
{
case "ilinfoscreengui":
$this->checkPermission("visible");
$this->infoScreen(); // forwards command
break;
case 'ilpermissiongui':
include_once("Services/AccessControl/classes/class.ilPermissionGUI.php");
$perm_gui =& new ilPermissionGUI($this);
$ret =& $this->ctrl->forwardCommand($perm_gui);
break;
default:
if(!$cmd)
{
$cmd = "infoScreen";
}
$cmd .= "Object";
if ($cmd != "infoScreenObject")
{
$this->checkPermission("read");
}
else
{
$this->checkPermission("visible");
}
$this->$cmd();
break;
}
return true;
}

+ Here is the call graph for this function:

ilObjMediaCastGUI::getCastItemValues ( )

Get cast item values into form.

Definition at line 341 of file class.ilObjMediaCastGUI.php.

References $_GET, ilObjectGUI\$lng, ilObjMediaCast\$purposes, and getMediaItems().

Referenced by editCastItemObject().

{
global $lng;
$values = array();
$mediaItems = $this->getMediaItems($_GET["item_id"]);
if (count ($mediaItems) > 0)
{
foreach ($mediaItems as $med)
{
if (!isset ($values["title"]))
{
// first item, so set title, description, ...
$values["title"] = $this->mcst_item->getTitle();
$values["description"] = $this->mcst_item->getContent();
$values["visibility"] = $this->mcst_item->getVisibility();
$length = explode(":", $this->mcst_item->getPlaytime());
$values["duration"] = array("hh" => $length[0], "mm" => $length[1], "ss" => $length[2]);
}
$values["value_".$med->getPurpose()] = (strlen($med->getLocation())> 100) ? "...".substr($med->getLocation(), strlen($med->getLocation()) - 100) : $med->getLocation();
$values["label_value_".$med->getPurpose()] = (strlen($med->getLocation())> 100) ? "...".substr($med->getLocation(), strlen($med->getLocation()) - 100) : $med->getLocation();
$mimeTypesValuesAsKey = array_flip($this->mimeTypes);
if (array_key_exists($med->getFormat(), $mimeTypesValuesAsKey))
$values["mimetype_".$med->getPurpose()] = $mimeTypesValuesAsKey[$med->getFormat()]+1;
}
}
foreach (ilObjMediaCast::$purposes as $purpose) {
if (!isset ($values["value_".$purpose]))
{
$values["label_value_".$purpose] = $lng->txt("none");
$values["value_".$purpose] = $lng->txt("none");
}
}
$this->form_gui->setValuesByArray($values);
}

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

ilObjMediaCastGUI::getDuration (   $file)
private

get duration from form or from file analyzer

Parameters
unknown_type$file
Returns
unknown

Definition at line 470 of file class.ilObjMediaCastGUI.php.

References $file.

Referenced by determinePlaytimeObject(), saveCastItemObject(), and updateCastItemObject().

{
$duration = isset($this->form_gui) ? $this->form_gui->getInput("duration") : "";
if ($duration["hh"] == 0 && $duration["mm"] == 0 && $duration["ss"] == 0 && is_file($file))
{
include_once("./Services/MediaObjects/classes/class.ilMediaAnalyzer.php");
$ana = new ilMediaAnalyzer();
$ana->setFile($file);
$ana->analyzeFile();
$dur = $ana->getPlaytimeString();
$dur = explode(":", $dur);
$duration["mm"] = $dur[0];
$duration["ss"] = $dur[1];
}
$duration = str_pad($duration["hh"], 2 , "0", STR_PAD_LEFT).":".
str_pad($duration["mm"], 2 , "0", STR_PAD_LEFT).":".
str_pad($duration["ss"], 2 , "0", STR_PAD_LEFT);
return $duration;
}

+ Here is the caller graph for this function:

ilObjMediaCastGUI::getMediaItem (   $id)
protected

get MediaItem for id and updates local variable mcst_item

Returns
ilMediaItem

Definition at line 1093 of file class.ilObjMediaCastGUI.php.

References ilObjMediaObject\getMediaItem().

{
include_once("./Services/News/classes/class.ilNewsItem.php");
$this->mcst_item = new ilNewsItem($id);
// create dummy object in db (we need an id)
include_once("./Services/MediaObjects/classes/class.ilObjMediaObjectGUI.php");
$mob = new ilObjMediaObject($this->mcst_item->getMobId());
return $mob->getMediaItem("Standard");
}

+ Here is the call graph for this function:

ilObjMediaCastGUI::getMediaItems (   $id)
protected

get MediaItems for id and updates local variable mcst_item

Returns
array of ilMediaItem

Definition at line 1108 of file class.ilObjMediaCastGUI.php.

References ilObjMediaObject\getMediaItems().

Referenced by getCastItemValues().

{
include_once("./Services/News/classes/class.ilNewsItem.php");
$this->mcst_item = new ilNewsItem($id);
// create dummy object in db (we need an id)
include_once("./Services/MediaObjects/classes/class.ilObjMediaObjectGUI.php");
$mob = new ilObjMediaObject($this->mcst_item->getMobId());
return $mob->getMediaItems();
}

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

ilObjMediaCastGUI::getTabs ( $tabs_gui)

get tabs public

Parameters
objecttabs gui object

Reimplemented from ilObjectGUI.

Definition at line 858 of file class.ilObjMediaCastGUI.php.

References $_GET, and $ilCtrl.

{
global $ilCtrl, $ilAccess;
// list items
if ($ilAccess->checkAccess('read', "", $this->object->getRefId()))
{
$tabs_gui->addTarget("view_content",
$this->ctrl->getLinkTarget($this, "listItems"), array("", "listItems"),
array(strtolower(get_class($this)), ""));
}
// info screen
if ($ilAccess->checkAccess('visible', "", $this->object->getRefId()))
{
$force_active = ($ilCtrl->getNextClass() == "ilinfoscreengui"
|| $_GET["cmd"] == "infoScreen")
? true
: false;
$tabs_gui->addTarget("info_short",
$this->ctrl->getLinkTargetByClass(
"ilinfoscreengui", "showSummary"),
"showSummary",
"", "", $force_active);
}
// settings
if ($ilAccess->checkAccess('write', "", $this->object->getRefId()))
{
$tabs_gui->addTarget("settings",
$this->ctrl->getLinkTarget($this, "editSettings"), array("editSettings"),
array(strtolower(get_class($this)), ""));
}
// edit permissions
if ($ilAccess->checkAccess('edit_permission', "", $this->object->getRefId()))
{
$tabs_gui->addTarget("perm_settings",
$this->ctrl->getLinkTargetByClass("ilpermissiongui", "perm"), array("perm","info","owner"), 'ilpermissiongui');
}
}
ilObjMediaCastGUI::ilObjMediaCastGUI (   $a_data,
  $a_id,
  $a_call_by_reference,
  $a_prepare_output = true 
)

Constructor public.

Definition at line 27 of file class.ilObjMediaCastGUI.php.

References $ilCtrl, ilObjectGUI\$lng, ilMediaCastSettings\_getInstance(), and ilObjectGUI\ilObjectGUI().

{
global $ilCtrl, $lng;
$this->type = "mcst";
$this->ilObjectGUI($a_data,$a_id,$a_call_by_reference,$a_prepare_output);
$lng->loadLanguageModule("mcst");
$lng->loadLanguageModule("news");
$ilCtrl->saveParameter($this, "item_id");
include_once ("./Modules/MediaCast/classes/class.ilMediaCastSettings.php");
$this->purposeSuffixes = $settings->getPurposeSuffixes();
$this->mimeTypes = $settings->getMimeTypes();
}

+ Here is the call graph for this function:

ilObjMediaCastGUI::infoScreen ( )

show information screen

Definition at line 807 of file class.ilObjMediaCastGUI.php.

References ilDatePresentation\formatDate(), and IL_CAL_DATETIME.

Referenced by executeCommand(), and infoScreenObject().

{
global $ilAccess, $ilUser;
if (!$ilAccess->checkAccess("visible", "", $this->object->getRefId()))
{
$this->ilias->raiseError($this->lng->txt("msg_no_perm_read"),$this->ilias->error_obj->MESSAGE);
}
include_once("./Services/InfoScreen/classes/class.ilInfoScreenGUI.php");
$info = new ilInfoScreenGUI($this);
$info->enablePrivateNotes();
/*
$info->enableNews();
if ($ilAccess->checkAccess("write", "", $_GET["ref_id"]))
{
//$info->enableNewsEditing();
$info->setBlockProperty("news", "settings", true);
}*/
// general information
$this->lng->loadLanguageModule("meta");
$this->lng->loadLanguageModule("mcst");
$med_items = $this->object->getItemsArray();
$info->addSection($this->lng->txt("meta_general"));
$info->addProperty($this->lng->txt("mcst_nr_items"),
(int) count($med_items));
if (count($med_items) > 0)
{
$cur = current($med_items);
$last = ilDatePresentation::formatDate(new ilDateTime($cur["creation_date"], IL_CAL_DATETIME));
}
else
{
$last = "-";
}
$info->addProperty($this->lng->txt("mcst_last_submission"), $last);
// forward the command
$this->ctrl->forwardCommand($info);
}

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

ilObjMediaCastGUI::infoScreenObject ( )

this one is called from the info button in the repository not very nice to set cmdClass/Cmd manually, if everything works through ilCtrl in the future this may be changed

Definition at line 796 of file class.ilObjMediaCastGUI.php.

References ilObjectGUI\checkPermission(), and infoScreen().

{
$this->checkPermission("visible");
$this->ctrl->setCmd("showSummary");
$this->ctrl->setCmdClass("ilinfoscreengui");
$this->infoScreen();
}

+ Here is the call graph for this function:

ilObjMediaCastGUI::initAddCastItemForm (   $a_mode = "create")

Init add cast item form.

Definition at line 234 of file class.ilObjMediaCastGUI.php.

References $file, $ilCtrl, ilObjectGUI\$lng, ilObjMediaCast\$purposes, $section, ilObjectGUI\checkPermission(), ilRadioOption\setInfo(), ilFormPropertyGUI\setInfo(), ilTextInputGUI\setMaxLength(), ilRegExpInputGUI\setPattern(), ilFormPropertyGUI\setPostVar(), and ilFormPropertyGUI\setRequired().

Referenced by addCastItemObject(), editCastItemObject(), saveCastItemObject(), and updateCastItemObject().

{
global $lng, $ilCtrl;
$this->checkPermission("write");
$lng->loadLanguageModule("mcst");
$news_set = new ilSetting("news");
$enable_internal_rss = $news_set->get("enable_rss_for_internal");
include("Services/Form/classes/class.ilPropertyFormGUI.php");
$this->form_gui = new ilPropertyFormGUI();
$this->form_gui->setMultipart(true);
// Property Title
$text_input = new ilTextInputGUI($lng->txt("title"), "title");
$text_input->setMaxLength(200);
$this->form_gui->addItem($text_input);
// Property Content
$text_area = new ilTextAreaInputGUI($lng->txt("description"), "description");
$text_area->setRequired(false);
$this->form_gui->addItem($text_area);
// Property Visibility
if ($enable_internal_rss)
{
$radio_group = new ilRadioGroupInputGUI($lng->txt("access_scope"), "visibility");
$radio_option = new ilRadioOption($lng->txt("access_users"), "users");
$radio_group->addOption($radio_option);
$radio_option = new ilRadioOption($lng->txt("access_public"), "public");
$radio_group->addOption($radio_option);
$radio_group->setInfo($lng->txt("mcst_visibility_info"));
$radio_group->setRequired(true);
$radio_group->setValue($this->object->getDefaultAccess() == 0 ? "users" : "public");
$this->form_gui->addItem($radio_group);
}
// Duration
$dur = new ilDurationInputGUI($lng->txt("mcst_duration"), "duration");
$dur->setInfo($lng->txt("mcst_duration_info"));
$dur->setShowDays(false);
$dur->setShowHours(true);
$dur->setShowSeconds(true);
$this->form_gui->addItem($dur);
foreach (ilObjMediaCast::$purposes as $purpose)
{
$section->setTitle($lng->txt("mcst_".strtolower($purpose)."_title"));
$this->form_gui->addItem($section);
if ($a_mode != "create")
{
$value = new ilHiddenInputGUI("value_".$purpose);
$label = new ilNonEditableValueGUI($lng->txt("value"));
$label->setPostVar("label_value_".$purpose);
$label->setInfo($lng->txt("mcst_current_value_info"));
$this->form_gui->addItem($label);
$this->form_gui->addItem($value);
}
$file = new ilFileInputGUI($lng->txt("file"), "file_".$purpose);
$file->setSuffixes($this->purposeSuffixes[$purpose]);
$this->form_gui->addItem($file);
$text_input = new ilRegExpInputGUI($lng->txt("url"), "url_".$purpose);
$text_input->setPattern("/https?\:\/\/.+/i");
$text_input->setInfo($lng->txt("mcst_reference_info"));
$this->form_gui->addItem($text_input);
if ($purpose != "Standard")
{
$clearCheckBox = new ilCheckboxInputGUI();
$clearCheckBox->setPostVar("delete_".$purpose);
$clearCheckBox->setTitle($lng->txt("mcst_clear_purpose_title"));
$this->form_gui->addItem($clearCheckBox);
} else {
$mimeTypeSelection = new ilSelectInputGUI();
$mimeTypeSelection->setPostVar("mimetype_".$purpose);
$mimeTypeSelection->setTitle($lng->txt("mcst_mimetype"));
$mimeTypeSelection->setInfo($lng->txt("mcst_mimetype_info"));
$options = array($lng->txt("mcst_automatic_detection"));
$options = array_merge($options, $this->mimeTypes);
$mimeTypeSelection->setOptions($options);
$this->form_gui->addItem($mimeTypeSelection);
}
}
// save/cancel button
if ($a_mode == "create")
{
$this->form_gui->setTitle($lng->txt("mcst_add_new_item"));
$this->form_gui->addCommandButton("saveCastItem", $lng->txt("save"));
}
else
{
$this->form_gui->setTitle($lng->txt("mcst_edit_item"));
$this->form_gui->addCommandButton("updateCastItem", $lng->txt("save"));
}
$this->form_gui->addCommandButton("listItems", $lng->txt("cancel"));
$this->form_gui->setFormAction($ilCtrl->getFormAction($this, "saveCastItem"));
}

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

ilObjMediaCastGUI::initSettingsForm ( )

Init Settings Form.

Definition at line 916 of file class.ilObjMediaCastGUI.php.

References $ilCtrl, ilObjectGUI\$lng, ilObjectGUI\$tpl, ilBlockSetting\_lookup(), ilCheckboxInputGUI\setChecked(), ilRadioOption\setInfo(), ilFormPropertyGUI\setInfo(), ilTextInputGUI\setValue(), and ilTextAreaInputGUI\setValue().

Referenced by editSettingsObject(), and saveSettingsObject().

{
global $tpl, $lng, $ilCtrl;
$lng->loadLanguageModule("mcst");
include("Services/Form/classes/class.ilPropertyFormGUI.php");
$this->form_gui = new ilPropertyFormGUI();
$this->form_gui->setTitle($lng->txt("mcst_settings"));
// Title
$tit = new ilTextInputGUI($lng->txt("title"), "title");
$tit->setValue($this->object->getTitle());
$tit->setRequired(true);
$this->form_gui->addItem($tit);
// description
$des = new ilTextAreaInputGUI($lng->txt("description"), "description");
$des->setValue($this->object->getLongDescription());
$this->form_gui->addItem($des);
// Online
$online = new ilCheckboxInputGUI($lng->txt("online"), "online");
$online->setChecked($this->object->getOnline());
$this->form_gui->addItem($online);
// Downloadable
$downloadable = new ilCheckboxInputGUI($lng->txt("mcst_downloadable"), "downloadable");
$downloadable->setChecked($this->object->getDownloadable());
$downloadable->setInfo($lng->txt("mcst_downloadable_info"));
$this->form_gui->addItem($downloadable);
$news_set = new ilSetting("news");
$enable_internal_rss = $news_set->get("enable_rss_for_internal");
//Default Visibility
if ($enable_internal_rss)
{
$radio_group = new ilRadioGroupInputGUI($lng->txt("news_default_visibility"), "defaultaccess");
$radio_option = new ilRadioOption($lng->txt("news_visibility_users"), "0");
$radio_group->addOption($radio_option);
$radio_option = new ilRadioOption($lng->txt("news_visibility_public"), "1");
$radio_group->addOption($radio_option);
$radio_group->setInfo($lng->txt("news_news_item_visibility_info"));
$radio_group->setRequired(false);
$radio_group->setValue($this->object->getDefaultAccess());
#$ch->addSubItem($radio_group);
$this->form_gui->addItem($radio_group);
//Extra Feed
include_once("./Services/Block/classes/class.ilBlockSetting.php");
$public_feed = ilBlockSetting::_lookup("news", "public_feed", 0, $this->object->getId());
$ch = new ilCheckboxInputGUI($lng->txt("news_public_feed"), "extra_feed");
$ch->setInfo($lng->txt("news_public_feed_info"));
$ch->setChecked($public_feed);
$this->form_gui->addItem($ch);
// Include Files in Pubic Items
$incl_files = new ilCheckboxInputGUI($lng->txt("mcst_incl_files_in_rss"), "public_files");
$incl_files->setChecked($this->object->getPublicFiles());
$incl_files->setInfo($lng->txt("mcst_incl_files_in_rss_info"));
#$ch->addSubItem($incl_files);
$this->form_gui->addItem($incl_files);
}
// Form action and save button
$this->form_gui->addCommandButton("saveSettings", $lng->txt("save"));
$this->form_gui->setFormAction($ilCtrl->getFormAction($this, "saveSettings"));
}

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static ilObjMediaCastGUI::isAudio (   $extension)
staticprotected

detect audio mimetype

Parameters
string$extension
Returns
true, if extension contains string "audio"

Definition at line 1083 of file class.ilObjMediaCastGUI.php.

{
return strpos($extension,"audio") !== false;
}
ilObjMediaCastGUI::listItemsObject ( )

List items of media cast.

Definition at line 116 of file class.ilObjMediaCastGUI.php.

References $_GET, ilObjectGUI\$lng, ilObjMediaCast\$purposes, $title, ilObjectGUI\$tpl, ilBlockSetting\_lookup(), ilObjectGUI\checkPermission(), and ilUtil\getImagePath().

Referenced by confirmDeletionItemsObject().

{
global $tpl, $lng, $ilAccess;
$this->checkPermission("read");
$med_items = $this->object->getItemsArray();
include_once("./Modules/MediaCast/classes/class.ilMediaCastTableGUI.php");
$table_gui = new ilMediaCastTableGUI($this, "listItems");
$table_gui->setTitle($lng->txt("mcst_media_cast"));
$table_gui->setData($med_items);
if ($ilAccess->checkAccess("write", "", $_GET["ref_id"]))
{
$table_gui->addCommandButton("addCastItem", $lng->txt("add"));
$table_gui->addMultiCommand("confirmDeletionItems", $lng->txt("delete"));
$table_gui->setSelectAllCheckbox("item_id");
}
include_once("./Services/Block/classes/class.ilBlockSetting.php");
$public_feed = ilBlockSetting::_lookup("news", "public_feed",
0, $this->object->getId());
// rss icon/link
if ($public_feed)
{
$news_set = new ilSetting("news");
$enable_internal_rss = $news_set->get("enable_rss_for_internal");
if ($enable_internal_rss)
{
// create dummy object in db (we need an id)
$items = $this->object->getItemsArray();
include_once("./Services/MediaObjects/classes/class.ilObjMediaObjectGUI.php");
$html = "";
foreach (ilObjMediaCast::$purposes as $purpose)
{
foreach ($items as $id => $item)
{
$mob = new ilObjMediaObject($item["mob_id"]);
$mob->read();
if ($mob->hasPurposeItem($purpose))
{
if ($html == "") {
//$html = "<TABLE cellpadding='1' cellspacing='0'><TR>";
$html = " ";
}
$url = ILIAS_HTTP_PATH."/feed.php?client_id=".rawurlencode(CLIENT_ID)."&"."ref_id=".$_GET["ref_id"]."&purpose=$purpose";
$title = $lng->txt("news_feed_url");
$icon = ilUtil::getImagePath("rss_icon_".strtolower($purpose).".gif");
$target = "_blank";
//$row1 .= "<TD><A href='$url' target='$target'><img src='$icon' alt='$title'/></A></TD>";
$row1 .= "<A href='$url' target='$target'><img src='$icon' alt='$title'/></A>";
if ($this->object->getPublicFiles())
{
$url = preg_replace("/https?/i","itpc",$url);
$title = $lng->txt("news_feed_url");
$icon = ilUtil::getImagePath("itunes_icon.gif");
//$row2 .= "<TD><A href='$url' target='$target'><img src='$icon' alt='$title'/></A></TD>";
$row2 .= "<A href='$url' target='$target'><img src='$icon' alt='$title'/></A>";
}
break;
}
}
}
if ($html != "") {
//$html .= $row1."</TR>";
$html .= $row1;
if ($row2 != "")
{
$html .= "&nbsp;&nbsp;".$row2;
//$html .= "<TR>".$row2."</TR>";
}
//$html .= "</TABLE>";
$table_gui->setHeaderHTML($html);
}
}
}
$tpl->setContent($table_gui->getHTML());
$tpl->setPermanentLink($this->object->getType(), $this->object->getRefId());
}

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

ilObjMediaCastGUI::populateFormFromPost ( )
private

Definition at line 1117 of file class.ilObjMediaCastGUI.php.

References $_POST, ilObjMediaCast\$purposes, and ilObjectGUI\$tpl.

Referenced by saveCastItemObject(), and updateCastItemObject().

{
global $tpl;
//issue: we have to display the current settings
// problem: POST does not contain values of disabled textfields
// solution: use hidden field and label to display-> here we need to synchronize the labels
// with the values from the hidden fields.
foreach (ilObjMediaCast::$purposes as $purpose)
{
if ($_POST["value_".$purpose])
{
$_POST["label_value_".$purpose] = $_POST["value_".$purpose];
}
}
$this->form_gui->setValuesByPost();
$tpl->setContent($this->form_gui->getHTML());
}

+ Here is the caller graph for this function:

ilObjMediaCastGUI::saveCastItemObject ( )

Save new cast item.

Definition at line 380 of file class.ilObjMediaCastGUI.php.

References $_POST, $file, $ilCtrl, ilObjectGUI\$lng, $title, ilObjectGUI\$tpl, ilObjectGUI\checkPermission(), createMediaItemForPurpose(), getDuration(), initAddCastItemForm(), NEWS_AUDIO, populateFormFromPost(), and ilUtil\sendFailure().

{
global $tpl, $ilCtrl, $ilUser, $lng;
$this->checkPermission("write");
if ($_POST["url_Standard"] == "" && !$_FILES['file_Standard']['tmp_name']) {
ilUtil::sendFailure($lng->txt("msg_input_either_file_or_url"));
} else if ($this->form_gui->checkInput())
{
// create dummy object in db (we need an id)
include_once("./Services/MediaObjects/classes/class.ilObjMediaObjectGUI.php");
$mob = new ilObjMediaObject();
$mob->create();
//handle standard purpose
$file = $this->createMediaItemForPurpose($mob, "Standard");
// set title and description
// set title to basename of file if left empty
$title = $this->form_gui->getInput("title") != "" ? $this->form_gui->getInput("title") : basename($file);
$description = $this->form_gui->getInput("description");
$mob->setTitle($title);
$mob->setDescription($description);
// determine duration for standard purpose
$duration = $this->getDuration($file);
// handle other purposes
foreach ($this->additionalPurposes as $purpose)
{
// check if some purpose has been uploaded
$file_gui = $this->form_gui->getInput("file_".$purpose);
$url_gui = $this->form_gui->getInput("url_".$purpose);
if ($url_gui || $file_gui["size"] > 0)
{
$this->createMediaItemForPurpose ($mob, $purpose);
}
}
$mob->update();
//
// @todo: save usage
//
$news_set = new ilSetting("news");
$enable_internal_rss = $news_set->get("enable_rss_for_internal");
// create new media cast item
include_once("./Services/News/classes/class.ilNewsItem.php");
$mc_item = new ilNewsItem();
$mc_item->setMobId($mob->getId());
$mc_item->setContentType(NEWS_AUDIO);
$mc_item->setContextObjId($this->object->getId());
$mc_item->setContextObjType($this->object->getType());
$mc_item->setUserId($ilUser->getId());
$mc_item->setPlaytime($duration);
$mc_item->setTitle($title);
$mc_item->setContent($description);
$mc_item->setLimitation(false);
if ($enable_internal_rss)
{
$mc_item->setVisibility($this->form_gui->getInput("visibility"));
}
else
{
$mc_item->setVisibility("users");
}
$mc_item->create();
$ilCtrl->redirect($this, "listItems");
}
else
{
}
}

+ Here is the call graph for this function:

ilObjMediaCastGUI::saveObject ( )

save object public

Reimplemented from ilObjectGUI.

Definition at line 91 of file class.ilObjMediaCastGUI.php.

References ilUtil\redirect(), and ilUtil\sendSuccess().

{
global $rbacadmin;
// create and insert forum in objecttree
$newObj = parent::saveObject();
// setup rolefolder & default local roles
//$roles = $newObj->initDefaultRoles();
// ...finally assign role to creator of object
//$rbacadmin->assignUser($roles[0], $newObj->getOwner(), "y");
// put here object specific stuff
// always send a message
ilUtil::sendSuccess($this->lng->txt("object_added"),true);
ilUtil::redirect("ilias.php?baseClass=ilMediaCastHandlerGUI&ref_id=".$newObj->getRefId()."&cmd=editSettings");
}

+ Here is the call graph for this function:

ilObjMediaCastGUI::saveSettingsObject ( )

Save Settings.

Definition at line 989 of file class.ilObjMediaCastGUI.php.

References $ilCtrl, ilBlockSetting\_write(), ilObjectGUI\checkPermission(), initSettingsForm(), and ilUtil\sendSuccess().

{
global $ilCtrl;
$this->checkPermission("write");
$this->initSettingsForm();
if ($this->form_gui->checkInput())
{
$news_set = new ilSetting("news");
$enable_internal_rss = $news_set->get("enable_rss_for_internal");
$this->object->setTitle($this->form_gui->getInput("title"));
$this->object->setDescription($this->form_gui->getInput("description"));
$this->object->setOnline($this->form_gui->getInput("online"));
$this->object->setDownloadable($this->form_gui->getInput("downloadable"));
if ($enable_internal_rss)
{
$this->object->setPublicFiles($this->form_gui->getInput("public_files"));
$this->object->setDefaultAccess($this->form_gui->getInput("defaultaccess"));
}
$this->object->update();
if ($enable_internal_rss)
{
include_once("./Services/Block/classes/class.ilBlockSetting.php");
ilBlockSetting::_write("news", "public_feed",
$this->form_gui->getInput("extra_feed"),
0, $this->object->getId());
}
ilUtil::sendSuccess($this->lng->txt("msg_obj_modified"),true);
$ilCtrl->redirect($this, "editSettings");
}
else
{
$this->form_gui->setValuesByPost();
$this->tpl->setContent($this->form_gui->getHTML());
}
}

+ Here is the call graph for this function:

ilObjMediaCastGUI::updateCastItemObject ( )

Update cast item.

Definition at line 584 of file class.ilObjMediaCastGUI.php.

References $_GET, $file, $ilCtrl, ilObjectGUI\$lng, $log, ilObjMediaCast\$purposes, $title, ilObjectGUI\$tpl, ilObjectGUI\checkPermission(), createMediaItemForPurpose(), getDuration(), initAddCastItemForm(), populateFormFromPost(), and updateMediaItem().

{
global $tpl, $lng, $ilCtrl, $ilUser, $log;
$this->checkPermission("write");
$this->initAddCastItemForm("edit");
if ($this->form_gui->checkInput())
{
// create new media cast item
include_once("./Services/News/classes/class.ilNewsItem.php");
$mc_item = new ilNewsItem($_GET["item_id"]);
$mob_id = $mc_item->getMobId();
// create dummy object in db (we need an id)
include_once("./Services/MediaObjects/classes/class.ilObjMediaObjectGUI.php");
$mob = new ilObjMediaObject($mob_id);
foreach (ilObjMediaCast::$purposes as $purpose)
{
if ($this->form_gui->getInput("delete_".$purpose))
{
$mob->removeMediaItem($purpose);
$log->write ("Mcst: deleting purpose $purpose");
continue;
}
$media_item = $mob->getMediaItem($purpose);
$url_gui = $this->form_gui->getInput("url_".$purpose);
$file_gui = $this->form_gui->getInput("file_".$purpose);
if ($media_item == null)
{
if ($purpose != "Standard" &&
($url_gui || $file_gui["size"]>0))
{
// check if we added an additional purpose when updating
// either by url or by file
$file = $this->createMediaItemForPurpose($mob, $purpose);
}
} else
{
$file = $this->updateMediaItem($mob, $media_item);
}
if ($purpose == "Standard")
{
$duration = $this->getDuration($file);
$title = $this->form_gui->getInput("title") != "" ? $this->form_gui->getInput("title") : basename($file);
$description = $this->form_gui->getInput("description");
$mob->setTitle($title);
$mob->setDescription($description);
}
}
// set real meta and object data
$mob->update();
//
// @todo: save usage
//
$news_set = new ilSetting("news");
$enable_internal_rss = $news_set->get("enable_rss_for_internal");
$mc_item->setUserId($ilUser->getId());
if (isset($duration))
{
$mc_item->setPlaytime($duration);
}
$mc_item->setTitle($title);
$mc_item->setContent($description);
if ($enable_internal_rss)
{
$mc_item->setVisibility($this->form_gui->getInput("visibility"));
}
$mc_item->update();
$ilCtrl->redirect($this, "listItems");
}
else
{
}
}

+ Here is the call graph for this function:

ilObjMediaCastGUI::updateMediaItem (   $mob,
$mediaItem 
)
private

update media item from form

Parameters
IlObjectMediaObject$mob
IlMediaItem$mediaItem
Returns
string file

Definition at line 511 of file class.ilObjMediaCastGUI.php.

References $_POST, $file, $file_name, $location, $title, ilObjMediaObject\_getDirectory(), elseif(), ilUtil\getASCIIFilename(), ilObjMediaObject\getMimeType(), ilUtil\moveUploadedFile(), and ilUtil\renameExecutables().

Referenced by createMediaItemForPurpose(), and updateCastItemObject().

{
$purpose = $mediaItem->getPurpose();
$url_gui = $this->form_gui->getInput ("url_".$purpose);
$file_gui = $this->form_gui->getInput ("file_".$purpose);
if ($url_gui)
{
// http
$file = $this->form_gui->getInput ("url_".$purpose);
$title = basename ($file);
$location = $this->form_gui->getInput ("url_".$purpose);
$locationType = "Reference";
} elseif ($file_gui["size"] > 0){
// lokal
// determine and create mob directory, move uploaded file to directory
$mob_dir = ilObjMediaObject::_getDirectory($mob->getId());
if (!is_dir($mob_dir))
$mob->createDirectory();
$file_name = ilUtil::getASCIIFilename($_FILES['file_'.$purpose]['name']);
$file_name = str_replace(" ", "_", $file_name);
$file = $mob_dir."/".$file_name;
$locationType = "LocalFile";
ilUtil::moveUploadedFile($_FILES['file_'.$purpose]['tmp_name'], $file_name, $file);
}
// check if not automatic mimetype detection
if ((int) $_POST["mimetype_".$purpose] != 0) {
// check if deleted or changed to prevent array index out of bounds!
// keep in mind, that first entry was automatic selection!
if ((int) $_POST["mimetype_".$purpose]-1 < count ($this->mimeTypes))
{
$format = $this->mimeTypes[(int) $_POST["mimetype_".$purpose] - 1];
$mediaItem->setFormat($format);
}
} elseif ($mediaItem->getLocation () != "") {
$format = ilObjMediaObject::getMimeType($mediaItem->getLocation());
$mediaItem->setFormat($format);
}
if (isset($file))
{
// get mime type, if not already set!
if (!isset($format))
{
}
// set real meta and object data
$mediaItem->setFormat($format);
$mediaItem->setLocation($location);
$mediaItem->setLocationType($locationType);
$mediaItem->setHAlign("Left");
$mediaItem->setHeight(self::isAudio($format)?0:180);
}
if ($purpose == "Standard")
{
if (isset($title))
$mob->setTitle ($title);
if (isset($format))
$mob->setDescription($format);
}
return $file;
}

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Field Documentation

ilObjMediaCastGUI::$additionalPurposes = array ("VideoPortable", "AudioPortable")
private

Definition at line 19 of file class.ilObjMediaCastGUI.php.

ilObjMediaCastGUI::$mimeTypes = array()
private

Definition at line 21 of file class.ilObjMediaCastGUI.php.

ilObjMediaCastGUI::$purposeSuffixes = array ()
private

Definition at line 20 of file class.ilObjMediaCastGUI.php.


The documentation for this class was generated from the following file: