/** * Create a HTML page with a full preview of the document * * @param Array ( * hash => string, directory inside .office home of the user * images => Array () filenames of full size images * actualPage => integer index of actual page * ) * */ public static function createHtmlFullDocumentPreview($params) { if ($params === null || !is_array($params)) { throw new EyeInvalidArgumentException('Missing or invalid $params'); } if (!isset($params['checknum'])) { throw new EyeInvalidArgumentException('Missing or invalid $params[\'checknum\']'); } if (!isset($params['hash'])) { throw new EyeInvalidArgumentException('Missing or invalid $params[\'hash\']'); } if (!isset($params['filename'])) { throw new EyeInvalidArgumentException('Missing or invalid $params[\'filename\']'); } if (!isset($params['index'])) { throw new EyeInvalidArgumentException('Missing or invalid $params[\'index\']'); } if (!isset($params['pagescount'])) { throw new EyeInvalidArgumentException('Missing or invalid $params[\'index\']'); } $checknum = $params['checknum']; $hash = $params['hash']; $filename = $params['filename']; $filenameBegin = substr($filename, 0, strpos($filename, '-') + 1); $filenameEnd = strchr($filename, '.'); $index = $params['index']; $pagesCount = $params['pagescount']; $linkSkel = 'index.php?message=createHtmlFullDocumentPreview&mobile=1&checknum=' . $checknum . '¶ms[checknum]=' . $checknum . '¶ms[hash]=' . $hash . '¶ms[filename]=' . $filenameBegin . '%pagenumber%' . $filenameEnd . '¶ms[index]=%pagenumber%¶ms[pagescount]=' . $pagesCount; $headerParams = array('pages' => array(), 'actualPage' => $index); //Create pages links for ($i = 0; $i < $pagesCount; ++$i) { $newLink = str_replace('%pagenumber%', $i, $linkSkel); $headerParams['pages'][] = array('url' => $newLink, 'name' => 'Page ' . (string) ($i + 1)); } // Disabled next / prev / Select if we are just showing one page if ($pagesCount == 1) { $headerParams['showBackButton'] = false; $headerParams['showNextButton'] = false; $headerParams['showSelectButton'] = false; } $imageUrl = 'index.php?message=getScaledImageByHash&mobile=1&checknum=' . $checknum . '¶ms[hash]=' . $hash . '¶ms[filename]=' . $filename; $imageUrl = str_replace('"', '', $imageUrl); $html = ' <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>eyeOS mobile version</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <!--<meta name="viewport" content="initial-scale=0.7"/>--> <link rel="stylesheet" href="eyeos/extern/js/jquery/lib/jquerymobile/jquery.mobile-1.0a3.css" /> <!-- <link rel="stylesheet" href="eyeos/extern/js/jquery/lib/jquerymobile/jquery.mobile-1.0a3.min.css" /> --> <link rel="icon" type="image/png" href="index.php?extern=images/favicon.png" /> <style type="text/css"> body { width: 100%; padding: 0; margin: 0; background-color: #CCCCCC; } #page_Container { margin-bottom: 30px; padding-top: 60px; } #page { max-width: 98%; width: 98%; } </style> </head> <body>' . self::createHtmlNavigationHeader($headerParams) . '<center id="page_Container"> <img id="page" src="' . $imageUrl . '" /> </center> </body> </html>'; $response = MMapManager::getCurrentResponse(); $response->setBody($html); }
public static function getImg($path) { $myFile = FSI::getFile($path); $len = $myFile->getSize(); $response = MMapManager::getCurrentResponse(); $myExt = strtolower($myFile->getExtension()); // setting headers $response->getHeaders()->append('Content-Type: image/' . $myExt); $response->getHeaders()->append('Content-Length: ' . $len); $response->getHeaders()->append('Accept-Ranges: bytes'); $response->getHeaders()->append('X-Pad: avoid browser bug'); // preparing the rendering of the response (with the content of target file) $response->setBodyRenderer(new FileReaderBodyRenderer($myFile->getInputStream())); }
public function getAvatarPicture($params) { $userId = $params[0]; $user = UMManager::getInstance()->getUserById($params['userId']); $settings = MetaManager::getInstance()->retrieveMeta($user); $file = null; if ($settings->get('eyeos.user.picture.url') !== null) { $file = FSI::getFile($settings->get('eyeos.user.picture.url')); } if ($file === null || !$file->isReadable()) { $file = FSI::getFile('sys:///extern/images/empty_profile.png'); } $response = MMapManager::getCurrentResponse(); $bodyrenderer = new FileReaderBodyRenderer($file->getInputStream()); // Set headers $response->getHeaders()->append('Content-Type: ' . mime_content_type($file->getName())); $response->getHeaders()->append('Content-Length: ' . $file->getSize()); $response->getHeaders()->append('Accept-Ranges: bytes'); $response->getHeaders()->append('X-Pad: avoid browser bug'); $response->setBodyRenderer($bodyrenderer); }
/** * Return the scaled version of image. * * @param Array $params = ( * maxHeight => integer, Max Height of output image * maxWidth => integer, Max Width of output image * path => string Path of input image * ) */ public static function getScaledImage($params) { if ($params === null || !is_array($params)) { throw new EyeInvalidArgumentException('Missing or invalid $params'); } if (!isset($params['path']) || !is_string($params['path'])) { throw new EyeInvalidArgumentException('Missing or invalid $params[\'path\']'); } $path = $params['path']; $maxHeight = isset($params['maxHeight']) ? intval($params['maxHeight']) : null; $maxWidth = isset($params['maxWidth']) ? intval($params['maxWidth']) : null; $response = MMapManager::getCurrentResponse(); $myFile = FSI::getFile($params['path']); if (method_exists($myFile, 'getRealFile')) { $fileName = AdvancedPathLib::getPhpLocalHackPath($myFile->getRealFile()->getAbsolutePath()); } else { $fileName = $params['path']; } $info = GetImageSize($fileName); $width = $info[0]; $height = $info[1]; $mime = $info['mime']; //Calculate new dimensions $newDimensions = self::calculateDimensions(array('height' => $height, 'width' => $width, 'maxHeight' => $maxHeight, 'maxWidth' => $maxWidth)); $newHeight = $newDimensions['height']; $newWidth = $newDimensions['width']; if ($newHeight == $height && $newWidth == $width) { //No resize is necessary $imageData = $myFile->getContents(); } else { // What sort of image? $type = substr(strrchr($mime, '/'), 1); switch ($type) { case 'jpeg': $image_create_func = 'ImageCreateFromJPEG'; $image_save_func = 'ImageJPEG'; $new_image_ext = 'jpg'; break; case 'png': $image_create_func = 'ImageCreateFromPNG'; $image_save_func = 'ImagePNG'; $new_image_ext = 'png'; break; case 'bmp': $image_create_func = 'ImageCreateFromBMP'; $image_save_func = 'ImageBMP'; $new_image_ext = 'bmp'; break; case 'gif': $image_create_func = 'ImageCreateFromGIF'; $image_save_func = 'ImageGIF'; $new_image_ext = 'gif'; break; case 'vnd.wap.wbmp': $image_create_func = 'ImageCreateFromWBMP'; $image_save_func = 'ImageWBMP'; $new_image_ext = 'bmp'; break; case 'xbm': $image_create_func = 'ImageCreateFromXBM'; $image_save_func = 'ImageXBM'; $new_image_ext = 'xbm'; break; default: $image_create_func = 'ImageCreateFromJPEG'; $image_save_func = 'ImageJPEG'; $new_image_ext = 'jpg'; } // Create blank image with new dimensions $imageData = ImageCreateTrueColor($newWidth, $newHeight); $originalImage = $image_create_func($fileName); ImageCopyResampled($imageData, $originalImage, 0, 0, 0, 0, $newWidth, $newHeight, $width, $height); $image_save_func($imageData); } $imagevariable = ob_get_contents(); ob_end_clean(); header('Content-Type:' . $mime); header('Content-Length: ' . strlen($imagevariable)); header('Accept-Ranges: bytes'); header('X-Pad: avoid browser bug'); echo $imagevariable; exit; }
/** * @param array( * 'workgroupId' => workgroupId * ) */ public function getWorkgroupPicture($params) { if (!isset($params['workgroupId']) || !is_string($params['workgroupId'])) { throw new EyeInvalidArgumentException('Missing or invalid $params[\'workgroupId\'].'); } $workgroup = UMManager::getInstance()->getWorkgroupById($params['workgroupId']); $settings = MetaManager::getInstance()->retrieveMeta($workgroup); $file = null; if ($settings->get('eyeos.workgroup.picture.url') !== null) { $file = FSI::getFile($settings->get('eyeos.workgroup.picture.url')); } if ($file === null || !$file->isReadable()) { $file = FSI::getFile('sys:///extern/images/workgroup-empty.png'); } $response = MMapManager::getCurrentResponse(); $bodyrenderer = new FileReaderBodyRenderer($file->getInputStream()); // Set headers $response->getHeaders()->append('Content-Type: image/' . $file->getExtension()); $response->getHeaders()->append('Content-Length: ' . $file->getSize()); $response->getHeaders()->append('Accept-Ranges: bytes'); $response->getHeaders()->append('X-Pad: avoid browser bug'); $response->setBodyRenderer($bodyrenderer); }
public static function viewTempImg($params) { $parts = explode('_', $params); $filepath = 'home:///'; $myFile = FSI::getFile($filepath); $myFile->checkWritePermission(); $myRealFile = $myFile->getRealFile(); $fileNameDestination = AdvancedPathLib::getPhpLocalHackPath($myRealFile->getPath()); $fileNameDestination .= '/.office/' . utf8_basename($parts[0]) . '/' . utf8_basename($params); $info = pathinfo($fileNameDestination); $myExt = strtolower($info['extension']); $response = MMapManager::getCurrentResponse(); header('Content-Type: image/' . $myExt); header('Content-Length: ' . filesize($fileNameDestination)); header('Accept-Ranges: bytes'); header('X-Pad: avoid browser bug'); readfile($fileNameDestination); exit; }
public static function getImg($path) { if (dirname($path) == 'images') { $name = utf8_basename($path); $info = pathinfo($path); $filepath = 'home:///'; $myFile = FSI::getFile($filepath); $myRealFile = $myFile->getRealFile(); $fileNameDestination = AdvancedPathLib::getPhpLocalHackPath($myRealFile->getPath()); $fileNameDestination .= '/.office/documents/' . ProcManager::getInstance()->getCurrentProcess()->getPid(); $fileNameDestination .= '/images/' . $name; header('Content-Type: image/' . $info['extension']); header('Content-Length: ' . filesize($fileNameDestination)); header('Accept-Ranges: bytes'); header('X-Pad: avoid browser bug'); readfile($fileNameDestination); exit; } else { $myFile = FSI::getFile($path); $len = $myFile->getSize(); $response = MMapManager::getCurrentResponse(); $myExt = strtolower($myFile->getExtension()); // setting headers $response->getHeaders()->append('Content-Type: image/' . $myExt); $response->getHeaders()->append('Content-Length: ' . $len); $response->getHeaders()->append('Accept-Ranges: bytes'); $response->getHeaders()->append('X-Pad: avoid browser bug'); // preparing the rendering of the response (with the content of target file) $response->setBodyRenderer(new FileReaderBodyRenderer($myFile->getInputStream())); } }