Documentation TYPO3 par Ameos

showpic.php

00001 <?php
00002 /***************************************************************
00003 *  Copyright notice
00004 *
00005 *  (c) 1999-2004 Kasper Skaarhoj (kasperYYYY@typo3.com)
00006 *  All rights reserved
00007 *
00008 *  This script is part of the TYPO3 project. The TYPO3 project is
00009 *  free software; you can redistribute it and/or modify
00010 *  it under the terms of the GNU General Public License as published by
00011 *  the Free Software Foundation; either version 2 of the License, or
00012 *  (at your option) any later version.
00013 *
00014 *  The GNU General Public License can be found at
00015 *  http://www.gnu.org/copyleft/gpl.html.
00016 *  A copy is found in the textfile GPL.txt and important notices to the license
00017 *  from the author is found in LICENSE.txt distributed with these scripts.
00018 *
00019 *
00020 *  This script is distributed in the hope that it will be useful,
00021 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
00022 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00023 *  GNU General Public License for more details.
00024 *
00025 *  This copyright notice MUST APPEAR in all copies of the script!
00026 ***************************************************************/
00052 // *******************************
00053 // Set error reporting
00054 // *******************************
00055 error_reporting (E_ALL ^ E_NOTICE);
00056 
00057 
00058 // ***********************
00059 // Paths are setup
00060 // ***********************
00061 define('TYPO3_OS', stristr(PHP_OS,'win')&&!stristr(PHP_OS,'darwin')?'WIN':'');
00062 define('TYPO3_MODE','FE');
00063 define('PATH_thisScript',str_replace('//','/', str_replace('\\','/', (php_sapi_name()=='cgi'||php_sapi_name()=='isapi' ||php_sapi_name()=='cgi-fcgi')&&($_SERVER['ORIG_PATH_TRANSLATED']?$_SERVER['ORIG_PATH_TRANSLATED']:$_SERVER['PATH_TRANSLATED'])? ($_SERVER['ORIG_PATH_TRANSLATED']?$_SERVER['ORIG_PATH_TRANSLATED']:$_SERVER['PATH_TRANSLATED']):($_SERVER['ORIG_SCRIPT_FILENAME']?$_SERVER['ORIG_SCRIPT_FILENAME']:$_SERVER['SCRIPT_FILENAME']))));
00064 
00065 define('PATH_site', dirname(PATH_thisScript).'/');
00066 define('PATH_t3lib', PATH_site.'t3lib/');
00067 define('PATH_tslib', PATH_site.'tslib/');
00068 define('PATH_typo3conf', PATH_site.'typo3conf/');
00069 define('TYPO3_mainDir', 'typo3/');              // This is the directory of the backend administration for the sites of this TYPO3 installation.
00070 
00071 require_once(PATH_t3lib.'class.t3lib_div.php');
00072 require_once(PATH_t3lib.'class.t3lib_extmgm.php');
00073 
00074 // ******************
00075 // Including config
00076 // ******************
00077 require_once(PATH_t3lib.'config_default.php');
00078 if (!defined ('TYPO3_db'))      die ('The configuration file was not included.');
00079 
00080 require_once(PATH_t3lib.'class.t3lib_db.php');
00081 $TYPO3_DB = t3lib_div::makeInstance('t3lib_DB');
00082 
00083 require_once(PATH_t3lib.'class.t3lib_stdgraphic.php');
00084 
00085 
00086 
00087 
00088 
00097 class SC_tslib_showpic {
00098         var $content;           // Page content accumulated here.
00099 
00100                 // Parameters loaded into these internal variables:
00101         var $file;
00102         var $width;
00103         var $height;
00104         var $sample;
00105         var $alternativeTempPath;
00106         var $effects;
00107         var $frame;
00108         var $bodyTag;
00109         var $title;
00110         var $wrap;
00111         var $md5;
00112 
00118         function init() {
00119                         // Loading internal vars with the GET/POST parameters from outside:
00120                 $this->file = t3lib_div::_GP('file');
00121                 $this->width = t3lib_div::_GP('width');
00122                 $this->height = t3lib_div::_GP('height');
00123                 $this->sample = t3lib_div::_GP('sample');
00124                 $this->alternativeTempPath = t3lib_div::_GP('alternativeTempPath');
00125                 $this->effects = t3lib_div::_GP('effects');
00126                 $this->frame = t3lib_div::_GP('frame');
00127                 $this->bodyTag = t3lib_div::_GP('bodyTag');
00128                 $this->title = t3lib_div::_GP('title');
00129                 $this->wrap = t3lib_div::_GP('wrap');
00130                 $this->md5 = t3lib_div::_GP('md5');
00131 
00132                 // ***********************
00133                 // Check parameters
00134                 // ***********************
00135                         // If no file-param is given, we must exit
00136                 if (!$this->file)       {
00137                         die('Parameter Error: No file given.');
00138                 }
00139 
00140                         // Chech md5-checksum: If this md5-value does not match the one submitted, then we fail... (this is a kind of security that somebody don't just hit the script with a lot of different parameters
00141                 $md5_value = md5($this->file.'|'.$this->width.'|'.$this->height.'|'.$this->effects.'|'.$GLOBALS['TYPO3_CONF_VARS']['SYS']['encryptionKey'].'|');
00142                 if ($md5_value!=$this->md5) {
00143                         die('Parameter Error: Wrong parameters sent.');
00144                 }
00145 
00146                 // ***********************
00147                 // Check the file. If must be in a directory beneath the dir of this script...
00148                 // $this->file remains unchanged, because of the code in stdgraphic, but we do check if the file exists within the current path
00149                 // ***********************
00150 
00151                 $test_file=PATH_site.$this->file;
00152                 if (!t3lib_div::validPathStr($test_file))       {
00153                         die('Parameter Error: No valid filepath');
00154                 }
00155                 if (!@is_file($test_file))      {
00156                         die('The given file was not found');
00157                 }
00158         }
00159 
00166         function main() {
00167 
00168                         // Creating stdGraphic object, initialize it and make image:
00169                 $img = t3lib_div::makeInstance('t3lib_stdGraphic');
00170                 $img->mayScaleUp = 0;
00171                 $img->init();
00172                 if ($this->sample)      {$img->scalecmd = '-sample';}
00173                 if ($this->alternativeTempPath && t3lib_div::inList($GLOBALS['TYPO3_CONF_VARS']['FE']['allowedTempPaths'],$this->alternativeTempPath))  {
00174                         $img->tempPath = $this->alternativeTempPath;
00175                 }
00176 
00177                 #if ($GLOBALS['TYPO3_CONF_VARS']['GFX']['enable_typo3temp_db_tracking'])        {
00178                                 // Need to connect to database, because this may be used (eg. by stdgraphic)
00179                         $GLOBALS['TYPO3_DB']->sql_pconnect(TYPO3_db_host, TYPO3_db_username, TYPO3_db_password);
00180                 #}
00181 
00182                 if (strstr($this->width.$this->height, 'm')) {$max='m';} else {$max='';}
00183 
00184                 $this->height = t3lib_div::intInRange($this->height,0,1000);
00185                 $this->width = t3lib_div::intInRange($this->width,0,1000);
00186                 if ($this->frame)       {$this->frame = intval($this->frame);}
00187                 $imgInfo = $img->imageMagickConvert($this->file,'web',$this->width.$max,$this->height,$img->IMparams($this->effects),$this->frame,'');
00188 
00189 
00190                         // Create HTML output:
00191                 $this->content='';
00192                 $this->content.='
00193 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
00194 
00195 <html>
00196 <head>
00197         <title>'.htmlspecialchars($this->title ? $this->title : "Image").'</title>
00198 </head>
00199                 '.($this->bodyTag ? $this->bodyTag : '<body>');
00200 
00201                 if (is_array($imgInfo)) {
00202                         $wrapParts = explode('|',$this->wrap);
00203                         $this->content.=trim($wrapParts[0]).$img->imgTag($imgInfo).trim($wrapParts[1]);
00204                 }
00205                 $this->content.='
00206                 </body>
00207                 </html>';
00208         }
00209 
00215         function printContent() {
00216                 echo $this->content;
00217         }
00218 }
00219 
00220 // Include extension?
00221 if (defined('TYPO3_MODE') && $TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['tslib/showpic.php'])       {
00222         include_once($TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['tslib/showpic.php']);
00223 }
00224 
00225 
00226 
00227 
00228 
00229 
00230 
00231 
00232 
00233 
00234 
00235 
00236 // Make instance:
00237 $SOBE = t3lib_div::makeInstance('SC_tslib_showpic');
00238 $SOBE->init();
00239 $SOBE->main();
00240 $SOBE->printContent();
00241 ?>


Généré par Les spécialistes TYPO3 avec  doxygen 1.4.6