Project

General

Profile

Feature #19290 » 0009292.patch

Administrator Admin, 2008-09-04 19:28

View differences:

typo3/sysext/cms/tslib/class.tslib_content.php (working copy)
var $substMarkerCache=array(); // Caching substituteMarkerArrayCached function
var $recordRegister=array(); // Array that registers rendered content elements (or any table) to make sure they are not rendered recursively!
var $cObjHookObjectsArr = array(); // Containig hooks for userdefined cObjects
protected $stdWrapHookObjects = array(); // Containig hook objects for stdWrap
protected $stdWrapHookObjects = array(); // Containing hook objects for stdWrap
protected $getImgResourceHookObjects = array(); // Containing hook objects for getImgResource
/**
* Class constructor.
......
}
}
if(is_array($TYPO3_CONF_VARS['SC_OPTIONS']['tslib/class.tslib_content.php']['getImgResource'])) {
$this->getImgResourceHookObjects = array();
foreach($TYPO3_CONF_VARS['SC_OPTIONS']['tslib/class.tslib_content.php']['getImgResource'] as $classData) {
$hookObject = &t3lib_div::getUserObj($classData);
if(!($hookObject instanceof tslib_cObj_getImgResourceHook)) {
throw new UnexpectedValueException('$hookObject must implement interface tslib_cObj_getImgResourceHook', 1218636383);
}
$this->getImgResourceHookObjects[] = $hookObject;
}
}
}
/**
......
$gifCreator->start($fileArray,$this->data);
$theImage = $gifCreator->gifBuild();
}
return $gifCreator->getImageDimensions($theImage);
$imageResource = $gifCreator->getImageDimensions($theImage);
break;
default:
if ($fileArray['import.']) {
......
}
$GLOBALS['TSFE']->tmpl->fileCache[$hash]['origFile'] = $theImage;
$GLOBALS['TSFE']->tmpl->fileCache[$hash]['origFile_mtime'] = @filemtime($theImage); // This is needed by tslib_gifbuilder, ln 100ff in order for the setup-array to create a unique filename hash.
$GLOBALS['TSFE']->tmpl->fileCache[$hash]['fileCacheHash'] = $hash;
}
return $GLOBALS['TSFE']->tmpl->fileCache[$hash];
$imageResource = $GLOBALS['TSFE']->tmpl->fileCache[$hash];
}
break;
}
}
$theImage = $GLOBALS['TSFE']->tmpl->getFileName($file);
if ($theImage) {
if (!isset($imageResource) && $theImage) {
$gifCreator = t3lib_div::makeInstance('tslib_gifbuilder');
/* @var $gifCreator tslib_gifbuilder */
$gifCreator->init();
$info= $gifCreator->imageMagickConvert($theImage,'WEB','','','','','');
$info['origFile'] = $theImage;
$info['origFile_mtime'] = @filemtime($theImage); // This is needed by tslib_gifbuilder, ln 100ff in order for the setup-array to create a unique filename hash.
return $info;
$imageResource = $info;
}
// Hook: Post-processing of image resources
if (isset($imageResource)) {
foreach($this->getImgResourceHookObjects as $hookObject) {
$imageResource = $hookObject->getImgResourcePostProcess($file, (array)$fileArray, $imageResource, $this);
}
}
return $imageResource;
}
typo3/sysext/cms/tslib/interfaces/interface.tslib_content_getimgresourcehook.php (revision 0)
<?php
/***************************************************************
* Copyright notice
*
* (c) 2008 Oliver Hader <oliver@typo3.org>
* All rights reserved
*
* This script is part of the TYPO3 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
* (at your option) any later version.
*
* The GNU General Public License can be found at
* http://www.gnu.org/copyleft/gpl.html.
* A copy is found in the textfile GPL.txt and important notices to the license
* from the author is found in LICENSE.txt distributed with these scripts.
*
*
* This script is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* This copyright notice MUST APPEAR in all copies of the script!
***************************************************************/
/**
* Interface for classes which hook into tslib_content and do additional getImgResource processing
*
* @author Oliver Hader <oliver@typo3.org>
* @package TYPO3
* @subpackage cms
*/
interface tslib_cObj_getImgResourceHook {
/**
* Hook for post-processing image resources
*
* @param string Original image file
* @param array TypoScript getImgResource properties
* @param array Information of the created/converted image resource
* @param tslib_cObj Parent content object
* @return array Modified image resource information
*/
public function getImgResourcePostProcess($file, array $configuration, array $imageResource, tslib_cObj &$parentObject);
}
?>
(1-1/6)