[TASK] Remove old code related to the extension tstemplate_styler
[Packages/TYPO3.CMS.git] / t3lib / class.t3lib_tstemplate.php
index 38a9c44..7af1d0f 100644 (file)
@@ -50,14 +50,12 @@ class t3lib_TStemplate {
                // Backend Analysis modules settings:
        var $matchAlternative = array(); // This array is passed on to matchObj by generateConfig(). If it holds elements, they are used for matching instead. See commment at the match-class. Used for backend modules only. Never frontend!
        var $matchAll = 0; // If set, the match-class matches everything! Used for backend modules only. Never frontend!
-       var $parseEditorCfgField = 0; // If set, the Backend Editor Configuration TypoScript is also parsed (this is not needed for the frontend)
        var $backend_info = 0;
        var $getFileName_backPath = ''; // Set from the backend - used to set an absolute path (PATH_site) so that relative resources are properly found with getFileName()
 
                // Externally set breakpoints (used by Backend Modules)
        var $ext_constants_BRP = 0;
        var $ext_config_BRP = 0;
-       var $ext_editorcfg_BRP = 0;
        var $ext_regLinenumbers = FALSE;
        var $ext_regComments = FALSE;
 
@@ -107,7 +105,6 @@ class t3lib_TStemplate {
                // For fetching TypoScript code from template hierarchy before parsing it. Each array contains code field values from template records/files:
        var $config = array(); // Setup field
        var $constants = array(); // Constant field
-       var $editorcfg = array(); // Backend Editor Configuration field
 
        var $hierarchyInfo = array(); // For Template Analyser in backend
        var $hierarchyInfoToRoot = array(); // For Template Analyser in backend (setup content only)
@@ -125,7 +122,6 @@ class t3lib_TStemplate {
                // Backend: ts_analyzer
        var $clearList_const = array();
        var $clearList_setup = array();
-       var $clearList_editorcfg = array();
        var $parserErrors = array();
        var $setup_constants = array();
 
@@ -356,7 +352,7 @@ class t3lib_TStemplate {
 
        /**
         * Traverses the rootLine from the root and out. For each page it checks if there is a template record. If there is a template record, $this->processTemplate() is called.
-        * Resets and affects internal variables like $this->constants, $this->config, $this->editorcfg and $this->rowSum
+        * Resets and affects internal variables like $this->constants, $this->config and $this->rowSum
         * Also creates $this->rootLine which is a root line stopping at the root template (contrary to $GLOBALS['TSFE']->rootLine which goes all the way to the root of the tree
         *
         * @param       array           The rootline of the current page (going ALL the way to tree root)
@@ -367,7 +363,6 @@ class t3lib_TStemplate {
        function runThroughTemplates($theRootLine, $start_template_uid = 0) {
                $this->constants = array();
                $this->config = array();
-               $this->editorcfg = array();
                $this->rowSum = array();
                $this->hierarchyInfoToRoot = array();
                $this->absoluteRootLine = $theRootLine; // Is the TOTAL rootline
@@ -434,9 +429,6 @@ class t3lib_TStemplate {
                                $this->config = array();
                                $this->hierarchyInfoToRoot = array();
                                $this->clearList_setup = array();
-
-                               $this->editorcfg = array();
-                               $this->clearList_editorcfg = array();
                        }
                }
 
@@ -512,19 +504,13 @@ class t3lib_TStemplate {
                        'configLines' => substr_count($row['config'], LF) + 1
                );
 
-                       // Adding the content of the fields constants (Constants), config (Setup) and editorcfg (Backend Editor Configuration) to the internal arrays.
+                       // Adding the content of the fields constants (Constants) and config (Setup)
                $this->constants[] = $row['constants'];
                $this->config[] = $row['config'];
-               if ($this->parseEditorCfgField) {
-                       $this->editorcfg[] = $row['editorcfg'];
-               }
 
-                       // For backend analysis (Template Analyser) provide the order of added constants/config/editorcfg template IDs
+                       // For backend analysis (Template Analyser) provide the order of added constants/config template IDs
                $this->clearList_const[] = $templateID;
                $this->clearList_setup[] = $templateID;
-               if ($this->parseEditorCfgField) {
-                       $this->clearList_editorcfg[] = $templateID;
-               }
 
                        // Add resources and sitetitle if found:
                if (trim($row['resources'])) {
@@ -571,6 +557,11 @@ class t3lib_TStemplate {
                        }
                }
 
+                       // If "Include before all static templates if root-flag is set" is set:
+               if ($row['static_file_mode'] == 3 && substr($templateID, 0, 4) == 'sys_' && $row['root']) {
+                       $this->addExtensionStatics($idList, $templateID, $pid, $row);
+               }
+
                        // Static Template Files (Text files from extensions): include_static_file is a list of static files to include (from extensions)
                if (trim($row['include_static_file'])) {
                        $include_static_fileArr = t3lib_div::trimExplode(',', $row['include_static_file'], TRUE);
@@ -585,7 +576,6 @@ class t3lib_TStemplate {
                                                        $subrow = array(
                                                                'constants' => @is_file($ISF_filePath . 'constants.txt') ? t3lib_div::getUrl($ISF_filePath . 'constants.txt') : '',
                                                                'config' => @is_file($ISF_filePath . 'setup.txt') ? t3lib_div::getUrl($ISF_filePath . 'setup.txt') : '',
-                                                               'editorcfg' => @is_file($ISF_filePath . 'editorcfg.txt') ? t3lib_div::getUrl($ISF_filePath . 'editorcfg.txt') : '',
                                                                'include_static' => @is_file($ISF_filePath . 'include_static.txt') ? implode(',', array_unique(t3lib_div::intExplode(',', t3lib_div::getUrl($ISF_filePath . 'include_static.txt')))) : '',
                                                                'include_static_file' => @is_file($ISF_filePath . 'include_static_file.txt') ? implode(',', array_unique(explode(',', t3lib_div::getUrl($ISF_filePath . 'include_static_file.txt')))) : '',
                                                                'title' => $ISF_file,
@@ -600,7 +590,11 @@ class t3lib_TStemplate {
                        }
                }
 
-               $this->addExtensionStatics($idList, $templateID, $pid, $row);
+                       // If "Default (include before if root flag is set)" is set OR
+                       // "Always include before this template record" AND root-flag are set
+               if ($row['static_file_mode'] == 1 || ($row['static_file_mode'] == 0 && substr($templateID, 0, 4) == 'sys_' && $row['root'])) {
+                       $this->addExtensionStatics($idList, $templateID, $pid, $row);
+               }
 
                        // Include Static Template Records after all other TypoScript has been included.
                if (is_array($GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['t3lib/class.t3lib_tstemplate.php']['includeStaticTypoScriptSourcesAtEnd'])) {
@@ -629,22 +623,18 @@ class t3lib_TStemplate {
         */
        function addExtensionStatics($idList, $templateID, $pid, $row) {
 
-               if ($row['static_file_mode'] == 1 || ($row['static_file_mode'] == 0 && substr($templateID, 0, 4) == 'sys_' && $row['root'])) {
-                       foreach ($GLOBALS['TYPO3_LOADED_EXT'] as $extKey => $files) {
-                               if (is_array($files) && ($files['ext_typoscript_constants.txt'] || $files['ext_typoscript_setup.txt'] || $files['ext_typoscript_editorcfg.txt'])) {
-                                       $mExtKey = str_replace('_', '', $extKey);
-                                       $subrow = array(
-                                               'constants' => $files['ext_typoscript_constants.txt'] ? t3lib_div::getUrl($files['ext_typoscript_constants.txt']) : '',
-                                               'config' => $files['ext_typoscript_setup.txt'] ? t3lib_div::getUrl($files['ext_typoscript_setup.txt']) : '',
-                                               'editorcfg' => $files['ext_typoscript_editorcfg.txt'] ? t3lib_div::getUrl($files['ext_typoscript_editorcfg.txt']) : '',
-                                               'title' => $extKey,
-                                               'uid' => $mExtKey
-                                       );
-                                       $subrow = $this->prependStaticExtra($subrow);
-
-                                       $this->processTemplate($subrow, $idList . ',ext_' . $mExtKey, $pid, 'ext_' . $mExtKey, $templateID);
-                               }
+               foreach ($GLOBALS['TYPO3_LOADED_EXT'] as $extKey => $files) {
+                       if (is_array($files) && ($files['ext_typoscript_constants.txt'] || $files['ext_typoscript_setup.txt'])) {
+                               $mExtKey = str_replace('_', '', $extKey);
+                               $subrow = array(
+                                       'constants' => $files['ext_typoscript_constants.txt'] ? t3lib_div::getUrl($files['ext_typoscript_constants.txt']) : '',
+                                       'config' => $files['ext_typoscript_setup.txt'] ? t3lib_div::getUrl($files['ext_typoscript_setup.txt']) : '',
+                                       'title' => $extKey,
+                                       'uid' => $mExtKey
+                               );
+                               $subrow = $this->prependStaticExtra($subrow);
                        }
+                       $this->processTemplate($subrow, $idList . ',ext_' . $mExtKey, $pid, 'ext_' . $mExtKey, $templateID);
                }
        }
 
@@ -654,13 +644,12 @@ class t3lib_TStemplate {
         * For files the "uid" value is the extension key but with any underscores removed. Possibly with a path if its a static file selected in the template record
         *
         * @param       array           Static template record/file
-        * @return      array           Returns the input array where the values for keys "config", "constants" and "editorcfg" may have been modified with prepended code.
+        * @return      array           Returns the input array where the values for keys "config" and "constants" may have been modified with prepended code.
         * @access private
         * @see addExtensionStatics(), includeStaticTypoScriptSources()
         */
        function prependStaticExtra($subrow) {
                $subrow['config'] .= $GLOBALS['TYPO3_CONF_VARS']['FE']['defaultTypoScript_setup.'][$subrow['uid']];
-               $subrow['editorcfg'] .= $GLOBALS['TYPO3_CONF_VARS']['FE']['defaultTypoScript_editorcfg.'][$subrow['uid']];
                $subrow['constants'] .= $GLOBALS['TYPO3_CONF_VARS']['FE']['defaultTypoScript_constants.'][$subrow['uid']];
                return $subrow;
        }
@@ -697,7 +686,6 @@ class t3lib_TStemplate {
                        // Add default TS for all three code types:
                array_unshift($this->constants, '' . $GLOBALS['TYPO3_CONF_VARS']['FE']['defaultTypoScript_constants']); // Adding default TS/constants
                array_unshift($this->config, '' . $GLOBALS['TYPO3_CONF_VARS']['FE']['defaultTypoScript_setup']); // Adding default TS/setup
-               array_unshift($this->editorcfg, '' . $GLOBALS['TYPO3_CONF_VARS']['FE']['defaultTypoScript_editorcfg']); // Adding default TS/editorcfg
 
                        // Parse the TypoScript code text for include-instructions!
                $this->processIncludes();
@@ -795,28 +783,6 @@ class t3lib_TStemplate {
                        $this->setup_constants = $constants->setup; // Used for backend purposes only
                }
 
-
-                       // **************************************************
-                       // Parse Backend Editor Configuration (backend only)
-                       // **************************************************
-               if ($this->parseEditorCfgField) {
-                       $editorcfg = t3lib_div::makeInstance('t3lib_TSparser');
-                       $editorcfg->breakPointLN = intval($this->ext_editorcfg_BRP);
-                       $editorcfg->setup = array(); // Empty as a start...
-
-                       $all = implode("\n[GLOBAL]\n", $this->editorcfg);
-
-                               // substitute constants in config
-                       $all = $this->substituteConstants($all);
-
-                               // parse Config
-                       $matchObj->matchAll = 1; // This should make sure that conditions are disabled. For now they are NOT active for the backend.
-                       $editorcfg->parse($all, $matchObj);
-                       $this->parserErrors['editorcfg'] = $editorcfg->errors;
-                       $this->setup_editorcfg = $editorcfg->setup;
-               }
-
-
                        // ****************************************************************
                        // Final processing of the $this->setup TypoScript Template array
                        // Basically: This is unsetting/setting of certain reserved keys.
@@ -858,7 +824,7 @@ class t3lib_TStemplate {
        }
 
        /**
-        * Searching TypoScript code text (for constants, config (Setup) and editorcfg)
+        * Searching TypoScript code text (for constants and config (Setup))
         * for include instructions and does the inclusion of external TypoScript files
         * if needed.
         *
@@ -881,13 +847,6 @@ class t3lib_TStemplate {
                }
                unset($value);
 
-               foreach ($this->editorcfg as &$value) {
-                       $includeData = t3lib_TSparser::checkIncludeLines($value, 1, TRUE);
-                       $files = array_merge($files, $includeData['files']);
-                       $value = $includeData['typoscript'];
-               }
-               unset($value);
-
                if (count($files)) {
                        $files = array_unique($files);
                        foreach ($files as $file) {
@@ -1184,19 +1143,25 @@ class t3lib_TStemplate {
         * @return      string          The page title on the form "[sitetitle]: [input-title]". Not htmlspecialchar()'ed.
         * @see tslib_fe::tempPageCacheContent(), TSpagegen::renderContentWithHeader()
         */
-       function printTitle($title, $no_title = 0, $titleFirst = 0) {
-               $st = trim($this->setup['sitetitle']) ? $this->setup['sitetitle'] : '';
-               $title = $no_title ? '' : $title;
-               if ($titleFirst) {
-                       $temp = $st;
-                       $st = $title;
-                       $title = $temp;
-               }
-               if ($title && $st) {
-                       return $st . ': ' . $title;
-               } else {
-                       return $st . $title;
+       function printTitle($pageTitle, $noTitle = FALSE, $showTitleFirst = FALSE) {
+               $siteTitle = trim($this->setup['sitetitle']) ? $this->setup['sitetitle'] : '';
+               $pageTitle = $noTitle ? '' : $pageTitle;
+               $pageTitleSeparator = '';
+
+               if ($showTitleFirst) {
+                       $temp = $siteTitle;
+                       $siteTitle = $pageTitle;
+                       $pageTitle = $temp;
                }
+
+               if ($pageTitle != '' && $siteTitle != '') {
+                       $pageTitleSeparator = ': ';
+                       if (isset($this->setup['config.']['pageTitleSeparator']) && $this->setup['config.']['pageTitleSeparator']) {
+                               $pageTitleSeparator = $this->setup['config.']['pageTitleSeparator'] . ' ';
+                       }
+               }
+
+               return $siteTitle . $pageTitleSeparator . $pageTitle;
        }
 
        /**
@@ -1255,11 +1220,11 @@ class t3lib_TStemplate {
         * @return      array           An array with all integer properties listed in numeric order.
         * @see tslib_cObj::cObjGet(), tslib_gifBuilder, tslib_imgmenu::makeImageMap()
         */
-       function sortedKeyList($setupArr, $acceptOnlyProperties = FALSE) {
+       public static function sortedKeyList($setupArr, $acceptOnlyProperties = FALSE) {
                $keyArr = array();
                $setupArrKeys = array_keys($setupArr);
                foreach ($setupArrKeys as $key) {
-                       if ($acceptOnlyProperties || t3lib_div::testInt($key)) {
+                       if ($acceptOnlyProperties || t3lib_utility_Math::canBeInterpretedAsInteger($key)) {
                                $keyArr[] = intval($key);
                        }
                }
@@ -1348,7 +1313,7 @@ class t3lib_TStemplate {
 
                        // typeNum
                $typeNum = $this->setup[$LD['target'] . '.']['typeNum'];
-               if (!t3lib_div::testInt($typeOverride) && intval($GLOBALS['TSFE']->config['config']['forceTypeValue'])) {
+               if (!t3lib_utility_Math::canBeInterpretedAsInteger($typeOverride) && intval($GLOBALS['TSFE']->config['config']['forceTypeValue'])) {
                        $typeOverride = intval($GLOBALS['TSFE']->config['config']['forceTypeValue']);
                }
                if (strcmp($typeOverride, '')) {
@@ -1367,7 +1332,7 @@ class t3lib_TStemplate {
                        // linkVars
                if ($GLOBALS['TSFE']->config['config']['uniqueLinkVars']) {
                        if ($addParams) {
-                               $LD['linkVars'] = t3lib_div::implodeArrayForUrl('', t3lib_div::explodeUrl2Array($GLOBALS['TSFE']->linkVars . $addParams));
+                               $LD['linkVars'] = t3lib_div::implodeArrayForUrl('', t3lib_div::explodeUrl2Array($GLOBALS['TSFE']->linkVars . $addParams), '', FALSE, TRUE);
                        } else {
                                $LD['linkVars'] = $GLOBALS['TSFE']->linkVars;
                        }
@@ -1482,8 +1447,8 @@ class t3lib_TStemplate {
                        $res = $GLOBALS['TYPO3_DB']->exec_SELECTquery(
                                'uid,pid,doktype,mount_pid,mount_pid_ol',
                                'pages',
-                               'pid=' . intval($id) . ' AND deleted=0 AND doktype!=' . t3lib_pageSelect::DOKTYPE_RECYCLER .
-                               ' AND doktype!=' . t3lib_pageSelect::DOKTYPE_BE_USER_SECTION
+                               'pid=' . intval($id) . ' AND deleted=0 AND doktype<>' . t3lib_pageSelect::DOKTYPE_RECYCLER .
+                               ' AND doktype<>' . t3lib_pageSelect::DOKTYPE_BE_USER_SECTION
                        );
                        while ($row = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res)) {