Fixed bug #17351: PHP_SCRIPT_EXT/INT in 4.5 doesn't work (Thanks to Jo Hasenau)
authorJigal van Hemert <jigal@xs4all.nl>
Fri, 4 Feb 2011 18:58:21 +0000 (18:58 +0000)
committerJigal van Hemert <jigal@xs4all.nl>
Fri, 4 Feb 2011 18:58:21 +0000 (18:58 +0000)
git-svn-id: https://svn.typo3.org/TYPO3v4/Core/trunk@10384 709f56b5-9817-0410-a4d7-c38de5d9e867

ChangeLog
typo3/sysext/cms/ext_autoload.php
typo3/sysext/cms/tslib/class.tslib_content.php
typo3/sysext/cms/tslib/content/class.tslib_content_phpscriptexternal.php [new file with mode: 0644]
typo3/sysext/cms/tslib/content/class.tslib_content_phpscriptinternal.php

index f91d3d6..5973f01 100755 (executable)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2011-02-04  Jigal van Hemert  <jigal@xs4all.nl>
+
+       * Fixed bug #17351: PHP_SCRIPT_EXT/INT in 4.5 doesn't work (Thanks to Jo Hasenau)
+
 2011-02-04  Francois Suter  <francois.suter@typo3.org>
 
        * Cleanup #17482: Remove all mentions of $LANG_GENERAL_LABELS
index 8a7180b..4e0f1f6 100644 (file)
@@ -65,6 +65,7 @@ return array(
        'tslib_content_media' => PATH_tslib . 'content/class.tslib_content_media.php',
        'tslib_content_multimedia' => PATH_tslib . 'content/class.tslib_content_multimedia.php',
        'tslib_content_offsettable' => PATH_tslib . 'content/class.tslib_content_offsettable.php',
+       'tslib_content_phpscriptexternal' => PATH_tslib . 'content/class.tslib_content_phpscriptexternal.php',
        'tslib_content_phpscriptinternal' => PATH_tslib . 'content/class.tslib_content_phpscriptinternal.php',
        'tslib_content_phpscript' => PATH_tslib . 'content/class.tslib_content_phpscript.php',
        'tslib_content_quicktimeobject' => PATH_tslib . 'content/class.tslib_content_quicktimeobject.php',
index 4fbbd59..6651d17 100644 (file)
@@ -834,6 +834,7 @@ class tslib_cObj {
                        'SEARCHRESULT' => 'SearchResult',
                        'PHP_SCRIPT' => 'PhpScript',
                        'PHP_SCRIPT_INT' => 'PhpScriptInternal',
+                       'PHP_SCRIPT_EXT' => 'PhpScriptExternal',
                        'TEMPLATE' => 'Template',
                        'FLUIDTEMPLATE' => 'FluidTemplate',
                        'MULTIMEDIA' => 'Multimedia',
diff --git a/typo3/sysext/cms/tslib/content/class.tslib_content_phpscriptexternal.php b/typo3/sysext/cms/tslib/content/class.tslib_content_phpscriptexternal.php
new file mode 100644 (file)
index 0000000..7676b1d
--- /dev/null
@@ -0,0 +1,72 @@
+<?php
+/***************************************************************
+ *  Copyright notice
+ *
+ *  (c) 2011 Jo Hasenau <info@cybercraft.de>
+ *  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!
+ ***************************************************************/
+
+/**
+ * Contains PHP_SCRIPT_EXT class object.
+ *
+ * $Id$
+ * @author Jo Hasenau <info@cybercraft.de>
+ */
+class tslib_content_PhpScriptExternal extends tslib_content_Abstract {
+
+       /**
+        * Rendering the cObject, PHP_SCRIPT__EXT
+        *
+        * @param       array           Array of TypoScript properties
+        * @return      string          Output
+        */
+       public function render($conf = array()) {
+               $file = isset($conf['file.'])
+                       ? $this->cObj->stdWrap($conf['file'], $conf['file.'])
+                       : $conf['file'];
+
+               $incFile = $GLOBALS['TSFE']->tmpl->getFileName($file);
+               $content = '';
+               if ($incFile && $GLOBALS['TSFE']->checkFileInclude($incFile)) {
+                       $substKey = 'EXT_SCRIPT.' . $GLOBALS['TSFE']->uniqueHash();
+                       $content .= '<!--' . $substKey . '-->';
+                       $GLOBALS['TSFE']->config['EXTincScript'][$substKey] = array (
+                               'file' => $incFile, 'conf' => $conf, 'type' => 'SCRIPT'
+                       );
+                       $GLOBALS['TSFE']->config['EXTincScript'][$substKey]['data'] = $this->cObj->data;
+               }
+
+               if (isset($conf['stdWrap.'])) {
+                       $content = $this->cObj->stdWrap($content, $conf['stdWrap.']);
+               }
+
+               return $content;
+       }
+
+}
+
+
+if (defined('TYPO3_MODE') && isset($GLOBALS['TYPO3_CONF_VARS'][TYPO3_MODE]['XCLASS']['tslib/content/class.tslib_content_phpscriptexternal.php'])) {
+       include_once($GLOBALS['TYPO3_CONF_VARS'][TYPO3_MODE]['XCLASS']['tslib/content/class.tslib_content_phpscriptexternal.php']);
+}
+
+?>
\ No newline at end of file
index e0fee78..bf9a50b 100644 (file)
@@ -42,9 +42,6 @@ class tslib_content_PhpScriptInternal extends tslib_content_Abstract {
         * @return      string          Output
         */
        public function render($conf = array()) {
-               $ext = $conf['scriptSuffix'];
-               unset($conf['scriptSuffix']);
-
                $file = isset($conf['file.'])
                        ? $this->cObj->stdWrap($conf['file'], $conf['file.'])
                        : $conf['file'];
@@ -52,16 +49,12 @@ class tslib_content_PhpScriptInternal extends tslib_content_Abstract {
                $incFile = $GLOBALS['TSFE']->tmpl->getFileName($file);
                $content = '';
                if ($incFile && $GLOBALS['TSFE']->checkFileInclude($incFile)) {
-                       $substKey = $ext . '_SCRIPT.' . $GLOBALS['TSFE']->uniqueHash();
+                       $substKey = 'INT_SCRIPT.' . $GLOBALS['TSFE']->uniqueHash();
                        $content .= '<!--' . $substKey . '-->';
-                       $GLOBALS['TSFE']->config[$ext . 'incScript'][$substKey] = array (
+                       $GLOBALS['TSFE']->config['INTincScript'][$substKey] = array (
                                'file' => $incFile, 'conf' => $conf, 'type' => 'SCRIPT'
                        );
-                       if ($ext == 'INT') {
-                               $GLOBALS['TSFE']->config[$ext . 'incScript'][$substKey]['cObj'] = serialize($this);
-                       } else {
-                               $GLOBALS['TSFE']->config[$ext . 'incScript'][$substKey]['data'] = $this->cObj->data;
-                       }
+                       $GLOBALS['TSFE']->config['INTincScript'][$substKey]['cObj'] = serialize($this->cObj);
                }
 
                if (isset($conf['stdWrap.'])) {