public function getPageDiskSize()
 {
     $quota_sum = 0;
     $this->buildDom();
     $dom = $this->getDom();
     if ($dom instanceof php4DOMDocument) {
         $dom = $dom->myDOMDocument;
     }
     $xpath_temp = new DOMXPath($dom);
     // mobs
     include_once "Services/MediaObjects/classes/class.ilObjMediaObject.php";
     $nodes = $xpath_temp->query("//PageContent/MediaObject/MediaAlias");
     foreach ($nodes as $node) {
         $mob_id = array_pop(explode("_", $node->getAttribute("OriginId")));
         $mob_dir = ilObjMediaObject::_getDirectory($mob_id);
         $quota_sum += ilUtil::dirSize($mob_dir);
     }
     return $quota_sum;
 }
 /**
  * Uploads a new rooms agreement by using the ILIAS MediaObject Service.
  * If the old file id is given, the old file will be deleted.
  *
  * @param array  $a_newfile   an array containing the input values of the form
  * @param string $a_oldFileId to delete trash
  *
  * @return string uploaded file id
  */
 public function uploadRoomsAgreement($a_newfile, $a_oldFileId = "0")
 {
     if (!empty($a_oldFileId) && $a_oldFileId != "0") {
         $agreementFile = new ilObjMediaObject($a_oldFileId);
         $agreementFile->delete();
     }
     $mediaObj = new ilObjMediaObject();
     $mediaObj->setTitle("RoomSharingRoomsAgreement");
     $mediaObj->setDescription("RoomSharingRoomsAgreement");
     $mediaObj->create();
     $mob_dir = ilObjMediaObject::_getDirectory($mediaObj->getId());
     if (!is_dir($mob_dir)) {
         $mediaObj->createDirectory();
     }
     $file_name = ilUtil::getASCIIFilename($a_newfile["name"]);
     $file_name_mod = str_replace(" ", "_", $file_name);
     $file = $mob_dir . "/" . $file_name_mod;
     ilUtil::moveUploadedFile($a_newfile["tmp_name"], $file_name_mod, $file);
     ilUtil::renameExecutables($mob_dir);
     $format = ilObjMediaObject::getMimeType($file);
     $media_item = new ilMediaItem();
     $mediaObj->addMediaItem($media_item);
     $media_item->setPurpose("Standard");
     $media_item->setFormat($format);
     $media_item->setLocation($file_name_mod);
     $media_item->setLocationType("LocalFile");
     $mediaObj->update();
     return $mediaObj->getId();
 }
Beispiel #3
0
 /**
  * get media file directory
  */
 function getDirectory()
 {
     return ilObjMediaObject::_getDirectory($this->getMobId());
 }
 /**
  * function parses stored value in database to a html output for eg. the record list gui.
  * @param $value
  * @return mixed
  */
 public function parseHTML($value, ilDataCollectionRecordField $record_field)
 {
     switch ($this->id) {
         case self::INPUTFORMAT_DATETIME:
             $html = ilDatePresentation::formatDate(new ilDate($value, IL_CAL_DATETIME));
             break;
         case self::INPUTFORMAT_FILE:
             global $ilCtrl;
             if (!ilObject2::_exists($value) || ilObject2::_lookupType($value, false) != "file") {
                 $html = "";
                 break;
             }
             $file_obj = new ilObjFile($value, false);
             $ilCtrl->setParameterByClass("ildatacollectionrecordlistgui", "record_id", $record_field->getRecord()->getId());
             $ilCtrl->setParameterByClass("ildatacollectionrecordlistgui", "field_id", $record_field->getField()->getId());
             $html = "<a href=" . $ilCtrl->getLinkTargetByClass("ildatacollectionrecordlistgui", "sendFile") . " >" . $file_obj->getFileName() . "</a>";
             break;
         case self::INPUTFORMAT_MOB:
             $mob = new ilObjMediaObject($value, false);
             $dir = ilObjMediaObject::_getDirectory($mob->getId());
             $media_item = $mob->getMediaItem('Standard');
             if (!$media_item->location) {
                 $html = "";
                 break;
             }
             $html = '<img src="' . $dir . "/" . $media_item->location . '" />';
             break;
         case self::INPUTFORMAT_BOOLEAN:
             switch ($value) {
                 case 0:
                     $im = ilUtil::getImagePath('icon_not_ok.png');
                     break;
                 case 1:
                     $im = ilUtil::getImagePath('icon_ok.png');
                     break;
             }
             $html = "<img src='" . $im . "'>";
             break;
         case ilDataCollectionDatatype::INPUTFORMAT_TEXT:
             //Property URL
             $arr_properties = $record_field->getField()->getProperties();
             if ($arr_properties[ilDataCollectionField::PROPERTYID_URL]) {
                 $link = $value;
                 if (preg_match("/^[a-z0-9!#\$%&'*+=?^_`{|}~-]+(?:\\.[a-z0-9!#\$%&'*+=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\$/i", $value)) {
                     $value = "mailto:" . $value;
                 } elseif (!preg_match('~(^(news|(ht|f)tp(s?)\\://){1}\\S+)~i', $value)) {
                     return $link;
                 }
                 if (strlen($link) > self::LINK_MAX_LENGTH) {
                     $link = substr($value, 0, (self::LINK_MAX_LENGTH - 3) / 2);
                     $link .= "...";
                     $link .= substr($value, -(self::LINK_MAX_LENGTH - 3) / 2);
                 }
                 $html = "<a target='_blank' href='" . $value . "'>" . $link . "</a>";
             } else {
                 $html = $value;
             }
             // BEGIN EASTEREGG
             /*if(strtolower($value) == "nyan it plx!"){
             			$link = ilLink::_getLink($_GET['ref_id']);
             			$html = "<a href='http://nyanit.com/".$link."'>Data Collections rock!</a>";
             		}*/
             // END EASTEREGG
             break;
         default:
             $html = $value;
             break;
     }
     return $html;
 }
 /**
  * Handle the event
  *
  * @param    string        component, e.g. "Services/User"
  * @param    event         event, e.g. "afterUpdate"
  * @param    array         array of event specific parameters
  */
 public function handleEvent($a_component, $a_event, $a_parameter)
 {
     // Adds access rights for standard participants to courses
     // Only needed for Soziale Arbeit
     // create course part of code
     if ($a_component == 'Modules/Course' && $a_event == 'create') {
         $crs = $a_parameter['object'];
         //activation unlimited, not offline
         $crs->setActivationType(IL_CRS_ACTIVATION_UNLIMITED);
         $crs->setOfflineStatus(false);
         global $affected_crs;
         $affected_crs = $a_parameter['obj_id'];
     }
     // Adds access rights for standard participants to courses
     // Only needed for Soziale Arbeit
     // update course part of code
     if ($a_component == 'Modules/Course' && $a_event == 'update') {
         global $tree, $rbacreview, $rbacadmin, $affected_crs;
         $crs = $a_parameter['object'];
         $ref_id = $crs->getRefId();
         //check if new Course is in "Soziale Arbeit -> Bachelor"
         if ($affected_crs == $a_parameter['obj_id'] && in_array(4781, $obj_path = $tree->getPathId($ref_id))) {
             //Get the current access rights on the course
             $user_role = $this->_getGlobalUserRoleId();
             $local_ops = $rbacreview->getRoleOperationsOnObject($user_role, $ref_id);
             $local_ops = array_map('strval', $local_ops);
             //Get the access rights of the standard course user and remove rights that the standard user doesn't have
             $non_member_template_id = $this->__getCrsNonMemberTemplateId();
             $template_ops = $rbacreview->getOperationsOfRole($non_member_template_id, 'crs', ROLE_FOLDER_ID);
             $role_folders = array_intersect($obj_path, $rbacreview->getFoldersAssignedToRole($user_role));
             end($role_folders);
             $parent_role_folder = prev($role_folders);
             $parent_ops = $this->__getTemplatePolicies($user_role, $parent_role_folder, 'crs');
             $template_ops = $this->__intersectPolicies($template_ops, $parent_ops);
             //Get the local and the next higher policies
             $local_policies = $this->__getTemplatePolicies($user_role, $ref_id);
             $parent_policies = $this->__getTemplatePolicies($user_role, $parent_role_folder);
             $non_member_policies = $this->__getTemplatePolicies($non_member_template_id, '');
             $non_member_policies = array_values($this->__intersectPolicies($non_member_policies, $parent_policies));
             if ($local_ops == $template_ops && $local_policies == $non_member_policies) {
                 $rbacadmin->copyRoleTemplatePermissions($user_role, $parent_role_folder, $ref_id, $user_role);
                 $local_policies = $this->__getTemplatePolicies($user_role, $ref_id, 'crs');
                 $rbacadmin->grantPermission($user_role, $local_policies, $ref_id);
             }
         }
     }
     // FFMPEG Conversion of media files
     if ($a_component == 'Services/MediaObjects' && $a_event == 'update' && isset($a_parameter) && count($a_parameter) > 0 && isset($a_parameter['object'])) {
         $allMediaItems = $a_parameter['object']->getMediaItems();
         $ffmpegQueue = 'ffmpegQueue.txt';
         foreach ($allMediaItems as $media_item) {
             $filename = $media_item->location;
             include_once "./Modules/MediaCast/classes/class.ilMediaCastSettings.php";
             $settings = ilMediaCastSettings::_getInstance();
             $purposeSuffixes = $settings->getPurposeSuffixes();
             if (in_array(mb_strtolower(substr($filename, strrpos($filename, '.') + 1)), $purposeSuffixes['VideoPortable'])) {
                 global $ilUser;
                 $folder = ilObjMediaObject::_getDirectory($a_parameter['object']->getId());
                 if (substr($filename, -3) != 'mp4') {
                     $numofLines = ilHSLUObjectDefaultsPlugin::lineCount($ffmpegQueue);
                     ilUtil::sendSuccess('Ihre Datei wurde hochgeladen und wird nun in ein Streaming-kompatibles Format konvertiert. Sie werden via Mail informiert, sobald die Konvertierung abgeschlossen ist. Vor der aktuell hochgeladenen Datei hat es ' . $numofLines . ' andere in der Warteschlange. Besten Dank für Ihre Geduld.', true);
                 }
                 file_put_contents($ffmpegQueue, $folder . '/' . $filename . '|' . $folder . '/' . substr($filename, 0, strrpos($filename, '.')) . '.mp4|' . $ilUser->getEmail() . "\n", FILE_APPEND);
                 //geht nicht wegen client cache
                 //@copy('Customizing/mob_vpreview.png', $folder.'/mob_vpreview.png');
                 @chmod($folder, 0775);
                 //set new media format
                 $media_item->setFormat('video/mp4');
                 $media_item->setLocation(substr($filename, 0, strrpos($filename, '.')) . '.mp4');
                 $media_item->update();
             } else {
                 if (in_array(mb_strtolower(substr($filename, strrpos($filename, '.') + 1)), $purposeSuffixes['AudioPortable']) && substr($filename, -3) != 'mp3') {
                     global $ilUser;
                     $folder = ilObjMediaObject::_getDirectory($a_parameter['object']->getId());
                     $numofLines = ilHSLUObjectDefaultsPlugin::lineCount($ffmpegQueue);
                     ilUtil::sendSuccess('Ihre Datei wurde hochgeladen und wird nun in ein Streaming-kompatibles Format konvertiert. Sie werden via Mail informiert, sobald die Konvertierung abgeschlossen ist. Vor der aktuell hochgeladenen Datei hat es ' . $numofLines . ' andere in der Warteschlange. Besten Dank für Ihre Geduld.', true);
                     file_put_contents($ffmpegQueue, $folder . '/' . $filename . '|' . $folder . '/' . substr($filename, 0, strrpos($filename, '.')) . '.mp3|' . $ilUser->getEmail() . "\n", FILE_APPEND);
                     //geht nicht wegen client cache
                     //@copy('Customizing/mob_vpreview.png', $folder.'/mob_vpreview.png');
                     @chmod($folder, 0775);
                     //set new media format
                     $media_item->setFormat('audio/mpeg');
                     $media_item->setLocation(substr($filename, 0, strrpos($filename, '.')) . '.mp3');
                     $media_item->update();
                 }
             }
         }
     }
 }
 /**
  * Create media object from upload directory
  */
 function createMediaFromUploadDir()
 {
     $mset = new ilSetting("mobs");
     $upload_dir = trim($mset->get("upload_dir"));
     include_once "./Services/MediaObjects/classes/class.ilObjMediaObject.php";
     if (is_array($_POST["file"]) && ilMainMenuGUI::_checkAdministrationPermission()) {
         foreach ($_POST["file"] as $f) {
             $f = str_replace("..", "", $f);
             $fullpath = $upload_dir . "/" . $f;
             $mob = new ilObjMediaObject();
             $mob->setTitle(basename($fullpath));
             $mob->setDescription("");
             $mob->create();
             // determine and create mob directory, move uploaded file to directory
             //$mob_dir = ilUtil::getWebspaceDir()."/mobs/mm_".$a_mob->getId();
             $mob->createDirectory();
             $mob_dir = ilObjMediaObject::_getDirectory($mob->getId());
             $media_item = new ilMediaItem();
             $mob->addMediaItem($media_item);
             $media_item->setPurpose("Standard");
             $file = $mob_dir . "/" . basename($fullpath);
             ilUtil::moveUploadedFile($fullpath, basename($fullpath), $file, false, $_POST["action"]);
             // get mime type
             $format = ilObjMediaObject::getMimeType($file);
             $location = basename($fullpath);
             // set real meta and object data
             $media_item->setFormat($format);
             $media_item->setLocation($location);
             $media_item->setLocationType("LocalFile");
             $mob->setDescription($format);
             // determine width and height of known image types
             $wh = ilObjMediaObject::_determineWidthHeight(500, 400, $format, "File", $mob_dir . "/" . $location, $media_item->getLocation(), true, true, "", "");
             $media_item->setWidth($wh["width"]);
             $media_item->setHeight($wh["height"]);
             if ($wh["info"] != "") {
                 //				ilUtil::sendInfo($wh["info"], true);
             }
             $media_item->setHAlign("Left");
             ilUtil::renameExecutables($mob_dir);
             $mob->update();
             // put it into current folder
             $mep_item = new ilMediaPoolItem();
             $mep_item->setTitle($mob->getTitle());
             $mep_item->setType("mob");
             $mep_item->setForeignId($mob->getId());
             $mep_item->create();
             $tree = $this->object->getTree();
             $parent = $_GET["mepitem_id"] == "" ? $tree->getRootId() : $_GET["mepitem_id"];
             $tree->insertNode($mep_item->getId(), $parent);
         }
     }
     ilUtil::redirect("ilias.php?baseClass=ilMediaPoolPresentationGUI&cmd=listMedia&ref_id=" . $_GET["ref_id"] . "&mepitem_id=" . $_GET["mepitem_id"]);
 }
 public function dbImportSco($slm, $sco, $asset = false)
 {
     $qtis = array();
     $d = ilUtil::getDir($this->packageFolder);
     foreach ($d as $f) {
         //continue;
         if ($f[type] == 'file' && substr($f[entry], 0, 4) == 'qti_') {
             include_once "./Services/QTI/classes/class.ilQTIParser.php";
             include_once "./Modules/Test/classes/class.ilObjTest.php";
             $qtiParser = new ilQTIParser($this->packageFolder . "/" . $f[entry], IL_MO_VERIFY_QTI, 0, "");
             $result = $qtiParser->startParsing();
             $founditems =& $qtiParser->getFoundItems();
             //					die(print_r($founditems));
             foreach ($founditems as $qp) {
                 $newObj = new ilObjTest(0, true);
                 // This creates a lot of invalid repository objects for each question
                 // question are not repository objects (see e.g. table object_data), alex 29 Sep 2009
                 //					$newObj->setType ( $qp ['type'] );
                 //					$newObj->setTitle ( $qp ['title'] );
                 //					$newObj->create ( true );
                 //					$newObj->createReference ();
                 //					$newObj->putInTree ($_GET ["ref_id"]);
                 //					$newObj->setPermissions ( $sco->getId ());
                 //					$newObj->notify ("new", $_GET["ref_id"], $sco->getId (), $_GET["ref_id"], $newObj->getRefId () );
                 //					$newObj->mark_schema->flush ();
                 $qtiParser = new ilQTIParser($this->packageFolder . "/" . $f[entry], IL_MO_PARSE_QTI, 0, "");
                 $qtiParser->setTestObject($newObj);
                 $result = $qtiParser->startParsing();
                 //					$newObj->saveToDb ();
                 $qtis = array_merge($qtis, $qtiParser->getImportMapping());
             }
         }
     }
     //exit;
     include_once 'Modules/Scorm2004/classes/class.ilSCORM2004Page.php';
     $doc = new SimpleXMLElement($this->imsmanifest->saveXml());
     $l = $doc->xpath("/ContentObject/MetaData");
     if ($l[0]) {
         include_once 'Services/MetaData/classes/class.ilMDXMLCopier.php';
         $mdxml =& new ilMDXMLCopier($l[0]->asXML(), $slm->getId(), $sco->getId(), $sco->getType());
         $mdxml->startParsing();
         $mdxml->getMDObject()->update();
     }
     $l = $doc->xpath("/ContentObject/PageObject");
     foreach ($l as $page_xml) {
         $tnode = $page_xml->xpath('MetaData/General/Title');
         $page = new ilSCORM2004PageNode($slm);
         $page->setTitle($tnode[0]);
         $page->setSLMId($slm->getId());
         $page->create(true);
         ilSCORM2004Node::putInTree($page, $sco->getId(), $target);
         $pmd = $page_xml->xpath("MetaData");
         if ($pmd[0]) {
             include_once 'Services/MetaData/classes/class.ilMDXMLCopier.php';
             $mdxml =& new ilMDXMLCopier($pmd[0]->asXML(), $slm->getId(), $page->getId(), $page->getType());
             $mdxml->startParsing();
             $mdxml->getMDObject()->update();
         }
         $tnode = $page_xml->xpath("//MediaObject/MediaAlias | //InteractiveImage/MediaAlias");
         foreach ($tnode as $ttnode) {
             include_once './Services/MediaObjects/classes/class.ilObjMediaObject.php';
             $OriginId = $ttnode[OriginId];
             $medianodes = $doc->xpath("//MediaObject[MetaData/General/Identifier/@Entry='" . $OriginId . "']");
             $medianode = $medianodes[0];
             if ($medianode) {
                 $media_object = new ilObjMediaObject();
                 $media_object->setTitle($medianode->MetaData->General->Title);
                 $media_object->setDescription($medianode->MetaData->General->Description);
                 $media_object->create(false);
                 $mmd = $medianode->xpath("MetaData");
                 if ($mmd[0]) {
                     include_once 'Services/MetaData/classes/class.ilMDXMLCopier.php';
                     $mdxml =& new ilMDXMLCopier($mmd[0]->asXML(), 0, $media_object->getId(), $media_object->getType());
                     $mdxml->startParsing();
                     $mdxml->getMDObject()->update();
                 }
                 // determine and create mob directory, move uploaded file to directory
                 $media_object->createDirectory();
                 $mob_dir = ilObjMediaObject::_getDirectory($media_object->getId());
                 foreach ($medianode->MediaItem as $xMediaItem) {
                     $media_item =& new ilMediaItem();
                     $media_object->addMediaItem($media_item);
                     $media_item->setPurpose($xMediaItem[Purpose]);
                     $media_item->setFormat($xMediaItem->Format);
                     $media_item->setLocation($xMediaItem->Location);
                     $media_item->setLocationType($xMediaItem->Location[Type]);
                     $media_item->setWidth($xMediaItem->Layout[Width]);
                     $media_item->setHeight($xMediaItem->Layout[Height]);
                     $media_item->setHAlign($xMediaItem->Layout[HorizontalAlign]);
                     $media_item->setCaption($xMediaItem->Caption);
                     $media_item->setTextRepresentation($xMediaItem->TextRepresentation);
                     $nr = 0;
                     // add map areas (external links only)
                     foreach ($xMediaItem->MapArea as $n => $v) {
                         if ($v->ExtLink[Href] != "") {
                             include_once "./Services/MediaObjects/classes/class.ilMapArea.php";
                             $ma = new ilMapArea();
                             $map_area = new ilMapArea();
                             $map_area->setShape($v[Shape]);
                             $map_area->setCoords($v[Coords]);
                             $map_area->setLinkType(IL_EXT_LINK);
                             $map_area->setTitle($v->ExtLink);
                             $map_area->setHref($v->ExtLink[Href]);
                             $media_item->addMapArea($map_area);
                         }
                     }
                     if ($media_item->getLocationType() == "LocalFile") {
                         //							$tmp_name = $this->packageFolder."/objects/".$OriginId."/".$xMediaItem->Location;
                         //							copy($tmp_name,  $mob_dir."/".$xMediaItem->Location);
                     }
                 }
                 // copy whole directory
                 ilUtil::rCopy($this->packageFolder . "/objects/" . $OriginId, $mob_dir);
                 // alex: fixed media import: these lines have been
                 // behind the next curly bracket which makes it fail
                 // when no medianode is given. (id=0 -> fatal error)
                 ilUtil::renameExecutables($mob_dir);
                 $media_object->update(true);
                 $ttnode[OriginId] = "il__mob_" . $media_object->getId();
             }
         }
         include_once "./Modules/File/classes/class.ilObjFile.php";
         include_once "./Services/Utilities/classes/class.ilFileUtils.php";
         include_once "./Services/MediaObjects/classes/class.ilObjMediaObject.php";
         $intlinks = $page_xml->xpath("//IntLink");
         foreach ($intlinks as $intlink) {
             if ($intlink[Type] != "File") {
                 continue;
             }
             $path = $this->packageFolder . "/objects/" . str_replace('dfile', 'file', $intlink[Target]);
             if (!is_dir($path)) {
                 continue;
             }
             $ffiles = array();
             ilFileUtils::recursive_dirscan($path, $ffiles);
             $filename = $ffiles[file][0];
             $fileObj = new ilObjFile();
             $fileObj->setType("file");
             $fileObj->setTitle(ilFileUtils::utf8_encode(ilUtil::stripSlashes($filename)));
             $fileObj->setFileName(ilFileUtils::utf8_encode(ilUtil::stripSlashes($filename)));
             // better use this, mime_content_type is deprecated
             $fileObj->setFileType(ilObjMediaObject::getMimeType($path . "/" . $filename));
             $fileObj->setFileSize(filesize($path . "/" . $filename));
             $fileObj->create();
             $fileObj->createReference();
             //$fileObj->putInTree($_GET["ref_id"]);
             //$fileObj->setPermissions($slm->getId ());
             $fileObj->createDirectory();
             $fileObj->storeUnzipedFile($path . "/" . $filename, ilFileUtils::utf8_encode(ilUtil::stripSlashes($filename)));
             $intlink[Target] = "il__dfile_" . $fileObj->getId();
         }
         $fileitems = $page_xml->xpath("//FileItem/Identifier");
         foreach ($fileitems as $fileitem) {
             $path = $this->packageFolder . "/objects/" . $fileitem[Entry];
             if (!is_dir($path)) {
                 continue;
             }
             $ffiles = array();
             ilFileUtils::recursive_dirscan($path, $ffiles);
             $filename = $ffiles[file][0];
             $fileObj = new ilObjFile();
             $fileObj->setType("file");
             $fileObj->setTitle(ilFileUtils::utf8_encode(ilUtil::stripSlashes($filename)));
             $fileObj->setFileName(ilFileUtils::utf8_encode(ilUtil::stripSlashes($filename)));
             // better use this, mime_content_type is deprecated
             $fileObj->setFileType(ilObjMediaObject::getMimeType($path . "/" . $filename));
             $fileObj->setFileSize(filesize($path . "/" . $filename));
             $fileObj->create();
             $fileObj->createReference();
             //$fileObj->putInTree($_GET["ref_id"]);
             //$fileObj->setPermissions($slm->getId ());
             $fileObj->createDirectory();
             $fileObj->storeUnzipedFile($path . "/" . $filename, ilFileUtils::utf8_encode(ilUtil::stripSlashes($filename)));
             $fileitem[Entry] = "il__file_" . $fileObj->getId();
         }
         $pagex = new ilSCORM2004Page($page->getId());
         $ddoc = new DOMDocument();
         $ddoc->async = false;
         $ddoc->preserveWhiteSpace = false;
         $ddoc->formatOutput = false;
         $ddoc->loadXML($page_xml->asXML());
         $xpath = new DOMXPath($ddoc);
         $tnode = $xpath->query('PageContent');
         $t = "<PageObject>";
         foreach ($tnode as $ttnode) {
             $t .= $ddoc->saveXML($ttnode);
         }
         $t .= "</PageObject>";
         foreach ($qtis as $old => $q) {
             $t = str_replace($old, 'il__qst_' . $q['pool'], $t);
         }
         $pagex->setXMLContent($t);
         $pagex->updateFromXML();
     }
 }
 protected function getFirstMediaObjectAsTag($a_width = 144, $a_height = 144, $a_export_directory = null)
 {
     $this->obj->buildDom();
     $mob_ids = $this->obj->collectMediaObjects();
     if ($mob_ids) {
         require_once "./Services/MediaObjects/classes/class.ilObjMediaObject.php";
         foreach ($mob_ids as $mob_id) {
             $mob_obj = new ilObjMediaObject($mob_id);
             $mob_item = $mob_obj->getMediaItem("Standard");
             if (stristr($mob_item->getFormat(), "image")) {
                 $mob_size = $mob_item->getOriginalSize();
                 if ($mob_size["width"] >= $a_width || $mob_size["height"] >= $a_height) {
                     if (!$a_export_directory) {
                         $mob_dir = ilObjMediaObject::_getDirectory($mob_obj->getId());
                     } else {
                         // see ilCOPageHTMLExport::exportHTMLMOB()
                         $mob_dir = "./mobs/mm_" . $mob_obj->getId();
                     }
                     $mob_res = self::parseImage($mob_size["width"], $mob_size["height"], $a_width, $a_height);
                     return '<img' . ' src="' . $mob_dir . "/" . $mob_item->getLocation() . '"' . ' width="' . $mob_res[0] . '"' . ' height="' . $mob_res[1] . '"' . ' class="ilBlogListItemSnippetPreviewImage ilFloatLeft noMirror"' . ' />';
                 }
             }
         }
     }
 }
 /**
  * Import record
  *
  * @param
  * @return
  */
 function importRecord($a_entity, $a_types, $a_rec, $a_mapping, $a_schema_version)
 {
     //echo $a_entity;
     //var_dump($a_rec);
     switch ($a_entity) {
         case "mob":
             //var_dump($a_rec);
             include_once "./Services/MediaObjects/classes/class.ilObjMediaObject.php";
             $newObj = new ilObjMediaObject();
             $newObj->setType("mob");
             $newObj->setTitle($a_rec["Title"]);
             $newObj->setDescription($a_rec["Description"]);
             $newObj->create();
             $newObj->createDirectory();
             ilObjMediaObject::_createThumbnailDirectory($newObj->getId());
             $this->current_mob = $newObj;
             $dir = str_replace("..", "", $a_rec["Dir"]);
             if ($dir != "" && $this->getImportDirectory() != "") {
                 $source_dir = $this->getImportDirectory() . "/" . $dir;
                 $target_dir = $dir = ilObjMediaObject::_getDirectory($newObj->getId());
                 ilUtil::rCopy($source_dir, $target_dir);
             }
             $a_mapping->addMapping("Services/MediaObjects", "mob", $a_rec["Id"], $newObj->getId());
             //echo "<br>++add++"."0:".$a_rec["Id"].":mob+0:".$newObj->getId().":mob"."+";
             $a_mapping->addMapping("Services/MetaData", "md", "0:" . $a_rec["Id"] . ":mob", "0:" . $newObj->getId() . ":mob");
             break;
         case "mob_media_item":
             // determine parent mob
             include_once "./Services/MediaObjects/classes/class.ilObjMediaObject.php";
             $mob_id = (int) $a_mapping->getMapping("Services/MediaObjects", "mob", $a_rec["MobId"]);
             if (is_object($this->current_mob) && $this->current_mob->getId() == $mob_id) {
                 $mob = $this->current_mob;
             } else {
                 $mob = new ilObjMediaObject($mob_id);
             }
             include_once "./Services/MediaObjects/classes/class.ilMediaItem.php";
             $newObj = new ilMediaItem();
             $newObj->setMobId($mob_id);
             $newObj->setWidth($a_rec["Width"]);
             $newObj->setHeight($a_rec["Height"]);
             $newObj->setCaption($a_rec["Caption"]);
             $newObj->setNr($a_rec["Nr"]);
             $newObj->setPurpose($a_rec["Purpose"]);
             $newObj->setLocation($a_rec["Location"]);
             $newObj->setLocationType($a_rec["LocationType"]);
             $newObj->setFormat($a_rec["Format"]);
             $newObj->setTextRepresentation($a_rec["TextRepresentation"]);
             $newObj->create();
             $this->current_media_item = $newObj;
             $a_mapping->addMapping("Services/MediaObjects", "mob_media_item", $a_rec["Id"], $newObj->getId());
             break;
         case "mob_mi_parameter":
             // get media item
             include_once "./Services/MediaObjects/classes/class.ilMediaItem.php";
             $med_id = (int) $a_mapping->getMapping("Services/MediaObjects", "mob_media_item", $a_rec["MiId"]);
             if (is_object($this->current_media_item) && $this->current_media_item->getId() == $med_id) {
                 $med = $this->current_media_item;
             } else {
                 $med = new ilMediaItem($med_id);
             }
             $med->writeParameter($a_rec["Name"], $a_rec["Value"]);
             break;
         case "mob_mi_map_area":
             // get media item
             include_once "./Services/MediaObjects/classes/class.ilMediaItem.php";
             $med_id = (int) $a_mapping->getMapping("Services/MediaObjects", "mob_media_item", $a_rec["MiId"]);
             if (is_object($this->current_media_item) && $this->current_media_item->getId() == $med_id) {
                 $med = $this->current_media_item;
             } else {
                 $med = new ilMediaItem($med_id);
             }
             include_once "./Services/MediaObjects/classes/class.ilMapArea.php";
             $map_area = new ilMapArea();
             $map_area->setItemId($med_id);
             $map_area->setNr($a_rec["Nr"]);
             $map_area->setShape($a_rec["Shape"]);
             $map_area->setCoords($a_rec["Coords"]);
             $map_area->setLinkType($a_rec["LinkType"]);
             $map_area->setTitle($a_rec["Title"]);
             $map_area->setHref($a_rec["Href"]);
             $map_area->setTarget($a_rec["Target"]);
             $map_area->setType($a_rec["Type"]);
             $map_area->setTargetFrame($a_rec["TargetFrame"]);
             $map_area->setHighlightMode($a_rec["HighlightMode"]);
             $map_area->setHighlightClass($a_rec["HighlightClass"]);
             $map_area->create();
             break;
     }
 }
 /**
  * Standard Version of Fill Row. Most likely to
  * be overwritten by derived class.
  */
 protected function fillRow($a_set)
 {
     global $lng, $ilCtrl;
     $news_set = new ilSetting("news");
     $enable_internal_rss = $news_set->get("enable_rss_for_internal");
     // context
     $obj_id = ilObject::_lookupObjId($a_set["ref_id"]);
     $obj_type = ilObject::_lookupType($obj_id);
     $obj_title = ilObject::_lookupTitle($obj_id);
     // user
     if ($a_set["user_id"] > 0) {
         $this->tpl->setCurrentBlock("user_info");
         if ($obj_type == "frm") {
             include_once "./Modules/Forum/classes/class.ilForumProperties.php";
             if (ilForumProperties::_isAnonymized($a_set["context_obj_id"])) {
                 if ($a_set["context_sub_obj_type"] == "pos" && $a_set["context_sub_obj_id"] > 0) {
                     include_once "./Modules/Forum/classes/class.ilForumPost.php";
                     $post = new ilForumPost($a_set["context_sub_obj_id"]);
                     if ($post->getUserAlias() != "") {
                         $this->tpl->setVariable("VAL_AUTHOR", ilUtil::stripSlashes($post->getUserAlias()));
                     } else {
                         $this->tpl->setVariable("VAL_AUTHOR", $lng->txt("forums_anonymous"));
                     }
                 } else {
                     $this->tpl->setVariable("VAL_AUTHOR", $lng->txt("forums_anonymous"));
                 }
             } else {
                 if (ilObject::_exists($a_set["user_id"])) {
                     $user_obj = new ilObjUser($a_set["user_id"]);
                     $this->tpl->setVariable("VAL_AUTHOR", $user_obj->getLogin());
                 }
             }
         } else {
             if (ilObject::_exists($a_set["user_id"])) {
                 $user_obj = new ilObjUser($a_set["user_id"]);
                 $this->tpl->setVariable("VAL_AUTHOR", $user_obj->getLogin());
             }
         }
         $this->tpl->setVariable("TXT_AUTHOR", $lng->txt("author"));
         $this->tpl->parseCurrentBlock();
     }
     // media player
     if ($a_set["content_type"] == NEWS_AUDIO && $a_set["mob_id"] > 0 && ilObject::_exists($a_set["mob_id"])) {
         include_once "./Services/MediaObjects/classes/class.ilObjMediaObject.php";
         include_once "./Services/MediaObjects/classes/class.ilMediaPlayerGUI.php";
         $mob = new ilObjMediaObject($a_set["mob_id"]);
         $med = $mob->getMediaItem("Standard");
         $mpl = new ilMediaPlayerGUI();
         $mpl->setFile(ilObjMediaObject::_getDirectory($a_set["mob_id"]) . "/" . $med->getLocation());
         $this->tpl->setCurrentBlock("player");
         $this->tpl->setVariable("PLAYER", $mpl->getMp3PlayerHtml());
         $this->tpl->parseCurrentBlock();
     }
     // access
     if ($enable_internal_rss) {
         $this->tpl->setCurrentBlock("access");
         include_once "./Services/Block/classes/class.ilBlockSetting.php";
         $this->tpl->setVariable("TXT_ACCESS", $lng->txt("news_news_item_visibility"));
         if ($a_set["visibility"] == NEWS_PUBLIC || $a_set["priority"] == 0 && ilBlockSetting::_lookup("news", "public_notifications", 0, $obj_id)) {
             $this->tpl->setVariable("VAL_ACCESS", $lng->txt("news_visibility_public"));
         } else {
             $this->tpl->setVariable("VAL_ACCESS", $lng->txt("news_visibility_users"));
         }
         $this->tpl->parseCurrentBlock();
     }
     // content
     if ($a_set["content"] != "") {
         $this->tpl->setCurrentBlock("content");
         $this->tpl->setVariable("VAL_CONTENT", ilUtil::makeClickable($a_set["content"], true));
         $this->tpl->parseCurrentBlock();
     }
     if ($a_set["content_long"] != "") {
         $this->tpl->setCurrentBlock("long");
         $this->tpl->setVariable("VAL_LONG_CONTENT", ilUtil::makeClickable($a_set["content_long"], true));
         $this->tpl->parseCurrentBlock();
     }
     if ($a_set["update_date"] != $a_set["creation_date"]) {
         $this->tpl->setCurrentBlock("ni_update");
         $this->tpl->setVariable("TXT_LAST_UPDATE", $lng->txt("last_update"));
         $this->tpl->setVariable("VAL_LAST_UPDATE", ilDatePresentation::formatDate(new ilDateTime($a_set["update_date"], IL_CAL_DATETIME)));
         $this->tpl->parseCurrentBlock();
     }
     // forum hack, not nice
     $add = "";
     if ($obj_type == "frm" && $a_set["context_sub_obj_type"] == "pos" && $a_set["context_sub_obj_id"] > 0) {
         include_once "./Modules/Forum/classes/class.ilObjForumAccess.php";
         $pos = $a_set["context_sub_obj_id"];
         $thread = ilObjForumAccess::_getThreadForPosting($pos);
         if ($thread > 0) {
             $add = "_" . $thread . "_" . $pos;
         }
     }
     $url_target = "./goto.php?client_id=" . rawurlencode(CLIENT_ID) . "&target=" . $obj_type . "_" . $a_set["ref_id"] . $add;
     $this->tpl->setCurrentBlock("context");
     $cont_loc = new ilLocatorGUI();
     $cont_loc->addContextItems($a_set["ref_id"], true);
     $this->tpl->setVariable("CONTEXT_LOCATOR", $cont_loc->getHTML());
     $this->tpl->setVariable("HREF_CONTEXT_TITLE", $url_target);
     $this->tpl->setVariable("CONTEXT_TITLE", $obj_title);
     $this->tpl->setVariable("ALT_CONTEXT_TITLE", $lng->txt("icon") . " " . $lng->txt("obj_" . $obj_type));
     $this->tpl->setVariable("IMG_CONTEXT_TITLE", ilUtil::getImagePath("icon_" . $obj_type . "_b.png"));
     $this->tpl->parseCurrentBlock();
     $this->tpl->setVariable("HREF_TITLE", $url_target);
     // title
     if ($a_set["content_is_lang_var"]) {
         $this->tpl->setVariable("VAL_TITLE", $lng->txt($a_set["title"]));
     } else {
         $this->tpl->setVariable("VAL_TITLE", ilUtil::stripSlashes($a_set["title"]));
         // title
     }
     // creation date
     $this->tpl->setVariable("VAL_CREATION_DATE", ilDatePresentation::formatDate(new ilDateTime($a_set["creation_date"], IL_CAL_DATETIME)));
     $this->tpl->setVariable("TXT_CREATED", $lng->txt("created"));
     $this->tpl->parseCurrentBlock();
 }
 /**
  * get media info as html
  */
 function _getMediaInfoHTML(&$a_mob)
 {
     global $lng;
     $tpl =& new ilTemplate("tpl.media_info.html", true, true, "Services/MediaObjects");
     $types = array("Standard", "Fullscreen");
     foreach ($types as $type) {
         if ($type == "Fullscreen" && !$a_mob->hasFullScreenItem()) {
             continue;
         }
         $med = $a_mob->getMediaItem($type);
         if (!$med) {
             return "";
         }
         $tpl->setCurrentBlock("media_info");
         if ($type == "Standard") {
             $tpl->setVariable("TXT_PURPOSE", $lng->txt("cont_std_view"));
         } else {
             $tpl->setVariable("TXT_PURPOSE", $lng->txt("cont_fullscreen"));
         }
         $tpl->setVariable("TXT_TYPE", $lng->txt("cont_" . strtolower($med->getLocationType())));
         $tpl->setVariable("VAL_LOCATION", $med->getLocation());
         if ($med->getLocationType() == "LocalFile") {
             $file = ilObjMediaObject::_getDirectory($med->getMobId()) . "/" . $med->getLocation();
             if (is_file($file)) {
                 $size = filesize($file);
             } else {
                 $size = 0;
             }
             $tpl->setVariable("VAL_FILE_SIZE", " ({$size} " . $lng->txt("bytes") . ")");
         }
         $tpl->setVariable("TXT_FORMAT", $lng->txt("cont_format"));
         $tpl->setVariable("VAL_FORMAT", $med->getFormat());
         if ($med->getWidth() != "" && $med->getHeight() != "") {
             $tpl->setCurrentBlock("size");
             $tpl->setVariable("TXT_SIZE", $lng->txt("size"));
             $tpl->setVariable("VAL_SIZE", $med->getWidth() . "x" . $med->getHeight());
             $tpl->parseCurrentBlock();
         }
         // original size
         if ($orig_size = $med->getOriginalSize()) {
             if ($orig_size["width"] != $med->getWidth() || $orig_size["height"] != $med->getHeight()) {
                 $tpl->setCurrentBlock("orig_size");
                 $tpl->setVariable("TXT_ORIG_SIZE", $lng->txt("cont_orig_size"));
                 $tpl->setVariable("ORIG_WIDTH", $orig_size["width"]);
                 $tpl->setVariable("ORIG_HEIGHT", $orig_size["height"]);
                 $tpl->parseCurrentBlock();
             }
         }
         // output caption
         if ($med && strlen($med->getCaption())) {
             $tpl->setCurrentBlock('additional_info');
             $tpl->setVariable('ADD_INFO', $lng->txt('cont_caption') . ': ' . $med->getCaption());
             $tpl->parseCurrentBlock();
         }
         // output keywords
         if ($type == "Standard") {
             include_once './Services/MetaData/classes/class.ilMDKeyword.php';
             if (count($kws = ilMDKeyword::lookupKeywords(0, $med->getMobId()))) {
                 $tpl->setCurrentBlock('additional_info');
                 $tpl->setVariable('ADD_INFO', $lng->txt('keywords') . ': ' . implode(', ', $kws));
                 $tpl->parseCurrentBlock();
             }
         }
         $tpl->setCurrentBlock("media_info");
         $tpl->parseCurrentBlock();
     }
     return $tpl->get();
 }
 /**
  * get media info as html
  */
 function _getMediaInfoHTML(&$a_mob)
 {
     global $lng;
     $tpl =& new ilTemplate("tpl.media_info.html", true, true, "Services/MediaObjects");
     $types = array("Standard", "Fullscreen");
     foreach ($types as $type) {
         if ($type == "Fullscreen" && !$a_mob->hasFullScreenItem()) {
             continue;
         }
         $med =& $a_mob->getMediaItem($type);
         $tpl->setCurrentBlock("media_info");
         if ($type == "Standard") {
             $tpl->setVariable("TXT_PURPOSE", $lng->txt("cont_std_view"));
         } else {
             $tpl->setVariable("TXT_PURPOSE", $lng->txt("cont_fullscreen"));
         }
         $tpl->setVariable("TXT_TYPE", $lng->txt("cont_" . strtolower($med->getLocationType())));
         $tpl->setVariable("VAL_LOCATION", $med->getLocation());
         if ($med->getLocationType() == "LocalFile") {
             $file = ilObjMediaObject::_getDirectory($med->getMobId()) . "/" . $med->getLocation();
             if (is_file($file)) {
                 $size = filesize($file);
             } else {
                 $size = 0;
             }
             $tpl->setVariable("VAL_FILE_SIZE", " ({$size} " . $lng->txt("bytes") . ")");
         }
         $tpl->setVariable("TXT_FORMAT", $lng->txt("cont_format"));
         $tpl->setVariable("VAL_FORMAT", $med->getFormat());
         if ($med->getWidth() != "" && $med->getHeight() != "") {
             $tpl->setCurrentBlock("size");
             $tpl->setVariable("TXT_SIZE", $lng->txt("size"));
             $tpl->setVariable("VAL_SIZE", $med->getWidth() . "x" . $med->getHeight());
             $tpl->parseCurrentBlock();
         }
         // original size
         if ($orig_size = $med->getOriginalSize()) {
             if ($orig_size["width"] != $med->getWidth() || $orig_size["height"] != $med->getHeight()) {
                 $tpl->setCurrentBlock("orig_size");
                 $tpl->setVariable("TXT_ORIG_SIZE", $lng->txt("cont_orig_size"));
                 $tpl->setVariable("ORIG_WIDTH", $orig_size["width"]);
                 $tpl->setVariable("ORIG_HEIGHT", $orig_size["height"]);
                 $tpl->parseCurrentBlock();
             }
         }
         $tpl->setCurrentBlock("media_info");
         $tpl->parseCurrentBlock();
     }
     return $tpl->get();
 }
 /**
  * function parses stored value in database to a html output for eg. the record list gui.
  *
  * @param                             $value
  * @param ilDataCollectionRecordField $record_field
  *
  * @return mixed
  */
 public function parseHTML($value, ilDataCollectionRecordField $record_field, $link = true)
 {
     global $ilAccess, $ilCtrl, $lng;
     switch ($this->id) {
         case self::INPUTFORMAT_DATETIME:
             $html = ilDatePresentation::formatDate(new ilDate($value, IL_CAL_DATETIME));
             break;
         case self::INPUTFORMAT_FILE:
             if (!ilObject2::_exists($value) || ilObject2::_lookupType($value, false) != "file") {
                 $html = "";
                 break;
             }
             $file_obj = new ilObjFile($value, false);
             $ilCtrl->setParameterByClass("ildatacollectionrecordlistgui", "record_id", $record_field->getRecord()->getId());
             $ilCtrl->setParameterByClass("ildatacollectionrecordlistgui", "field_id", $record_field->getField()->getId());
             $html = '<a href="' . $ilCtrl->getLinkTargetByClass("ildatacollectionrecordlistgui", "sendFile") . '">' . $file_obj->getFileName() . '</a>';
             if (ilPreview::hasPreview($file_obj->getId())) {
                 ilPreview::createPreview($file_obj);
                 // Create preview if not already existing
                 $preview = new ilPreviewGUI((int) $_GET['ref_id'], ilPreviewGUI::CONTEXT_REPOSITORY, $file_obj->getId(), $ilAccess);
                 $preview_status = ilPreview::lookupRenderStatus($file_obj->getId());
                 $preview_status_class = "";
                 $preview_text_topic = "preview_show";
                 if ($preview_status == ilPreview::RENDER_STATUS_NONE) {
                     $preview_status_class = "ilPreviewStatusNone";
                     $preview_text_topic = "preview_none";
                 }
                 $wrapper_html_id = 'record_field_' . $record_field->getId();
                 $script_preview_click = $preview->getJSCall($wrapper_html_id);
                 $preview_title = $lng->txt($preview_text_topic);
                 $preview_icon = ilUtil::getImagePath("preview.png", "Services/Preview");
                 $html = '<div id="' . $wrapper_html_id . '">' . $html;
                 $html .= '<span class="il_ContainerItemPreview ' . $preview_status_class . '"><a href="javascript:void(0);" onclick="' . $script_preview_click . '" title="' . $preview_title . '"><img src="' . $preview_icon . '" height="16" width="16"></a></span></div>';
             }
             break;
         case self::INPUTFORMAT_MOB:
             $mob = new ilObjMediaObject($value, false);
             $med = $mob->getMediaItem('Standard');
             if (!$med->location) {
                 $html = "";
                 break;
             }
             $arr_properties = $record_field->getField()->getProperties();
             $is_linked_field = $arr_properties[ilDataCollectionField::PROPERTYID_LINK_DETAIL_PAGE_MOB];
             $has_view = ilDataCollectionRecordViewViewdefinition::getIdByTableId($record_field->getRecord()->getTableId());
             if (in_array($med->getSuffix(), array('jpg', 'jpeg', 'png', 'gif'))) {
                 // Image
                 $dir = ilObjMediaObject::_getDirectory($mob->getId());
                 $width = (int) $arr_properties[ilDataCollectionField::PROPERTYID_WIDTH];
                 $height = (int) $arr_properties[ilDataCollectionField::PROPERTYID_HEIGHT];
                 $html = ilUtil::img($dir . "/" . $med->location, '', $width, $height);
                 if ($is_linked_field and $has_view and $link) {
                     $ilCtrl->setParameterByClass('ildatacollectionrecordviewgui', 'record_id', $record_field->getRecord()->getId());
                     $html = '<a href="' . $ilCtrl->getLinkTargetByClass("ildatacollectionrecordviewgui", 'renderRecord') . '">' . $html . '</a>';
                 }
             } else {
                 // Video/Audio
                 $mpl = new ilMediaPlayerGUI($med->getId(), '');
                 $mpl->setFile(ilObjMediaObject::_getURL($mob->getId()) . "/" . $med->getLocation());
                 $mpl->setMimeType($med->getFormat());
                 $mpl->setDisplayWidth((int) $arr_properties[ilDataCollectionField::PROPERTYID_WIDTH] . 'px');
                 $mpl->setDisplayHeight((int) $arr_properties[ilDataCollectionField::PROPERTYID_HEIGHT] . 'px');
                 $mpl->setVideoPreviewPic($mob->getVideoPreviewPic());
                 $html = $mpl->getPreviewHtml();
                 if ($is_linked_field and $has_view) {
                     global $lng;
                     $ilCtrl->setParameterByClass('ildatacollectionrecordviewgui', 'record_id', $record_field->getRecord()->getId());
                     $html = $html . '<a href="' . $ilCtrl->getLinkTargetByClass("ildatacollectionrecordviewgui", 'renderRecord') . '">' . $lng->txt('details') . '</a>';
                 }
             }
             break;
         case self::INPUTFORMAT_BOOLEAN:
             switch ($value) {
                 case 0:
                     $im = ilUtil::getImagePath('icon_not_ok.svg');
                     break;
                 case 1:
                     $im = ilUtil::getImagePath('icon_ok.svg');
                     break;
             }
             $html = "<img src='" . $im . "'>";
             break;
         case ilDataCollectionDatatype::INPUTFORMAT_TEXT:
             //Property URL
             $arr_properties = $record_field->getField()->getProperties();
             if ($arr_properties[ilDataCollectionField::PROPERTYID_URL]) {
                 $link = $value;
                 if (preg_match("/^[a-z0-9!#\$%&'*+=?^_`{|}~-]+(?:\\.[a-z0-9!#\$%&'*+=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\$/i", $value)) {
                     $value = "mailto:" . $value;
                 } elseif (!preg_match('~(^(news|(ht|f)tp(s?)\\://){1}\\S+)~i', $value)) {
                     return $link;
                 }
                 $link = $this->shortenLink($link);
                 $html = "<a target='_blank' href='" . $value . "'>" . $link . "</a>";
             } elseif ($arr_properties[ilDataCollectionField::PROPERTYID_LINK_DETAIL_PAGE_TEXT] and $link and ilDataCollectionRecordViewViewdefinition::getIdByTableId($record_field->getRecord()->getTableId())) {
                 $ilCtrl->setParameterByClass('ildatacollectionrecordviewgui', 'record_id', $record_field->getRecord()->getId());
                 $html = '<a href="' . $ilCtrl->getLinkTargetByClass("ildatacollectionrecordviewgui", 'renderRecord') . '">' . $value . '</a>';
             } else {
                 $html = $value;
             }
             break;
         default:
             $html = $value;
             break;
     }
     return $html;
 }
 /**
  * Extract preview image
  *
  * @param
  * @return
  */
 function extractPreviewImageObject()
 {
     global $ilCtrl;
     $this->checkPermission("write");
     $this->mcst_item = new ilNewsItem($_GET["item_id"]);
     include_once "./Services/MediaObjects/classes/class.ilObjMediaObjectGUI.php";
     $mob = new ilObjMediaObject($this->mcst_item->getMobId());
     try {
         $sec = (int) $_POST["sec"];
         if ($sec < 0) {
             $sec = 0;
         }
         if ($mob->getVideoPreviewPic() != "") {
             $mob->removeAdditionalFile($mob->getVideoPreviewPic(true));
         }
         include_once "./Services/MediaObjects/classes/class.ilFFmpeg.php";
         $med = $mob->getMediaItem("Standard");
         $mob_file = ilObjMediaObject::_getDirectory($mob->getId()) . "/" . $med->getLocation();
         $new_file = ilFFmpeg::extractImage($mob_file, "mob_vpreview.png", ilObjMediaObject::_getDirectory($mob->getId()), $sec);
         if ($new_file != "") {
             ilUtil::sendInfo($this->lng->txt("mcst_image_extracted"), true);
         } else {
             ilUtil::sendFailure($this->lng->txt("mcst_no_extraction_possible"), true);
         }
     } catch (ilException $e) {
         if (DEVMODE == 1) {
             $ret = ilFFmpeg::getLastReturnValues();
             $add = is_array($ret) && count($ret) > 0 ? "<br />" . implode($ret, "<br />") : "";
         }
         ilUtil::sendFailure($e->getMessage() . $add, true);
     }
     $ilCtrl->redirect($this, "editCastItem");
 }
 /**
  * Configures the file for the updateFloorPlanInfosWithFile and addFloorPlan function.
  *
  * @param ilObjMediaObject $a_mediaObj
  * @param array            $a_newfile
  *
  * @return array with format and filename
  */
 private function configureFile($a_mediaObj, $a_newfile = NULL)
 {
     if ($this->mobjMock) {
         return $a_newfile;
     }
     $mob_dir = ilObjMediaObject::_getDirectory($a_mediaObj->getId());
     if (!is_dir($mob_dir)) {
         $a_mediaObj->createDirectory();
     }
     $file_name = ilUtil::getASCIIFilename($a_newfile["name"]);
     $file_name_mod = str_replace(" ", "_", $file_name);
     $file = $mob_dir . "/" . $file_name_mod;
     // construct file path
     ilUtil::moveUploadedFile($a_newfile["tmp_name"], $file_name_mod, $file);
     ilUtil::renameExecutables($mob_dir);
     $format = ilObjMediaObject::getMimeType($file);
     return array("format" => $format, "filename" => $file_name_mod);
 }
 /**
  * Deliver mob file
  *
  * @param
  * @return
  */
 function deliverMobFile($a_purpose = "Standard", $a_increase_download_cnt = false)
 {
     $mob = $this->getMobId();
     include_once "./Services/MediaObjects/classes/class.ilObjMediaObject.php";
     $mob = new ilObjMediaObject($mob);
     $mob_dir = ilObjMediaObject::_getDirectory($mob->getId());
     // check purpose
     if (!$mob->hasPurposeItem($a_purpose)) {
         return false;
     }
     $m_item = $mob->getMediaItem($a_purpose);
     if ($m_item->getLocationType() != "Reference") {
         $file = $mob_dir . "/" . $m_item->getLocation();
         if (file_exists($file) && is_file($file)) {
             if ($a_increase_download_cnt) {
                 $this->increaseDownloadCounter();
             }
             ilUtil::deliverFile($file, $m_item->getLocation());
         } else {
             ilUtil::sendFailure("File not found!", true);
             return false;
         }
     } else {
         if ($a_increase_download_cnt) {
             $this->increaseDownloadCounter();
         }
         ilUtil::redirect($m_item->getLocation());
     }
 }
 /**
  * Update (base image)
  */
 function update()
 {
     global $ilCtrl, $lng;
     $mob = $this->content_obj->getMediaObject();
     $mob_dir = ilObjMediaObject::_getDirectory($mob->getId());
     $std_item = $mob->getMediaItem("Standard");
     $location = $_FILES['image_file']['name'];
     if ($location != "" && is_file($_FILES['image_file']['tmp_name'])) {
         $file = $mob_dir . "/" . $_FILES['image_file']['name'];
         ilUtil::moveUploadedFile($_FILES['image_file']['tmp_name'], $_FILES['image_file']['name'], $file);
         // get mime type
         $format = ilObjMediaObject::getMimeType($file);
         $location = $_FILES['image_file']['name'];
         $std_item->setFormat($format);
         $std_item->setLocation($location);
         $std_item->setLocationType("LocalFile");
         $mob->setDescription($format);
         $mob->update();
     }
     // set caption
     $std_alias_item = new ilMediaAliasItem($this->dom, $this->getHierId(), "Standard", $this->content_obj->getPcId(), "InteractiveImage");
     $std_alias_item->setCaption(ilUtil::stripSlashes($_POST["caption"]));
     $_SESSION["il_pg_error"] = $this->pg_obj->update();
     ilUtil::sendSuccess($lng->txt("msg_obj_modified"), true);
     $ilCtrl->redirectByClass("ilpcinteractiveimagegui", "editBaseImage");
 }
 /**
  * Get video preview pic
  *
  * @param
  * @return
  */
 function getVideoPreviewPic($a_filename_only = false)
 {
     $dir = ilObjMediaObject::_getDirectory($this->getId());
     $ppics = array("mob_vpreview.jpg", "mob_vpreview.jpeg", "mob_vpreview.png");
     foreach ($ppics as $p) {
         if (is_file($dir . "/" . $p)) {
             if ($a_filename_only) {
                 return $p;
             } else {
                 return $dir . "/" . $p;
             }
         }
     }
     return "";
 }
 /**
  * Returns the number of bytes used on the harddisk by the file object
  * with the specified object id.
  * @param int object id of a file object.
  */
 function _lookupDiskUsage($a_id)
 {
     require_once 'Modules/MediaCast/classes/class.ilObjMediaCast.php';
     require_once "./Services/News/classes/class.ilNewsItem.php";
     require_once "./Services/MediaObjects/classes/class.ilObjMediaObject.php";
     $obj = new ilObjMediaCast($a_id, false);
     $obj->read();
     $items = $obj->getItemsArray();
     $size = 0;
     foreach ($items as $item) {
         $news_item = new ilNewsItem($item["id"]);
         $news_item->read();
         $mobId = $news_item->getMobId();
         $size += ilUtil::dirsize(ilObjMediaObject::_getDirectory($mobId));
     }
     return $size;
 }