Project

General

Profile

Bug #18533 » rename_typo4.diff

Administrator Admin, 2008-04-01 17:21

View differences:

misc/phpcheck/incfile.php (Arbeitskopie)
<?php
// This checks for my own IP at home. You can just remove the if-statement.
if (1==0 || ($_SERVER['REMOTE_ADDR']!='127.0.0.1')) {
die('In the source distribution of TYPO3, this script is disabled by a die() function call.<br/><b>Fix:</b> Open the file misc/phpcheck/incfile.php and remove/out-comment the line that outputs this message!');
die('In the source distribution of TYPO4, this script is disabled by a die() function call.<br/><b>Fix:</b> Open the file misc/phpcheck/incfile.php and remove/out-comment the line that outputs this message!');
}
SetCookie('test_script_cookie', 'Cookie Value!', 0, '/');
include('../../t3lib/class.t3lib_div.php');
include('../../t4lib/class.t3lib_div.php');
error_reporting (E_ALL ^ E_NOTICE);
define("TYPO3_OS", stristr(PHP_OS,"win")&&!stristr(PHP_OS,"darwin")?"WIN":"");
define("TYPO4_OS", stristr(PHP_OS,"win")&&!stristr(PHP_OS,"darwin")?"WIN":"");
/*
define("PATH_thisScript",
TYPO3_OS=="WIN" ?
TYPO4_OS=="WIN" ?
str_replace('//','/',str_replace('\\','/', $HTTP_SERVER_VARS["PATH_TRANSLATED"]?$HTTP_SERVER_VARS["PATH_TRANSLATED"]:getenv("PATH_TRANSLATED"))) :
(php_sapi_name()=="cgi"?(getenv("PATH_TRANSLATED")?getenv("PATH_TRANSLATED"):getenv("SCRIPT_FILENAME")):$HTTP_SERVER_VARS["PATH_TRANSLATED"])
);
......
if (count($_GET) || $_SERVER["HTTP_REFERER"]) {
# KOMPENSATED:
echo "<H3>t3lib_div::getIndpEnv()</H3><p>These are 'system variables' returned from t3lib_div::getIndpEnv() and should be universal for any server configuration:</p>";
t3lib_div::debug(t3lib_div::getIndpEnv("_ARRAY"));
echo "<H3>t4lib_div::getIndpEnv()</H3><p>These are 'system variables' returned from t3lib_div::getIndpEnv() and should be universal for any server configuration:</p>";
t4lib_div::debug(t3lib_div::getIndpEnv("_ARRAY"));
t3lib_div::debug(array(
t4lib_div::debug(array(
"PHP_OS"=>PHP_OS,
"TYPO3_OS"=>TYPO3_OS,
"TYPO4_OS"=>TYPO3_OS,
"PATH_thisScript"=>PATH_thisScript,
"php_sapi_name()" => php_sapi_name()
));
......
##t3lib_div::debug(parse_url("http://admin:palindrom@192.168.1.4:8080/typo3/32/temp/phpcheck/index.php/arg1/arg2/arg3/index.php?arg1,arg2,arg3&p1=parameter1&p2[key]=value#link1"));
##t4lib_div::debug(parse_url("http://admin:palindrom@192.168.1.4:8080/typo4/32/temp/phpcheck/index.php/arg1/arg2/arg3/index.php?arg1,arg2,arg3&p1=parameter1&p2[key]=value#link1"));
echo "<H3>Raw values</H3><p>These are the raw 'system variables' returned from getenv(), HTTP_SERVER_VARS, HTTP_ENV_VARS etc. These are displayed here so we can find the right values via this testscript to map to with t3lib_div::getIndpEnv()</p>";
echo "<H3>Raw values</H3><p>These are the raw 'system variables' returned from getenv(), HTTP_SERVER_VARS, HTTP_ENV_VARS etc. These are displayed here so we can find the right values via this testscript to map to with t4lib_div::getIndpEnv()</p>";
$envTestVars = explode(",","REQUEST_URI,REMOTE_ADDR,REMOTE_HOST,PATH_INFO,SCRIPT_NAME,SCRIPT_FILENAME,HTTP_HOST,HTTP_USER_AGENT,HTTP_ACCEPT_ENCODING,HTTP_REFERER,QUERY_STRING");
$lines=array();
$lines[] = '<tr bgcolor="#eeeeee">
......
echo '<HR><a name="link1"></a>';
echo '<div style="border: 1px solid black; padding: 10px 10px 10px 10px;"><h3>What to do now?</h3>
<p>1) Click this link above once more: <a href="index.php?arg1,arg2,arg3&p1=parameter1&p2[key]='.substr(md5(time()),0,4).'#link1">Go to this page again.</a><BR>
2) Then save this HTML-page and send it to kasperYYYY@typo3.com with information about 1) which webserver (Apache/ISS), 2) Unix/Windows, 3) CGI or module (ISAPI)<br>
2) Then save this HTML-page and send it to kasperYYYY@typo4.com with information about 1) which webserver (Apache/ISS), 2) Unix/Windows, 3) CGI or module (ISAPI)<br>
2a) You might help us find any differences in your values to this <a href="reference.html" target="_blank">reference example</a> by comparing the values before you send the result (thanks).
<br>
3) If you are really advanced you try and click the link below here. With CGI-versions of servers it will most likely give an error page. If it does not, please send the output to me as well (save HTML-page and send to kasperYYYY@typo3.com). If you do this PATH_INFO test, please let me know.<br><br>
3) If you are really advanced you try and click the link below here. With CGI-versions of servers it will most likely give an error page. If it does not, please send the output to me as well (save HTML-page and send to kasperYYYY@typo4.com). If you do this PATH_INFO test, please let me know.<br><br>
4) For the really, really advanced folks, it might be interesting to see the output if you could place this link in the root of a domain. That means the index.php script will be executed from eg. "http://www.blablabla.com/" and not "http://www.blablabla.com/kaspers_test/" - it can make a difference.<br>
<br>
misc/superadmin.php (Arbeitskopie)
/***************************************************************
* Copyright notice
*
* (c) 1999-2008 Kasper Skaarhoj (kasperYYYY@typo3.com)
* (c) 1999-2008 Kasper Skaarhoj (kasperYYYY@typo4.com)
* All rights reserved
*
* This script is part of the Typo3 project. The Typo3 project is
......
*
* $Id$
*
* @author Kasper Skaarhoj <kasperYYYY@typo3.com>
* @author Kasper Skaarhoj <kasperYYYY@typo4.com>
*/
/*
* WHAT IS IT:
......
* relevant links to multiple Typo3 sites on a webserver.
*
* LOCATION:
* This script must be located in a directory with the Typo3 source available in typo3_src/
* The script includes the class t3lib/class.t3lib_superadmin.php
* This script must be located in a directory with the Typo3 source available in typo4_src/
* The script includes the class t4lib/class.t3lib_superadmin.php
*
* IMPORTANT:
* This script MUST be secured as it reads out password information an provides direct login links to sites!
......
*
* CONFIGURATION:
* The point is that you configure one or more directories (parent directories) on the webserver to the script.
* The script expects these directories (parents) to contain other directories (childs) exclusively with Typo3 sites in + any number of directories names 'typo3_src*' which will be ignored.
* The script expects these directories (parents) to contain other directories (childs) exclusively with Typo3 sites in + any number of directories names 'typo4_src*' which will be ignored.
* Every Typo3 site (child) in these parent directories will get listed in the interface.
*
* For each 'parent directory' you enter information like this:
*
* $parentDirs[] = array(
* 'dir'=> '/www/htdocs/typo3/32/',
* 'url' => 'http://192.168.1.4/typo3/32/'
* 'dir'=> '/www/htdocs/typo4/32/',
* 'url' => 'http://192.168.1.4/typo4/32/'
* );
*
* 'dir' is the absolute path of the parent directory where the sites are located in subdirs
......
// *****************
// Including:
// *****************
require_once ('./typo3_src/t3lib/class.t3lib_superadmin.php');
require_once ('./typo4_src/t4lib/class.t3lib_superadmin.php');
// *****************
......
// *****************
$parentDirs = array();
$parentDirs[] = array(
'dir'=> '/www/htdocs/typo3/commercial_sites/',
'url' => 'http://123.234.43.212/typo3/commercial_sites/'
'dir'=> '/www/htdocs/typo4/commercial_sites/',
'url' => 'http://123.234.43.212/typo4/commercial_sites/'
);
$parentDirs[] = array(
'dir'=> '/www/htdocs/typo3/nonprofit_sites/',
'url' => 'http://123.234.43.212/typo3/nonprofit_sites/'
'dir'=> '/www/htdocs/typo4/nonprofit_sites/',
'url' => 'http://123.234.43.212/typo4/nonprofit_sites/'
);
......
// *****************
// Start
// *****************
$superadmin = t3lib_div::makeInstance('t3lib_superadmin');
$superadmin = t4lib_div::makeInstance('t3lib_superadmin');
$superadmin->init($parentDirs);
$superadmin->defaultSet();
?>
index.php (Arbeitskopie)
/***************************************************************
* Copyright notice
*
* (c) 1999-2008 Kasper Skaarhoj (kasperYYYY@typo3.com)
* (c) 1999-2008 Kasper Skaarhoj (kasperYYYY@typo4.com)
* All rights reserved
*
* This script is part of the TYPO3 project. The TYPO3 project is
* This script is part of the TYPO4 project. The TYPO3 project is
* free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
......
***************************************************************/
/**
* This is the MAIN DOCUMENT of the TypoScript driven standard front-end (from the "cms" extension)
* Basically this is the "index.php" script which all requests for TYPO3 delivered pages goes to in the frontend (the website)
* Basically this is the "index.php" script which all requests for TYPO4 delivered pages goes to in the frontend (the website)
*
* $Id$
*
* @author Ren? Fritz <r.fritz@colorcube.de>
* @package TYPO3
* @package TYPO4
* @subpackage tslib
*/
......
define('PATH_site', dirname(PATH_thisScript).'/');
if (@is_dir(PATH_site.'typo3/sysext/cms/tslib/')) {
define('PATH_tslib', PATH_site.'typo3/sysext/cms/tslib/');
if (@is_dir(PATH_site.'typo4/sysext/cms/tslib/')) {
define('PATH_tslib', PATH_site.'typo4/sysext/cms/tslib/');
} elseif (@is_dir(PATH_site.'tslib/')) {
define('PATH_tslib', PATH_site.'tslib/');
} else {
......
$configured_tslib_path = '';
// example:
// $configured_tslib_path = '/var/www/mysite/typo3/sysext/cms/tslib/';
// $configured_tslib_path = '/var/www/mysite/typo4/sysext/cms/tslib/';
define('PATH_tslib', $configured_tslib_path);
}
t3lib/class.t3lib_stdgraphic.php (Arbeitskopie)
/***************************************************************
* Copyright notice
*
* (c) 1999-2008 Kasper Skaarhoj (kasperYYYY@typo3.com)
* (c) 1999-2008 Kasper Skaarhoj (kasperYYYY@typo4.com)
* All rights reserved
*
* This script is part of the TYPO3 project. The TYPO3 project is
* This script is part of the TYPO4 project. The TYPO3 project is
* free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
......
* Standard graphical functions
*
* $Id$
* Revised for TYPO3 3.6 July/2003 by Kasper Skaarhoj
* Revised for TYPO4 3.6 July/2003 by Kasper Skaarhoj
*
* @author Kasper Skaarhoj <kasperYYYY@typo3.com>
* @author Kasper Skaarhoj <kasperYYYY@typo4.com>
*/
/**
* [CLASS/FUNCTION INDEX of SCRIPT]
*
*
*
* 155: class t3lib_stdGraphic
* 155: class t4lib_stdGraphic
* 236: function init()
*
* SECTION: Layering images / "IMAGE" GIFBUILDER object
......
* 2266: function cacheImageDimensions($identifyResult)
* 2298: function getCachedImageDimensions($imageFile)
* 2332: function getImageScale($info,$w,$h,$options)
* 2438: function file_exists_typo3temp_file($output,$orig='')
* 2438: function file_exists_typo4temp_file($output,$orig='')
*
* SECTION: ImageMagick API functions
* 2499: function imageMagickIdentify($imagefile)
......
* Class contains a bunch of cool functions for manipulating graphics with GDlib/Freetype and ImageMagick
* VERY OFTEN used with gifbuilder that extends this class and provides a TypoScript API to using these functions
*
* @author Kasper Skaarhoj <kasperYYYY@typo3.com>
* @package TYPO3
* @subpackage t3lib
* @author Kasper Skaarhoj <kasperYYYY@typo4.com>
* @package TYPO4
* @subpackage t4lib
* @see tslib_gifBuilder
*/
class t3lib_stdGraphic {
class t4lib_stdGraphic {
// Internal configuration, set in init()
var $combineScript = 'combine'; // The ImageMagick filename used for combining two images. This name changed during the versions.
......
var $png_truecolor = false; // Set to true if generated png's should be truecolor by default
var $truecolorColors = 0xffffff; // 16777216 Colors is the maximum value for PNG, JPEG truecolor images (24-bit, 8-bit / Channel)
var $TTFLocaleConv = ''; // Used to recode input to TTF-functions for other charsets.
var $enable_typo3temp_db_tracking = 0; // If set, then all files in typo3temp will be logged in a database table. In addition to being a log of the files with original filenames, it also serves to secure that the same image is not rendered simultaneously by two different processes.
var $imageFileExt = 'gif,jpg,jpeg,png,tif,bmp,tga,pcx,ai,pdf'; // Commalist of file extensions perceived as images by TYPO3. List should be set to 'gif,png,jpeg,jpg' if IM is not available. Lowercase and no spaces between!
var $enable_typo4temp_db_tracking = 0; // If set, then all files in typo3temp will be logged in a database table. In addition to being a log of the files with original filenames, it also serves to secure that the same image is not rendered simultaneously by two different processes.
var $imageFileExt = 'gif,jpg,jpeg,png,tif,bmp,tga,pcx,ai,pdf'; // Commalist of file extensions perceived as images by TYPO4. List should be set to 'gif,png,jpeg,jpg' if IM is not available. Lowercase and no spaces between!
var $webImageExt = 'gif,jpg,jpeg,png'; // Commalist of web image extensions (can be shown by a webbrowser)
var $maskNegate = ''; // Will be ' -negate' if ImageMagick ver 5.2+. See init();
var $NO_IM_EFFECTS = '';
......
var $filenamePrefix=''; // Filename prefix for images scaled in imageMagickConvert()
var $imageMagickConvert_forceFileNameBody=''; // Forcing the output filename of imageMagickConvert() to this value. However after calling imageMagickConvert() it will be set blank again.
var $dontCheckForExistingTempFile = 0; // This flag should always be false. If set true, imageMagickConvert will always write a new file to the tempdir! Used for debugging.
var $dontCompress=0; // Prevents imageMagickConvert() from compressing the gif-files with t3lib_div::gif_compress()
var $dontCompress=0; // Prevents imageMagickConvert() from compressing the gif-files with t4lib_div::gif_compress()
var $dontUnlinkTempFiles=0; // For debugging ONLY!
var $alternativeOutputKey=''; // For debugging only. Filenames will not be based on mtime and only filename (not path) will be used. This key is also included in the hash of the filename...
......
var $workArea = Array();
// Constants:
var $tempPath = 'typo3temp/'; // The temp-directory where to store the files. Normally relative to PATH_site but is allowed to be the absolute path AS LONG AS it is a subdir to PATH_site.
var $tempPath = 'typo4temp/'; // The temp-directory where to store the files. Normally relative to PATH_site but is allowed to be the absolute path AS LONG AS it is a subdir to PATH_site.
var $absPrefix = ''; // Prefix for relative paths. Used in "show_item.php" script. Is prefixed the output file name IN imageMagickConvert()
var $scalecmd = '-geometry'; // ImageMagick scaling command; "-geometry" eller "-sample". Used in makeText() and imageMagickConvert()
var $im5fx_blurSteps='1x2,2x2,3x2,4x3,5x3,5x4,6x4,7x5,8x5,9x5'; // Used by v5_blur() to simulate 10 continuous steps of blurring
......
/**
* Charset conversion object:
*
* @var t3lib_cs
* @var t4lib_cs
*/
var $csConvObj;
var $nativeCharset=''; // Is set to the native character set of the input strings.
......
/**
* Init function. Must always call this when using the class.
* This function will read the configuration information from $GLOBALS['TYPO3_CONF_VARS']['GFX'] can set some values in internal variables.
* This function will read the configuration information from $GLOBALS['TYPO4_CONF_VARS']['GFX'] can set some values in internal variables.
*
* @return void
*/
function init() {
$gfxConf = $GLOBALS['TYPO3_CONF_VARS']['GFX'];
$gfxConf = $GLOBALS['TYPO4_CONF_VARS']['GFX'];
if (function_exists('imagecreatefromjpeg')&&function_exists('imagejpeg')) {
$this->gdlibExtensions .= ',jpg,jpeg';
......
if (function_exists('imagecreatefromgif')&&function_exists('imagegif')) {
$this->gdlibExtensions .= ',gif';
}
if ($GLOBALS['TYPO3_CONF_VARS']['GFX']['png_truecolor']) {
if ($GLOBALS['TYPO4_CONF_VARS']['GFX']['png_truecolor']) {
$this->png_truecolor = true;
}
if (!$gfxConf['gdlib_2'] || !function_exists('imagecreatetruecolor')) {
......
}
// Setting default JPG parameters:
$this->jpegQuality = t3lib_div::intInRange($gfxConf['jpg_quality'], 10, 100, 75);
$this->jpegQuality = t4lib_div::intInRange($gfxConf['jpg_quality'], 10, 100, 75);
$this->cmds['jpg'] = $this->cmds['jpeg'] = '-colorspace RGB -sharpen 50 -quality '.$this->jpegQuality;
if ($gfxConf['im_combine_filename']) $this->combineScript=$gfxConf['im_combine_filename'];
......
if ($gfxConf['TTFLocaleConv']) {
$this->TTFLocaleConv = $gfxConf['TTFLocaleConv'];
}
if ($gfxConf['enable_typo3temp_db_tracking']) {
$this->enable_typo3temp_db_tracking = $gfxConf['enable_typo3temp_db_tracking'];
if ($gfxConf['enable_typo4temp_db_tracking']) {
$this->enable_typo4temp_db_tracking = $gfxConf['enable_typo3temp_db_tracking'];
}
$this->imageFileExt = $gfxConf['imagefile_ext'];
......
$this->mayScaleUp=0;
}
if (TYPO3_MODE=='FE') {
if (TYPO4_MODE=='FE') {
$this->csConvObj = &$GLOBALS['TSFE']->csConvObj;
} elseif(is_object($GLOBALS['LANG'])) { // BE assumed:
$this->csConvObj = &$GLOBALS['LANG']->csConvObj;
} else { // The object may not exist yet, so we need to create it now. Happens in the Install Tool for example.
$this->csConvObj = t3lib_div::makeInstance('t3lib_cs');
$this->csConvObj = t4lib_div::makeInstance('t3lib_cs');
}
$this->nativeCharset = $GLOBALS['TYPO3_CONF_VARS']['BE']['forceCharset'];
$this->nativeCharset = $GLOBALS['TYPO4_CONF_VARS']['BE']['forceCharset'];
}
......
if ($conf['file'] && $conf['mask']) {
$imgInf = pathinfo($conf['file']);
$imgExt = strtolower($imgInf['extension']);
if (!t3lib_div::inList($this->gdlibExtensions, $imgExt)) {
if (!t4lib_div::inList($this->gdlibExtensions, $imgExt)) {
$BBimage = $this->imageMagickConvert($conf['file'],$this->gifExtension,'','','','','');
} else {
$BBimage = $this->getImageDimensions($conf['file']);
}
$maskInf = pathinfo($conf['mask']);
$maskExt = strtolower($maskInf['extension']);
if (!t3lib_div::inList($this->gdlibExtensions, $maskExt)) {
if (!t4lib_div::inList($this->gdlibExtensions, $maskExt)) {
$BBmask = $this->imageMagickConvert($conf['mask'],$this->gifExtension,'','','','','');
} else {
$BBmask = $this->getImageDimensions($conf['mask']);
......
*/
function copyImageOntoImage(&$im,$conf,$workArea) {
if ($conf['file']) {
if (!t3lib_div::inList($this->gdlibExtensions, $conf['BBOX'][2])) {
if (!t4lib_div::inList($this->gdlibExtensions, $conf['BBOX'][2])) {
$conf['BBOX']=$this->imageMagickConvert($conf['BBOX'][3],$this->gifExtension,'','','','','');
$conf['file']=$conf['BBOX'][3];
}
......
function copyGifOntoGif(&$im,$cpImg,$conf,$workArea) {
$cpW = imagesx($cpImg);
$cpH = imagesy($cpImg);
$tile = t3lib_div::intExplode(',',$conf['tile']);
$tile[0] = t3lib_div::intInRange($tile[0],1,20);
$tile[1] = t3lib_div::intInRange($tile[1],1,20);
$tile = t4lib_div::intExplode(',',$conf['tile']);
$tile[0] = t4lib_div::intInRange($tile[0],1,20);
$tile[1] = t4lib_div::intInRange($tile[1],1,20);
$cpOff = $this->objPosition($conf,$workArea,Array($cpW*$tile[0],$cpH*$tile[1]));
for ($xt=0;$xt<$tile[0];$xt++) {
......
* @param integer see PHP function "imagecopyresized()"
* @return void
* @access private
* @see t3lib_iconWorks::imagecopyresized()
* @see t4lib_iconWorks::imagecopyresized()
*/
function imagecopyresized(&$im, $cpImg, $Xstart, $Ystart, $cpImgCutX, $cpImgCutY, $w, $h, $w, $h) {
if ($this->imagecopyresized_fix) {
......
imagecopyresized($im_base, $cpImg, $Xstart, $Ystart, $cpImgCutX, $cpImgCutY, $w, $h, $w, $h); // Then copy the $cpImg onto that (the actual operation!)
$im = $im_base; // Set pointer
if (!$this->truecolor) {
$this->makeEffect($im, Array('value'=>'colors='.t3lib_div::intInRange($this->setup['reduceColors'], 256, $this->truecolorColors, 256))); // Reduce to "reduceColors" colors - make SURE that IM is working then!
$this->makeEffect($im, Array('value'=>'colors='.t4lib_div::intInRange($this->setup['reduceColors'], 256, $this->truecolorColors, 256))); // Reduce to "reduceColors" colors - make SURE that IM is working then!
}
} else {
imagecopyresized($im, $cpImg, $Xstart, $Ystart, $cpImgCutX, $cpImgCutY, $w, $h, $w, $h);
......
if (!$conf['niceText']) {
// Font Color is reserved:
if (!$this->truecolor) {
$reduce = t3lib_div::intInRange($this->setup['reduceColors'], 256, $this->truecolorColors, 256);
$reduce = t4lib_div::intInRange($this->setup['reduceColors'], 256, $this->truecolorColors, 256);
$this->reduceColors($im, $reduce-49, $reduce-50); // If "reduce-49" colors (or more) are used reduce them to "reduce-50"
}
$Fcolor = ImageColorAllocate($im, $cols[0],$cols[1],$cols[2]);
......
for ($a=0; $a<$conf['iterations']; $a++) {
if ($spacing || $wordSpacing) { // If any kind of spacing applys, we use this function:
$this->SpacedImageTTFText($im, $conf['fontSize'], $conf['angle'], $txtPos[0], $txtPos[1], $Fcolor, t3lib_stdGraphic::prependAbsolutePath($conf['fontFile']), $theText, $spacing, $wordSpacing, $conf['splitRendering.']);
$this->SpacedImageTTFText($im, $conf['fontSize'], $conf['angle'], $txtPos[0], $txtPos[1], $Fcolor, t4lib_stdGraphic::prependAbsolutePath($conf['fontFile']), $theText, $spacing, $wordSpacing, $conf['splitRendering.']);
} else {
$this->ImageTTFTextWrapper($im, $conf['fontSize'], $conf['angle'], $txtPos[0], $txtPos[1], $Fcolor, $conf['fontFile'], $theText, $conf['splitRendering.']);
}
......
$fileColor = $tmpStr.'_colorNT.'.$this->gifExtension;
$fileMask = $tmpStr.'_maskNT.'.$this->gifExtension;
// Scalefactor
$sF = t3lib_div::intInRange($conf['niceText.']['scaleFactor'],2,5);
$sF = t4lib_div::intInRange($conf['niceText.']['scaleFactor'],2,5);
$newW = ceil($sF*imagesx($im));
$newH = ceil($sF*imagesy($im));
......
ImageFilledRectangle($maskImg, 0, 0, $newW, $newH, $Bcolor);
$Fcolor = ImageColorAllocate($maskImg, 0,0,0);
if ($spacing || $wordSpacing) { // If any kind of spacing applys, we use this function:
$this->SpacedImageTTFText($maskImg, $conf['fontSize'], $conf['angle'], $txtPos[0], $txtPos[1], $Fcolor, t3lib_stdGraphic::prependAbsolutePath($conf['fontFile']), $theText, $spacing, $wordSpacing, $conf['splitRendering.'],$sF);
$this->SpacedImageTTFText($maskImg, $conf['fontSize'], $conf['angle'], $txtPos[0], $txtPos[1], $Fcolor, t4lib_stdGraphic::prependAbsolutePath($conf['fontFile']), $theText, $spacing, $wordSpacing, $conf['splitRendering.'],$sF);
} else {
$this->ImageTTFTextWrapper($maskImg, $conf['fontSize'], $conf['angle'], $txtPos[0], $txtPos[1], $Fcolor, $conf['fontFile'], $theText, $conf['splitRendering.'],$sF);
}
......
if ($this->V5_EFFECTS) {
$command.=$this->v5_sharpen($conf['niceText.']['sharpen']);
} else {
$command.=' -sharpen '.t3lib_div::intInRange($conf['niceText.']['sharpen'],1,99);
$command.=' -sharpen '.t4lib_div::intInRange($conf['niceText.']['sharpen'],1,99);
}
}
}
......
$result[1]=0;
break;
}
$result = $this->applyOffset($result,t3lib_div::intExplode(',',$conf['offset']));
$result = $this->applyOffset($result,t4lib_div::intExplode(',',$conf['offset']));
$result = $this->applyOffset($result,$workArea);
return $result;
}
......
* @see makeText(), calcTextCordsForMap()
*/
function calcTextCordsForMap($cords,$offset, $conf) {
$pars = t3lib_div::intExplode(',',$conf['explode'].',');
$pars = t4lib_div::intExplode(',',$conf['explode'].',');
$newCords[0] = $cords[0]+$offset[0]-$pars[0];
$newCords[1] = $cords[1]+$offset[1]+$pars[1];
......
// Traverse string parts:
foreach($stringParts as $strCfg) {
$fontFile = t3lib_stdGraphic::prependAbsolutePath($strCfg['fontFile']);
$fontFile = t4lib_stdGraphic::prependAbsolutePath($strCfg['fontFile']);
if (is_readable($fontFile)) {
// Calculate Bounding Box for part:
$calc = ImageTTFBBox(t3lib_div::freetypeDpiComp($sF*$strCfg['fontSize']), $angle, $fontFile, $strCfg['str']);
$calc = ImageTTFBBox(t4lib_div::freetypeDpiComp($sF*$strCfg['fontSize']), $angle, $fontFile, $strCfg['str']);
// Calculate offsets:
if (!count($offsetInfo)) {
......
}
} else {
debug('cannot read file: '.$fontFile, 't3lib_stdGraphic::ImageTTFBBoxWrapper()');
debug('cannot read file: '.$fontFile, 't4lib_stdGraphic::ImageTTFBBoxWrapper()');
}
}
......
$y-= intval($strCfg['ySpaceBefore']);
}
$fontFile = t3lib_stdGraphic::prependAbsolutePath($strCfg['fontFile']);
$fontFile = t4lib_stdGraphic::prependAbsolutePath($strCfg['fontFile']);
if (is_readable($fontFile)) {
// Render part:
ImageTTFText($im, t3lib_div::freetypeDpiComp($sF*$strCfg['fontSize']), $angle, $x, $y, $colorIndex, $fontFile, $strCfg['str']);
ImageTTFText($im, t4lib_div::freetypeDpiComp($sF*$strCfg['fontSize']), $angle, $x, $y, $colorIndex, $fontFile, $strCfg['str']);
// Calculate offset to apply:
$wordInf = ImageTTFBBox(t3lib_div::freetypeDpiComp($sF*$strCfg['fontSize']), $angle, t3lib_stdGraphic::prependAbsolutePath($strCfg['fontFile']), $strCfg['str']);
$wordInf = ImageTTFBBox(t4lib_div::freetypeDpiComp($sF*$strCfg['fontSize']), $angle, t3lib_stdGraphic::prependAbsolutePath($strCfg['fontFile']), $strCfg['str']);
$x+= $wordInf[2]-$wordInf[0]+intval($splitRendering['compX'])+intval($strCfg['xSpaceAfter']);
$y+= $wordInf[5]-$wordInf[7]-intval($splitRendering['compY'])-intval($strCfg['ySpaceAfter']);
} else {
debug('cannot read file: '.$fontFile, 't3lib_stdGraphic::ImageTTFTextWrapper()');
debug('cannot read file: '.$fontFile, 't4lib_stdGraphic::ImageTTFTextWrapper()');
}
}
......
// Traverse the split-rendering configuration:
// Splitting will create more entries in $result with individual configurations.
if (is_array($splitRendering)) {
$sKeyArray = t3lib_TStemplate::sortedKeyList($splitRendering);
$sKeyArray = t4lib_TStemplate::sortedKeyList($splitRendering);
// Traverse configured options:
foreach($sKeyArray as $key) {
......
if (strlen($cfg['value'])) {
// Initialize range:
$ranges = t3lib_div::trimExplode(',',$cfg['value'],1);
$ranges = t4lib_div::trimExplode(',',$cfg['value'],1);
foreach($ranges as $i => $rangeDef) {
$ranges[$i] = t3lib_div::intExplode('-',$ranges[$i]);
$ranges[$i] = t4lib_div::intExplode('-',$ranges[$i]);
if (!isset($ranges[$i][1])) $ranges[$i][1] = $ranges[$i][0];
}
$newResult = array();
......
if ($currentState==-1) $currentState = $inRange; // Initialize first char
// Switch bank:
if ($inRange != $currentState && !t3lib_div::inList('32,10,13,9',$uNumber)) {
if ($inRange != $currentState && !t4lib_div::inList('32,10,13,9',$uNumber)) {
// Set result:
if (strlen($bankAccum)) {
......
if (!$conf['niceText']) {
$sF = 1;
} else { // NICETEXT::
$sF = t3lib_div::intInRange($conf['niceText.']['scaleFactor'],2,5);
$sF = t4lib_div::intInRange($conf['niceText.']['scaleFactor'],2,5);
}
return $sF;
}
......
$thickness = intval($conf['thickness']);
if ($thickness) {
$txtConf['fontColor'] = $conf['color'];
$outLineDist = t3lib_div::intInRange($thickness,1,2);
$outLineDist = t4lib_div::intInRange($thickness,1,2);
for ($b=1;$b<=$outLineDist;$b++) {
if ($b==1) {
$it = 8;
......
function makeEmboss(&$im,$conf,$workArea,$txtConf) {
$conf['color']=$conf['highColor'];
$this->makeShadow($im,$conf,$workArea,$txtConf);
$newOffset = t3lib_div::intExplode(',',$conf['offset']);
$newOffset = t4lib_div::intExplode(',',$conf['offset']);
$newOffset[0]*=-1;
$newOffset[1]*=-1;
$conf['offset']=implode(',',$newOffset);
......
* @see tslib_gifBuilder::make(), makeText(), makeEmboss()
*/
function makeShadow(&$im,$conf,$workArea,$txtConf) {
$workArea = $this->applyOffset($workArea,t3lib_div::intExplode(',',$conf['offset']));
$blurRate = t3lib_div::intInRange(intval($conf['blur']),0,99);
$workArea = $this->applyOffset($workArea,t4lib_div::intExplode(',',$conf['offset']));
$blurRate = t4lib_div::intInRange(intval($conf['blur']),0,99);
if (!$blurRate || $this->NO_IM_EFFECTS) { // No effects if ImageMagick ver. 5+
$txtConf['fontColor'] = $conf['color'];
......
// Blurring of the mask
$times = ceil($blurRate/10); // How many blur-commands that is executed. Min = 1;
$newBlurRate = $blurRate*4; // Here I boost the blur-rate so that it is 100 already at 25. The rest is done by up to 99 iterations of the blur-command.
$newBlurRate = t3lib_div::intInRange($newBlurRate,1,99);
$newBlurRate = t4lib_div::intInRange($newBlurRate,1,99);
for ($a=0;$a<$times;$a++) { // Building blur-command
$command.=' -blur '.$blurRate;
}
......
// adjust the mask
$intensity = 40;
if ($conf['intensity']) {
$intensity = t3lib_div::intInRange($conf['intensity'],0,100);
$intensity = t4lib_div::intInRange($conf['intensity'],0,100);
}
$intensity = ceil(255-($intensity/100*255));
$this->inputLevels($blurTextImg,0,$intensity,$this->maskNegate);
$opacity = t3lib_div::intInRange(intval($conf['opacity']),0,100);
$opacity = t4lib_div::intInRange(intval($conf['opacity']),0,100);
if ($opacity && $opacity<100) {
$high = ceil(255*$opacity/100);
$this->outputLevels($blurTextImg,0,$high,$this->maskNegate); // reducing levels as the opacity demands
......
* @see tslib_gifBuilder::make()
*/
function makeBox(&$im,$conf,$workArea) {
$cords = t3lib_div::intExplode(',',$conf['dimensions'].',,,');
$cords = t4lib_div::intExplode(',',$conf['dimensions'].',,,');
$conf['offset']=$cords[0].','.$cords[1];
$cords = $this->objPosition($conf,$workArea,Array($cords[2],$cords[3]));
$cols=$this->convertColor($conf['color']);
if (!$this->truecolor) {
$reduce = t3lib_div::intInRange($this->setup['reduceColors'], 256, $this->truecolorColors, 256);
$reduce = t4lib_div::intInRange($this->setup['reduceColors'], 256, $this->truecolorColors, 256);
$this->reduceColors($im, $reduce-1, $reduce-2); // If "reduce-1" colors (or more) are used reduce them to "reduce-2"
}
$tmpColor = ImageColorAllocate($im, $cols[0],$cols[1],$cols[2]);
......
if ($this->V5_EFFECTS) {
$commands.=$this->v5_blur($value);
} else {
$commands.=' -blur '.t3lib_div::intInRange($value,1,99);
$commands.=' -blur '.t4lib_div::intInRange($value,1,99);
}
}
break;
......
if ($this->V5_EFFECTS) {
$commands.=$this->v5_sharpen($value);
} else {
$commands.=' -sharpen '.t3lib_div::intInRange($value,1,99);
$commands.=' -sharpen '.t4lib_div::intInRange($value,1,99);
}
}
break;
case 'rotate':
$commands.=' -rotate '.t3lib_div::intInRange($value,0,360);
$commands.=' -rotate '.t4lib_div::intInRange($value,0,360);
break;
case 'solarize':
$commands.=' -solarize '.t3lib_div::intInRange($value,0,99);
$commands.=' -solarize '.t4lib_div::intInRange($value,0,99);
break;
case 'swirl':
$commands.=' -swirl '.t3lib_div::intInRange($value,0,1000);
$commands.=' -swirl '.t4lib_div::intInRange($value,0,1000);
break;
case 'wave':
$params = t3lib_div::intExplode(',',$value);
$commands.=' -wave '.t3lib_div::intInRange($params[0],0,99).'x'.t3lib_div::intInRange($params[1],0,99);
$params = t4lib_div::intExplode(',',$value);
$commands.=' -wave '.t4lib_div::intInRange($params[0],0,99).'x'.t3lib_div::intInRange($params[1],0,99);
break;
case 'charcoal':
$commands.=' -charcoal '.t3lib_div::intInRange($value,0,100);
$commands.=' -charcoal '.t4lib_div::intInRange($value,0,100);
break;
case 'gray':
$commands.=' -colorspace GRAY';
break;
case 'edge':
$commands.=' -edge '.t3lib_div::intInRange($value,0,99);
$commands.=' -edge '.t4lib_div::intInRange($value,0,99);
break;
case 'emboss':
$commands.=' -emboss';
......
$commands.=' -flop';
break;
case 'colors':
$commands.=' -colors '.t3lib_div::intInRange($value,2,255);
$commands.=' -colors '.t4lib_div::intInRange($value,2,255);
break;
case 'shear':
$commands.=' -shear '.t3lib_div::intInRange($value,-90,90);
$commands.=' -shear '.t4lib_div::intInRange($value,-90,90);
break;
case 'invert':
$commands.=' -negate';
......
$effect = strtolower(trim($pairs[0]));
switch($effect) {
case 'inputlevels': // low,high
$params = t3lib_div::intExplode(',',$value);
$params = t4lib_div::intExplode(',',$value);
$this->inputLevels($im,$params[0],$params[1]);
break;
case 'outputlevels':
$params = t3lib_div::intExplode(',',$value);
$params = t4lib_div::intExplode(',',$value);
$this->outputLevels($im,$params[0],$params[1]);
break;
case 'autolevels':
......
*/
function crop(&$im,$conf) {
$this->setWorkArea(''); // clears workArea to total image
$cords = t3lib_div::intExplode(',',$conf['crop'].',,,');
$cords = t4lib_div::intExplode(',',$conf['crop'].',,,');
$conf['offset']=$cords[0].','.$cords[1];
$cords = $this->objPosition($conf,$this->workArea,Array($cords[2],$cords[3]));
......
* @see tslib_gifBuilder::make()
*/
function setWorkArea($workArea) {
$this->workArea = t3lib_div::intExplode(',',$workArea);
$this->workArea = t4lib_div::intExplode(',',$workArea);
$this->workArea = $this->applyOffset($this->workArea,$this->OFFSET);
if (!$this->workArea[2]) {$this->workArea[2]=$this->w;}
if (!$this->workArea[3]) {$this->workArea[3]=$this->h;}
......
*/
function outputLevels(&$im,$low,$high,$swap='') {
if ($low<$high){
$low = t3lib_div::intInRange($low,0,255);
$high = t3lib_div::intInRange($high,0,255);
$low = t4lib_div::intInRange($low,0,255);
$high = t4lib_div::intInRange($high,0,255);
if ($swap) {
$temp = $low;
......
*/
function inputLevels(&$im,$low,$high,$swap='') {
if ($low<$high){
$low = t3lib_div::intInRange($low,0,255);
$high = t3lib_div::intInRange($high,0,255);
$low = t4lib_div::intInRange($low,0,255);
$high = t4lib_div::intInRange($high,0,255);
if ($swap) {
$temp = $low;
......
$totalCols = ImageColorsTotal($im);
for ($c=0; $c<$totalCols; $c++) {
$cols = ImageColorsForIndex($im,$c);
$cols['red'] = t3lib_div::intInRange(($cols['red']-$low)/$delta*255, 0,255);
$cols['green'] = t3lib_div::intInRange(($cols['green']-$low)/$delta*255, 0,255);
$cols['blue'] = t3lib_div::intInRange(($cols['blue']-$low)/$delta*255, 0,255);
$cols['red'] = t4lib_div::intInRange(($cols['red']-$low)/$delta*255, 0,255);
$cols['green'] = t4lib_div::intInRange(($cols['green']-$low)/$delta*255, 0,255);
$cols['blue'] = t4lib_div::intInRange(($cols['blue']-$low)/$delta*255, 0,255);
ImageColorSet($im,$c,$cols['red'],$cols['green'],$cols['blue']);
}
}
......
* @return string Reduced file
*/
function IMreduceColors($file, $cols) {
$fI = t3lib_div::split_fileref($file);
$fI = t4lib_div::split_fileref($file);
$ext = strtolower($fI['fileext']);
$result = $this->randomName().'.'.$ext;
if (($reduce = t3lib_div::intInRange($cols, 0, ($ext=='gif'?256:$this->truecolorColors), 0))>0) {
if (($reduce = t4lib_div::intInRange($cols, 0, ($ext=='gif'?256:$this->truecolorColors), 0))>0) {
$params = ' -colors '.$reduce;
if (!$this->im_version_4) {
// IM4 doesn't have this options but forces them automatically if applicaple (<256 colors in image)
......
/**
* Checks if the $fontFile is already at an absolute path and if not, prepends the correct path.
* Use PATH_site unless we are in the backend.
* Call it by t3lib_stdGraphic::prependAbsolutePath()
* Call it by t4lib_stdGraphic::prependAbsolutePath()
*
* @param string The font file
* @return string The font file with absolute path.
*/
function prependAbsolutePath($fontFile) {
$absPath = defined('PATH_typo3') ? dirname(PATH_thisScript).'/' :PATH_site;
$fontFile = t3lib_div::isAbsPath($fontFile) ? $fontFile : t3lib_div::resolveBackPath($absPath.$fontFile);
$absPath = defined('PATH_typo4') ? dirname(PATH_thisScript).'/' :PATH_site;
$fontFile = t4lib_div::isAbsPath($fontFile) ? $fontFile : t3lib_div::resolveBackPath($absPath.$fontFile);
return $fontFile;
}
......
* @see makeText(), IMparams(), v5_blur()
*/
function v5_sharpen($factor) {
$factor = t3lib_div::intInRange(ceil($factor/10),0,10);
$factor = t4lib_div::intInRange(ceil($factor/10),0,10);
$sharpenArr=explode(',',','.$this->im5fx_sharpenSteps);
$sharpenF= trim($sharpenArr[$factor]);
......
* @see makeText(), IMparams(), v5_sharpen()
*/
function v5_blur($factor) {
$factor = t3lib_div::intInRange(ceil($factor/10),0,10);
$factor = t4lib_div::intInRange(ceil($factor/10),0,10);
$blurArr=explode(',',','.$this->im5fx_blurSteps);
$blurF= trim($blurArr[$factor]);
......
$cParts[1]=trim($cParts[1]);
if (substr($cParts[1],0,1)=='*') {
$val=doubleval(substr($cParts[1],1));
$col[0]=t3lib_div::intInRange($col[0]*$val,0,255);
$col[1]=t3lib_div::intInRange($col[1]*$val,0,255);
$col[2]=t3lib_div::intInRange($col[2]*$val,0,255);
$col[0]=t4lib_div::intInRange($col[0]*$val,0,255);
$col[1]=t4lib_div::intInRange($col[1]*$val,0,255);
$col[2]=t4lib_div::intInRange($col[2]*$val,0,255);
} else {
$val=intval($cParts[1]);
$col[0]=t3lib_div::intInRange($col[0]+$val,0,255);
$col[1]=t3lib_div::intInRange($col[1]+$val,0,255);
$col[2]=t3lib_div::intInRange($col[2]+$val,0,255);
$col[0]=t4lib_div::intInRange($col[0]+$val,0,255);
$col[1]=t4lib_div::intInRange($col[1]+$val,0,255);
$col[2]=t4lib_div::intInRange($col[2]+$val,0,255);
}
}
return $col;
......
$result[1]=0;
break;
}
$result = $this->applyOffset($result,t3lib_div::intExplode(',',$conf['offset']));
$result = $this->applyOffset($result,t4lib_div::intExplode(',',$conf['offset']));
$result = $this->applyOffset($result,$workArea);
return $result;
}
......
* @param string Additional ImageMagick parameters.
* @param string Refers to which frame-number to select in the image. '' or 0 will select the first frame, 1 will select the next and so on...
* @param array An array with options passed to getImageScale (see this function).
* @param boolean If set, then another image than the input imagefile MUST be returned. Otherwise you can risk that the input image is good enough regarding messures etc and is of course not rendered to a new, temporary file in typo3temp/. But this option will force it to.
* @param boolean If set, then another image than the input imagefile MUST be returned. Otherwise you can risk that the input image is good enough regarding messures etc and is of course not rendered to a new, temporary file in typo4temp/. But this option will force it to.
* @return array [0]/[1] is w/h, [2] is file extension and [3] is the filename.
* @see getImageScale(), typo3/show_item.php, fileList_ext::renderImage(), tslib_cObj::getImgResource(), SC_tslib_showpic::show(), maskImageOntoImage(), copyImageOntoImage(), scale()
* @see getImageScale(), typo4/show_item.php, fileList_ext::renderImage(), tslib_cObj::getImgResource(), SC_tslib_showpic::show(), maskImageOntoImage(), copyImageOntoImage(), scale()
*/
function imageMagickConvert($imagefile,$newExt='',$w='',$h='',$params='',$frame='',$options='',$mustCreate=0) {
if ($this->NO_IMAGE_MAGICK) {
......
$newExt = $info[2];
}
if ($newExt=='web') {
if (t3lib_div::inList($this->webImageExt,$info[2])) {
if (t4lib_div::inList($this->webImageExt,$info[2])) {
$newExt = $info[2];
} else {
$newExt = $this->gif_or_jpg($info[2],$info[0],$info[1]);
......
}
}
}
if (t3lib_div::inList($this->imageFileExt,$newExt)) {
if (t4lib_div::inList($this->imageFileExt,$newExt)) {
if (strstr($w.$h, 'm')) {$max=1;} else {$max=0;}
$data = $this->getImageScale($info,$w,$h,$options);
......
$cropscale = ($data['crs'] ? 'crs-V'.$data['cropV'].'H'.$data['cropH'] : '');
if ($this->alternativeOutputKey) {
$theOutputName = t3lib_div::shortMD5($command.$cropscale.basename($imagefile).$this->alternativeOutputKey.$frame);
$theOutputName = t4lib_div::shortMD5($command.$cropscale.basename($imagefile).$this->alternativeOutputKey.$frame);
} else {
$theOutputName = t3lib_div::shortMD5($command.$cropscale.$imagefile.filemtime($imagefile).$frame);
$theOutputName = t4lib_div::shortMD5($command.$cropscale.$imagefile.filemtime($imagefile).$frame);
}
if ($this->imageMagickConvert_forceFileNameBody) {
$theOutputName = $this->imageMagickConvert_forceFileNameBody;
......
// Register temporary filename:
$GLOBALS['TEMP_IMAGES_ON_PAGE'][] = $output;
if ($this->dontCheckForExistingTempFile || !$this->file_exists_typo3temp_file($output, $imagefile)) {
if ($this->dontCheckForExistingTempFile || !$this->file_exists_typo4temp_file($output, $imagefile)) {
$this->imageMagickExec($imagefile.$frame, $output, $command);
}
if (@file_exists($output)) {
......
$info=$this->getImageDimensions($info[3]);
}
if ($info[2]==$this->gifExtension && !$this->dontCompress) {
t3lib_div::gif_compress($info[3],''); // Compress with IM (lzw) or GD (rle) (Workaround for the absence of lzw-compression in GD)
t4lib_div::gif_compress($info[3],''); // Compress with IM (lzw) or GD (rle) (Workaround for the absence of lzw-compression in GD)
}
return $info;
}
......
*/
function getImageDimensions($imageFile) {
ereg('([^\.]*)$',$imageFile,$reg);
if (@file_exists($imageFile) && t3lib_div::inList($this->imageFileExt,strtolower($reg[0]))) {
if (@file_exists($imageFile) && t4lib_div::inList($this->imageFileExt,strtolower($reg[0]))) {
if ($returnArr = $this->getCachedImageDimensions($imageFile)) {
return $returnArr;
} else {
......
*
* @param array $identifyResult: Result of the getImageDimensions function
* @return boolean True if operation was successful
* @author Michael Stucki <michael@typo3.org> / Robert Lemke <rl@robertlemke.de>
* @author Michael Stucki <michael@typo4.org> / Robert Lemke <rl@robertlemke.de>
*/
function cacheImageDimensions($identifyResult) {
global $TYPO3_DB;
global $TYPO4_DB;
// Create a md5 hash of the filename
$md5Hash = md5_file($identifyResult[3]);
if ($md5Hash) {
......
'imagewidth' => $identifyResult[0],
'imageheight' => $identifyResult[1],
);
$TYPO3_DB->exec_INSERTquery('cache_imagesizes', $fieldArr);
if (!$err = $TYPO3_DB->sql_error()) {
$TYPO4_DB->exec_INSERTquery('cache_imagesizes', $fieldArr);
if (!$err = $TYPO4_DB->sql_error()) {
return true;
}
}
......
*
* @param string The image filepath
* @return array Returns an array where [0]/[1] is w/h, [2] is extension and [3] is the filename.
* @author Michael Stucki <michael@typo3.org> / Robert Lemke <rl@robertlemke.de>
* @author Michael Stucki <michael@typo4.org> / Robert Lemke <rl@robertlemke.de>
*/
function getCachedImageDimensions($imageFile) {
global $TYPO3_DB;
global $TYPO4_DB;
// Create a md5 hash of the filename
$md5Hash = md5_file($imageFile);
ereg('([^\.]*)$',$imageFile,$reg);
$res = $TYPO3_DB->exec_SELECTquery ('md5hash, imagewidth, imageheight', 'cache_imagesizes', 'md5filename='.$TYPO3_DB->fullQuoteStr(md5($imageFile),'cache_imagesizes'));
$res = $TYPO4_DB->exec_SELECTquery ('md5hash, imagewidth, imageheight', 'cache_imagesizes', 'md5filename='.$TYPO3_DB->fullQuoteStr(md5($imageFile),'cache_imagesizes'));
if ($res) {
if ($row = $TYPO3_DB->sql_fetch_assoc($res)) {
if ($row = $TYPO4_DB->sql_fetch_assoc($res)) {
if ($row['md5hash']!=$md5Hash) {
// file has changed, delete the row
$TYPO3_DB->exec_DELETEquery ('cache_imagesizes', 'md5hash='.$TYPO3_DB->fullQuoteStr($row['md5hash'],'cache_imagesizes'));
$TYPO4_DB->exec_DELETEquery ('cache_imagesizes', 'md5hash='.$TYPO3_DB->fullQuoteStr($row['md5hash'],'cache_imagesizes'));
} else {
return (array($row['imagewidth'], $row['imageheight'], strtolower($reg[0]), $imageFile));
}
......
* @return boolean Returns true if the file is already being made; thus "true" means "Don't render the image again"
* @access private
*/
function file_exists_typo3temp_file($output,$orig='') {
if ($this->enable_typo3temp_db_tracking) {
function file_exists_typo4temp_file($output,$orig='') {
if ($this->enable_typo4temp_db_tracking) {
if (@file_exists($output)) { // If file exists, then we return immediately
return 1;
} else { // If not, we look up in the cache_typo3temp_log table to see if there is a image being rendered right now.
} else { // If not, we look up in the cache_typo4temp_log table to see if there is a image being rendered right now.
$md5Hash=md5($output);
$res = $GLOBALS['TYPO3_DB']->exec_SELECTquery('md5hash', 'cache_typo3temp_log', 'md5hash='.$GLOBALS['TYPO3_DB']->fullQuoteStr($md5Hash, 'cache_typo3temp_log').' AND tstamp>'.(time()-30));
if ($row = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res)) { // If there was a record, the image is being generated by another proces (we assume)
$res = $GLOBALS['TYPO4_DB']->exec_SELECTquery('md5hash', 'cache_typo4temp_log', 'md5hash='.$GLOBALS['TYPO3_DB']->fullQuoteStr($md5Hash, 'cache_typo3temp_log').' AND tstamp>'.(time()-30));
if ($row = $GLOBALS['TYPO4_DB']->sql_fetch_assoc($res)) { // If there was a record, the image is being generated by another proces (we assume)
if (is_object($GLOBALS['TSFE'])) $GLOBALS['TSFE']->set_no_cache(); // ...so we set no_cache, because we dont want this page (which will NOT display an image...!) to be cached! (Only a page with the correct image on...)
if (is_object($GLOBALS['TT'])) $GLOBALS['TT']->setTSlogMessage('typo3temp_log: Assume this file is being rendered now: '.$output);
if (is_object($GLOBALS['TT'])) $GLOBALS['TT']->setTSlogMessage('typo4temp_log: Assume this file is being rendered now: '.$output);
return 2; // Return 'success - 2'
} else { // If the current time is more than 30 seconds since this record was written, we clear the record, write a new and render the image.
......
'filename' => $output,
'orig_filename' => $orig
);
$GLOBALS['TYPO3_DB']->exec_DELETEquery('cache_typo3temp_log', 'md5hash='.$GLOBALS['TYPO3_DB']->fullQuoteStr($md5Hash, 'cache_typo3temp_log'));
$GLOBALS['TYPO3_DB']->exec_INSERTquery('cache_typo3temp_log', $insertFields);
$GLOBALS['TYPO4_DB']->exec_DELETEquery('cache_typo4temp_log', 'md5hash='.$GLOBALS['TYPO3_DB']->fullQuoteStr($md5Hash, 'cache_typo3temp_log'));
$GLOBALS['TYPO4_DB']->exec_INSERTquery('cache_typo4temp_log', $insertFields);
if (is_object($GLOBALS['TT'])) $GLOBALS['TT']->setTSlogMessage('typo3temp_log: The row did not exist, so a new is written and file is being processed: '.$output);
if (is_object($GLOBALS['TT'])) $GLOBALS['TT']->setTSlogMessage('typo4temp_log: The row did not exist, so a new is written and file is being processed: '.$output);
return 0;
}
}
......
function imageMagickIdentify($imagefile) {
if (!$this->NO_IMAGE_MAGICK) {
$frame = $this->noFramePrepended?'':'[0]';
$cmd = t3lib_div::imageMagickCommand('identify', $this->wrapFileName($imagefile).$frame);
$cmd = t4lib_div::imageMagickCommand('identify', $this->wrapFileName($imagefile).$frame);
$returnVal = array();
exec($cmd, $returnVal);
$splitstring=$returnVal[0];
......
*/
function imageMagickExec($input,$output,$params) {
if (!$this->NO_IMAGE_MAGICK) {
$cmd = t3lib_div::imageMagickCommand('convert', $params.' '.$this->wrapFileName($input).' '.$this->wrapFileName($output));
$cmd = t4lib_div::imageMagickCommand('convert', $params.' '.$this->wrapFileName($input).' '.$this->wrapFileName($output));
$this->IM_commands[] = array($output,$cmd);
$ret = exec($cmd);
t3lib_div::fixPermissions($this->wrapFileName($output)); // Change the permissions of the file
t4lib_div::fixPermissions($this->wrapFileName($output)); // Change the permissions of the file
return $ret;
}
......
}
$theMask = $this->randomName().'.'.$this->gifExtension;
$this->imageMagickExec($mask, $theMask, $params);
$cmd = t3lib_div::imageMagickCommand('combine', '-compose over +matte '.$this->wrapFileName($input).' '.$this->wrapFileName($overlay).' '.$this->wrapFileName($theMask).' '.$this->wrapFileName($output)); // +matte = no alpha layer in output
$cmd = t4lib_div::imageMagickCommand('combine', '-compose over +matte '.$this->wrapFileName($input).' '.$this->wrapFileName($overlay).' '.$this->wrapFileName($theMask).' '.$this->wrapFileName($output)); // +matte = no alpha layer in output
$this->IM_commands[] = Array ($output,$cmd);
$ret = exec($cmd);
t3lib_div::fixPermissions($this->wrapFileName($output)); // Change the permissions of the file
t4lib_div::fixPermissions($this->wrapFileName($output)); // Change the permissions of the file
if (is_file($theMask)) {
@unlink($theMask);
......
}
/**
* Creates subdirectory in typo3temp/ if not already found.
* Creates subdirectory in typo4temp/ if not already found.
*
* @param string Name of sub directory
* @return boolean Result of t3lib_div::mkdir(), true if it went well.
* @return boolean Result of t4lib_div::mkdir(), true if it went well.
*/
function createTempSubDir($dirName) {
// Checking if the this->tempPath is already prefixed with PATH_site and if not, prefix it with that constant.
if (t3lib_div::isFirstPartOfStr($this->tempPath,PATH_site)) {
if (t4lib_div::isFirstPartOfStr($this->tempPath,PATH_site)) {
$tmpPath = $this->tempPath;
} else {
$tmpPath = PATH_site.$this->tempPath;
......
// Making the temporary filename:
if (!@is_dir($tmpPath.$dirName)) {
return t3lib_div::mkdir($tmpPath.$dirName);
return t4lib_div::mkdir($tmpPath.$dirName);
}
}
......
if ($this->ImageWrite($this->im, $file)) {
// ImageMagick operations
if ($this->setup['reduceColors'] || (!$this->png_truecolor && $this->truecolor)) {
$reduced = $this->IMreduceColors($file, t3lib_div::intInRange($this->setup['reduceColors'], 256, $this->truecolorColors, 256));
$reduced = $this->IMreduceColors($file, t4lib_div::intInRange($this->setup['reduceColors'], 256, $this->truecolorColors, 256));
if ($reduced) {
@copy($reduced, $file);
@unlink($reduced);
}
}
t3lib_div::gif_compress($file, 'IM'); // Compress with IM! (adds extra compression, LZW from ImageMagick) (Workaround for the absence of lzw-compression in GD)
t4lib_div::gif_compress($file, 'IM'); // Compress with IM! (adds extra compression, LZW from ImageMagick) (Workaround for the absence of lzw-compression in GD)
}
break;
case 'jpg':
case 'jpeg':
$quality = 0; // Use the default
if($this->setup['quality']) {
$quality = t3lib_div::intInRange($this->setup['quality'],10,100);
$quality = t4lib_div::intInRange($this->setup['quality'],10,100);
}
if ($this->ImageWrite($this->im, $file, $quality));
break;
......
}
if (defined('TYPO3_MODE') && $TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['t3lib/class.t3lib_stdgraphic.php']) {
include_once($TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['t3lib/class.t3lib_stdgraphic.php']);
if (defined('TYPO4_MODE') && $TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['t4lib/class.t3lib_stdgraphic.php']) {
include_once($TYPO4_CONF_VARS[TYPO3_MODE]['XCLASS']['t4lib/class.t3lib_stdgraphic.php']);
}
?>
t3lib/class.t3lib_foldertree.php (Arbeitskopie)
/***************************************************************
* Copyright notice
*
* (c) 1999-2008 Kasper Skaarhoj (kasperYYYY@typo3.com)
* (c) 1999-2008 Kasper Skaarhoj (kasperYYYY@typo4.com)
* All rights reserved
*
* This script is part of the TYPO3 project. The TYPO3 project is
* This script is part of the TYPO4 project. The TYPO3 project is
* free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
......
* Generate a folder tree
*
* $Id$
* Revised for TYPO3 3.6 November/2003 by Kasper Skaarhoj
* Revised for TYPO4 3.6 November/2003 by Kasper Skaarhoj
*
* @author Kasper Skaarhoj <kasperYYYY@typo3.com>
* @author Kasper Skaarhoj <kasperYYYY@typo4.com>
* @coauthor Ren? Fritz <r.fritz@colorcube.de>
*/
/**
......
*
*
*
* 82: class t3lib_folderTree extends t3lib_treeView
* 89: function t3lib_folderTree()
* 82: class t4lib_folderTree extends t3lib_treeView
* 89: function t4lib_folderTree()
* 107: function wrapIcon($icon,$row)
* 130: function wrapTitle($title,$row,$bank=0)
* 145: function getId($v)
......
*
*/
require_once (PATH_t3lib.'class.t3lib_treeview.php');
require_once (PATH_t4lib.'class.t3lib_treeview.php');
......
/**
* Extension class for the t3lib_treeView class, specially made for browsing folders in the File module
* Extension class for the t4lib_treeView class, specially made for browsing folders in the File module
*
* @author Kasper Skaarhoj <kasperYYYY@typo3.com>
* @author Kasper Skaarhoj <kasperYYYY@typo4.com>
* @coauthor Ren? Fritz <r.fritz@colorcube.de>
* @package TYPO3
* @subpackage t3lib
* @see class t3lib_treeView
* @package TYPO4
* @subpackage t4lib
* @see class t4lib_treeView
*/
class t3lib_folderTree extends t3lib_treeView {
class t4lib_folderTree extends t3lib_treeView {
/**
* Constructor function of the class
*
* @return void
*/
function t3lib_folderTree() {
function t4lib_folderTree() {
parent::init();
$this->MOUNTS = $GLOBALS['FILEMOUNTS'];
......
function wrapTitle($title,$row,$bank=0) {
$aOnClick = 'return jumpTo(\''.$this->getJumpToParam($row).'\',this,\''.$this->domIdPrefix.$this->getId($row).'\','.$bank.');';
$CSM = '';
if ($GLOBALS['TYPO3_CONF_VARS']['BE']['useOnContextMenuHandler']) {
if ($GLOBALS['TYPO4_CONF_VARS']['BE']['useOnContextMenuHandler']) {
$CSM = ' oncontextmenu="'.htmlspecialchars($GLOBALS['TBE_TEMPLATE']->wrapClickMenuOnIcon('',$row['path'],'',0,'','',TRUE)).'"';
}
return '<a href="#" title="'.htmlspecialchars($row['title']).'" onclick="'.htmlspecialchars($aOnClick).'"'.$CSM.'>'.$title.'</a>';
......
* @return integer The "uid" field value.
*/
function getId($v) {
return t3lib_div::md5Int($v['path']);
return t4lib_div::md5Int($v['path']);
}
/**
......
// Set PM icon:
$cmd=$this->bank.'_'.($isOpen?'0_':'1_').$specUID.'_'.$this->treeName;
$icon='<img'.t3lib_iconWorks::skinImg($this->backPath,'gfx/ol/'.($isOpen?'minus':'plus').'only.gif','width="18" height="16"').' alt="" />';
$icon='<img'.t4lib_iconWorks::skinImg($this->backPath,'gfx/ol/'.($isOpen?'minus':'plus').'only.gif','width="18" height="16"').' alt="" />';
$firstHtml= $this->PM_ATagWrap($icon,$cmd);
switch($val['type']) {
......
}
// Preparing rootRec for the mount
$firstHtml.=$this->wrapIcon('<img'.t3lib_iconWorks::skinImg($this->backPath,$icon,'width="18" height="16"').' alt="" />',$val);
$firstHtml.=$this->wrapIcon('<img'.t4lib_iconWorks::skinImg($this->backPath,$icon,'width="18" height="16"').' alt="" />',$val);
$row=array();
$row['path']=$val['path'];
$row['uid']=$specUID;
......
// If the mount is expanded, go down:
if ($isOpen) {
// Set depth:
$depthD='<img'.t3lib_iconWorks::skinImg($this->backPath,'gfx/ol/blank.gif','width="18" height="16"').' alt="" />';
$depthD='<img'.t4lib_iconWorks::skinImg($this->backPath,'gfx/ol/blank.gif','width="18" height="16"').' alt="" />';
$this->getFolderTree($val['path'],999,$depthD);
}
......
function getFolderTree($files_path, $depth=999, $depthData='') {
// This generates the directory tree
$dirs = t3lib_div::get_dirs($files_path);
$dirs = t4lib_div::get_dirs($files_path);
$c=0;
if (is_array($dirs)) {
......
$val = ereg_replace('^\./','',$val);
$title = $val;
$path = $files_path.$val.'/';
$webpath=t3lib_BEfunc::getPathType_web_nonweb($path);
$webpath=t4lib_BEfunc::getPathType_web_nonweb($path);
$md5_uid = md5($path);
$specUID=hexdec(substr($md5_uid,0,6));
......
$nextCount=$this->getFolderTree(
$path,
$depth-1,
$this->makeHTML ? $depthData.'<img'.t3lib_iconWorks::skinImg($this->backPath,'gfx/ol/'.$LN.'.gif','width="18" height="16"').' alt="" />' : ''
$this->makeHTML ? $depthData.'<img'.t4lib_iconWorks::skinImg($this->backPath,'gfx/ol/'.$LN.'.gif','width="18" height="16"').' alt="" />' : ''
);
$exp=1; // Set "did expand" flag
} else {
......
$row['title']='RECYCLER';
$row['_title']='<b>RECYCLER</b>';
}
$HTML.=$this->wrapIcon('<img'.t3lib_iconWorks::skinImg($this->backPath,$icon,'width="18" height="16"').' alt="" />',$row);
$HTML.=$this->wrapIcon('<img'.t4lib_iconWorks::skinImg($this->backPath,$icon,'width="18" height="16"').' alt="" />',$row);
}
// Finally, add the row/HTML content to the ->tree array in the reserved key.
......
*/
function getCount($files_path) {
// This generates the directory tree
$dirs = t3lib_div::get_dirs($files_path);
$dirs = t4lib_div::get_dirs($files_path);
$c=0;
if (is_array($dirs)) {
$c=count($dirs);
......
// PM action:
// (If an plus/minus icon has been clicked, the PM GET var is sent and we must update the stored positions in the tree):
$PM = explode('_',t3lib_div::_GP('PM')); // 0: mount key, 1: set/clear boolean, 2: item ID (cannot contain "_"), 3: treeName
$PM = explode('_',t4lib_div::_GP('PM')); // 0: mount key, 1: set/clear boolean, 2: item ID (cannot contain "_"), 3: treeName
if (count($PM)==4 && $PM[3]==$this->treeName) {
if (isset($this->MOUNTS[$hashMap[$PM[0]]])) {
if ($PM[1]) { // set
......
}
}
if (defined('TYPO3_MODE') && $TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['t3lib/class.t3lib_foldertree.php']) {
include_once($TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['t3lib/class.t3lib_foldertree.php']);
if (defined('TYPO4_MODE') && $TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['t4lib/class.t3lib_foldertree.php']) {
include_once($TYPO4_CONF_VARS[TYPO3_MODE]['XCLASS']['t4lib/class.t3lib_foldertree.php']);
}
?>
t3lib/interfaces/interface.t3lib_localrecordlistgettablehook.php (Arbeitskopie)
/***************************************************************
* Copyright notice
*
* (c) 2007-2008 Ingo Renner <ingo@typo3.org>
* (c) 2007-2008 Ingo Renner <ingo@typo4.org>
* All rights reserved
*
* This script is part of the TYPO3 project. The TYPO3 project is
* This script is part of the TYPO4 project. The TYPO3 project is
* free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
......
/**
* interface for classes which hook into localRecordList and do additional getTable processing
*
* @author Ingo Renner <ingo@typo3.org>
* @package TYPO3
* @subpackage t3lib
* @author Ingo Renner <ingo@typo4.org>
* @package TYPO4
* @subpackage t4lib
*/
interface t3lib_localRecordListGetTableHook {
interface t4lib_localRecordListGetTableHook {
/**
* modifies the DB list query
t3lib/interfaces/interface.t3lib_tceformsInlineHook.php (Arbeitskopie)
* (c) 2008 Oliver Hader <oh@inpublica.de>
* All rights reserved
*
* This script is part of the TYPO3 project. The TYPO3 project is
* This script is part of the TYPO4 project. The TYPO3 project is
* free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
......
***************************************************************/
/**
* Interface for classes which hook into t3lib_TCEforms_inline.
* Interface for classes which hook into t4lib_TCEforms_inline.
*
* $Id$
*
* @author Oliver Hader <oh@inpublica.de>
* @package TYPO3
* @subpackage t3lib
* @package TYPO4
* @subpackage t4lib
*/
interface t3lib_tceformsInlineHook {
interface t4lib_tceformsInlineHook {
/**
* Initializes this hook object.
*
* @param t3lib_TCEforms_inline $parentObject: The calling t3lib_TCEforms_inline object.
* @param t4lib_TCEforms_inline $parentObject: The calling t3lib_TCEforms_inline object.
* @return void
*/
public function init(&$parentObject);
t3lib/interfaces/interface.t3lib_browselinkshook.php (Arbeitskopie)
/***************************************************************
* Copyright notice
*
* (c) 2007-2008 Ingo Renner <ingo@typo3.org>
* (c) 2007-2008 Ingo Renner <ingo@typo4.org>
* All rights reserved
*
* This script is part of the TYPO3 project. The TYPO3 project is
* This script is part of the TYPO4 project. The TYPO3 project is
* free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
......
/**
* interface for classes which hook into browse_links
*
* @author Ingo Renner <ingo@typo3.org>
* @package TYPO3
* @subpackage t3lib
* @author Ingo Renner <ingo@typo4.org>
* @package TYPO4
* @subpackage t4lib
*/
interface t3lib_browseLinksHook {
interface t4lib_browseLinksHook {
/**
* initializes the hook object
t3lib/class.t3lib_basicfilefunc.php (Arbeitskopie)
/***************************************************************
* Copyright notice
*
* (c) 1999-2008 Kasper Skaarhoj (kasperYYYY@typo3.com)
* (c) 1999-2008 Kasper Skaarhoj (kasperYYYY@typo4.com)
* All rights reserved
*
* This script is part of the TYPO3 project. The TYPO3 project is
* This script is part of the TYPO4 project. The TYPO3 project is
* free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
......
* Contains class with basic file management functions
*
* $Id$
* Revised for TYPO3 3.6 July/2003 by Kasper Skaarhoj
* Revised for TYPO4 3.6 July/2003 by Kasper Skaarhoj
*
* @author Kasper Skaarhoj <kasperYYYY@typo3.com>
* @author Kasper Skaarhoj <kasperYYYY@typo4.com>
*/
/**
* [CLASS/FUNCTION INDEX of SCRIPT]
*
*
*
* 81: class t3lib_basicFileFunctions
* 81: class t4lib_basicFileFunctions
*
* SECTION: Checking functions
* 133: function init($mounts, $f_ext)
......
*
*/
require_once(PATH_t3lib.'class.t3lib_cs.php');
require_once(PATH_t4lib.'class.t3lib_cs.php');
/**
* Contains functions for management, validation etc of files in TYPO3, using the concepts of web- and ftp-space. Please see the comment for the init() function
* Contains functions for management, validation etc of files in TYPO4, using the concepts of web- and ftp-space. Please see the comment for the init() function
*
* @author Kasper Skaarhoj <kasperYYYY@typo3.com>
* @package TYPO3
* @subpackage t3lib
* @see t3lib_basicFileFunctions::init()
* @author Kasper Skaarhoj <kasperYYYY@typo4.com>
* @package TYPO4
* @subpackage t4lib
* @see t4lib_basicFileFunctions::init()
*/
class t3lib_basicFileFunctions {
class t4lib_basicFileFunctions {
var $getUniqueNamePrefix = ''; // Prefix which will be prepended the file when using the getUniqueName-function
var $maxNumber = 99; // This number decides the highest allowed appended number used on a filename before we use naming with unique strings
var $uniquePrecision = 6; // This number decides how many characters out of a unique MD5-hash that is appended to a filename if getUniqueName is asked to find an available filename.
......
* $f_ext['webspace']['deny']='php3,php';
* $f_ext['ftpspace']['allow']='*';
* $f_ext['ftpspace']['deny']='';
* The control of fileextensions goes in two catagories. Webspace and Ftpspace. Webspace is folders accessible from a webbrowser (below TYPO3_DOCUMENT_ROOT) and ftpspace is everything else.
* The control of fileextensions goes in two catagories. Webspace and Ftpspace. Webspace is folders accessible from a webbrowser (below TYPO4_DOCUMENT_ROOT) and ftpspace is everything else.
* The control is done like this: If an extension matches 'allow' then the check returns true. If not and an extension matches 'deny' then the check return false. If no match at all, returns true.
* You list extensions comma-separated. If the value is a '*' every extension is allowed
* The list is case-insensitive when used in this class (see init())
* Typically TYPO3_CONF_VARS['BE']['fileExtensions'] would be passed along as $f_ext.
* Typically TYPO4_CONF_VARS['BE']['fileExtensions'] would be passed along as $f_ext.
*
* Example:
* $basicff->init($GLOBALS['FILEMOUNTS'],$TYPO3_CONF_VARS['BE']['fileExtensions']);
* $basicff->init($GLOBALS['FILEMOUNTS'],$TYPO4_CONF_VARS['BE']['fileExtensions']);
*
* @param array Contains the paths of the file mounts for the current BE user. Normally $GLOBALS['FILEMOUNTS'] is passed. This variable is set during backend user initialization; $FILEMOUNTS = $BE_USER->returnFilemounts(); (see typo3/init.php)
* @param array Array with information about allowed and denied file extensions. Typically passed: $TYPO3_CONF_VARS['BE']['fileExtensions']
* @param array Contains the paths of the file mounts for the current BE user. Normally $GLOBALS['FILEMOUNTS'] is passed. This variable is set during backend user initialization; $FILEMOUNTS = $BE_USER->returnFilemounts(); (see typo4/init.php)
* @param array Array with information about allowed and denied file extensions. Typically passed: $TYPO4_CONF_VARS['BE']['fileExtensions']
* @return void
* @see typo3/init.php, t3lib_userAuthGroup::returnFilemounts()
* @see typo4/init.php, t4lib_userAuthGroup::returnFilemounts()
*/
function init($mounts, $f_ext) {
$this->f_ext['webspace']['allow'] = t3lib_div::uniqueList(strtolower($f_ext['webspace']['allow']));
$this->f_ext['webspace']['deny'] = t3lib_div::uniqueList(strtolower($f_ext['webspace']['deny']));
$this->f_ext['ftpspace']['allow'] = t3lib_div::uniqueList(strtolower($f_ext['ftpspace']['allow']));
$this->f_ext['ftpspace']['deny'] = t3lib_div::uniqueList(strtolower($f_ext['ftpspace']['deny']));
$this->f_ext['webspace']['allow'] = t4lib_div::uniqueList(strtolower($f_ext['webspace']['allow']));
$this->f_ext['webspace']['deny'] = t4lib_div::uniqueList(strtolower($f_ext['webspace']['deny']));
$this->f_ext['ftpspace']['allow'] = t4lib_div::uniqueList(strtolower($f_ext['ftpspace']['allow']));
$this->f_ext['ftpspace']['deny'] = t4lib_div::uniqueList(strtolower($f_ext['ftpspace']['deny']));
$this->mounts = $mounts;
$this->webPath = t3lib_div::getIndpEnv('TYPO3_DOCUMENT_ROOT');
... This diff was truncated because it exceeds the maximum size that can be displayed.
(1-1/3)