Added feature #16018: Remove CSH icons from Core and replace by new CSH API
authorBenni Mack <benni.mack@typo3.org>
Sun, 17 Oct 2010 14:24:52 +0000 (14:24 +0000)
committerBenni Mack <benni.mack@typo3.org>
Sun, 17 Oct 2010 14:24:52 +0000 (14:24 +0000)
git-svn-id: https://svn.typo3.org/TYPO3v4/Core/trunk@9131 709f56b5-9817-0410-a4d7-c38de5d9e867

ChangeLog
t3lib/class.t3lib_clipboard.php
t3lib/class.t3lib_tceforms.php
typo3/class.db_list.inc
typo3/class.db_list_extra.inc
typo3/sysext/cms/layout/db_layout.php
typo3/sysext/em/mod1/class.em_index.php
typo3/sysext/list/mod1/db_list.php
typo3/sysext/setup/mod/index.php
typo3/sysext/t3skin/stylesheets/structure/module_user_settings.css

index f82f415..4c45db6 100755 (executable)
--- a/ChangeLog
+++ b/ChangeLog
@@ -14,6 +14,7 @@
 
 2010-10-17  Benjamin Mack  <benni@typo3.org>
 
+       * Added feature #16018: Remove CSH icons from Core and replace by new CSH API
        * Followup to #16006: Remove the checkbox that clears the input fields in TCE-forms and replace it with a sprite icon - fix for flexforms (Thanks to Jo Hasenau)
        * Added feature #15844: Use HTML5 as the default TYPO3 Backend doktype
        * Added feature #16026: Added hook / Cannot hook into the marker replacement functionality for BE templates
index db2b192..5150b94 100644 (file)
@@ -312,7 +312,7 @@ class t3lib_clipboard {
                        // Upper header
                $out[]='
                        <tr class="t3-row-header">
-                               <td colspan="3" nowrap="nowrap" align="center"><strong>' . $this->clLabel('clipboard', 'buttons') . '</strong></td>
+                               <td colspan="3">' . t3lib_BEfunc::wrapInHelp('xMOD_csh_corebe', 'list_clipboard', $this->clLabel('clipboard', 'buttons')) . '</td>
                        </tr>';
 
                        // Button/menu header:
index 983a3e6..20a5cf3 100644 (file)
@@ -2924,16 +2924,18 @@ class t3lib_TCEforms    {
                                                                        }
                                                                }
 
+                                                               $languageIcon = '';
+                                                               if ($vDEFkey != 'vDEF') {
+                                                                       $languageIcon = $this->getLanguageIcon($table, $row, $vDEFkey);
+                                                               }
                                                                        // Put row together
                                                                        // possible linebreaks in the label through xml: \n => <br/>, usage of nl2br() not possible, so it's done through str_replace
                                                                $processedTitle = str_replace('\n', '<br />', $theTitle);
-                                                               $helpText = $this->helpText_typeFlex($key, $processedTitle, $PA['_cshFile']);
                                                                $tRows[]='<div class="t3-form-field-container t3-form-field-container-flex">' .
                                                                        '<div class="t3-form-field-label t3-form-field-label-flex">' .
-                                                                       ($helpText ?
-                                                                               ($vDEFkey=='vDEF' ? '' : $this->getLanguageIcon($table, $row, $vDEFkey)) . '<strong>' . $processedTitle . '</strong>' . $helpText :
-                                                                               $this->helpTextIcon_typeFlex($key, $processedTitle, $PA['_cshFile']) . ($vDEFkey == 'vDEF' ? '' : $this->getLanguageIcon($table, $row, $vDEFkey)) . $processedTitle
-                                                                       ) .
+                                                                       $this->helpTextIcon_typeFlex($key, $processedTitle, $PA['_cshFile']) . 
+                                                                       $languageIcon . 
+                                                                       $processedTitle .
                                                                        '</div>
                                                                        <div class="t3-form-field t3-form-field-flex">'.$theFormEl.$defInfo.$this->renderVDEFDiff($editData[$key],$vDEFkey).'</div>
                                                                </div>';
@@ -5117,8 +5119,10 @@ class t3lib_TCEforms     {
         * @param       string          The field name
         * @param       boolean         Force the return of the help-text icon.
         * @return      string          HTML, <a>-tag with
+        * @deprecated since TYPO3 4.5, will be removed in TYPO3 4.7
         */
        function helpTextIcon($table,$field,$force=0)   {
+               t3lib_div::logDeprecatedFunction();
                if ($this->globalShowHelp && $GLOBALS['TCA_DESCR'][$table]['columns'][$field] && (($this->edit_showFieldHelp=='icon'&&!$this->doLoadTableDescr($table)) || $force))     {
                        return t3lib_BEfunc::helpTextIcon($table, $field, $this->backPath, $force);
                } else {
@@ -5133,8 +5137,10 @@ class t3lib_TCEforms     {
         * @param       string          The table name
         * @param       string          The field name
         * @return      string
+        * @deprecated since TYPO3 4.5, will be removed in TYPO3 4.7
         */
        function helpText($table,$field)        {
+               t3lib_div::logDeprecatedFunction();
                if ($this->globalShowHelp && $GLOBALS['TCA_DESCR'][$table]['columns'][$field] && ($this->edit_showFieldHelp=='text' || $this->doLoadTableDescr($table)))        {
                        $fDat = $GLOBALS['TCA_DESCR'][$table]['columns'][$field];
                        return '<table border="0" cellpadding="2" cellspacing="0" width="90%"><tr><td valign="top" width="14">'.
@@ -5218,6 +5224,7 @@ class t3lib_TCEforms      {
                return '';
        }
 
+
        /**
         * Setting the current color scheme ($this->colorScheme) based on $this->defColorScheme plus input string.
         *
index 6bd8c0b..38c9473 100644 (file)
@@ -344,7 +344,6 @@ class recordList extends t3lib_recordList {
                                        </tr>
                                </table>
                        '.$formElements[1];
-               $content .= t3lib_BEfunc::cshItem('xMOD_csh_corebe', 'list_searchbox', $GLOBALS['BACK_PATH'], '|<br />');
                return $content;
        }
 
index 2b8d04a..91a8a65 100644 (file)
@@ -469,32 +469,18 @@ class localRecordList extends recordList {
                                // Header line is drawn
                        $theData = Array();
                        if ($this->disableSingleTableView)      {
-                               $theData[$titleCol] = '<span class="c-table">'.$GLOBALS['LANG']->sL($TCA[$table]['ctrl']['title'],1).'</span> ('.$this->totalItems.')';
+                               $theData[$titleCol] = '<span class="c-table">' . t3lib_BEfunc::wrapInHelp($table, '', $GLOBALS['LANG']->sL($TCA[$table]['ctrl']['title'], TRUE)) . '</span> ('.$this->totalItems.')';
                        } else {
                                $theData[$titleCol] = $this->linkWrapTable($table, '<span class="c-table">' . $GLOBALS['LANG']->sL($TCA[$table]['ctrl']['title'], TRUE) . '</span> (' . $this->totalItems . ') ' .
                                                ($this->table ? t3lib_iconWorks::getSpriteIcon('actions-view-table-collapse', array('title' => $GLOBALS['LANG']->getLL('contractView', TRUE))) : t3lib_iconWorks::getSpriteIcon('actions-view-table-expand', array('title' => $GLOBALS['LANG']->getLL('expandView', TRUE))))
                                        );
                        }
 
-                               // CSH:
-                       $theData[$titleCol].= t3lib_BEfunc::cshItem($table,'',$this->backPath,'',FALSE,'margin-bottom:0px; white-space: normal;');
-
                        if ($listOnlyInSingleTableMode) {
                                $out.='
                                        <tr>
-                                               <td class="t3-row-header" style="width:95%;">' . $theData[$titleCol] . '</td>
-                                       </tr>';
-
-                               if ($GLOBALS['BE_USER']->uc["edit_showFieldHelp"])      {
-                                       $GLOBALS['LANG']->loadSingleTableDescription($table);
-                                       if (isset($GLOBALS['TCA_DESCR'][$table]['columns']['']))        {
-                                               $onClick = 'vHWin=window.open(\'view_help.php?tfID='.$table.'.\',\'viewFieldHelp\',\'height=400,width=600,status=0,menubar=0,scrollbars=1\');vHWin.focus();return false;';
-                                               $out.='
-                                       <tr>
-                                               <td class="c-tableDescription">'.t3lib_BEfunc::helpTextIcon($table,'',$this->backPath,TRUE).$GLOBALS['TCA_DESCR'][$table]['columns']['']['description'].'</td>
+                                               <td class="t3-row-header" style="width:95%;">' . t3lib_BEfunc::wrapInHelp($table, '', $theData[$titleCol]) . '</td>
                                        </tr>';
-                                       }
-                               }
                        } else {
                                // Render collapse button if in multi table mode
                                $collapseIcon = '';
index 538a651..6470346 100755 (executable)
@@ -1114,7 +1114,12 @@ class SC_db_layout {
 
                                // Making search form:
                        if (!$this->modTSconfig['properties']['disableSearchBox'] && count($tableOutput))       {
-                               $content .= $this->doc->section($LANG->sL('LLL:EXT:lang/locallang_core.php:labels.search'), $dblist->getSearchBox(0), 0, 1);
+                               $sectionTitle = t3lib_BEfunc::wrapInHelp('xMOD_csh_corebe', 'list_searchbox', $LANG->sL('LLL:EXT:lang/locallang_core.php:labels.search', TRUE));
+                               $content .= $this->doc->section(
+                                       $sectionTitle,
+                                       $dblist->getSearchBox(0),
+                                       FALSE, TRUE, FALSE, TRUE
+                               );
                        }
 
                                // Making display of Sys-notes (from extension "sys_note")
index 075081a..9dd7d48 100644 (file)
@@ -701,8 +701,6 @@ class SC_mod_tools_em_index extends t3lib_SCbase {
                        'back' => '',
                        'shortcut' => ''
                );
-                       // CSH
-               //$buttons['csh'] = t3lib_BEfunc::cshItem('_MOD_web_func', '', $GLOBALS['BACK_PATH']);
 
                        // Shortcut
                if ($GLOBALS['BE_USER']->mayMakeShortcut())     {
@@ -773,7 +771,10 @@ class SC_mod_tools_em_index extends t3lib_SCbase {
                        }
                }
 
-               $content.= t3lib_BEfunc::cshItem('_MOD_tools_em', 'loaded', $GLOBALS['BACK_PATH'],'');
+                       // headline and CSH
+               $headline = $GLOBALS['LANG']->getLL('loaded_exts');
+               $headline = t3lib_BEfunc::wrapInHelp('_MOD_tools_em', 'loaded', $headline);
+
                $content.= '<form action="index.php" method="post" name="lookupform">';
                $content.= '<label for="lookUp">' . $GLOBALS['LANG']->getLL('look_up') . '</label> <input type="text" id="lookUp" name="lookUp" value="' . htmlspecialchars($this->lookUpStr) . '" /><input type="submit" value="' . $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_common.xml:search') . '" /><br /><br />';
 
@@ -782,7 +783,7 @@ class SC_mod_tools_em_index extends t3lib_SCbase {
                        <!-- Loaded Extensions List -->
                        <table border="0" cellpadding="2" cellspacing="1">'.implode('',$lines).'</table>';
 
-               $this->content.=$this->doc->section($GLOBALS['LANG']->getLL('loaded_exts'),$content,0,1);
+               $this->content .= $this->doc->section($headline, $content, FALSE, TRUE, FALSE, TRUE);
        }
 
        /**
@@ -844,7 +845,9 @@ EXTENSION KEYS:
 
 ';
 
-                       $content.= t3lib_BEfunc::cshItem('_MOD_tools_em', 'avail', $GLOBALS['BACK_PATH'], '|<br />');
+                       $headline = sprintf($GLOBALS['LANG']->getLL('available_extensions'), $this->MOD_MENU['listOrder'][$this->MOD_SETTINGS['listOrder']]);
+                       $headline = t3lib_BEfunc::wrapInHelp('_MOD_tools_em', 'avail', $headline);
+
                        $content.= sprintf($GLOBALS['LANG']->getLL('how_to_install'), $this->installButton()) . ' <br />' .
                                                sprintf($GLOBALS['LANG']->getLL('how_to_uninstall'), $this->removeButton()). ' <br /><br />';
                        $content .= '<form action="index.php" method="post" name="lookupform">';
@@ -853,7 +856,7 @@ EXTENSION KEYS:
 
                        $content.= '<table border="0" cellpadding="2" cellspacing="1">'.implode('',$lines).'</table>';
 
-                       $this->content.=$this->doc->section(sprintf($GLOBALS['LANG']->getLL('available_extensions'), $this->MOD_MENU['listOrder'][$this->MOD_SETTINGS['listOrder']]),$content,0,1);
+                       $this->content .= $this->doc->section($headline, $content, FALSE, TRUE, FALSE, TRUE);
                }
        }
 
@@ -947,8 +950,12 @@ EXTENSION KEYS:
                                        }
                                        unset($list);
 
-                                               // CSH:
-                                       $content .= t3lib_BEfunc::cshItem('_MOD_tools_em', 'import_ter', $GLOBALS['BACK_PATH'], '|<br />');
+
+                                               // headline and CSH
+                                       $headline = $GLOBALS['LANG']->getLL('extensions_repository_group_by') . ' ' .
+                                               $this->MOD_MENU['listOrder'][$this->MOD_SETTINGS['listOrder']];
+                                       $headline = t3lib_BEfunc::wrapInHelp('_MOD_tools_em', 'import_ter', $headline);
+
                                        $onsubmit = "window.location.href='index.php?ter_connect=1&ter_search='+escape(this.elements['lookUp'].value);return false;";
                                        $content .= '<form action="index.php" method="post" onsubmit="' . htmlspecialchars($onsubmit) .
                                                        '"><label for="lookUp">' . $GLOBALS['LANG']->getLL('list_or_look_up_extensions') . '</label><br />
@@ -966,8 +973,7 @@ EXTENSION KEYS:
                                        $content .= '<br /><br /><strong>' . $GLOBALS['LANG']->getLL('privacy_notice_header') .
                                                '</strong><br /> ' . $this->privacyNotice;
 
-                                       $this->content .= $this->doc->section($GLOBALS['LANG']->getLL('extensions_repository_group_by') . ' ' .
-                                               $this->MOD_MENU['listOrder'][$this->MOD_SETTINGS['listOrder']], $content, 0, 1);
+                                       $this->content .= $this->doc->section($headline, $content, FALSE, TRUE, FALSE, TRUE);
 
                                                // Plugins which are NOT uploaded to repository but present on this server.
                                        $content='';
@@ -997,7 +1003,12 @@ EXTENSION KEYS:
                                        }
                                }
                        } else {
-                               $content .= t3lib_BEfunc::cshItem('_MOD_tools_em', 'import_ter', $GLOBALS['BACK_PATH'], '|<br />');
+
+                                       // headline and CSH
+                               $headline = $GLOBALS['LANG']->getLL('extensions_repository_group_by') . ' ' .
+                                       $this->MOD_MENU['listOrder'][$this->MOD_SETTINGS['listOrder']];
+                               $headline = t3lib_BEfunc::wrapInHelp('_MOD_tools_em', 'import_ter', $headline);
+
                                $onsubmit = "window.location.href='index.php?ter_connect=1&ter_search='+escape(this.elements['lookUp'].value);return false;";
                                $content .= '<form action="index.php" method="post" onsubmit="' . htmlspecialchars($onsubmit) .
                                        '"><label for="lookUp">' .
@@ -1009,12 +1020,13 @@ EXTENSION KEYS:
 
                                $content .= '<br /><br /><strong>' . $GLOBALS['LANG']->getLL('privacy_notice_header') .
                                        '</strong><br /> ' . $this->privacyNotice;
-                               $this->content.=$this->doc->section($GLOBALS['LANG']->getLL('extensions_repository_group_by') . ' ' .
-                                       $this->MOD_MENU['listOrder'][$this->MOD_SETTINGS['listOrder']], $content, 0, 1);
+                               $this->content .= $this->doc->section($headline, $content, FALSE, TRUE);
                        }
                } else {
-                               // CSH
-                       $content .= t3lib_BEfunc::cshItem('_MOD_tools_em', 'import', $GLOBALS['BACK_PATH'], '|<br />');
+
+                               // section headline and CSH
+                       $headline = $GLOBALS['LANG']->getLL('in_repository');
+                       $headline = t3lib_BEfunc::wrapInHelp('_MOD_tools_em', 'import', $headline);
 
                        $onsubmit = "window.location.href='index.php?ter_connect=1&ter_search='+escape(this.elements['lookUp'].value);return false;";
                        $content .= '<form action="index.php" method="post" onsubmit="' . htmlspecialchars($onsubmit) .
@@ -1045,7 +1057,7 @@ EXTENSION KEYS:
                        $content .= '<br /><br /><strong>' . $GLOBALS['LANG']->getLL('privacy_notice_header') .
                                '</strong><br />' . $this->privacyNotice;
 
-                       $this->content.=$this->doc->section($GLOBALS['LANG']->getLL('in_repository'), $content, 0, 1);
+                       $this->content .= $this->doc->section($headline, $content, FALSE, TRUE, FALSE, TRUE);
                }
 
                        // Upload:
@@ -1111,9 +1123,12 @@ EXTENSION KEYS:
         */
        function alterSettings()        {
 
+                       // section headline and CSH
+               $headline = $GLOBALS['LANG']->getLL('repository_settings');
+               $headline = t3lib_BEfunc::wrapInHelp('_MOD_tools_em', 'settings', $headline);
+
                        // Prepare the HTML output:
                $content.= '
-                       ' . t3lib_BEfunc::cshItem('_MOD_tools_em', 'settings', $GLOBALS['BACK_PATH'], '|<br />') . '
                        <form action="index.php" method="post" name="altersettings">
                        <fieldset><legend>' . $GLOBALS['LANG']->getLL('user_settings') . '</legend>
                        <table border="0" cellpadding="2" cellspacing="2">
@@ -1193,7 +1208,7 @@ EXTENSION KEYS:
                        </form>
                ';
 
-               $this->content .= $this->doc->section($GLOBALS['LANG']->getLL('repository_settings'), $content, 0, 1);
+               $this->content .= $this->doc->section($headline, $content, FALSE, TRUE, FALSE, TRUE);
        }
 
        /**
@@ -1232,9 +1247,14 @@ EXTENSION KEYS:
                }
                ksort($opt);
 
+
+
+                       // section headline and CSH
+               $headline = $GLOBALS['LANG']->getLL('translation_settings');
+               $headline = t3lib_BEfunc::wrapInHelp('_MOD_tools_em', 'translation', $headline);
+
                        // Prepare the HTML output:
                $content.= '
-                       ' . t3lib_BEfunc::cshItem('_MOD_tools_em', 'translation', $GLOBALS['BACK_PATH'], '|<br />') . '
                        <form action="index.php" method="post" name="translationform">
                        <fieldset><legend>' . $GLOBALS['LANG']->getLL('translation_settings') . '</legend>
                        <table border="0" cellpadding="2" cellspacing="2">
@@ -1257,7 +1277,7 @@ EXTENSION KEYS:
                        <br />
                        </form>';
 
-               $this->content .= $this->doc->section($GLOBALS['LANG']->getLL('translation_settings'), $content, 0, 1);
+               $this->content .= $this->doc->section($headline, $content, FALSE, TRUE, FALSE, TRUE);
 
                if(count($selectedLanguages)>0) {
                        $mirrorURL = $this->getMirrorURL();
@@ -2454,13 +2474,12 @@ EXTENSION KEYS:
                                                }
 
                                                // Show details:
-                                               $content = t3lib_BEfunc::cshItem('_MOD_tools_em', 'info', $GLOBALS['BACK_PATH'], '|<br />');
-                                               $content.= $this->extInformationArray($extKey,$list[$extKey]);
+                                               $headline = $GLOBALS['LANG']->getLL('ext_details_details');
+                                               $headline = t3lib_BEfunc::wrapInHelp('_MOD_tools_em', 'info', $headline);
+                                               $content = $this->extInformationArray($extKey,$list[$extKey]);
 
                                                $this->content.=$this->doc->spacer(10);
-                                               $this->content .= $this->doc->section(
-                                                       $GLOBALS['LANG']->getLL('ext_details_details'), $content, 0, 1
-                                               );
+                                               $this->content .= $this->doc->section($headline, $content, FALSE, TRUE, FALSE, TRUE);
                                                break;
                                        case 'upload':
                                                $em = t3lib_div::_POST('em');
@@ -2472,8 +2491,9 @@ EXTENSION KEYS:
                                                                // Must reload this, because EM_CONF information has been updated!
                                                        list($list,)=$this->getInstalledExtensions();
                                                } else {
-                                                               // CSH:
-                                                       $content = t3lib_BEfunc::cshItem('_MOD_tools_em', 'upload', $GLOBALS['BACK_PATH'], '|<br />');
+                                                               // headline and CSH
+                                                       $headline = $GLOBALS['LANG']->getLL('ext_details_upload_to_ter');
+                                                       $headline = t3lib_BEfunc::wrapInHelp('_MOD_tools_em', 'upload', $headline);
 
                                                                // Upload:
                                                        if (substr($extKey,0,5)!='user_')       {
@@ -2496,10 +2516,7 @@ EXTENSION KEYS:
 
                                                        }
                                                }
-                                               $this->content .= $this->doc->section(
-                                                       $GLOBALS['LANG']->getLL('ext_details_upload_to_ter'),
-                                                       $content, 0, 1, $eC
-                                               );
+                                               $this->content .= $this->doc->section($headline, $content, 0, 1, $eC, TRUE);
                                                break;
                                        case 'backup':
                                                if($this->CMD['doDelete']) {
@@ -2509,12 +2526,12 @@ EXTENSION KEYS:
                                                                $content, 0, 1
                                                        );
                                                } else {
-                                                       $csh = t3lib_BEfunc::cshItem('_MOD_tools_em', 'backup_delete', $GLOBALS['BACK_PATH'], '|<br />');
+                                                               // headline and CSH
+                                                       $headline = $GLOBALS['LANG']->getLL('ext_details_backup');
+                                                       $headline = t3lib_BEfunc::wrapInHelp('_MOD_tools_em', 'backup_delete', $headline);
+
                                                        $content = $this->extBackup($extKey, $list[$extKey]);
-                                                       $this->content .= $this->doc->section(
-                                                               $GLOBALS['LANG']->getLL('ext_details_backup') . '&nbsp;' . $csh,
-                                                               $content, 0, 1, 0, 1
-                                                       );
+                                                       $this->content .= $this->doc->section($headline, $content, 0, 1, 0, 1);
 
                                                        $content = $this->extDelete($extKey,$list[$extKey]);
                                                        $this->content .= $this->doc->section(
@@ -2533,13 +2550,14 @@ EXTENSION KEYS:
                                                $this->extDumpTables($extKey,$list[$extKey]);
                                                break;
                                        case 'edit':
-                                               $content = t3lib_BEfunc::cshItem('_MOD_tools_em', 'editfiles', $GLOBALS['BACK_PATH'], '|<br />');
-                                               $content.= $this->getFileListOfExtension($extKey,$list[$extKey]);
 
-                                               $this->content.=$this->doc->section(
-                                                       $GLOBALS['LANG']->getLL('ext_details_ext_files'),
-                                                       $content, 0, 1
-                                               );
+                                                       // headline and CSH
+                                               $headline = $GLOBALS['LANG']->getLL('ext_details_ext_files');
+                                               $headline = t3lib_BEfunc::wrapInHelp('_MOD_tools_em', 'editfiles', $headline);
+
+                                               $content = $this->getFileListOfExtension($extKey,$list[$extKey]);
+
+                                               $this->content .= $this->doc->section($headline, $content, FALSE, TRUE, FALSE, TRUE);
                                                break;
                                        case 'updateModule':
                                                $this->content .= $this->doc->section(
@@ -3027,101 +3045,202 @@ EXTENSION KEYS:
         * @return      string          HTML content.
         */
        function extInformationArray($extKey,$extInfo,$remote=0)        {
-               $lines=array();
-               $lines[] = '<tr class="t3-row-header"><td colspan="2"><strong>' . $GLOBALS['LANG']->getLL('extInfoArray_general_info') . '</strong></td>' .
-                               $this->helpCol('') . '</tr>';
-               $lines[] = '<tr class="bgColor4"><td>' . $GLOBALS['LANG']->getLL('extInfoArray_title') . '</td>
-                               <td>' . $extInfo['EM_CONF']['_icon'] . $extInfo['EM_CONF']['title'] . '</td>' .
-                               $this->helpCol('title') . '</tr>';
-               $lines[] = '<tr class="bgColor4"><td>' . $GLOBALS['LANG']->getLL('extInfoArray_description') . '</td>
-                               <td>' . nl2br(htmlspecialchars($extInfo['EM_CONF']['description'])) . '</td>' .
-                               $this->helpCol('description') . '</tr>';
-               $lines[] = '<tr class="bgColor4"><td>' . $GLOBALS['LANG']->getLL('extInfoArray_author') . '</td>
-                               <td>' . $this->wrapEmail($extInfo['EM_CONF']['author'] .
-                                       ($extInfo['EM_CONF']['author_email'] ?
-                                               ' <' . $extInfo['EM_CONF']['author_email'] . '>' : ''),
-                                       $extInfo['EM_CONF']['author_email']) .
-                                       ($extInfo['EM_CONF']['author_company'] ?
-                                               ', ' . $extInfo['EM_CONF']['author_company'] : '') . '</td>' .
-                               $this->helpCol('author') . '</tr>';
-
-
-               $lines[] = '<tr class="bgColor4"><td>' . $GLOBALS['LANG']->getLL('extInfoArray_version') . '</td>
-                               <td>' . $extInfo['EM_CONF']['version'] . '</td>' .
-                               $this->helpCol('version') . '</tr>';
-               $lines[] = '<tr class="bgColor4"><td>' . $GLOBALS['LANG']->getLL('extInfoArray_category') . '</td>
-                               <td>' . $this->categories[$extInfo['EM_CONF']['category']] . '</td>' .
-                               $this->helpCol('category') . '</tr>';
-               $lines[] = '<tr class="bgColor4"><td>' . $GLOBALS['LANG']->getLL('extInfoArray_state') . '</td>
-                               <td>' . $this->states[$extInfo['EM_CONF']['state']] . '</td>' .
-                               $this->helpCol('state') . '</tr>';
-               $lines[] = '<tr class="bgColor4"><td>' . $GLOBALS['LANG']->getLL('extInfoArray_shy') . '</td>
-                               <td>' . ($extInfo['EM_CONF']['shy'] ?
-                                       $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_common.xml:yes')
-                                       : $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_common.xml:no')) . '</td>' .
-                               $this->helpCol('shy') . '</tr>';
-               $lines[] = '<tr class="bgColor4"><td>' . $GLOBALS['LANG']->getLL('extInfoArray_internal') . '</td>
-                               <td>' . ($extInfo['EM_CONF']['internal'] ?
-                                       $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_common.xml:yes')
-                                       : $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_common.xml:no')) . '</td>' .
-                               $this->helpCol('internal') . '</tr>';
-
-
-               $lines[] = '<tr class="bgColor4"><td>' . $GLOBALS['LANG']->getLL('extInfoArray_depends_on') . '</td>
-                               <td>' . $this->depToString($extInfo['EM_CONF']['constraints']) . '</td>' .
-                               $this->helpCol('dependencies') . '</tr>';
-               $lines[] = '<tr class="bgColor4"><td>' . $GLOBALS['LANG']->getLL('extInfoArray_conflicts_with') . '</td>
-                               <td>' . $this->depToString($extInfo['EM_CONF']['constraints'], 'conflicts') . '</td>' .
-                               $this->helpCol('conflicts') . '</tr>';
-               $lines[] = '<tr class="bgColor4"><td>' . $GLOBALS['LANG']->getLL('extInfoArray_suggests') . '</td>
-                               <td>' . $this->depToString($extInfo['EM_CONF']['constraints'], 'suggests') . '</td>' .
-                               $this->helpCol('suggests') . '</tr>';
-               if (!$remote)   {
-                       $lines[] = '<tr class="bgColor4"><td>' . $GLOBALS['LANG']->getLL('extInfoArray_priority') . '</td>
-                                       <td>' . $extInfo['EM_CONF']['priority'] . '</td>' .
-                                       $this->helpCol('priority') . '</tr>';
-                       $lines[] = '<tr class="bgColor4"><td>' . $GLOBALS['LANG']->getLL('extInfoArray_clear_cache') . '</td>
-                                       <td>' . ($extInfo['EM_CONF']['clearCacheOnLoad'] ?
-                                               $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_common.xml:yes')
-                                               : $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_common.xml:no')) . '</td>' .
-                                       $this->helpCol('clearCacheOnLoad') . '</tr>';
-                       $lines[] = '<tr class="bgColor4"><td>' . $GLOBALS['LANG']->getLL('extInfoArray_incl_modules') . '</td>
-                                       <td>' . $extInfo['EM_CONF']['module'] . '</td>' .
-                                       $this->helpCol('module') . '</tr>';
-                       $lines[] = '<tr class="bgColor4"><td>' . $GLOBALS['LANG']->getLL('extInfoArray_lock_type') . '</td>
-                                       <td>' . ($extInfo['EM_CONF']['lockType'] ?
-                                               $extInfo['EM_CONF']['lockType'] : '') . '</td>' .
-                                       $this->helpCol('lockType') . '</tr>';
-                       $lines[] = '<tr class="bgColor4"><td>' . $GLOBALS['LANG']->getLL('extInfoArray_load_in_frontend') . '</td>
-                                       <td>' . ($extInfo['EM_CONF']['doNotLoadInFE'] ?
-                                               $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_common.xml:no')
-                                               : $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_common.xml:yes')) . '</td>' .
-                                       $this->helpCol('doNotLoadInFE') . '</tr>';
-                       $lines[] = '<tr class="bgColor4"><td>' . $GLOBALS['LANG']->getLL('extInfoArray_modifies_tables') . '</td>
-                                       <td>' . $extInfo['EM_CONF']['modify_tables'] . '</td>' .
-                                       $this->helpCol('modify_tables') . '</tr>';
+               $emConf = $extInfo['EM_CONF'];
+
+               $lines = array();
+               $lines[] = '
+                       <tr class="t3-row-header"><td colspan="2"><strong>' . $GLOBALS['LANG']->getLL('extInfoArray_general_info') . '</strong></td></tr>';
+
+                       // row for the extension title
+               $key = 'title';
+               $dataCol = $emConf['_icon'] . $emConf[$key];
+               $lines[] = array(
+                       $this->headerCol($key),
+                       $dataCol
+               );
+
+                       // row for the extension description
+               $key = 'description';
+               $dataCol = nl2br(htmlspecialchars($emConf[$key]));
+               $lines[] = array(
+                       $this->headerCol($key),
+                       $dataCol
+               );
+
+                       // row for the extension author
+               $key = 'author';
+               $dataCol = $this->wrapEmail($emConf['author'] . ($emConf['author_email'] ? ' <' . $emConf['author_email'] . '>' : ''), $emConf['author_email']);
+               if ($emConf['author_company']) {
+                       $dataCol = ', ' . $emConf['author_company'];
+               }
+               $lines[] = array(
+                       $this->headerCol($key),
+                       $dataCol
+               );
+
+                       // row for the version
+               $key = 'version';
+               $dataCol = $emConf[$key];
+               $lines[] = array(
+                       $this->headerCol($key),
+                       $dataCol
+               );
+
+                       // row for the category
+               $key = 'category';
+               $dataCol = $this->categories[$emConf[$key]];
+               $lines[] = array(
+                       $this->headerCol($key),
+                       $dataCol
+               );
+
+                       // row for the state
+               $key = 'state';
+               $dataCol = $this->states[$emConf[$key]];
+               $lines[] = array(
+                       $this->headerCol($key),
+                       $dataCol
+               );
+
+                       // row for the shy state
+               $key = 'shy';
+               if ($emConf[$key]) {
+                       $dataCol = $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_common.xml:yes');
+               } else {
+                       $dataCol = $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_common.xml:no');
+               }
+               $lines[] = array(
+                       $this->headerCol($key),
+                       $dataCol
+               );
+
+                       // row for the internal state
+               $key = 'internal';
+               if ($emConf[$key]) {
+                       $dataCol = $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_common.xml:yes');
+               } else {
+                       $dataCol = $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_common.xml:no');
+               }
+               $lines[] = array(
+                       $this->headerCol($key),
+                       $dataCol
+               );
+
+                       // row for the dependencies
+               $headerCol = $GLOBALS['LANG']->getLL('extInfoArray_depends_on');
+               $headerCol = t3lib_BEfunc::wrapInHelp($this->descrTable, 'emconf_dependencies', $headerCol);
+               $dataCol = $this->depToString($emConf['constraints']);
+               $lines[] = array(
+                       $headerCol,
+                       $dataCol
+               );
+
+                       // row for the conflicts
+               $headerCol = $GLOBALS['LANG']->getLL('extInfoArray_conflicts_with');
+               $headerCol = t3lib_BEfunc::wrapInHelp($this->descrTable, 'emconf_conflicts', $headerCol);
+               $dataCol = $this->depToString($emConf['constraints'], 'conflicts');
+               $lines[] = array(
+                       $headerCol,
+                       $dataCol
+               );
+
+                       // row for the suggestions
+               $headerCol = $GLOBALS['LANG']->getLL('extInfoArray_suggests');
+               $headerCol = t3lib_BEfunc::wrapInHelp($this->descrTable, 'emconf_conflicts', $headerCol);
+               $dataCol = $this->depToString($emConf['constraints'], 'suggests');
+               $lines[] = array(
+                       $this->headerCol('suggests'),
+                       $dataCol
+               );
+
+               if (!$remote) {
+
+                       $key = 'priority';
+                       $lines[] = array(
+                               $this->headerCol($key),
+                               $emConf[$key]
+                       );
+
+
+                       $headerCol = $GLOBALS['LANG']->getLL('extInfoArray_clear_cache');
+                       $headerCol = t3lib_BEfunc::wrapInHelp($this->descrTable, 'emconf_clearCacheOnLoad', $headerCol);
+                       if ($emConf['clearCacheOnLoad']) {
+                               $dataCol = $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_common.xml:yes');
+                       } else {
+                               $dataCol = $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_common.xml:no');
+                       }
+                       $lines[] = array(
+                               $headerCol,
+                               $dataCol
+                       );
+
+                       $key = 'module';
+                       $headerCol = $GLOBALS['LANG']->getLL('extInfoArray_incl_modules');
+                       $headerCol = t3lib_BEfunc::wrapInHelp($this->descrTable, 'emconf_module', $headerCol);
+                       $lines[] = array(
+                               $headerCol,
+                               $emConf[$key]
+                       );
+
+                       $key = 'lockType';
+                       $headerCol = $GLOBALS['LANG']->getLL('extInfoArray_lock_type');
+                       $headerCol = t3lib_BEfunc::wrapInHelp($this->descrTable, 'emconf_lockType', $headerCol);
+                       $lines[] = array(
+                               $headerCol,
+                               ($emConf[$key] ? $emConf[$key] : '')
+                       );
+
+                       $key = 'doNotLoadInFE';
+                       $headerCol = $GLOBALS['LANG']->getLL('extInfoArray_load_in_frontend');
+                       $headerCol = t3lib_BEfunc::wrapInHelp($this->descrTable, 'emconf_doNotLoadInFE', $headerCol);
+                       if (!$emConf['doNotLoadInFE']) {
+                               $dataCol = $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_common.xml:yes');
+                       } else {
+                               $dataCol = $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_common.xml:no');
+                       }
+                       $lines[] = array(
+                               $headerCol,
+                               $dataCol
+                       );
+
+                       $key = 'modify_tables';
+                       $headerCol = $GLOBALS['LANG']->getLL('extInfoArray_modifies_tables');
+                       $headerCol = t3lib_BEfunc::wrapInHelp($this->descrTable, 'emconf_modify_tables', $headerCol);
+                       $lines[] = array(
+                               $headerCol,
+                               $emConf[$key]
+                       );
 
 
                        // Installation status:
-                       $techInfo = $this->makeDetailedExtensionAnalysis($extKey,$extInfo,1);
-                       $lines[] = '<tr><td>&nbsp;</td><td></td>'.$this->helpCol('').'</tr>';
-                       $lines[] = '<tr class="t3-row-header"><td colspan="2"><strong>' . $GLOBALS['LANG']->getLL('extInfoArray_inst_status') . '</strong></td>' .
-                                       $this->helpCol('') . '</tr>';
-                       $lines[] = '<tr class="bgColor4"><td>' . $GLOBALS['LANG']->getLL('extInfoArray_inst_type') . '</td>
-                                       <td>' . $this->typeLabels[$extInfo['type']] . ' - <em>' . $this->typeDescr[$extInfo['type']] . '</em></td>' .
-                                       $this->helpCol('type') . '</tr>';
-                       $lines[] = '<tr class="bgColor4"><td>' . $GLOBALS['LANG']->getLL('extInfoArray_inst_twice') . '</td>
-                                       <td>' . $this->extInformationArray_dbInst($extInfo['doubleInstall'], $extInfo['type']) . '</td>' .
-                                       $this->helpCol('doubleInstall') . '</tr>';
-                       if (is_array($extInfo['files']))        {
+                       $techInfo = $this->makeDetailedExtensionAnalysis($extKey, $extInfo, 1);
+                       $lines[] = array('<tr><td colspan="2">&nbsp;</td></tr>');
+                       $lines[] = array('<tr class="t3-row-header"><td colspan="2"><strong>' . $GLOBALS['LANG']->getLL('extInfoArray_inst_status') . '</strong></td></tr>');
+
+
+
+                       $headerCol = $GLOBALS['LANG']->getLL('extInfoArray_inst_type');
+                       $headerCol = t3lib_BEfunc::wrapInHelp($this->descrTable, 'emconf_type', $headerCol);
+                       $dataCol = $this->typeLabels[$extInfo['type']] . ' - <em>' . $this->typeDescr[$extInfo['type']] . '</em>';
+                       $lines[] = array($headerCol, $dataCol);
+
+
+                       $headerCol = $GLOBALS['LANG']->getLL('extInfoArray_inst_twice');
+                       $headerCol = t3lib_BEfunc::wrapInHelp($this->descrTable, 'emconf_doubleInstall', $headerCol);
+                       $dataCol = $this->extInformationArray_dbInst($extInfo['doubleInstall'], $extInfo['type']);
+                       $lines[] = array($headerCol, $dataCol);
+
+
+                       if (is_array($extInfo['files'])) {
                                sort($extInfo['files']);
-                               $lines[] = '<tr class="bgColor4"><td>' . $GLOBALS['LANG']->getLL('extInfoArray_root_files') . '</td>
-                                               <td>' . implode('<br />', $extInfo['files']) . '</td>' .
-                                               $this->helpCol('rootfiles') . '</tr>';
+                               $headerCol = $GLOBALS['LANG']->getLL('extInfoArray_root_files');
+                               $headerCol = t3lib_BEfunc::wrapInHelp($this->descrTable, 'emconf_rootfiles', $headerCol);
+                               $dataCol = implode('<br />', $extInfo['files']);
+                               $lines[] = array($headerCol, $dataCol);
                        }
 
-                       if ($techInfo['tables']||$techInfo['static']||$techInfo['fields'])      {
-                               if (!$remote && t3lib_extMgm::isLoaded($extKey))        {
+                       if ($techInfo['tables']||$techInfo['static']||$techInfo['fields']) {
+                               if (!$remote && t3lib_extMgm::isLoaded($extKey)) {
                                        $tableStatus = $GLOBALS['TBE_TEMPLATE']->rfw(($techInfo['tables_error'] ?
                                                        '<strong>' . $GLOBALS['LANG']->getLL('extInfoArray_table_error') . '</strong><br />' .
                                                        $GLOBALS['LANG']->getLL('extInfoArray_missing_fields') : '') .
@@ -3134,61 +3253,76 @@ EXTENSION KEYS:
                                }
                        }
 
-                       $lines[] = '<tr class="bgColor4"><td>' . $GLOBALS['LANG']->getLL('extInfoArray_db_requirements') . '</td>
-                                       <td>' . $this->extInformationArray_dbReq($techInfo, 1) . '</td>' .
-                                       $this->helpCol('dbReq') . '</tr>';
-                       $lines[] = '<tr class="bgColor4"><td>' . $GLOBALS['LANG']->getLL('extInfoArray_db_status') . '</td>
-                                       <td>' . $tableStatus . '</td>' .
-                                       $this->helpCol('dbStatus') . '</tr>';
-                       $lines[] = '<tr class="bgColor4"><td>' . $GLOBALS['LANG']->getLL('extInfoArray_flags') . '</td>
-                                       <td>' . (is_array($techInfo['flags']) ?
-                                               implode('<br />', $techInfo['flags']) : '') . '</td>' .
-                                       $this->helpCol('flags') . '</tr>';
-                       $lines[] = '<tr class="bgColor4"><td>' . $GLOBALS['LANG']->getLL('extInfoArray_config_template') . '</td>
-                                       <td>' . ($techInfo['conf'] ?
-                                               $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_common.xml:yes') : '') . '</td>' .
-                                       $this->helpCol('conf') . '</tr>';
-                       $lines[] = '<tr class="bgColor4"><td>' . $GLOBALS['LANG']->getLL('extInfoArray_typoscript_files') . '</td>
-                                       <td>' . (is_array($techInfo['TSfiles']) ?
-                                               implode('<br />', $techInfo['TSfiles']) : '') . '</td>' .
-                                       $this->helpCol('TSfiles') . '</tr>';
-                       $lines[] = '<tr class="bgColor4"><td>' . $GLOBALS['LANG']->getLL('extInfoArray_language_files') . '</td>
-                                       <td>' . (is_array($techInfo['locallang']) ?
-                                               implode('<br />', $techInfo['locallang']) : '') . '</td>' .
-                                       $this->helpCol('locallang') . '</tr>';
-                       $lines[] = '<tr class="bgColor4"><td>' . $GLOBALS['LANG']->getLL('extInfoArray_upload_folder') . '</td>
-                                       <td>' . ($techInfo['uploadfolder'] ?
-                                               $techInfo['uploadfolder'] : '') . '</td>' .
-                                       $this->helpCol('uploadfolder') . '</tr>';
-                       $lines[] = '<tr class="bgColor4"><td>' . $GLOBALS['LANG']->getLL('extInfoArray_create_directories') . '</td>
-                                       <td>' . (is_array($techInfo['createDirs']) ?
-                                               implode('<br />', $techInfo['createDirs']) : '') . '</td>' .
-                                       $this->helpCol('createDirs') . '</tr>';
-                       $lines[] = '<tr class="bgColor4"><td>' . $GLOBALS['LANG']->getLL('extInfoArray_module_names') . '</td>
-                                       <td>' . (is_array($techInfo['moduleNames']) ?
-                                               implode('<br />', $techInfo['moduleNames']) : '') . '</td>' .
-                                       $this->helpCol('moduleNames') . '</tr>';
-                       $lines[] = '<tr class="bgColor4"><td>' . $GLOBALS['LANG']->getLL('extInfoArray_class_names') . '</td>
-                                       <td>' . (is_array($techInfo['classes']) ?
-                                               implode('<br />', $techInfo['classes']) : '') . '</td>' .
-                                       $this->helpCol('classNames') . '</tr>';
-                       $lines[] = '<tr class="bgColor4"><td>' . $GLOBALS['LANG']->getLL('extInfoArray_code_warnings') . '<br />' .
-                                               $GLOBALS['LANG']->getLL('extInfoArray_dev_relevant') . '</td>
-                                       <td>' . (is_array($techInfo['errors']) ?
-                                               $GLOBALS['TBE_TEMPLATE']->rfw(implode('<br />', $techInfo['errors'])) : '') . '</td>' .
-                                       $this->helpCol('errors') . '</tr>';
-                       $lines[] = '<tr class="bgColor4"><td>' . $GLOBALS['LANG']->getLL('extInfoArray_annoyances') . '<br />' .
-                                               $GLOBALS['LANG']->getLL('extInfoArray_dev_relevant') . '</td>
-                                       <td>' . (is_array($techInfo['NSerrors']) ?
-                                               (!t3lib_div::inList($this->nameSpaceExceptions, $extKey) ?
-                                                       t3lib_utility_Debug::viewArray($techInfo['NSerrors']) :
-                                                       $GLOBALS['TBE_TEMPLATE']->dfw($GLOBALS['LANG']->getLL('extInfoArray_exception'))) : '') . '</td>' .
-                                       $this->helpCol('NSerrors') . '</tr>';
+                       $headerCol = $GLOBALS['LANG']->getLL('extInfoArray_db_requirements');
+                       $headerCol = t3lib_BEfunc::wrapInHelp($this->descrTable, 'emconf_dbReq', $headerCol);
+                       $dataCol = $this->extInformationArray_dbReq($techInfo, 1);
+                       $lines[] = array($headerCol, $dataCol);
+
+                       $headerCol = $GLOBALS['LANG']->getLL('extInfoArray_db_status');
+                       $headerCol = t3lib_BEfunc::wrapInHelp($this->descrTable, 'emconf_dbStatus', $headerCol);
+                       $lines[] = array($headerCol, $tableStatus);
+
+                       $headerCol = $GLOBALS['LANG']->getLL('extInfoArray_flags');
+                       $headerCol = t3lib_BEfunc::wrapInHelp($this->descrTable, 'emconf_flags', $headerCol);
+                       $dataCol = (is_array($techInfo['flags']) ? implode('<br />', $techInfo['flags']) : '');
+                       $lines[] = array($headerCol, $dataCol);
+
+                       $headerCol = $GLOBALS['LANG']->getLL('extInfoArray_config_template');
+                       $headerCol = t3lib_BEfunc::wrapInHelp($this->descrTable, 'emconf_conf', $headerCol);
+                       $dataCol = ($techInfo['conf'] ? $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_common.xml:yes') : '');
+                       $lines[] = array($headerCol, $dataCol);
+
+                       $headerCol = $GLOBALS['LANG']->getLL('extInfoArray_typoscript_files');
+                       $headerCol = t3lib_BEfunc::wrapInHelp($this->descrTable, 'emconf_TSfiles', $headerCol);
+                       $dataCol = (is_array($techInfo['TSfiles']) ? implode('<br />', $techInfo['TSfiles']) : '');
+                       $lines[] = array($headerCol, $dataCol);
+
+                       $headerCol = $GLOBALS['LANG']->getLL('extInfoArray_language_files');
+                       $headerCol = t3lib_BEfunc::wrapInHelp($this->descrTable, 'emconf_locallang', $headerCol);
+                       $dataCol = (is_array($techInfo['locallang']) ? implode('<br />', $techInfo['locallang']) : '');
+                       $lines[] = array($headerCol, $dataCol);
+
+                       $headerCol = $GLOBALS['LANG']->getLL('extInfoArray_upload_folder');
+                       $headerCol = t3lib_BEfunc::wrapInHelp($this->descrTable, 'emconf_uploadfolder', $headerCol);
+                       $dataCol = ($techInfo['uploadfolder'] ? $techInfo['uploadfolder'] : '');
+                       $lines[] = array($headerCol, $dataCol);
+
+                       $headerCol = $GLOBALS['LANG']->getLL('extInfoArray_create_directories');
+                       $headerCol = t3lib_BEfunc::wrapInHelp($this->descrTable, 'emconf_createDirs', $headerCol);
+                       $dataCol = (is_array($techInfo['createDirs']) ? implode('<br />', $techInfo['createDirs']) : '');
+                       $lines[] = array($headerCol, $dataCol);
+
+                       $headerCol = $GLOBALS['LANG']->getLL('extInfoArray_module_names');
+                       $headerCol = t3lib_BEfunc::wrapInHelp($this->descrTable, 'emconf_moduleNames', $headerCol);
+                       $dataCol = (is_array($techInfo['moduleNames']) ? implode('<br />', $techInfo['moduleNames']) : '');
+                       $lines[] = array($headerCol, $dataCol);
+
+                       $headerCol = $GLOBALS['LANG']->getLL('extInfoArray_class_names');
+                       $headerCol = t3lib_BEfunc::wrapInHelp($this->descrTable, 'emconf_classNames', $headerCol);
+                       $dataCol = (is_array($techInfo['classes']) ? implode('<br />', $techInfo['classes']) : '');
+                       $lines[] = array($headerCol, $dataCol);
+
+                       $headerCol = $GLOBALS['LANG']->getLL('extInfoArray_code_warnings') . '<br />' . $GLOBALS['LANG']->getLL('extInfoArray_dev_relevant');
+                       $headerCol = t3lib_BEfunc::wrapInHelp($this->descrTable, 'emconf_errors', $headerCol);
+                       $dataCol = (is_array($techInfo['errors']) ? $GLOBALS['TBE_TEMPLATE']->rfw(implode('<br />', $techInfo['errors'])) : '');
+                       $lines[] = array($headerCol, $dataCol);
+
+                       $headerCol = $GLOBALS['LANG']->getLL('extInfoArray_annoyances') . '<br />' . $GLOBALS['LANG']->getLL('extInfoArray_dev_relevant');
+                       $headerCol = t3lib_BEfunc::wrapInHelp($this->descrTable, 'emconf_NSerrors', $headerCol);
+                       if (is_array($techInfo['NSerrors'])) {
+                               if (!t3lib_div::inList($this->nameSpaceExceptions, $extKey)) {
+                                       $dataCol = t3lib_utility_Debug::viewArray($techInfo['NSerrors']);
+                               } else {
+                                       $dataCol = $GLOBALS['TBE_TEMPLATE']->dfw($GLOBALS['LANG']->getLL('extInfoArray_exception'));
+                               }
+                               
+                       }
+                       $lines[] = array($headerCol, $dataCol);
 
                        $currentMd5Array = $this->serverExtensionMD5Array($extKey,$extInfo);
                        $affectedFiles='';
 
-                       $msgLines=array();
+                       $msgLines = array();
                        if (strcmp($extInfo['EM_CONF']['_md5_values_when_last_written'],serialize($currentMd5Array)))   {
                                $msgLines[] = $GLOBALS['TBE_TEMPLATE']->rfw('<br /><strong>' . $GLOBALS['LANG']->getLL('extInfoArray_difference_detected') . '</strong>');
                                $affectedFiles = $this->findMD5ArrayDiff($currentMd5Array,unserialize($extInfo['EM_CONF']['_md5_values_when_last_written']));
@@ -3197,14 +3331,31 @@ EXTENSION KEYS:
                                                $GLOBALS['TBE_TEMPLATE']->rfw(implode('<br />', $affectedFiles));
                                }
                        }
-                       $lines[] = '<tr class="bgColor4"><td>' . $GLOBALS['LANG']->getLL('extInfoArray_files_changed') . '</td>
-                                       <td>' . implode('<br />', $msgLines) . '</td>' .
-                                       $this->helpCol('filesChanged') . '</tr>';
+
+                       $headerCol = $GLOBALS['LANG']->getLL('extInfoArray_files_changed');
+                       $headerCol = t3lib_BEfunc::wrapInHelp($this->descrTable, 'emconf_filesChanged', $headerCol);
+                       $dataCol = implode('<br />', $msgLines);
+                       $lines[] = array($headerCol, $dataCol);
                }
 
+               $output = '';
+               foreach ($lines as $cols) {
+                               // if it's just one line, we assume it's a headline,
+                               // thus no need to wrap it in HTML table tags
+                       if (count($cols) == 1) {
+                               $output .= $cols[0];
+                       } else {
+                               $output .= '
+                                       <tr class="bgColor4">
+                                               <td>' . $cols[0] . '</td>
+                                               <td>' . $cols[1] . '</td>
+                                       </tr>';
+                       }
+               }
+
+
                return '<table border="0" cellpadding="1" cellspacing="2">
-                                       '.implode('
-                                       ',$lines).'
+                                       ' . $output . '
                                </table>';
        }
 
@@ -3570,6 +3721,7 @@ EXTENSION KEYS:
         *
         * @param       string          Help text key
         * @return      string          HTML table cell
+        * @deprecated since TYPO3 4.5, will be removed in TYPO3 4.7
         */
        function helpCol($key)  {
                global $BE_USER;
@@ -3580,6 +3732,7 @@ EXTENSION KEYS:
                        else {
                                return t3lib_BEfunc::cshItem($this->descrTable, 'emconf_'.$key, $GLOBALS['BACK_PATH'], '<td>|</td>');
                        }
+
                }
                else {
                        return '';
@@ -3587,6 +3740,18 @@ EXTENSION KEYS:
        }
 
        /**
+        * Returns the header column (for the extension details item), and applies help text if available
+        *
+        * @param       string  field key
+        * @return      string  HTML ready to go
+        */
+       function headerCol($key) {
+               $headerCol = $GLOBALS['LANG']->getLL('extInfoArray_' . $key);
+               return t3lib_BEfunc::wrapInHelp($this->descrTable, 'emconf_' . $key, $headerCol);
+       }
+
+
+       /**
         * Returns title and style attribute for mouseover help text.
         *
         * @param       string          Help text.
index 2d75706..124684e 100644 (file)
@@ -374,24 +374,31 @@ class SC_db_list {
                                        <div id="typo3-listOptions">
                                                <form action="" method="post">';
 
-                       $this->body.=t3lib_BEfunc::getFuncCheck($this->id,'SET[bigControlPanel]',$this->MOD_SETTINGS['bigControlPanel'],'db_list.php',($this->table?'&table='.$this->table:''),'id="checkLargeControl"').' <label for="checkLargeControl">'.$LANG->getLL('largeControl',1).'</label><br />';
+                       $this->body .= t3lib_BEfunc::getFuncCheck($this->id, 'SET[bigControlPanel]', $this->MOD_SETTINGS['bigControlPanel'], 'db_list.php', ($this->table ? '&table=' . $this->table : ''), 'id="checkLargeControl"');
+                       $this->body .= '<label for="checkLargeControl">' . t3lib_BEfunc::wrapInHelp('xMOD_csh_corebe', 'list_options', $LANG->getLL('largeControl', TRUE)) . '</label><br />';
                        if ($dblist->showClipboard)     {
-                               $this->body.=t3lib_BEfunc::getFuncCheck($this->id,'SET[clipBoard]',$this->MOD_SETTINGS['clipBoard'],'db_list.php',($this->table?'&table='.$this->table:''),'id="checkShowClipBoard"').' <label for="checkShowClipBoard">'.$LANG->getLL('showClipBoard',1).'</label><br />';
+                               $this->body .= t3lib_BEfunc::getFuncCheck($this->id, 'SET[clipBoard]', $this->MOD_SETTINGS['clipBoard'], 'db_list.php', ($this->table ? '&table=' . $this->table : ''), 'id="checkShowClipBoard"');
+                               $this->body .= '<label for="checkShowClipBoard">' . t3lib_BEfunc::wrapInHelp('xMOD_csh_corebe', 'list_options', $LANG->getLL('showClipBoard', TRUE)) . '</label><br />';
                        }
-                       $this->body.=t3lib_BEfunc::getFuncCheck($this->id,'SET[localization]',$this->MOD_SETTINGS['localization'],'db_list.php',($this->table?'&table='.$this->table:''),'id="checkLocalization"').' <label for="checkLocalization">'.$LANG->getLL('localization',1).'</label><br />';
+                       $this->body .= t3lib_BEfunc::getFuncCheck($this->id, 'SET[localization]', $this->MOD_SETTINGS['localization'], 'db_list.php', ($this->table ? '&table=' . $this->table : ''), 'id="checkLocalization"');
+                       $this->body .= '<label for="checkLocalization">' . t3lib_BEfunc::wrapInHelp('xMOD_csh_corebe', 'list_options', $LANG->getLL('localization', TRUE)) . '</label><br />';
+
                        $this->body.='
                                                </form>
                                        </div>';
-                       $this->body.= t3lib_BEfunc::cshItem('xMOD_csh_corebe', 'list_options', $GLOBALS['BACK_PATH']);
 
                                // Printing clipboard if enabled:
                        if ($this->MOD_SETTINGS['clipBoard'] && $dblist->showClipboard) {
                                $this->body.= $dblist->clipObj->printClipboard();
-                               $this->body.= t3lib_BEfunc::cshItem('xMOD_csh_corebe', 'list_clipboard', $GLOBALS['BACK_PATH']);
                        }
 
                                // Search box:
-                       $this->body.=$dblist->getSearchBox();
+                       $sectionTitle = t3lib_BEfunc::wrapInHelp('xMOD_csh_corebe', 'list_searchbox', $LANG->sL('LLL:EXT:lang/locallang_core.php:labels.search', TRUE));
+                       $this->body .= $this->doc->section(
+                               $sectionTitle,
+                               $dblist->getSearchBox(),
+                               FALSE, TRUE, FALSE, TRUE
+                       );
 
                                // Display sys-notes, if any are found:
                        $this->body.=$dblist->showSysNotesForPage();
index 04b1fff..caf49b2 100755 (executable)
@@ -558,13 +558,6 @@ class SC_mod_user_setup_index {
 
                $this->dividers2tabs = isset($GLOBALS['TYPO3_USER_SETTINGS']['ctrl']['dividers2tabs']) ? intval($GLOBALS['TYPO3_USER_SETTINGS']['ctrl']['dividers2tabs']) : 0;
 
-
-               // "display full help" is active?
-               $displayFullText = ($GLOBALS['BE_USER']->uc['edit_showFieldHelp'] == 'text');
-               if ($displayFullText) {
-                       $this->doc->tableLayout['defRowEven'] = array('defCol' => array ('<td valign="top" colspan="3">','</td>'));
-               }
-
                foreach ($fieldArray as $fieldName) {
                        $more = '';
 
@@ -598,10 +591,8 @@ class SC_mod_user_setup_index {
                        }
 
                        $label = $this->getLabel($config['label'], $fieldName);
-                       $csh = $this->getCSH($config['csh'] ? $config['csh'] : $fieldName);
-                       if (!$csh) {
-                               $csh = '<img class="csh-dummy" src="' . $this->doc->backPath . 'clear.gif" width="16" height="16" />';
-                       }
+                       $label = $this->getCSH($config['csh'] ? $config['csh'] : $fieldName, $label);
+
                        $type = $config['type'];
                        $eval = $config['eval'];
                        $class = $config['class'];
@@ -679,14 +670,8 @@ class SC_mod_user_setup_index {
                        }
 
 
-                               // add another table row with the full text help if needed
-                       if ($displayFullText) {
-                               $code[$i++][1] = $csh;
-                               $csh = '';
-                       }
-
-                       $code[$i][1] = $csh . $label;
-                       $code[$i++][2]   = $html;
+                       $code[$i][1] = $label;
+                       $code[$i++][2] = $html;
 
 
 
@@ -935,13 +920,14 @@ class SC_mod_user_setup_index {
         * Returns the CSH Icon for given string
         *
         * @param       string          Locallang key
+        * @param       string          The label to be used, that should be wrapped in help
         * @return      string          HTML output.
         */
-       protected function getCSH($str) {
+       protected function getCSH($str, $label) {
                if (!t3lib_div::inList('language,simuser', $str)) {
                        $str = 'option_' . $str;
                }
-               return t3lib_BEfunc::cshItem('_MOD_user_setup', $str, $this->doc->backPath, '|', false, 'margin-bottom:0px;');
+               return t3lib_BEfunc::wrapInHelp('_MOD_user_setup', $str, $label);
        }
 
        /**
index 25ace5a..3a59395 100644 (file)
@@ -10,12 +10,11 @@ table.typo3-usersettings {
 
 table.typo3-usersettings td {
        width: 300px;
+       line-height: 20px;
        padding-left: 8px;
 }
 
 table.typo3-usersettings td.td-label label {
-       float: left;
-       margin-left: 3px;
        width: 275px;
 }