Follow-up to #16495: conf.php files aren't corrected when installing extensions
authorSteffen Kamper <info@sk-typo3.de>
Tue, 23 Nov 2010 09:36:31 +0000 (09:36 +0000)
committerSteffen Kamper <info@sk-typo3.de>
Tue, 23 Nov 2010 09:36:31 +0000 (09:36 +0000)
git-svn-id: https://svn.typo3.org/TYPO3v4/Core/trunk@9507 709f56b5-9817-0410-a4d7-c38de5d9e867

ChangeLog
typo3/sysext/em/classes/extensions/class.tx_em_extensions_list.php
typo3/sysext/em/classes/index.php
typo3/sysext/em/classes/install/class.tx_em_install.php
typo3/sysext/em/classes/tools/class.tx_em_tools.php

index f07dcdd..ade1ee2 100755 (executable)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2010-11-23  Steffen Kamper  <steffen@typo3.org>
+
+       * Follow-up to #16495: conf.php files aren't corrected when installing extensions
+
 2010-11-23  Steffen Ritter  <typo3@steffen-ritter.net>
 
        * Fixed bug #16518: Extra frame after default password change, link from reports module (Thanks to Kevin Walter)
@@ -7,7 +11,7 @@
        * Fixed bug #16322: Incorrect regexp in substituteMarkerArray
        * Fixed bug #16495: conf.php files aren't corrected when installing extensions
        * Fixed bug #14974: Extra frame after default password change, link from welcome screen (Thanks to Kevin Walter)
-                       
+
 2010-11-22  Ingo Renner  <ingo@typo3.org>
 
        * Fixed bug #16507: stdWrap unavailable after refactoring of tslib_content
index 95c2699..d96a680 100644 (file)
@@ -461,7 +461,7 @@ EXTENSION KEYS:
                // Icon:
                $imgInfo = @getImageSize(tx_em_Tools::getExtPath($extKey, $extInfo['type']) . '/ext_icon.gif');
                if (is_array($imgInfo)) {
-                       $cells[] = '<td><img src="' . $GLOBALS['BACK_PATH'] . $this->parentObject->typeRelPaths[$extInfo['type']] . $extKey . '/ext_icon.gif' . '" ' . $imgInfo[3] . ' alt="" /></td>';
+                       $cells[] = '<td><img src="' . $GLOBALS['BACK_PATH'] . tx_em_Tools::typeRelPath($extInfo['type']) . $extKey . '/ext_icon.gif' . '" ' . $imgInfo[3] . ' alt="" /></td>';
                } elseif ($extInfo['_ICON']) {
                        $cells[] = '<td>' . $extInfo['_ICON'] . '</td>';
                } else {
@@ -653,7 +653,7 @@ EXTENSION KEYS:
 
                                $imgInfo = @getImageSize(tx_em_Tools::getExtPath($name, $data['type']) . '/ext_icon.gif');
                                if (is_array($imgInfo)) {
-                                       $icon = '<img src="' . $GLOBALS['BACK_PATH'] . $this->parentObject->typeRelPaths[$data['type']] . $name . '/ext_icon.gif' . '" ' . $imgInfo[3] . ' alt="" />';
+                                       $icon = '<img src="' . $GLOBALS['BACK_PATH'] . tx_em_Tools::typeRelPath($data['type']) . $name . '/ext_icon.gif' . '" ' . $imgInfo[3] . ' alt="" />';
                                } elseif ($data['_ICON']) { //TODO: see if this can be removed, seems to be wrong in this context
                                        $icon = $data['_ICON'];
                                } else {
index 1fde84c..2903f69 100644 (file)
@@ -114,12 +114,6 @@ class SC_mod_tools_em_index extends t3lib_SCbase {
        var $typeDescr = array();
        var $typeBackPaths = array(); // Also static, set in init()
 
-       var $typeRelPaths = array(
-               'S' => 'sysext/',
-               'G' => 'ext/',
-               'L' => '../typo3conf/ext/',
-       );
-
        var $detailCols = array(
                0 => 2,
                1 => 5,
@@ -2391,7 +2385,7 @@ class SC_mod_tools_em_index extends t3lib_SCbase {
                $imgInfo = @getImageSize(tx_em_Tools::getExtPath($extKey, $extInfo['type']) . '/ext_icon.gif');
                $out = '';
                if (is_array($imgInfo)) {
-                       $out .= '<img src="' . $GLOBALS['BACK_PATH'] . $this->typeRelPaths[$extInfo['type']] . $extKey . '/ext_icon.gif" ' . $imgInfo[3] . ' align="' . $align . '" alt="" />';
+                       $out .= '<img src="' . $GLOBALS['BACK_PATH'] . tx_em_Tools::typeRelPath($extInfo['type']) . $extKey . '/ext_icon.gif" ' . $imgInfo[3] . ' align="' . $align . '" alt="" />';
                }
                $out .= $extInfo['EM_CONF']['title'] ? htmlspecialchars(t3lib_div::fixed_lgd_cs($extInfo['EM_CONF']['title'], 40)) : '<em>' . htmlspecialchars($extKey) . '</em>';
                return $out;
index 6fe36c0..7e99303 100644 (file)
@@ -184,7 +184,7 @@ class tx_em_Install {
                                                                                                foreach ($modules as $mD) {
                                                                                                        $confFileName = $extDirPath . $mD . '/conf.php';
                                                                                                        if (@is_file($confFileName)) {
-                                                                                                               $messageContent .= tx_em_Tools::writeTYPO3_MOD_PATH($confFileName, $loc, $extKey . '/' . $mD . '/', $this->parentObject->typeRelPaths, $this->parentObject->typeBackPaths) . '<br />';
+                                                                                                               $messageContent .= tx_em_Tools::writeTYPO3_MOD_PATH($confFileName, $loc, $extKey . '/' . $mD . '/') . '<br />';
                                                                                                        } else {
                                                                                                                $messageContent .= sprintf($GLOBALS['LANG']->getLL('ext_import_no_conf_file'),
                                                                                                                        $confFileName) . '<br />';
@@ -954,7 +954,7 @@ class tx_em_Install {
                                if (@is_file($absPath . $mod . '/conf.php')) {
                                        $confFileInfo = $extensionDetails->modConfFileAnalysis($absPath . $mod . '/conf.php');
                                        if (is_array($confFileInfo['TYPO3_MOD_PATH'])) {
-                                               $shouldBePath = $this->typeRelPaths[$extInfo['type']] . $extKey . '/' . $mod . '/';
+                                               $shouldBePath = tx_em_Tools::typeRelPath($extInfo['type']) . $extKey . '/' . $mod . '/';
                                                if (strcmp($confFileInfo['TYPO3_MOD_PATH'][1][1], $shouldBePath)) {
                                                        $infoArray['errors'][] = sprintf($GLOBALS['LANG']->getLL('detailedExtAnalysis_wrong_mod_path'),
                                                                $confFileInfo['TYPO3_MOD_PATH'][1][1],
@@ -1113,7 +1113,7 @@ class tx_em_Install {
 
                // Initialize:
                $absPath = tx_em_Tools::getExtPath($extKey, $extInfo['type']);
-               $relPath = $this->parentObject->typeRelPaths[$extInfo['type']] . $extKey . '/';
+               $relPath = tx_em_Tools::typeRelPath($extInfo['type']) . $extKey . '/';
 
                // Look for template file for form:
                if (t3lib_extMgm::isLoaded($extKey) && @is_file($absPath . 'ext_conf_template.txt')) {
index 0b45678..7e2214f 100644 (file)
@@ -546,6 +546,21 @@ final class tx_em_Tools {
                }
        }
 
+       /**
+        * Get relative path from type
+        *
+        * @param string $type S/G/L
+        */
+       public function typeRelPath($type) {
+               if ($type === 'S') {
+                       return 'sysext/';
+               } elseif ($type === 'G') {
+                       return 'ext/';
+               } elseif ($type === 'L') {
+                       return '../typo3conf/ext/';
+               }
+       }
+
        /**
         * Reads locallang file into array (for possible include in header)
         *
@@ -874,12 +889,10 @@ final class tx_em_Tools {
         * @param       string          Absolute path to a "conf.php" file of the backend module which we want to write back to.
         * @param       string          Install scope type: L, G, S
         * @param       string          Relative path for the module folder in extension
-        * @param   array       Array of relative paths per install scope type
-        * @param   array       Array of back paths per install scope type
         * @return      string          Returns message about the status.
         * @see modConfFileAnalysis()
         */
-       function writeTYPO3_MOD_PATH($confFilePath, $type, $mP, array $typeRelativePaths, array $typeBackPaths) {
+       function writeTYPO3_MOD_PATH($confFilePath, $type, $mP) {
                $lines = explode(LF, t3lib_div::getUrl($confFilePath));
                $confFileInfo = array();
                $confFileInfo['lines'] = $lines;
@@ -894,13 +907,13 @@ final class tx_em_Tools {
 
                        unset($reg);
                        if (preg_match('/^define[[:space:]]*\([[:space:]]*["\']TYPO3_MOD_PATH["\'][[:space:]]*,[[:space:]]*["\']([[:alnum:]_\/\.]+)["\'][[:space:]]*\)[[:space:]]*;/', $line, $reg)) {
-                               $lines[$k] = str_replace($reg[0], 'define(\'TYPO3_MOD_PATH\', \'' . $typeRelativePaths[$type] . $mP . '\');', $lines[$k]);
+                               $lines[$k] = str_replace($reg[0], 'define(\'TYPO3_MOD_PATH\', \'' . self::typeRelPath($type) . $mP . '\');', $lines[$k]);
                                $flag_M = $k + 1;
                        }
 
                        unset($reg);
                        if (preg_match('/^\$BACK_PATH[[:space:]]*=[[:space:]]*["\']([[:alnum:]_\/\.]+)["\'][[:space:]]*;/', $line, $reg)) {
-                               $lines[$k] = str_replace($reg[0], '$BACK_PATH=\'' . $typeBackPaths[$type] . '\';', $lines[$k]);
+                               $lines[$k] = str_replace($reg[0], '$BACK_PATH=\'' .  self::typeRelPath($type) . '\';', $lines[$k]);
                                $flag_B = $k + 1;
                        }