/**
  * Renders the specified object into images.
  * The images do not need to be of the preview image size.
  * 
  * @param ilObjFile $obj The object to create images from.
  * @return array An array of ilRenderedImage containing the absolute file paths to the images.
  */
 protected function renderImages($obj)
 {
     $numOfPreviews = $this->getMaximumNumberOfPreviews();
     // get file path
     $filepath = $obj->getFile();
     $inputFile = $this->prepareFileForExec($filepath);
     // create a temporary file name and remove its extension
     $output = str_replace(".tmp", "", ilUtil::ilTempnam());
     // use '#' instead of '%' as it gets replaced by 'escapeShellArg' on windows!
     $outputFile = $output . "_#02d.png";
     // create images with ghostscript (we use PNG here as it has better transparency quality)
     // gswin32c -dBATCH -dNOPAUSE -dSAFER -dFirstPage=1 -dLastPage=5 -sDEVICE=pngalpha -dEPSCrop -r72 -o $outputFile $inputFile
     // gswin32c -dBATCH -dNOPAUSE -dSAFER -dFirstPage=1 -dLastPage=5 -sDEVICE=jpeg -dJPEGQ=90 -r72 -o $outputFile $inputFile
     $args = sprintf("-dBATCH -dNOPAUSE -dSAFER -dFirstPage=1 -dLastPage=%d -sDEVICE=pngalpha -dEPSCrop -r72 -o %s %s", $numOfPreviews, str_replace("#", "%", ilUtil::escapeShellArg($outputFile)), ilUtil::escapeShellArg($inputFile));
     ilUtil::execQuoted(PATH_TO_GHOSTSCRIPT, $args);
     // was a temporary file created? then delete it
     if ($filepath != $inputFile) {
         @unlink($inputFile);
     }
     // check each file and add it
     $images = array();
     $outputFile = str_replace("#", "%", $outputFile);
     for ($i = 1; $i <= $numOfPreviews; $i++) {
         $imagePath = sprintf($outputFile, $i);
         if (!file_exists($imagePath)) {
             break;
         }
         $images[] = new ilRenderedImage($imagePath);
     }
     return $images;
 }
 function validateXML($file)
 {
     exec(ilUtil::getJavaPath() . " -jar " . ilUtil::escapeShellArg(ILIAS_ABSOLUTE_PATH . "/Modules/ScormAicc/validation/vali.jar") . " " . ilUtil::escapeShellArg($file) . " 2>&1", $error);
     if (count($error) != 0) {
         $this->summary[] = "";
         $this->summary[] = "<b>File: {$file}</b>";
         foreach ($error as $line) {
             $this->summary[] = $line;
             //echo "<br><b>".$line."</b>";
         }
     }
 }
 /**
  * Download all submitted files of an assignment (all user)
  *
  * @param	$members		array of user names, key is user id
  */
 function downloadAllDeliveredFiles($a_eph_id, $a_ass_id, $members)
 {
     global $lng, $ilObjDataCache, $ilias;
     include_once "./Services/Utilities/classes/class.ilUtil.php";
     include_once "./Customizing/global/plugins/Services/Repository/RepositoryObject/Ephorus/classes/class.ilFSStorageEphorus.php";
     $storage = new ilFSStorageEphorus($a_eph_id, $a_ass_id);
     $storage->create();
     ksort($members);
     //$savepath = $this->getEphorusPath() . "/" . $this->obj_id . "/";
     $savepath = $storage->getAbsoluteSubmissionPath();
     $cdir = getcwd();
     // important check: if the directory does not exist
     // ILIAS stays in the current directory (echoing only a warning)
     // and the zip command below archives the whole ILIAS directory
     // (including the data directory) and sends a mega file to the user :-o
     if (!is_dir($savepath)) {
         return;
     }
     // Safe mode fix
     //		chdir($this->getEphorusPath());
     chdir($storage->getTempPath());
     $zip = PATH_TO_ZIP;
     // check first, if we have enough free disk space to copy all files to temporary directory
     $tmpdir = ilUtil::ilTempnam();
     ilUtil::makeDir($tmpdir);
     chdir($tmpdir);
     $dirsize = 0;
     foreach ($members as $id => $object) {
         $directory = $savepath . DIRECTORY_SEPARATOR . $id;
         $dirsize += ilUtil::dirsize($directory);
     }
     if ($dirsize > disk_free_space($tmpdir)) {
         return -1;
     }
     // copy all member directories to the temporary folder
     // switch from id to member name and append the login if the member name is double
     // ensure that no illegal filenames will be created
     // remove timestamp from filename
     $cache = array();
     foreach ($members as $id => $user) {
         $sourcedir = $savepath . DIRECTORY_SEPARATOR . $id;
         if (!is_dir($sourcedir)) {
             continue;
         }
         $userName = ilObjUser::_lookupName($id);
         $directory = ilUtil::getASCIIFilename(trim($userName["lastname"]) . "_" . trim($userName["firstname"]));
         if (array_key_exists($directory, $cache)) {
             // first try is to append the login;
             $directory = ilUtil::getASCIIFilename($directory . "_" . trim(ilObjUser::_lookupLogin($id)));
             if (array_key_exists($directory, $cache)) {
                 // second and secure: append the user id as well.
                 $directory .= "_" . $id;
             }
         }
         $cache[$directory] = $directory;
         ilUtil::makeDir($directory);
         $sourcefiles = scandir($sourcedir);
         foreach ($sourcefiles as $sourcefile) {
             if ($sourcefile == "." || $sourcefile == "..") {
                 continue;
             }
             $targetfile = trim(basename($sourcefile));
             $pos = strpos($targetfile, "_");
             if ($pos === false) {
             } else {
                 $targetfile = substr($targetfile, $pos + 1);
             }
             $targetfile = $directory . DIRECTORY_SEPARATOR . $targetfile;
             $sourcefile = $sourcedir . DIRECTORY_SEPARATOR . $sourcefile;
             if (!copy($sourcefile, $targetfile)) {
                 //echo 'Could not copy '.$sourcefile.' to '.$targetfile;
                 $ilias->raiseError('Could not copy ' . basename($sourcefile) . " to '" . $targetfile . "'.", $ilias->error_obj->MESSAGE);
             } else {
                 // preserve time stamp
                 touch($targetfile, filectime($sourcefile));
             }
         }
     }
     $tmpfile = ilUtil::ilTempnam();
     $tmpzipfile = $tmpfile . ".zip";
     // Safe mode fix
     $zipcmd = $zip . " -r " . ilUtil::escapeShellArg($tmpzipfile) . " .";
     exec($zipcmd);
     ilUtil::delDir($tmpdir);
     $assTitle = ilEphAssignment::lookupTitle($a_ass_id);
     chdir($cdir);
     ilUtil::deliverFile($tmpzipfile, (strlen($assTitle) == 0 ? strtolower($lng->txt("rep_robj_xeph_ephorus_assignment")) : $assTitle) . ".zip", "", false, true);
 }
 /**
  * Upload new image file
  * 
  * @param array $a_upload
  * @return bool
  */
 function uploadImage(array $a_upload)
 {
     if (!$this->id) {
         return false;
     }
     $this->deleteImage();
     // #10074
     $clean_name = preg_replace("/[^a-zA-Z0-9\\_\\.\\-]/", "", $a_upload["name"]);
     $path = $this->initStorage($this->id);
     $original = "org_" . $this->id . "_" . $clean_name;
     $thumb = "thb_" . $this->id . "_" . $clean_name;
     $processed = $this->id . "_" . $clean_name;
     if (@move_uploaded_file($a_upload["tmp_name"], $path . $original)) {
         chmod($path . $original, 0770);
         $blga_set = new ilSetting("blga");
         $dimensions = $blga_set->get("banner_width") . "x" . $blga_set->get("banner_height");
         // take quality 100 to avoid jpeg artefacts when uploading jpeg files
         // taking only frame [0] to avoid problems with animated gifs
         $original_file = ilUtil::escapeShellArg($path . $original);
         $thumb_file = ilUtil::escapeShellArg($path . $thumb);
         $processed_file = ilUtil::escapeShellArg($path . $processed);
         ilUtil::execConvert($original_file . "[0] -geometry 100x100 -quality 100 JPEG:" . $thumb_file);
         ilUtil::execConvert($original_file . "[0] -geometry " . $dimensions . "! -quality 100 JPEG:" . $processed_file);
         $this->setImage($processed);
         return true;
     }
     return false;
 }
 /**
  * Upload video preview picture
  *
  * @param
  * @return
  */
 function generatePreviewPic($a_width, $a_height)
 {
     $item = $this->getMediaItem("Standard");
     if ($item->getLocationType() == "LocalFile" && is_int(strpos($item->getFormat(), "image/"))) {
         $dir = ilObjMediaObject::_getDirectory($this->getId());
         $file = $dir . "/" . $item->getLocation();
         if (is_file($file)) {
             if (ilUtil::isConvertVersionAtLeast("6.3.8-3")) {
                 ilUtil::execConvert(ilUtil::escapeShellArg($file) . "[0] -geometry " . $a_width . "x" . $a_height . "^ -gravity center -extent " . $a_width . "x" . $a_height . " PNG:" . $dir . "/mob_vpreview.png");
             } else {
                 ilUtil::convertImage($file, $dir . "/mob_vpreview.png", "PNG", $a_width . "x" . $a_height);
             }
         }
     }
 }
Example #6
0
 /**
  * unzip file
  *
  * @param	string	$a_file		full path/filename
  * @param	boolean	$overwrite	pass true to overwrite existing files
  */
 function unzip($a_file, $overwrite = false)
 {
     //global $ilias;
     $pathinfo = pathinfo($a_file);
     $dir = $pathinfo["dirname"];
     $file = $pathinfo["basename"];
     // unzip
     $cdir = getcwd();
     chdir($dir);
     $unzip = $this->ini->readVariable("tools", "unzip");
     $unzipcmd = $unzip . " -Z -1 " . ilUtil::escapeShellArg($file);
     exec($unzipcmd, $arr);
     $zdirs = array();
     foreach ($arr as $line) {
         if (is_int(strpos($line, "/"))) {
             $zdir = substr($line, 0, strrpos($line, "/"));
             $nr = substr_count($zdir, "/");
             //echo $zdir." ".$nr."<br>";
             while ($zdir != "") {
                 $nr = substr_count($zdir, "/");
                 $zdirs[$zdir] = $nr;
                 // collect directories
                 //echo $dir." ".$nr."<br>";
                 $zdir = substr($zdir, 0, strrpos($zdir, "/"));
             }
         }
     }
     asort($zdirs);
     foreach ($zdirs as $zdir => $nr) {
         ilUtil::createDirectory($zdir);
     }
     // real unzip
     if ($overvwrite) {
         $unzipcmd = $unzip . " " . ilUtil::escapeShellArg($file);
     } else {
         $unzipcmd = $unzip . " -o " . ilUtil::escapeShellArg($file);
     }
     exec($unzipcmd);
     chdir($cdir);
 }
Example #7
0
 /**
  * Upload new image file
  * 
  * @param array $a_upload
  * @return bool
  */
 function uploadImage(array $a_upload, $a_clone = false)
 {
     if (!$this->id) {
         return false;
     }
     $this->deleteImage();
     // #10074
     $clean_name = preg_replace("/[^a-zA-Z0-9\\_\\.\\-]/", "", $a_upload["name"]);
     $path = $this->initStorage($this->id);
     $original = "org_" . $this->id . "_" . $clean_name;
     $thumb = "thb_" . $this->id . "_" . $clean_name;
     $processed = $this->id . "_" . $clean_name;
     $success = false;
     if (!$a_clone) {
         $success = @move_uploaded_file($a_upload["tmp_name"], $path . $original);
     } else {
         $success = @copy($a_upload["tmp_name"], $path . $original);
     }
     if ($success) {
         chmod($path . $original, 0770);
         // take quality 100 to avoid jpeg artefacts when uploading jpeg files
         // taking only frame [0] to avoid problems with animated gifs
         $original_file = ilUtil::escapeShellArg($path . $original);
         $thumb_file = ilUtil::escapeShellArg($path . $thumb);
         $processed_file = ilUtil::escapeShellArg($path . $processed);
         ilUtil::execConvert($original_file . "[0] -geometry \"100x100>\" -quality 100 PNG:" . $thumb_file);
         ilUtil::execConvert($original_file . "[0] -geometry \"" . self::getImageSize() . ">\" -quality 100 PNG:" . $processed_file);
         $this->setImage($processed);
         return true;
     }
     return false;
 }
 function newModuleVersionUpload()
 {
     global $_FILES, $rbacsystem;
     $unzip = PATH_TO_UNZIP;
     $tocheck = "imsmanifest.xml";
     include_once 'Services/FileSystem/classes/class.ilUploadFiles.php';
     // check create permission before because the uploaded file will be copied
     if (!$rbacsystem->checkAccess("write", $_GET["ref_id"])) {
         $this->ilias->raiseError($this->lng->txt("no_create_permission"), $this->ilias->error_obj->WARNING);
     } elseif ($_FILES["scormfile"]["name"]) {
         // check if file was uploaded
         $source = $_FILES["scormfile"]["tmp_name"];
         if ($source == 'none' || !$source) {
             ilUtil::sendInfo($this->lng->txt("upload_error_file_not_found"), true);
             $this->newModuleVersion();
             return;
         }
     } elseif ($_POST["uploaded_file"]) {
         // check if the file is in the ftp directory and readable
         if (!ilUploadFiles::_checkUploadFile($_POST["uploaded_file"])) {
             $this->ilias->raiseError($this->lng->txt("upload_error_file_not_found"), $this->ilias->error_obj->MESSAGE);
         }
         // copy the uploaded file to the client web dir to analyze the imsmanifest
         // the copy will be moved to the lm directory or deleted
         $source = CLIENT_WEB_DIR . "/" . $_POST["uploaded_file"];
         ilUploadFiles::_copyUploadFile($_POST["uploaded_file"], $source);
         $source_is_copy = true;
     } else {
         ilUtil::sendInfo($this->lng->txt("upload_error_file_not_found"), true);
         $this->newModuleVersion();
         return;
     }
     // fim.
     //unzip the imsmanifest-file from new uploaded file
     $pathinfo = pathinfo($source);
     $dir = $pathinfo["dirname"];
     $file = $pathinfo["basename"];
     $cdir = getcwd();
     chdir($dir);
     //we need more flexible unzip here than ILIAS standard classes allow
     $unzipcmd = $unzip . " -o " . ilUtil::escapeShellArg($source) . " " . $tocheck;
     exec($unzipcmd);
     chdir($cdir);
     $tmp_file = $dir . "/" . $tocheck . "." . $_GET["ref_id"];
     rename($dir . "/" . $tocheck, $tmp_file);
     $new_manifest = file_get_contents($tmp_file);
     //remove temp file
     unlink($tmp_file);
     //get old manifest file
     $old_manifest = file_get_contents($this->object->getDataDirectory() . "/" . $tocheck);
     //reload fixed version of file
     $check = '/xmlns="http:\\/\\/www.imsglobal.org\\/xsd\\/imscp_v1p1"/';
     $replace = "xmlns=\"http://www.imsproject.org/xsd/imscp_rootv1p1p2\"";
     $reload_manifest = preg_replace($check, $replace, $new_manifest);
     //do testing for converted versions as well as earlier ILIAS version messed up utf8 conversion
     if (strcmp($new_manifest, $old_manifest) == 0 || strcmp(utf8_encode($new_manifest), $old_manifest) == 0 || strcmp($reload_manifest, $old_manifest) == 0 || strcmp(utf8_encode($reload_manifest), $old_manifest) == 0) {
         //get exisiting module version
         $module_version = $this->object->getModuleVersion();
         if ($_FILES["scormfile"]["name"]) {
             //build targetdir in lm_data
             $file_path = $this->object->getDataDirectory() . "/" . $_FILES["scormfile"]["name"] . "." . $module_version;
             //move to data directory and add subfix for versioning
             ilUtil::moveUploadedFile($_FILES["scormfile"]["tmp_name"], $_FILES["scormfile"]["name"], $file_path);
         } else {
             //build targetdir in lm_data
             $file_path = $this->object->getDataDirectory() . "/" . $_POST["uploaded_file"] . "." . $module_version;
             // move the already copied file to the lm_data directory
             rename($source, $file_path);
         }
         //unzip and replace old extracted files
         ilUtil::unzip($file_path, true);
         ilUtil::renameExecutables($this->object->getDataDirectory());
         //(security)
         //increase module version
         $this->object->setModuleVersion($module_version + 1);
         $this->object->update();
         //redirect to properties and display success
         ilUtil::sendInfo($this->lng->txt("cont_new_module_added"), true);
         ilUtil::redirect("ilias.php?baseClass=ilSAHSEditGUI&ref_id=" . $_GET["ref_id"]);
         exit;
     } else {
         if ($source_is_copy) {
             unlink($source);
         }
         ilUtil::sendInfo($this->lng->txt("cont_invalid_new_module"), true);
         $this->newModuleVersion();
     }
 }
 /**
  * Upload user image
  */
 function uploadUserPicture()
 {
     global $ilUser;
     if ($this->workWithUserSetting("upload")) {
         if (!$this->form->hasFileUpload("userfile")) {
             if ($this->form->getItemByPostVar("userfile")->getDeletionFlag()) {
                 $ilUser->removeUserPicture();
             }
             return;
         } else {
             $webspace_dir = ilUtil::getWebspaceDir();
             $image_dir = $webspace_dir . "/usr_images";
             $store_file = "usr_" . $ilUser->getID() . "." . "jpg";
             // store filename
             $ilUser->setPref("profile_image", $store_file);
             $ilUser->update();
             // move uploaded file
             $uploaded_file = $this->form->moveFileUpload($image_dir, "userfile", "upload_" . $ilUser->getId() . "pic");
             if (!$uploaded_file) {
                 ilUtil::sendFailure($this->lng->txt("upload_error", true));
                 $this->ctrl->redirect($this, "showProfile");
             }
             chmod($uploaded_file, 0770);
             // take quality 100 to avoid jpeg artefacts when uploading jpeg files
             // taking only frame [0] to avoid problems with animated gifs
             $show_file = "{$image_dir}/usr_" . $ilUser->getId() . ".jpg";
             $thumb_file = "{$image_dir}/usr_" . $ilUser->getId() . "_small.jpg";
             $xthumb_file = "{$image_dir}/usr_" . $ilUser->getId() . "_xsmall.jpg";
             $xxthumb_file = "{$image_dir}/usr_" . $ilUser->getId() . "_xxsmall.jpg";
             $uploaded_file = ilUtil::escapeShellArg($uploaded_file);
             $show_file = ilUtil::escapeShellArg($show_file);
             $thumb_file = ilUtil::escapeShellArg($thumb_file);
             $xthumb_file = ilUtil::escapeShellArg($xthumb_file);
             $xxthumb_file = ilUtil::escapeShellArg($xxthumb_file);
             if (ilUtil::isConvertVersionAtLeast("6.3.8-3")) {
                 ilUtil::execConvert($uploaded_file . "[0] -geometry 200x200^ -gravity center -extent 200x200 -quality 100 JPEG:" . $show_file);
                 ilUtil::execConvert($uploaded_file . "[0] -geometry 100x100^ -gravity center -extent 100x100 -quality 100 JPEG:" . $thumb_file);
                 ilUtil::execConvert($uploaded_file . "[0] -geometry 75x75^ -gravity center -extent 75x75 -quality 100 JPEG:" . $xthumb_file);
                 ilUtil::execConvert($uploaded_file . "[0] -geometry 30x30^ -gravity center -extent 30x30 -quality 100 JPEG:" . $xxthumb_file);
             } else {
                 ilUtil::execConvert($uploaded_file . "[0] -geometry 200x200 -quality 100 JPEG:" . $show_file);
                 ilUtil::execConvert($uploaded_file . "[0] -geometry 100x100 -quality 100 JPEG:" . $thumb_file);
                 ilUtil::execConvert($uploaded_file . "[0] -geometry 75x75 -quality 100 JPEG:" . $xthumb_file);
                 ilUtil::execConvert($uploaded_file . "[0] -geometry 30x30 -quality 100 JPEG:" . $xxthumb_file);
             }
         }
     }
     //		$this->saveProfile();
 }
 /**
  *	produce pdf out of html with htmldoc
  *   @param  html    String  HTML-Data given to create pdf-file
  *   @param  pdf_file    String  Filename to save pdf in
  * @static
  */
 public static function htmlfile2pdf($html_file, $pdf_file)
 {
     $htmldoc_path = PATH_TO_HTMLDOC;
     $htmldoc = "--no-toc ";
     $htmldoc .= "--no-jpeg ";
     $htmldoc .= "--webpage ";
     $htmldoc .= "--outfile " . ilUtil::escapeShellArg($pdf_file) . " ";
     $htmldoc .= "--bodyfont Arial ";
     $htmldoc .= "--charset iso-8859-15 ";
     $htmldoc .= "--color ";
     $htmldoc .= "--size A4  ";
     // --landscape
     $htmldoc .= "--format pdf ";
     $htmldoc .= "--footer ... ";
     $htmldoc .= "--header ... ";
     $htmldoc .= "--left 60 ";
     // $htmldoc .= "--right 200 ";
     $htmldoc .= $html_file;
     ilUtil::execQuoted($htmldoc_path, $htmldoc);
 }
Example #11
0
 /**
  * Extract image from video file
  *
  * @param string $a_file source file (full path included)
  * @param string $a_target_dir target directory (no trailing "/")
  * @param string $a_target_filename target file name (no path!)
  *
  * @return string new file (full path)
  */
 static function extractImage($a_file, $a_target_filename, $a_target_dir = "", $a_sec = 1)
 {
     //echo "-$a_file-$a_target_filename-$a_target_dir-$a_sec-<br>";
     $spi = pathinfo($a_file);
     // use source directory if no target directory is passed
     $target_dir = $a_target_dir != "" ? $a_target_dir : $spi['dirname'];
     $target_file = $target_dir . "/" . $a_target_filename;
     $sec = (int) $a_sec;
     $cmd = "-y -i " . ilUtil::escapeShellArg($a_file) . " -r 1 -f image2 -vframes 1 -ss " . $sec . " " . ilUtil::escapeShellArg($target_file);
     //echo "-$cmd-"; exit;
     $ret = self::exec($cmd . " 2>&1");
     self::$last_return = $ret;
     if (is_file($target_file)) {
         return $target_file;
     } else {
         include_once "./Services/MediaObjects/exceptions/class.ilFFmpegException.php";
         throw new ilFFmpegException("It was not possible to extract an image from " . basename($a_file) . ".");
     }
 }
 /**
  * save container icons
  */
 function saveIcons($a_big_icon, $a_small_icon, $a_tiny_icon)
 {
     global $ilDB;
     $this->createContainerDirectory();
     $cont_dir = $this->getContainerDirectory();
     // save big icon
     $big_geom = $this->ilias->getSetting("custom_icon_big_width") . "x" . $this->ilias->getSetting("custom_icon_big_height");
     $big_file_name = $cont_dir . "/icon_big.png";
     if (is_file($a_big_icon)) {
         $a_big_icon = ilUtil::escapeShellArg($a_big_icon);
         $big_file_name = ilUtil::escapeShellArg($big_file_name);
         ilUtil::execConvert($a_big_icon . "[0] -geometry " . $big_geom . " PNG:" . $big_file_name);
     }
     if (is_file($cont_dir . "/icon_big.png")) {
         ilContainer::_writeContainerSetting($this->getId(), "icon_big", 1);
     } else {
         ilContainer::_writeContainerSetting($this->getId(), "icon_big", 0);
     }
     // save small icon
     $small_geom = $this->ilias->getSetting("custom_icon_small_width") . "x" . $this->ilias->getSetting("custom_icon_small_height");
     $small_file_name = $cont_dir . "/icon_small.png";
     if (is_file($a_small_icon)) {
         $a_small_icon = ilUtil::escapeShellArg($a_small_icon);
         $small_file_name = ilUtil::escapeShellArg($small_file_name);
         ilUtil::execConvert($a_small_icon . "[0] -geometry " . $small_geom . " PNG:" . $small_file_name);
     }
     if (is_file($cont_dir . "/icon_small.png")) {
         ilContainer::_writeContainerSetting($this->getId(), "icon_small", 1);
     } else {
         ilContainer::_writeContainerSetting($this->getId(), "icon_small", 0);
     }
     // save tiny icon
     $tiny_geom = $this->ilias->getSetting("custom_icon_tiny_width") . "x" . $this->ilias->getSetting("custom_icon_tiny_height");
     $tiny_file_name = $cont_dir . "/icon_tiny.png";
     if (is_file($a_tiny_icon)) {
         $a_tiny_icon = ilUtil::escapeShellArg($a_tiny_icon);
         $tiny_file_name = ilUtil::escapeShellArg($tiny_file_name);
         ilUtil::execConvert($a_tiny_icon . "[0] -geometry " . $tiny_geom . " PNG:" . $tiny_file_name);
     }
     if (is_file($cont_dir . "/icon_tiny.png")) {
         ilContainer::_writeContainerSetting($this->getId(), "icon_tiny", 1);
     } else {
         ilContainer::_writeContainerSetting($this->getId(), "icon_tiny", 0);
     }
 }
 /**
  * Creates a preview image path from the specified source image.
  * 
  * @param string $src_img_path The source image path.
  * @param string $dest_img_path The destination image path.
  * @return bool true, if the preview was created; otherwise, false.
  */
 private function createPreviewImage($src_img_path, $dest_img_path)
 {
     // create resize argument
     $imgSize = $this->getImageSize();
     $resizeArg = $imgSize . "x" . $imgSize . (ilUtil::isWindows() ? "^" : "\\") . ">";
     // cmd: convert $src_img_path -background white -flatten -resize 280x280 -quality 85 -sharpen 0x0.5 $dest_img_path
     $args = sprintf("%s -background white -flatten -resize %s -quality %d -sharpen 0x0.5 %s", ilUtil::escapeShellArg($src_img_path), $resizeArg, $this->getImageQuality(), ilUtil::escapeShellArg($dest_img_path));
     ilUtil::execConvert($args);
     return is_file($dest_img_path);
 }
Example #14
0
 function getXMLZip()
 {
     global $ilias;
     $zip = PATH_TO_ZIP;
     exec($zip . ' ' . ilUtil::escapeShellArg($this->getDirectory() . '/' . $this->getFileName()) . " " . ilUtil::escapeShellArg($this->getDirectory() . '/' . '1.zip'));
     return $this->getDirectory() . '/1.zip';
 }
Example #15
0
 /**
  * upload user image
  *
  * (original method by ratana ty)
  */
 function uploadUserPictureObject()
 {
     global $ilUser, $rbacsystem;
     // User folder
     if ($this->usrf_ref_id == USER_FOLDER_ID and !$rbacsystem->checkAccess('visible,read', $this->usrf_ref_id)) {
         $this->ilias->raiseError($this->lng->txt("msg_no_perm_modify_user"), $this->ilias->error_obj->MESSAGE);
     }
     // if called from local administration $this->usrf_ref_id is category id
     // Todo: this has to be fixed. Do not mix user folder id and category id
     if ($this->usrf_ref_id != USER_FOLDER_ID) {
         // check if user is assigned to category
         if (!$rbacsystem->checkAccess('cat_administrate_users', $this->object->getTimeLimitOwner())) {
             $this->ilias->raiseError($this->lng->txt("msg_no_perm_modify_user"), $this->ilias->error_obj->MESSAGE);
         }
     }
     $userfile_input = $this->form_gui->getItemByPostVar("userfile");
     if ($_FILES["userfile"]["tmp_name"] == "") {
         if ($userfile_input->getDeletionFlag()) {
             $this->object->removeUserPicture();
         }
         return;
     }
     if ($_FILES["userfile"]["size"] == 0) {
         ilUtil::sendFailure($this->lng->txt("msg_no_file"));
     } else {
         $webspace_dir = ilUtil::getWebspaceDir();
         $image_dir = $webspace_dir . "/usr_images";
         $store_file = "usr_" . $this->object->getId() . "." . "jpg";
         // store filename
         $this->object->setPref("profile_image", $store_file);
         $this->object->update();
         // move uploaded file
         $uploaded_file = $image_dir . "/upload_" . $this->object->getId() . "pic";
         if (!ilUtil::moveUploadedFile($_FILES["userfile"]["tmp_name"], $_FILES["userfile"]["name"], $uploaded_file, false)) {
             ilUtil::sendFailure($this->lng->txt("upload_error", true));
             $this->ctrl->redirect($this, "showProfile");
         }
         chmod($uploaded_file, 0770);
         // take quality 100 to avoid jpeg artefacts when uploading jpeg files
         // taking only frame [0] to avoid problems with animated gifs
         $show_file = "{$image_dir}/usr_" . $this->object->getId() . ".jpg";
         $thumb_file = "{$image_dir}/usr_" . $this->object->getId() . "_small.jpg";
         $xthumb_file = "{$image_dir}/usr_" . $this->object->getId() . "_xsmall.jpg";
         $xxthumb_file = "{$image_dir}/usr_" . $this->object->getId() . "_xxsmall.jpg";
         $uploaded_file = ilUtil::escapeShellArg($uploaded_file);
         $show_file = ilUtil::escapeShellArg($show_file);
         $thumb_file = ilUtil::escapeShellArg($thumb_file);
         $xthumb_file = ilUtil::escapeShellArg($xthumb_file);
         $xxthumb_file = ilUtil::escapeShellArg($xxthumb_file);
         if (ilUtil::isConvertVersionAtLeast("6.3.8-3")) {
             ilUtil::execConvert($uploaded_file . "[0] -geometry 200x200^ -gravity center -extent 200x200 -quality 100 JPEG:" . $show_file);
             ilUtil::execConvert($uploaded_file . "[0] -geometry 100x100^ -gravity center -extent 100x100 -quality 100 JPEG:" . $thumb_file);
             ilUtil::execConvert($uploaded_file . "[0] -geometry 75x75^ -gravity center -extent 75x75 -quality 100 JPEG:" . $xthumb_file);
             ilUtil::execConvert($uploaded_file . "[0] -geometry 30x30^ -gravity center -extent 30x30 -quality 100 JPEG:" . $xxthumb_file);
         } else {
             ilUtil::execConvert($uploaded_file . "[0] -geometry 200x200 -quality 100 JPEG:" . $show_file);
             ilUtil::execConvert($uploaded_file . "[0] -geometry 100x100 -quality 100 JPEG:" . $thumb_file);
             ilUtil::execConvert($uploaded_file . "[0] -geometry 75x75 -quality 100 JPEG:" . $xthumb_file);
             ilUtil::execConvert($uploaded_file . "[0] -geometry 30x30 -quality 100 JPEG:" . $xxthumb_file);
         }
     }
 }
 /**
  * Save an icon
  * 
  * @param 	string		path to the uploaded file
  * @param 	string		size ("big", "small", "tiny" or "svg")
  * @param	string		level ("type" or "object")
  * @param	integer		type id or object id 
  */
 static function _saveIcon($a_upload_path, $a_size, $a_level, $a_id)
 {
     global $ilSetting;
     if (is_file($a_upload_path)) {
         $icon_path = self::_createWebspaceDir($a_level, $a_id) . "/" . self::_getIconName($a_size);
         if ($a_size == "svg") {
             ilUtil::moveUploadedFile($a_upload_path, 'icon', $icon_path);
         } else {
             switch ($a_size) {
                 case "small":
                     $geom = self::SMALL_ICON_SIZE;
                     break;
                 case "tiny":
                     $geom = self::TINY_ICON_SIZE;
                     break;
                 case "big":
                 default:
                     $geom = self::BIG_ICON_SIZE;
                     break;
             }
             $a_upload_path = ilUtil::escapeShellArg($a_upload_path);
             $icon_path = ilUtil::escapeShellArg($icon_path);
             ilUtil::execConvert($a_upload_path . "[0] -geometry " . $geom . " PNG:" . $icon_path);
         }
     }
 }