示例#1
0
    /**
     * 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 . '&params[checknum]=' . $checknum . '&params[hash]=' . $hash . '&params[filename]=' . $filenameBegin . '%pagenumber%' . $filenameEnd . '&params[index]=%pagenumber%&params[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 . '&params[hash]=' . $hash . '&params[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);
    }
示例#2
0
 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()));
 }
示例#3
0
 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);
 }
示例#6
0
 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;
 }
示例#7
0
 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()));
     }
 }