Index: typo3/sysext/cms/tslib/class.tslib_content.php
===================================================================
--- typo3/sysext/cms/tslib/class.tslib_content.php (revision 8066)
+++ typo3/sysext/cms/tslib/class.tslib_content.php (working copy)
@@ -3170,21 +3170,33 @@
if ($conf['sample']) {$params.='&sample=1';}
if ($conf['alternativeTempPath']) {$params.='&alternativeTempPath='.rawurlencode($conf['alternativeTempPath']);}
- if ($conf['bodyTag']) {$params.='&bodyTag='.rawurlencode($conf['bodyTag']);}
- if ($conf['title']) {$params.='&title='.rawurlencode($conf['title']);}
- if ($conf['wrap']) {$params.='&wrap='.rawurlencode($conf['wrap']);}
+ // includes lines above in cache
+ $showPicContent = '
+
+
+
+ '.htmlspecialchars($conf['title'] ? $conf['title'] : "Image").'
+ ' . ($conf['title'] ? '' : '') . '
+
+ '.($conf['bodyTag'] ? $conf['bodyTag'] : '');
+
+ $wrapParts = explode('|', $conf['wrap']);
+ $showPicContent .= trim($wrapParts[0]) . '###IMAGE###' . trim($wrapParts[1]);
+ $showPicContent .= '
+
+ ';
+ $contentHash = md5('showpic' . $showPicContent);
+ t3lib_pageSelect::storeHash($contentHash, $showPicContent, 'showpic');
+
$md5_value = md5(
$imageFile.'|'.
$conf['width'].'|'.
$conf['height'].'|'.
- $conf['effects'].'|'.
- $conf['bodyTag'].'|'.
- $conf['title'].'|'.
- $conf['wrap'].'|'.
+ $conf['effects'].'||||'.
$GLOBALS['TYPO3_CONF_VARS']['SYS']['encryptionKey'].'|');
- $params.= '&md5='.$md5_value;
+ $params .= '&md5=' . $md5_value . '&contentHash=' . $contentHash;
$url = $GLOBALS['TSFE']->absRefPrefix.'index.php?eID=tx_cms_showpic&file='.rawurlencode($imageFile).$params;
if ($conf['JSwindow.']['altUrl'] || $conf['JSwindow.']['altUrl.']) {
$altUrl = $this->stdWrap($conf['JSwindow.']['altUrl'], $conf['JSwindow.']['altUrl.']);
Index: typo3/sysext/cms/tslib/showpic.php
===================================================================
--- typo3/sysext/cms/tslib/showpic.php (revision 8066)
+++ typo3/sysext/cms/tslib/showpic.php (working copy)
@@ -98,6 +98,9 @@
# NOTICE: ALL LINES above can be commented out since this script is now used via the ?eID=tx_cms_showpic parameter passed to index.php!
# For backwards compatibility in extensions using showpic.php directly this is kept for the version 4.0 until 4.5 where it is planned removed!
+# NOTICE: The script below is still backwards compatible with the situation in 4.4.0 with 4.5 the parts using bodyTag, wrap and title to build
+# the HTML can be removed!
+
if (!defined ('PATH_typo3conf')) die ('The configuration path was not properly defined!');
require_once(PATH_t3lib.'class.t3lib_stdgraphic.php');
@@ -128,6 +131,7 @@
var $title;
var $wrap;
var $md5;
+ var $contentHash;
/**
* Init function, setting the input vars in the global space.
@@ -147,6 +151,7 @@
$this->title = t3lib_div::_GP('title');
$this->wrap = t3lib_div::_GP('wrap');
$this->md5 = t3lib_div::_GP('md5');
+ $this->contentHash = t3lib_div::_GP('contentHash');
// ***********************
// Check parameters
@@ -171,6 +176,18 @@
die('Parameter Error: Wrong parameters sent.');
}
+ // Need to connect to database, because this is used (typo3temp_db_tracking, cached image dimensions).
+ $GLOBALS['TYPO3_DB']->sql_pconnect(TYPO3_db_host, TYPO3_db_username, TYPO3_db_password);
+ $GLOBALS['TYPO3_DB']->sql_select_db(TYPO3_db);
+
+ // Check for the new content cache hash
+ if (strlen(t3lib_div::_GP('contentHash')) > 0) {
+ $this->content = t3lib_pageSelect::getHash($this->contentHash);
+ if (is_null($this->content)) {
+ die('Parameter Error: Content not available.');
+ }
+ }
+
// ***********************
// Check the file. If must be in a directory beneath the dir of this script...
// $this->file remains unchanged, because of the code in stdgraphic, but we do check if the file exists within the current path
@@ -202,10 +219,6 @@
$img->tempPath = $this->alternativeTempPath;
}
- // Need to connect to database, because this is used (typo3temp_db_tracking, cached image dimensions).
- $GLOBALS['TYPO3_DB']->sql_pconnect(TYPO3_db_host, TYPO3_db_username, TYPO3_db_password);
- $GLOBALS['TYPO3_DB']->sql_select_db(TYPO3_db);
-
if (strstr($this->width.$this->height, 'm')) {$max='m';} else {$max='';}
$this->height = t3lib_div::intInRange($this->height,0);
@@ -213,9 +226,15 @@
if ($this->frame) {$this->frame = intval($this->frame);}
$imgInfo = $img->imageMagickConvert($this->file,'web',$this->width.$max,$this->height,$img->IMparams($this->effects),$this->frame,'');
- // Create HTML output:
- $this->content='';
- $this->content.='
+ if (strlen($this->content) > 0) {
+ // insert image in cached HTML content
+ if (is_array($imgInfo)) {
+ $this->content = str_replace('###IMAGE###', $img->imgTag($imgInfo), $this->content);
+ }
+ } else {
+ // Create HTML output:
+ $this->content='';
+ $this->content.='
@@ -225,13 +244,14 @@
'.($this->bodyTag ? $this->bodyTag : '');
- if (is_array($imgInfo)) {
- $wrapParts = explode('|',$this->wrap);
- $this->content.=trim($wrapParts[0]).$img->imgTag($imgInfo).trim($wrapParts[1]);
- }
- $this->content.='
+ if (is_array($imgInfo)) {
+ $wrapParts = explode('|',$this->wrap);
+ $this->content.=trim($wrapParts[0]).$img->imgTag($imgInfo).trim($wrapParts[1]);
+ }
+ $this->content.='