Fixed issue #9533: Made substituteMarkerArrayCached not so strict. Still with type...
authorErnesto Baschny <ernst@cron-it.de>
Mon, 13 Oct 2008 08:43:51 +0000 (08:43 +0000)
committerErnesto Baschny <ernst@cron-it.de>
Mon, 13 Oct 2008 08:43:51 +0000 (08:43 +0000)
git-svn-id: https://svn.typo3.org/TYPO3v4/Core/trunk@4307 709f56b5-9817-0410-a4d7-c38de5d9e867

ChangeLog
typo3/sysext/cms/tslib/class.tslib_content.php

index 1f5f2d5..3f3c76e 100755 (executable)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2008-10-13  Ernesto Baschny  <ernst@cron-it.de>
+
+       * Fixed issue #9533: Made substituteMarkerArrayCached not so strict. Still with type hinting, but also allowing the null (uninitialized var) to be passed (to prevent several older extensions from breaking).
+
 2008-10-10  Stanislas Rolland  <typo3@sjbr.ca>
 
        * Added feature #7970: htmlARea RTE: fontstyle and fontsize should not use deprecated font tag
index 83f92b5..bf61627 100755 (executable)
@@ -3060,6 +3060,12 @@ class tslib_cObj {
         * splitting. This secures that the value inserted does not themselves
         * contain markers or subparts.
         *
+        * Note that the "caching" won't cache the content of the substition,
+        * but only the splitting of the template in various parts. So if you
+        * want only one cache-entry per template, make sure you always pass the
+        * exact same set of marker/subpart keys. Else you will be flooding the
+        * users cache table.
+        *
         * This function takes three kinds of substitutions in one:
         * $markContentArray is a regular marker-array where the 'keys' are
         * substituted in $content with their values
@@ -3078,13 +3084,13 @@ class tslib_cObj {
         * @return      string          The output content stream
         * @see substituteSubpart(), substituteMarker(), substituteMarkerInObject(), TEMPLATE()
         */
-       public function substituteMarkerArrayCached($content, array $markContentArray = array(), array $subpartContentArray = array(), $wrappedSubpartContentArray = array()) {
-               $GLOBALS['TT']->push('substituteMarkerArray');
+       public function substituteMarkerArrayCached($content, array $markContentArray = NULL, array $subpartContentArray = NULL, array $wrappedSubpartContentArray = NULL) {
+               $GLOBALS['TT']->push('substituteMarkerArrayCached');
 
                        // If not arrays then set them
-               if (!is_array($markContentArray))       $markContentArray=array();      // Plain markers
-               if (!is_array($subpartContentArray))    $subpartContentArray=array();   // Subparts being directly substituted
-               if (!is_array($wrappedSubpartContentArray))     $wrappedSubpartContentArray=array();    // Subparts being wrapped
+               if (is_null($markContentArray)) $markContentArray=array();      // Plain markers
+               if (is_null($subpartContentArray))      $subpartContentArray=array();   // Subparts being directly substituted
+               if (is_null($wrappedSubpartContentArray))       $wrappedSubpartContentArray=array();    // Subparts being wrapped
                        // Finding keys and check hash:
                $sPkeys = array_keys($subpartContentArray);
                $wPkeys = array_keys($wrappedSubpartContentArray);