[TASK] Improve feedit 59/21859/9
authorGeorg Ringer <georg.ringer@gmail.com>
Wed, 3 Jul 2013 14:48:24 +0000 (16:48 +0200)
committerWouter Wolters <typo3@wouterwolters.nl>
Thu, 9 Jan 2014 18:56:56 +0000 (19:56 +0100)
The frontend editing + admin panel needs some polishing.
Following changes are included:

General
=======
- Reformat code
- Use Sprite API which means using the correct icons

Admin Panel
==============
- Add missing translations
- Show "Simulate usergroup" only if usergroups are available
- Remove "Total page count" in Info Tab as information is wrong
  (counting images + document is not the total page size)

Frontend Editing
=================
- Remove "edit_editNoPopup", "forceNoPopup", "editFormsOnPage"
  for direct inline editing
- Remove setting "previewBorder" which is not needed and looks just ugly

Releases: 6.2
Resolves: #49640
Change-Id: I35f88bc4e8c138fc21b74c0448b2f3892ab61918
Reviewed-on: https://review.typo3.org/21859
Reviewed-by: Markus Klein
Tested-by: Markus Klein
Reviewed-by: Wouter Wolters
Tested-by: Wouter Wolters
typo3/sysext/cms/tslib/index_ts.php
typo3/sysext/core/Classes/TimeTracker/TimeTracker.php
typo3/sysext/feedit/Classes/FrontendEditPanel.php
typo3/sysext/frontend/Classes/View/AdminPanelView.php
typo3/sysext/lang/locallang_tsfe.xlf
typo3/sysext/t3editor/res/jslib/parse_typoscript/tokenizetyposcript.js
typo3/sysext/t3skin/stylesheets/standalone/admin_panel.css

index 4ad27a0..11827e6 100644 (file)
@@ -147,7 +147,9 @@ $TT->pull();
 if ($TSFE->isBackendUserLoggedIn()) {
        $BE_USER->initializeFrontendEdit();
        if ($BE_USER->adminPanel instanceof \TYPO3\CMS\Frontend\View\AdminPanelView) {
-               \TYPO3\CMS\Core\Core\Bootstrap::getInstance()->initializeLanguageObject();
+               \TYPO3\CMS\Core\Core\Bootstrap::getInstance()
+                       ->initializeLanguageObject()
+                       ->initializeSpriteManager();
        }
        if ($BE_USER->frontendEdit instanceof \TYPO3\CMS\Core\FrontendEditing\FrontendEditingController) {
                $BE_USER->frontendEdit->initConfigOptions();
index da5e586..9dca58b 100644 (file)
@@ -322,7 +322,7 @@ class TimeTracker {
                        if ($this->highlightLongerThan && intval($data['owntime']) > intval($this->highlightLongerThan)) {
                                $logRowClass = 'typo3-adminPanel-logRow-highlight';
                        } else {
-                               $logRowClass = $c % 2 ? 'typo3-adminPanel-logRow-odd' : 'typo3-adminPanel-logRow-even';
+                               $logRowClass = $c % 2 ? 'line-odd' : 'line-even';
                        }
                        $item = '';
                        // If first...
@@ -354,7 +354,7 @@ class TimeTracker {
                        $theLabel = \TYPO3\CMS\Core\Utility\GeneralUtility::fixed_lgd_cs($theLabel, -$keyLgd);
                        $theLabel = $data['stackPointer'] ? '<span class="stackPointer">' . $theLabel . '</span>' : $theLabel;
                        $keyLabel = $theLabel . $keyLabel;
-                       $item .= '<td class="' . $logRowClass . '" style="padding-left:2px;">' . ($flag_tree ? $data['icons'] : '') . $this->fw($keyLabel) . '</td>';
+                       $item .= '<td class="' . $logRowClass . '">' . ($flag_tree ? $data['icons'] : '') . $this->fw($keyLabel) . '</td>';
                        // Key value:
                        $keyValue = $data['value'];
                        $item .= '<td class="' . $logRowClass . ' typo3-adminPanel-tsLogTime">' . $this->fw(htmlspecialchars($keyValue)) . '</td>';
@@ -395,7 +395,7 @@ class TimeTracker {
                        $out .= '<tr>' . $item . '</tr>';
                        $c++;
                }
-               $out = '<table id="typo3-adminPanel-tsLog">' . $out . '</table>';
+               $out = '<table class="admin-panel-table typo3-adminPanel-tsLog">' . $out . '</table>';
                return $out;
        }
 
@@ -478,13 +478,13 @@ class TimeTracker {
        }
 
        /**
-        * Wraps input string in a <span> tag with black verdana font
+        * Wraps input string in a <span> tag
         *
         * @param string $str The string to be wrapped
         * @return string
         */
        protected function fw($str) {
-               return '<span style="font-family:Verdana,Arial,Helvetica,sans-serif; font-size:10px; color:black; vertical-align:top;">' . $str . '&nbsp;</span>';
+               return '<span>' . $str . '</span>';
        }
 
        /**
index cb66e3c..e1fe338 100644 (file)
@@ -3,50 +3,41 @@ namespace TYPO3\CMS\Feedit;
 
 /***************************************************************
  *  Copyright notice
- *
  *  (c) 2008-2013 Jeff Segars <jeff@webempoweredchurch.org>
  *  (c) 2008-2013 David Slayback <dave@webempoweredchurch.org>
  *  All rights reserved
- *
  *  This script is part of the TYPO3 project. The TYPO3 project is
  *  free software; you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
  *  the Free Software Foundation; either version 2 of the License, or
  *  (at your option) any later version.
- *
  *  The GNU General Public License can be found at
  *  http://www.gnu.org/copyleft/gpl.html.
  *  A copy is found in the textfile GPL.txt and important notices to the license
  *  from the author is found in LICENSE.txt distributed with these scripts.
- *
- *
  *  This script is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *  GNU General Public License for more details.
- *
  *  This copyright notice MUST APPEAR in all copies of the script!
  ***************************************************************/
+use TYPO3\CMS\Backend\Sprite\SpriteManager;
+use TYPO3\CMS\Backend\Utility\IconUtility;
 
 use TYPO3\CMS\Core\Utility\GeneralUtility;
 
 /**
  * View class for the edit panels in frontend editing.
- *
- * @author Jeff Segars <jeff@webempoweredchurch.org>
- * @author David Slayback <dave@webempoweredchurch.org>
  */
 class FrontendEditPanel {
 
        /**
-        * @var \TYPO3\CMS\Frontend\ContentObject\ContentObjectRenderer Local instance of ContentObjectRenderer
+        * @var \TYPO3\CMS\Frontend\ContentObject\ContentObjectRenderer
         */
        protected $cObj;
 
        /**
-        * Constructor for the edit panel. Creates a new cObject instance to be used in wrapping, etc.
-        *
-        * @return void
+        * Constructor for the edit panel
         */
        public function __construct() {
                $this->cObj = GeneralUtility::makeInstance('TYPO3\\CMS\\Frontend\\ContentObject\\ContentObjectRenderer');
@@ -69,103 +60,106 @@ class FrontendEditPanel {
         * @return string The input content string with the editPanel appended. This function returns only an edit panel appended to the content string if a backend user is logged in (and has the correct permissions). Otherwise the content string is directly returned.
         */
        public function editPanel($content, array $conf, $currentRecord = '', array $dataArr = array(), $table = '', $allow = '', $newUID = 0, array $hiddenFields = array()) {
+               $hiddenFieldString = $command = '';
+
                // Special content is about to be shown, so the cache must be disabled.
                $GLOBALS['TSFE']->set_no_cache('Frontend edit panel is shown', TRUE);
+
                $formName = 'TSFE_EDIT_FORM_' . substr($GLOBALS['TSFE']->uniqueHash(), 0, 4);
-               $formTag = '<form name="' . $formName . '" id ="' . $formName . '" action="' . htmlspecialchars(GeneralUtility::getIndpEnv('REQUEST_URI')) . '" method="post" enctype="' . $GLOBALS['TYPO3_CONF_VARS']['SYS']['form_enctype'] . '" onsubmit="return TBE_EDITOR.checkSubmit(1);" style="margin: 0 0 0 0;">';
+               $formTag = '<form name="' . $formName . '" id ="' . $formName . '" action="' . htmlspecialchars(GeneralUtility::getIndpEnv('REQUEST_URI')) . '" method="post" enctype="' . htmlspecialchars($GLOBALS['TYPO3_CONF_VARS']['SYS']['form_enctype']) . '" onsubmit="return TBE_EDITOR.checkSubmit(1);">';
                $sortField = $GLOBALS['TCA'][$table]['ctrl']['sortby'];
                $labelField = $GLOBALS['TCA'][$table]['ctrl']['label'];
                $hideField = $GLOBALS['TCA'][$table]['ctrl']['enablecolumns']['disabled'];
-               $blackLine = $conf['line'] ? '<img src="clear.gif" width="1" height="' . intval($conf['line']) . '" alt="" title="" /><br /><table border="0" cellpadding="0" cellspacing="0" width="100%" bgcolor="black" style="border: 0px;" summary=""><tr style="border: 0px;"><td style="border: 0px;"><img src="clear.gif" width="1" height="1" alt="" title="" /></td></tr></table><br />' : '';
-               $theCmd = '';
+
                $TSFE_EDIT = $GLOBALS['BE_USER']->frontendEdit->TSFE_EDIT;
                if (is_array($TSFE_EDIT) && $TSFE_EDIT['record'] == $currentRecord && !$TSFE_EDIT['update_close']) {
-                       $theCmd = $TSFE_EDIT['cmd'];
+                       $command = $TSFE_EDIT['cmd'];
                }
-               switch ($theCmd) {
-                       case 'edit':
 
-                       case 'new':
-                               $finalOut = $this->editContent($formTag, $formName, $theCmd, $newUID, $dataArr, $table, $currentRecord, $blackLine);
-                               break;
-                       default:
-                               $panel = '';
-                               if (isset($allow['toolbar']) && $GLOBALS['BE_USER']->adminPanel instanceof \TYPO3\CMS\Frontend\View\AdminPanelView) {
-                                       $panel .= $GLOBALS['BE_USER']->adminPanel->ext_makeToolBar() . '<img src="clear.gif" width="2" height="1" alt="" title="" />';
-                               }
-                               if (isset($allow['edit'])) {
-                                       $panel .= $this->editPanelLinkWrap('<img ' . \TYPO3\CMS\Backend\Utility\IconUtility::skinImg(TYPO3_mainDir, 'gfx/edit2.gif', 'width="11" height="12" hspace="2" border="0"') . ' title="' . $GLOBALS['BE_USER']->extGetLL('p_editRecord') . '" align="top" alt="" />', $formName, 'edit', $dataArr['_LOCALIZED_UID'] ? $table . ':' . $dataArr['_LOCALIZED_UID'] : $currentRecord);
-                               }
-                               // Hiding in workspaces because implementation is incomplete
-                               if (isset($allow['move']) && $sortField && $GLOBALS['BE_USER']->workspace === 0) {
-                                       $panel .= $this->editPanelLinkWrap('<img  ' . \TYPO3\CMS\Backend\Utility\IconUtility::skinImg(TYPO3_mainDir, 'gfx/button_up.gif', 'width="11" height="10" vspace="1" hspace="2" border="0" ') . ' title="' . $GLOBALS['BE_USER']->extGetLL('p_moveUp') . '" align="top" alt="" />', $formName, 'up');
-                                       $panel .= $this->editPanelLinkWrap('<img  ' . \TYPO3\CMS\Backend\Utility\IconUtility::skinImg(TYPO3_mainDir, 'gfx/button_down.gif', 'width="11" height="10" vspace="1" hspace="2" border="0" ') . ' title="' . $GLOBALS['BE_USER']->extGetLL('p_moveDown') . '" align="top" alt="" />', $formName, 'down');
-                               }
-                               // Hiding in workspaces because implementation is incomplete, Hiding for localizations because it is unknown what should be the function in that case
-                               if (isset($allow['hide']) && $hideField && $GLOBALS['BE_USER']->workspace === 0 && !$dataArr['_LOCALIZED_UID']) {
-                                       if ($dataArr[$hideField]) {
-                                               $panel .= $this->editPanelLinkWrap('<img  ' . \TYPO3\CMS\Backend\Utility\IconUtility::skinImg(TYPO3_mainDir, 'gfx/button_unhide.gif', 'width="11" height="10" vspace="1" hspace="2" border="0" ') . ' title="' . $GLOBALS['BE_USER']->extGetLL('p_unhide') . '" align="top" alt="" />', $formName, 'unhide');
-                                       } else {
-                                               $panel .= $this->editPanelLinkWrap('<img  ' . \TYPO3\CMS\Backend\Utility\IconUtility::skinImg(TYPO3_mainDir, 'gfx/button_hide.gif', 'width="11" height="10" vspace="1" hspace="2" border="0" ') . ' title="' . $GLOBALS['BE_USER']->extGetLL('p_hide') . '" align="top" alt="" />', $formName, 'hide', '', $GLOBALS['BE_USER']->extGetLL('p_hideConfirm'));
-                                       }
-                               }
-                               if (isset($allow['new'])) {
-                                       if ($table == 'pages') {
-                                               $panel .= $this->editPanelLinkWrap('<img  ' . \TYPO3\CMS\Backend\Utility\IconUtility::skinImg(TYPO3_mainDir, 'gfx/new_page.gif', 'width="13" height="12" vspace="1" hspace="2" border="0" ') . ' title="' . $GLOBALS['BE_USER']->extGetLL('p_newSubpage') . '" align="top" alt="" />', $formName, 'new', $currentRecord, '');
-                                       } else {
-                                               $panel .= $this->editPanelLinkWrap('<img  ' . \TYPO3\CMS\Backend\Utility\IconUtility::skinImg(TYPO3_mainDir, 'gfx/new_record.gif', 'width="16" height="12" vspace="1" hspace="2" border="0" ') . ' title="' . $GLOBALS['BE_USER']->extGetLL('p_newRecordAfter') . '" align="top" alt="" />', $formName, 'new', $currentRecord, '', $newUID);
-                                       }
-                               }
-                               // Hiding in workspaces because implementation is incomplete, Hiding for localizations because it is unknown what should be the function in that case
-                               if (isset($allow['delete']) && $GLOBALS['BE_USER']->workspace === 0 && !$dataArr['_LOCALIZED_UID']) {
-                                       $panel .= $this->editPanelLinkWrap('<img  ' . \TYPO3\CMS\Backend\Utility\IconUtility::skinImg(TYPO3_mainDir, 'gfx/delete_record.gif', 'width="12" height="12" vspace="1" hspace="2" border="0" ') . ' title="' . $GLOBALS['BE_USER']->extGetLL('p_delete') . '" align="top" alt="" />', $formName, 'delete', '', $GLOBALS['BE_USER']->extGetLL('p_deleteConfirm'));
-                               }
-                               // Final
-                               $labelTxt = $this->cObj->stdWrap($conf['label'], $conf['label.']);
-                               foreach ((array) $hiddenFields as $name => $value) {
-                                       $hiddenFieldString .= '<input type="hidden" name="TSFE_EDIT[' . $name . ']" value="' . $value . '"/>' . LF;
-                               }
-                               $panel = '
+               $panel = '';
+               if (isset($allow['toolbar']) && $GLOBALS['BE_USER']->adminPanel instanceof \TYPO3\CMS\Frontend\View\AdminPanelView) {
+                       $panel .= $GLOBALS['BE_USER']->adminPanel->ext_makeToolBar();
+               }
+               if (isset($allow['edit'])) {
+                       $icon = IconUtility::getSpriteIcon('actions-document-open', array('title' => $GLOBALS['BE_USER']->extGetLL('p_editRecord')));
+                       $panel .= $this->editPanelLinkWrap($icon, $formName, 'edit', $dataArr['_LOCALIZED_UID'] ? $table . ':' . $dataArr['_LOCALIZED_UID'] : $currentRecord);
+               }
+               // Hiding in workspaces because implementation is incomplete
+               if (isset($allow['move']) && $sortField && $GLOBALS['BE_USER']->workspace === 0) {
+                       $icon = IconUtility::getSpriteIcon('actions-move-up', array('title' => $GLOBALS['BE_USER']->extGetLL('p_moveUp')));
+                       $panel .= $this->editPanelLinkWrap($icon, $formName, 'up');
+                       $icon = IconUtility::getSpriteIcon('actions-move-down', array('title' => $GLOBALS['BE_USER']->extGetLL('p_moveDown')));
+                       $panel .= $this->editPanelLinkWrap($icon, $formName, 'down');
+               }
+               // Hiding in workspaces because implementation is incomplete
+               // Hiding for localizations because it is unknown what should be the function in that case
+               if (isset($allow['hide']) && $hideField && $GLOBALS['BE_USER']->workspace === 0 && !$dataArr['_LOCALIZED_UID']) {
+                       if ($dataArr[$hideField]) {
+                               $icon = IconUtility::getSpriteIcon('actions-edit-unhide', array('title' => $GLOBALS['BE_USER']->extGetLL('p_unhide')));
+                               $panel .= $this->editPanelLinkWrap($icon, $formName, 'unhide');
+                       } else {
+                               $icon = IconUtility::getSpriteIcon('actions-edit-hide', array('title' => $GLOBALS['BE_USER']->extGetLL('p_hide')));
+                               $panel .= $this->editPanelLinkWrap($icon, $formName, 'hide', '', $GLOBALS['BE_USER']->extGetLL('p_hideConfirm'));
+                       }
+               }
+               if (isset($allow['new'])) {
+                       if ($table === 'pages') {
+                               $icon = IconUtility::getSpriteIcon('actions-page-new', array('title' => $GLOBALS['BE_USER']->extGetLL('p_newSubpage')));
+                               $panel .= $this->editPanelLinkWrap($icon, $formName, 'new', $currentRecord, '');
+                       } else {
+                               $icon = IconUtility::getSpriteIcon('actions-document-new', array('title' => $GLOBALS['BE_USER']->extGetLL('p_newRecordAfter')));
+                               $panel .= $this->editPanelLinkWrap($icon, $formName, 'new', $currentRecord, '', $newUID);
+                       }
+               }
+               // Hiding in workspaces because implementation is incomplete
+               // Hiding for localizations because it is unknown what should be the function in that case
+               if (isset($allow['delete']) && $GLOBALS['BE_USER']->workspace === 0 && !$dataArr['_LOCALIZED_UID']) {
+                       $icon = IconUtility::getSpriteIcon('actions-edit-delete', array('title' => $GLOBALS['BE_USER']->extGetLL('p_delete')));
+                       $panel .= $this->editPanelLinkWrap($icon, $formName, 'delete', '', $GLOBALS['BE_USER']->extGetLL('p_deleteConfirm'));
+               }
+               // Final
+               $labelTxt = $this->cObj->stdWrap($conf['label'], $conf['label.']);
+               foreach ((array)$hiddenFields as $name => $value) {
+                       $hiddenFieldString .= '<input type="hidden" name="TSFE_EDIT[' . htmlspecialchars($name) . ']" value="' . htmlspecialchars($value) . '"/>' . LF;
+               }
 
-                                                               <!-- BE_USER Edit Panel: -->
+               $panel = '<!-- BE_USER Edit Panel: -->
                                                                ' . $formTag . $hiddenFieldString . '
                                                                        <input type="hidden" name="TSFE_EDIT[cmd]" value="" />
                                                                        <input type="hidden" name="TSFE_EDIT[record]" value="' . $currentRecord . '" />
-                                                                       <table border="0" cellpadding="0" cellspacing="0" class="typo3-editPanel" summary="">
-                                                                               <tr>
-                                                                                       <td nowrap="nowrap" bgcolor="#ABBBB4" class="typo3-editPanel-controls">' . $panel . '</td>' . ($labelTxt ? '<td nowrap="nowrap" bgcolor="#F6F2E6" class="typo3-editPanel-label"><font face="verdana" size="1" color="black">&nbsp;' . sprintf($labelTxt, htmlspecialchars(GeneralUtility::fixed_lgd_cs($dataArr[$labelField], 50))) . '&nbsp;</font></td>' : '') . '
-                                                                               </tr>
-                                                                       </table>
+                                                                       <div class="typo3-editPanel">'
+                                                                               . $panel .
+                       ($labelTxt ? '<div class="typo3-editPanel-label">' . sprintf($labelTxt, htmlspecialchars(GeneralUtility::fixed_lgd_cs($dataArr[$labelField], 50))) . '</div>' : '') . '
+                                                                       </div>
                                                                </form>';
-                               // Wrap the panel
-                               if ($conf['innerWrap']) {
-                                       $panel = $this->cObj->wrap($panel, $conf['innerWrap']);
-                               }
-                               if ($conf['innerWrap.']) {
-                                       $panel = $this->cObj->stdWrap($panel, $conf['innerWrap.']);
-                               }
-                               // Add black line:
-                               $panel .= $blackLine;
-                               // Wrap the complete panel
-                               if ($conf['outerWrap']) {
-                                       $panel = $this->cObj->wrap($panel, $conf['outerWrap']);
-                               }
-                               if ($conf['outerWrap.']) {
-                                       $panel = $this->cObj->stdWrap($panel, $conf['outerWrap.']);
-                               }
-                               if ($conf['printBeforeContent']) {
-                                       $finalOut = $panel . $content;
-                               } else {
-                                       $finalOut = $content . $panel;
-                               }
-                               break;
+
+               // Wrap the panel
+               if ($conf['innerWrap']) {
+                       $panel = $this->cObj->wrap($panel, $conf['innerWrap']);
                }
-               if ($conf['previewBorder']) {
-                       if (!is_array($conf['previewBorder.'])) {
-                               $conf['previewBorder.'] = array();
-                       }
-                       $finalOut = $this->editPanelPreviewBorder($table, $dataArr, $finalOut, $conf['previewBorder'], $conf['previewBorder.']);
+               if ($conf['innerWrap.']) {
+                       $panel = $this->cObj->stdWrap($panel, $conf['innerWrap.']);
+               }
+
+               // Wrap the complete panel
+               if ($conf['outerWrap']) {
+                       $panel = $this->cObj->wrap($panel, $conf['outerWrap']);
                }
+               if ($conf['outerWrap.']) {
+                       $panel = $this->cObj->stdWrap($panel, $conf['outerWrap.']);
+               }
+               if ($conf['printBeforeContent']) {
+                       $finalOut = $panel . $content;
+               } else {
+                       $finalOut = $content . $panel;
+               }
+
+               $hidden = $this->isDisabled($table, $dataArr) ? ' typo3-feedit-element-hidden' : '';
+               $outerWrapConfig = isset($conf['stdWrap.'])
+                       ? $conf['stdWrap.']
+                       : array('wrap' => '<div class="typo3-feedit-element' . $hidden . '">|</div>');
+               $finalOut = $this->cObj->stdWrap($finalOut, $outerWrapConfig);
+
                return $finalOut;
        }
 
@@ -192,17 +186,17 @@ class FrontendEditPanel {
                $iconImg = $conf['iconImg'] ? $conf['iconImg'] : '<img  ' . \TYPO3\CMS\Backend\Utility\IconUtility::skinImg(TYPO3_mainDir, 'gfx/edit_fe.gif', 'width="11" height="12" border="0" align="top" ') . ' title="' . GeneralUtility::deHSCentities(htmlspecialchars($iconTitle)) . '"' . $style . ' class="frontEndEditIcons" alt="" />';
                $nV = GeneralUtility::_GP('ADMCMD_view') ? 1 : 0;
                $adminURL = GeneralUtility::getIndpEnv('TYPO3_SITE_URL') . TYPO3_mainDir;
-               $icon = $this->editPanelLinkWrap_doWrap($iconImg, $adminURL . 'alt_doc.php?edit[' . $table . '][' . $editUid . ']=edit&columnsOnly=' . rawurlencode($fieldList) . '&noView=' . $nV . $addUrlParamStr, $currentRecord);
+               $icon = $this->editPanelLinkWrap_doWrap($iconImg, $adminURL . 'alt_doc.php?edit[' . $table . '][' . $editUid . ']=edit&columnsOnly=' . rawurlencode($fieldList) . '&noView=' . $nV . $addUrlParamStr);
                if ($conf['beforeLastTag'] < 0) {
                        $content = $icon . $content;
                } elseif ($conf['beforeLastTag'] > 0) {
                        $cBuf = rtrim($content);
-                       $securCount = 30;
-                       while ($securCount && substr($cBuf, -1) == '>' && substr($cBuf, -4) != '</a>') {
+                       $secureCount = 30;
+                       while ($secureCount && substr($cBuf, -1) == '>' && substr($cBuf, -4) != '</a>') {
                                $cBuf = rtrim(preg_replace('/<[^<]*>$/', '', $cBuf));
-                               $securCount--;
+                               $secureCount--;
                        }
-                       $content = strlen($cBuf) && $securCount ? substr($content, 0, strlen($cBuf)) . $icon . substr($content, strlen($cBuf)) : ($content = $icon . $content);
+                       $content = strlen($cBuf) && $secureCount ? substr($content, 0, strlen($cBuf)) . $icon . substr($content, strlen($cBuf)) : ($content = $icon . $content);
                } else {
                        $content .= $icon;
                }
@@ -218,18 +212,16 @@ class FrontendEditPanel {
         * @param string $cmd The command of the link. There is a predefined list available: edit, new, up, down etc.
         * @param string $currentRecord The "table:uid" of the record being processed by the panel.
         * @param string $confirm Text string with confirmation message; If set a confirm box will be displayed before carrying out the action (if Yes is pressed)
-        * @param integer $nPid "New pid" - for new records
+        * @param int|string $nPid "New pid" - for new records
         * @return string A <a> tag wrapped string.
         */
        protected function editPanelLinkWrap($string, $formName, $cmd, $currentRecord = '', $confirm = '', $nPid = '') {
-               // Editing forms on page only supported in Live workspace (because of incomplete implementation)
-               $editFormsOnPage = $GLOBALS['BE_USER']->uc['TSFE_adminConfig']['edit_editFormsOnPage'] && $GLOBALS['BE_USER']->workspace === 0;
                $nV = GeneralUtility::_GP('ADMCMD_view') ? 1 : 0;
                $adminURL = GeneralUtility::getIndpEnv('TYPO3_SITE_URL') . TYPO3_mainDir;
-               if ($cmd == 'edit' && !$editFormsOnPage) {
+               if ($cmd == 'edit') {
                        $rParts = explode(':', $currentRecord);
                        $out = $this->editPanelLinkWrap_doWrap($string, $adminURL . 'alt_doc.php?edit[' . $rParts[0] . '][' . $rParts[1] . ']=edit&noView=' . $nV, $currentRecord);
-               } elseif ($cmd == 'new' && !$editFormsOnPage) {
+               } elseif ($cmd == 'new') {
                        $rParts = explode(':', $currentRecord);
                        if ($rParts[0] == 'pages') {
                                $out = $this->editPanelLinkWrap_doWrap($string, $adminURL . 'db_new.php?id=' . $rParts[1] . '&pagesOnly=1', $currentRecord);
@@ -257,66 +249,23 @@ class FrontendEditPanel {
         *
         * @param string $string The string to wrap in a link, typ. and image used as button in the edit panel.
         * @param string $url The URL of the link. Should be absolute if supposed to work with <base> path set.
-        * @param string $currentRecord The "table:uid" of the record being processed by the panel.
         * @return string A <a> tag wrapped string.
-        * @see         editPanelLinkWrap()
+        * @see    editPanelLinkWrap()
         */
-       protected function editPanelLinkWrap_doWrap($string, $url, $currentRecord) {
-               if ($GLOBALS['BE_USER']->uc['TSFE_adminConfig']['edit_editNoPopup'] || $GLOBALS['BE_USER']->extAdminConfig['module.']['edit.']['forceNoPopup']) {
-                       $retUrl = GeneralUtility::getIndpEnv('REQUEST_URI');
-                       $rParts = explode(':', $currentRecord);
-                       // This parentRecordNumber is used to make sure that only elements 3- of ordinary content elements makes a 'anchor' jump down the page.
-                       if ($rParts[0] == 'tt_content' && $this->parentRecordNumber > 2) {
-                               $retUrl .= '#' . $rParts[1];
-                       }
-                       return '<a href="' . htmlspecialchars(($url . '&returnUrl=' . rawurlencode($retUrl))) . '" class="frontEndEditIconLinks">' . $string . '</a>';
-               } else {
-                       return '<a href="#" onclick="' . htmlspecialchars(('vHWin=window.open(\'' . $url . '&returnUrl=close.html\',\'FEquickEditWindow\',\'' . ($GLOBALS['BE_USER']->uc['edit_wideDocument'] ? 'width=690,height=500' : 'width=540,height=400') . ',status=0,menubar=0,scrollbars=1,resizable=1\');vHWin.focus();return false;')) . '" class="frontEndEditIconLinks">' . $string . '</a>';
-               }
+       protected function editPanelLinkWrap_doWrap($string, $url) {
+               $onclick = 'vHWin=window.open(\'' . $url . '&returnUrl=close.html\',\'FEquickEditWindow\',\'' . ($GLOBALS['BE_USER']->uc['edit_wideDocument'] ? 'width=690,height=500' : 'width=540,height=400') . ',status=0,menubar=0,scrollbars=1,resizable=1\');vHWin.focus();return false;';
+               return '<a href="#" onclick="' . htmlspecialchars($onclick) . '" class="frontEndEditIconLinks">' . $string . '</a>';
        }
 
        /**
-        * Wraps the input content string in a table with a gray border if the table/row combination evaluates to being disabled/hidden.
-        * Used for marking previewed records in the frontend.
-        *
-        * @param string $table The table name
-        * @param array $row The data record from $table
-        * @param string $content The content string to wrap
-        * @param integer $thick The thickness of the border
-        * @param array $conf The array with TypoScript properties for the content object
-        * @return string The input string wrapped in a table with a border color of #cccccc and thickness = $thick
-        * @see editPanel()
-        */
-       protected function editPanelPreviewBorder($table, array $row, $content, $thick, array $conf = array()) {
-               if ($this->isDisabled($table, $row)) {
-                       $thick = \TYPO3\CMS\Core\Utility\MathUtility::forceIntegerInRange($thick, 1, 100);
-                       $color = $conf['color'] ? $conf['color'] : '#cccccc';
-                       if ($conf['innerWrap']) {
-                               $content = $this->wrap($content, $conf['innerWrap']);
-                       }
-                       if ($conf['innerWrap.']) {
-                               $content = $this->stdWrap($content, $conf['innerWrap.']);
-                       }
-                       $content = '<table class="typo3-editPanel-previewBorder" border="' . $thick . '" cellpadding="0" cellspacing="0" bordercolor="' . $color . '" width="100%" summary=""><tr><td>' . $content . '</td></tr></table>';
-                       if ($conf['outerWrap']) {
-                               $content = $this->wrap($content, $conf['outerWrap']);
-                       }
-                       if ($conf['outerWrap.']) {
-                               $content = $this->stdWrap($panel, $conf['outerWrap.']);
-                       }
-               }
-               return $content;
-       }
-
-       /**
-        * Returns TRUE if the input table/row would be hidden in the frontend (according nto the current time and simulate user group)
+        * Returns TRUE if the input table/row would be hidden in the frontend, according to the current time and simulate user group
         *
         * @param string $table The table name
         * @param array $row The data record
         * @return boolean
-        * @see editPanelPreviewBorder()
         */
-       protected function isDisabled($table, $row) {
+       protected function isDisabled($table, array $row) {
+               $status = FALSE;
                if (
                        $GLOBALS['TCA'][$table]['ctrl']['enablecolumns']['disabled'] &&
                        $row[$GLOBALS['TCA'][$table]['ctrl']['enablecolumns']['disabled']] ||
@@ -329,70 +278,10 @@ class FrontendEditPanel {
                        $row[$GLOBALS['TCA'][$table]['ctrl']['enablecolumns']['endtime']] &&
                        $row[$GLOBALS['TCA'][$table]['ctrl']['enablecolumns']['endtime']] < $GLOBALS['EXEC_TIME']
                ) {
-                       return TRUE;
+                       $status = TRUE;
                }
-       }
 
-       /**
-        * Returns the editing form for a content element.
-        *
-        * @param string $formTag Form tag
-        * @param string $formName Form name
-        * @param string $theCmd The command
-        * @param integer $newUID newUID
-        * @param array $dataArray dataArray for element
-        * @param string $table Table name of element
-        * @param string $currentRecord Current record
-        * @param string $blackLine Blackline
-        * @return string
-        */
-       protected function editContent($formTag, $formName, $theCmd, $newUID, array $dataArray, $table, $currentRecord, $blackLine) {
-               $tceforms = GeneralUtility::makeInstance('TYPO3\\CMS\\Backend\\Form\\FrontendFormEngine');
-               $tceforms->initDefaultBEMode();
-               $tceforms->prependFormFieldNames = 'TSFE_EDIT[data]';
-               $tceforms->prependFormFieldNames_file = 'TSFE_EDIT_file';
-               $tceforms->doSaveFieldName = 'TSFE_EDIT[doSave]';
-               $tceforms->formName = $formName;
-               $tceforms->backPath = TYPO3_mainDir;
-               $tceforms->setFancyDesign();
-               $tceforms->defStyle = 'font-family:Verdana;font-size:10px;';
-               $tceforms->edit_showFieldHelp = 0;
-               $tceforms->helpTextFontTag = '<font face="verdana,sans-serif" color="#333333" size="1">';
-               $trData = GeneralUtility::makeInstance('TYPO3\\CMS\\Backend\\Form\\DataPreprocessor');
-               $trData->addRawData = TRUE;
-               $trData->lockRecords = 1;
-               // Added without testing - should provide ability to submit default values in frontend editing, in-page.
-               $trData->defVals = GeneralUtility::_GP('defVals');
-               $trData->fetchRecord($table, $theCmd == 'new' ? $newUID : $dataArray['uid'], $theCmd == 'new' ? 'new' : '');
-               reset($trData->regTableItems_data);
-               $processedDataArr = current($trData->regTableItems_data);
-               $processedDataArr['uid'] = $theCmd == 'new' ? 'NEW' : $dataArray['uid'];
-               $processedDataArr['pid'] = $theCmd == 'new' ? $newUID : $dataArray['pid'];
-               $panel = '';
-               $buttons = '<input type="image" border="0" name="TSFE_EDIT[update]" src="' . $tceforms->backPath . 'gfx/savedok.gif" hspace="2" width="21" height="16" title="' . $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_core.xlf:rm.saveDoc', TRUE) . '" />';
-               $buttons .= '<input type="image" border="0" name="TSFE_EDIT[update_close]" src="' . $tceforms->backPath . 'gfx/saveandclosedok.gif" hspace="2" width="21" height="16" title="' . $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_core.xlf:rm.saveCloseDoc', TRUE) . '" />';
-               $buttons .= '<input type="image" border="0" name="TSFE_EDIT[cancel]" onclick="' . htmlspecialchars(('window.location.href=\'' . GeneralUtility::getIndpEnv('REQUEST_URI') . '\';return false;')) . '" src="' . $tceforms->backPath . 'gfx/closedok.gif" hspace="2" width="21" height="16" title="' . $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_core.xlf:rm.closeDoc', TRUE) . '" />';
-               // Buttons top
-               $panel .= $tceforms->intoTemplate(array('ITEM' => $buttons));
-               $panel .= $tceforms->getMainFields($table, $processedDataArr);
-               $hiddenF = '';
-               if ($theCmd == 'new') {
-                       $hiddenF .= '<input type="hidden" name="TSFE_EDIT[data][' . $table . '][NEW][pid]" value="' . $newUID . '" />';
-                       if ($table == 'pages') {
-                               // If a new page is created in front-end, then show it by default!
-                               $hiddenF .= '<input type="hidden" name="TSFE_EDIT[data][' . $table . '][NEW][hidden]" value="0" />';
-                       } else {
-                               $hiddenF .= '<input type="hidden" name="TSFE_EDIT[record]" value="' . $currentRecord . '" />';
-                               $hiddenF .= '<input type="hidden" name="TSFE_EDIT[cmd]" value="edit" />';
-                       }
-               }
-               $hiddenF .= '<input type="hidden" name="TSFE_EDIT[doSave]" value="0" />';
-               // Buttons AND hidden fields bottom.
-               $panel .= $tceforms->intoTemplate(array('ITEM' => $buttons . $hiddenF));
-               $panel = $formTag . $tceforms->wrapTotal($panel, $dataArray, $table) . '</form>' . ($theCmd != 'new' ? $blackLine : '');
-               $finalOut = $tceforms->printNeededJSFunctions_top() . ($conf['edit.']['displayRecord'] ? $content : '') . $panel . ($theCmd == 'new' ? $blackLine : '') . $tceforms->printNeededJSFunctions();
-               $GLOBALS['SOBE']->doc->insertHeaderData();
-               return $finalOut;
+               return $status;
        }
 
 }
index 2d62472..1a5ee63 100644 (file)
@@ -3,52 +3,44 @@ namespace TYPO3\CMS\Frontend\View;
 
 /***************************************************************
  *  Copyright notice
- *
  *  (c) 2008-2013 Jeff Segars <jeff@webempoweredchurch.org>
  *  (c) 2008-2013 David Slayback <dave@webempoweredchurch.org>
  *  All rights reserved
- *
  *  This script is part of the TYPO3 project. The TYPO3 project is
  *  free software; you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
  *  the Free Software Foundation; either version 2 of the License, or
  *  (at your option) any later version.
- *
  *  The GNU General Public License can be found at
  *  http://www.gnu.org/copyleft/gpl.html.
  *  A copy is found in the textfile GPL.txt and important notices to the license
  *  from the author is found in LICENSE.txt distributed with these scripts.
- *
- *
  *  This script is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *  GNU General Public License for more details.
- *
  *  This copyright notice MUST APPEAR in all copies of the scri.pt!
  ***************************************************************/
 
+use TYPO3\CMS\Backend\Sprite\SpriteManager;
 use TYPO3\CMS\Backend\Utility\BackendUtility;
+use TYPO3\CMS\Backend\Utility\IconUtility;
 use TYPO3\CMS\Core\Utility\GeneralUtility;
 
 /**
  * View class for the admin panel in frontend editing.
- *
- * @author Jeff Segars <jeff@webempoweredchurch.org>
- * @author David Slayback <dave@webempoweredchurch.org>
- * @author Dmitry Dulepov <dmitry@typo3.org>
  */
 class AdminPanelView {
 
        /**
         * Determines whether the update button should be shown.
         *
-        * @var         boolean
+        * @var boolean
         */
        protected $extNeedUpdate = FALSE;
 
        /**
-        * Force preview?
+        * Force preview
         *
         * @var boolean
         */
@@ -61,11 +53,6 @@ class AdminPanelView {
                $this->initialize();
        }
 
-       /*****************************************************
-        *
-        * Admin Panel Configuration/Initialization
-        *
-        ****************************************************/
        /**
         * Initializes settings for the admin panel.
         *
@@ -86,7 +73,6 @@ class AdminPanelView {
                }
                if (GeneralUtility::_GP('ADMCMD_editIcons')) {
                        $GLOBALS['TSFE']->displayFieldEditIcons = 1;
-                       $GLOBALS['BE_USER']->uc['TSFE_adminConfig']['edit_editNoPopup'] = 1;
                }
                if (GeneralUtility::_GP('ADMCMD_simUser')) {
                        $GLOBALS['BE_USER']->uc['TSFE_adminConfig']['preview_simulateUserGroup'] = intval(GeneralUtility::_GP('ADMCMD_simUser'));
@@ -108,15 +94,15 @@ class AdminPanelView {
        }
 
        /**
-        * Obtains header data for the admin panel.
+        * Add an additional stylesheet
         *
         * @return string
         */
        public function getAdminPanelHeaderData() {
                $result = '';
-               // Include BE styles
                if (!empty($GLOBALS['TBE_STYLES']['stylesheets']['admPanel'])) {
-                       $result = '<link rel="stylesheet" type="text/css" href="' . htmlspecialchars(GeneralUtility::locationHeaderUrl($GLOBALS['TBE_STYLES']['stylesheets']['admPanel'])) . '" />';
+                       $stylesheet = GeneralUtility::locationHeaderUrl($GLOBALS['TBE_STYLES']['stylesheets']['admPanel']);
+                       $result = '<link rel="stylesheet" type="text/css" href="' . htmlspecialchars($stylesheet) . '" />';
                }
                return $result;
        }
@@ -130,14 +116,11 @@ class AdminPanelView {
        public function isAdminModuleEnabled($key) {
                $result = FALSE;
                // Returns TRUE if the module checked is "preview" and the forcePreview flag is set.
-               if ($key == 'preview' && $this->ext_forcePreview) {
+               if ($key === 'preview' && $this->ext_forcePreview) {
                        $result = TRUE;
-               }
-               // If key is not set, only "all" is checked
-               if ($GLOBALS['BE_USER']->extAdminConfig['enable.']['all']) {
+               } elseif (!empty($GLOBALS['BE_USER']->extAdminConfig['enable.']['all'])) {
                        $result = TRUE;
-               }
-               if ($GLOBALS['BE_USER']->extAdminConfig['enable.'][$key]) {
+               } elseif (!empty($GLOBALS['BE_USER']->extAdminConfig['enable.'][$key])) {
                        $result = TRUE;
                }
                return $result;
@@ -172,7 +155,7 @@ class AdminPanelView {
        }
 
        /**
-        * Returns the value for a Admin Panel setting. You must specify both the module-key and the internal setting key.
+        * Returns the value for an Admin Panel setting.
         *
         * @param string $sectionName Module key
         * @param string $val Setting key
@@ -200,7 +183,7 @@ class AdminPanelView {
                        if ($sectionName == 'preview' && $this->ext_forcePreview) {
                                return !$val ? TRUE : $retVal;
                        }
-                       // Regular check:
+
                        // See if the menu is expanded!
                        if ($this->isAdminModuleOpen($sectionName)) {
                                return $retVal;
@@ -220,26 +203,23 @@ class AdminPanelView {
        /**
         * Returns TRUE if admin panel module is open
         *
-        * @param string $pre Module key
+        * @param string $key Module key
         * @return boolean TRUE, if the admin panel is open for the specified admin panel module key.
         */
-       public function isAdminModuleOpen($pre) {
-               return $GLOBALS['BE_USER']->uc['TSFE_adminConfig']['display_top'] && $GLOBALS['BE_USER']->uc['TSFE_adminConfig']['display_' . $pre];
+       public function isAdminModuleOpen($key) {
+               return $GLOBALS['BE_USER']->uc['TSFE_adminConfig']['display_top'] && $GLOBALS['BE_USER']->uc['TSFE_adminConfig']['display_' . $key];
        }
 
-       /*****************************************************
-        *
-        * Admin Panel Rendering
-        *
-        ****************************************************/
        /**
         * Creates and returns the HTML code for the Admin Panel in the TSFE frontend.
         *
+        * @throws \UnexpectedValueException
         * @return string HTML for the Admin Panel
         */
        public function display() {
                $GLOBALS['LANG']->includeLLFile('EXT:lang/locallang_tsfe.xlf');
-               $moduleContent = '';
+               $moduleContent = $footer = '';
+
                if ($GLOBALS['BE_USER']->uc['TSFE_adminConfig']['display_top']) {
                        if ($this->isAdminModuleEnabled('preview')) {
                                $moduleContent .= $this->getPreviewModule();
@@ -269,15 +249,18 @@ class AdminPanelView {
                $row = $this->extGetLL('adminPanelTitle') . ': <span class="typo3-adminPanel-beuser">' . htmlspecialchars($GLOBALS['BE_USER']->user['username']) . '</span>';
                $isVisible = $GLOBALS['BE_USER']->uc['TSFE_adminConfig']['display_top'];
                $cssClassName = 'typo3-adminPanel-panel-' . ($isVisible ? 'open' : 'closed');
-               $header = '<tr class="typo3-adminPanel-hRow">' . '<td colspan="2" id="typo3-adminPanel-header" class="' . $cssClassName . '">' . '<span class="typo3-adminPanel-header-title">' . $row . '</span>' . $this->linkSectionHeader('top', '<span class="typo3-adminPanel-header-button"></span>', 'typo3-adminPanel-header-buttonWrapper') . '<input type="hidden" name="TSFE_ADMIN_PANEL[display_top]" value="' . $GLOBALS['BE_USER']->uc['TSFE_adminConfig']['display_top'] . '" /></td>' . '</tr>';
-               if ($moduleContent) {
-                       $footer = '<tr class="typo3-adminPanel-fRow">' . '<td colspan="2" id="typo3-adminPanel-footer">' . ($this->extNeedUpdate ? ' <input class="typo3-adminPanel-update" type="submit" value="' . $this->extGetLL('update') . '" />' : '') . '</td>' . '</tr>';
-               } else {
-                       $footer = '';
+               $header = '<tr class="typo3-adminPanel-header">' . '<td colspan="2" id="typo3-adminPanel-header" class="' . $cssClassName . '">' . '<span class="typo3-adminPanel-header-title">' . $row . '</span>' . $this->linkSectionHeader('top', '<span class="typo3-adminPanel-header-button"></span>', 'typo3-adminPanel-header-buttonWrapper') . '<input type="hidden" name="TSFE_ADMIN_PANEL[display_top]" value="' . $GLOBALS['BE_USER']->uc['TSFE_adminConfig']['display_top'] . '" /></td>' . '</tr>';
+               if ($moduleContent && $this->extNeedUpdate) {
+                       $footer = '<tr class="typo3-adminPanel-footer">
+                                               <td colspan="2">
+                                                       <input class="typo3-adminPanel-update" type="submit" value="' . $this->extGetLL('update') . '" />
+                                               </td>
+                                       </tr>';
                }
                $query = !GeneralUtility::_GET('id') ? '<input type="hidden" name="id" value="' . $GLOBALS['TSFE']->id . '" />' : '';
+
                // The dummy field is needed for Firefox: to force a page reload on submit
-               // with must change the form value with JavaScript (see "onsubmit" attribute of the "form" element")
+               // which must change the form value with JavaScript (see "onsubmit" attribute of the "form" element")
                $query .= '<input type="hidden" name="TSFE_ADMIN_PANEL[DUMMY]" value="" />';
                foreach (GeneralUtility::_GET() as $key => $value) {
                        if ($key != 'TSFE_ADMIN_PANEL') {
@@ -290,7 +273,7 @@ class AdminPanelView {
                }
                $out = '
 <!--
-       TYPO3 admin panel start
+       TYPO3 Admin panel start
 -->
 <a id="TSFE_ADMIN"></a>
 <form id="TSFE_ADMIN_PANEL_FORM" name="TSFE_ADMIN_PANEL_FORM" action="' . htmlspecialchars(GeneralUtility::getIndpEnv('TYPO3_REQUEST_SCRIPT')) . '#TSFE_ADMIN" method="get" onsubmit="document.forms.TSFE_ADMIN_PANEL_FORM[\'TSFE_ADMIN_PANEL[DUMMY]\'].value=Math.random().toString().substring(2,8)">' . $query . '<table class="typo3-adminPanel">' . $header . $moduleContent . $footer . '</table></form>';
@@ -354,9 +337,7 @@ class AdminPanelView {
        }
 
        /*****************************************************
-        *
         * Creating sections of the Admin Panel
-        *
         ****************************************************/
        /**
         * Creates the content for the "preview" section ("module") of the Admin Panel
@@ -374,12 +355,18 @@ class AdminPanelView {
                        $out .= $this->extGetItem('preview_simulateDate', '<input type="text" id="preview_simulateDate" name="TSFE_ADMIN_PANEL[preview_simulateDate]_hr" onchange="TSFEtypo3FormFieldGet(\'TSFE_ADMIN_PANEL[preview_simulateDate]\', \'datetime\', \'\', 1,0);" /><input type="hidden" name="TSFE_ADMIN_PANEL[preview_simulateDate]" value="' . $GLOBALS['BE_USER']->uc['TSFE_adminConfig']['preview_simulateDate'] . '" />');
                        $this->extJSCODE .= 'TSFEtypo3FormFieldSet("TSFE_ADMIN_PANEL[preview_simulateDate]", "datetime", "", 0, 0);';
                        // Simulate fe_user:
-                       $options = '<option value="0">&nbsp;</option>';
+
+                       $options = '';
+
                        $res = $GLOBALS['TYPO3_DB']->exec_SELECTquery('fe_groups.uid, fe_groups.title', 'fe_groups,pages', 'pages.uid=fe_groups.pid AND pages.deleted=0 ' . BackendUtility::deleteClause('fe_groups') . ' AND ' . $GLOBALS['BE_USER']->getPagePermsClause(1));
                        while ($row = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res)) {
                                $options .= '<option value="' . $row['uid'] . '"' . ($GLOBALS['BE_USER']->uc['TSFE_adminConfig']['preview_simulateUserGroup'] == $row['uid'] ? ' selected="selected"' : '') . '>' . htmlspecialchars(('[' . $row['uid'] . '] ' . $row['title'])) . '</option>';
                        }
-                       $out .= $this->extGetItem('preview_simulateUserGroup', '<select id="preview_simulateUserGroup" name="TSFE_ADMIN_PANEL[preview_simulateUserGroup]">' . $options . '</select>');
+                       $GLOBALS['TYPO3_DB']->sql_free_result($res);
+                       if ($options) {
+                               $options = '<option value="0">&nbsp;</option>' . $options;
+                               $out .= $this->extGetItem('preview_simulateUserGroup', '<select id="preview_simulateUserGroup" name="TSFE_ADMIN_PANEL[preview_simulateUserGroup]">' . $options . '</select>');
+                       }
                }
                return $out;
        }
@@ -408,7 +395,7 @@ class AdminPanelView {
                        $GLOBALS['BE_USER']->extPageInTreeInfo[] = array($GLOBALS['TSFE']->page['uid'], htmlspecialchars($GLOBALS['TSFE']->page['title']), $depth + 1);
                        $GLOBALS['BE_USER']->extGetTreeList($GLOBALS['TSFE']->id, $depth, 0, $GLOBALS['BE_USER']->getPagePermsClause(1));
                        foreach ($GLOBALS['BE_USER']->extPageInTreeInfo as $row) {
-                               $outTable .= '<tr>' . '<td><img src="typo3/gfx/clear.gif" width="' . ($depth + 1 - $row[2]) * 18 . '" height="1" alt="" /><img ' . \TYPO3\CMS\Backend\Utility\IconUtility::skinImg(TYPO3_mainDir, 'gfx/i/pages.gif', 'width="18" height="16"') . ' align="top" alt="" /> ' . htmlspecialchars($row[1]) . '</td><td>' . $GLOBALS['BE_USER']->extGetNumberOfCachedPages($row[0]) . '</td></tr>';
+                               $outTable .= '<tr>' . '<td><img src="typo3/gfx/clear.gif" width="' . ($depth + 1 - $row[2]) * 18 . '" height="1" alt="" /><img ' . IconUtility::skinImg(TYPO3_mainDir, 'gfx/i/pages.gif', 'width="18" height="16"') . ' align="top" alt="" /> ' . htmlspecialchars($row[1]) . '</td><td>' . $GLOBALS['BE_USER']->extGetNumberOfCachedPages($row[0]) . '</td></tr>';
                        }
                        $outTable = '<br /><table>' . $outTable . '</table>';
                        $outTable .= '<input type="submit" name="TSFE_ADMIN_PANEL[action][clearCache]" value="' . $this->extGetLL('cache_doit') . '" />';
@@ -432,8 +419,6 @@ class AdminPanelView {
                        $this->extNeedUpdate = TRUE;
                        $out .= $this->extGetItem('edit_displayFieldIcons', '', '<input type="hidden" name="TSFE_ADMIN_PANEL[edit_displayFieldIcons]" value="0" /><input type="checkbox" id="edit_displayFieldIcons" name="TSFE_ADMIN_PANEL[edit_displayFieldIcons]" value="1"' . ($GLOBALS['BE_USER']->uc['TSFE_adminConfig']['edit_displayFieldIcons'] ? ' checked="checked"' : '') . ' />');
                        $out .= $this->extGetItem('edit_displayIcons', '', '<input type="hidden" name="TSFE_ADMIN_PANEL[edit_displayIcons]" value="0" /><input type="checkbox" id="edit_displayIcons" name="TSFE_ADMIN_PANEL[edit_displayIcons]" value="1"' . ($GLOBALS['BE_USER']->uc['TSFE_adminConfig']['edit_displayIcons'] ? ' checked="checked"' : '') . ' />');
-                       $out .= $this->extGetItem('edit_editFormsOnPage', '', '<input type="hidden" name="TSFE_ADMIN_PANEL[edit_editFormsOnPage]" value="0" /><input type="checkbox" id="edit_editFormsOnPage" name="TSFE_ADMIN_PANEL[edit_editFormsOnPage]" value="1"' . ($GLOBALS['BE_USER']->uc['TSFE_adminConfig']['edit_editFormsOnPage'] ? ' checked="checked"' : '') . ' />');
-                       $out .= $this->extGetItem('edit_editNoPopup', '', '<input type="hidden" name="TSFE_ADMIN_PANEL[edit_editNoPopup]" value="0" /><input type="checkbox" id="edit_editNoPopup" name="TSFE_ADMIN_PANEL[edit_editNoPopup]" value="1"' . ($GLOBALS['BE_USER']->uc['TSFE_adminConfig']['edit_editNoPopup'] ? ' checked="checked"' : '') . ' />');
                        $out .= $this->extGetItem('', $this->ext_makeToolBar());
                        if (!GeneralUtility::_GP('ADMCMD_view')) {
                                $out .= $this->extGetItem('', '<a href="#" onclick="' . htmlspecialchars(('
@@ -489,62 +474,58 @@ class AdminPanelView {
         * @see display()
         */
        protected function getInfoModule() {
-               $out = $this->extGetHead('info');
+               $head = $this->extGetHead('info');
+               $out = '';
                if ($GLOBALS['BE_USER']->uc['TSFE_adminConfig']['display_info']) {
                        $tableArr = array();
                        if ($this->extGetFeAdminValue('cache', 'noCache')) {
                                $theBytes = 0;
                                $count = 0;
                                if (count($GLOBALS['TSFE']->imagesOnPage)) {
-                                       $tableArr[] = array('*Images on this page:*', '');
+                                       $tableArr[] = array($this->extGetLL('info_imagesOnPage'), count($GLOBALS['TSFE']->imagesOnPage), TRUE);
                                        foreach ($GLOBALS['TSFE']->imagesOnPage as $file) {
                                                $fs = @filesize($file);
-                                               $tableArr[] = array('&ndash; ' . $file, GeneralUtility::formatSize($fs));
+                                               $tableArr[] = array(TAB . $file, GeneralUtility::formatSize($fs));
                                                $theBytes += $fs;
                                                $count++;
                                        }
                                }
                                // Add an empty line
+                               $tableArr[] = array($this->extGetLL('info_imagesSize'), GeneralUtility::formatSize($theBytes), TRUE);
+                               $tableArr[] = array($this->extGetLL('info_DocumentSize'), GeneralUtility::formatSize(strlen($GLOBALS['TSFE']->content)), TRUE);
                                $tableArr[] = array('', '');
-                               $tableArr[] = array('*Total number of images:*', $count);
-                               $tableArr[] = array('*Total image file sizes:*', GeneralUtility::formatSize($theBytes));
-                               $tableArr[] = array('*Document size:*', GeneralUtility::formatSize(strlen($GLOBALS['TSFE']->content)));
-                               $tableArr[] = array('*Total page load:*', GeneralUtility::formatSize(strlen($GLOBALS['TSFE']->content) + $theBytes));
-                               $tableArr[] = array('', '');
                        }
-                       $tableArr[] = array('id:', $GLOBALS['TSFE']->id);
-                       $tableArr[] = array('type:', $GLOBALS['TSFE']->type);
-                       $tableArr[] = array('gr_list:', $GLOBALS['TSFE']->gr_list);
-                       $tableArr[] = array('no_cache:', $GLOBALS['TSFE']->no_cache ? 1 : 0);
-                       $tableArr[] = array('USER_INT objects:', count($GLOBALS['TSFE']->config['INTincScript']));
-                       $tableArr[] = array('fe_user, name:', $GLOBALS['TSFE']->fe_user->user['username']);
-                       $tableArr[] = array('fe_user, uid:', $GLOBALS['TSFE']->fe_user->user['uid']);
-                       // Add an empty line
-                       $tableArr[] = array('', '');
-                       // Parsetime:
-                       $tableArr[] = array('*Total parsetime:*', $GLOBALS['TSFE']->scriptParseTime . ' ms');
+                       $tableArr[] = array($this->extGetLL('info_id'), $GLOBALS['TSFE']->id);
+                       $tableArr[] = array($this->extGetLL('info_type'), $GLOBALS['TSFE']->type);
+                       $tableArr[] = array($this->extGetLL('info_groupList'), $GLOBALS['TSFE']->gr_list);
+                       $tableArr[] = array($this->extGetLL('info_noCache'), $GLOBALS['TSFE']->no_cache ? 1 : 0);
+                       $tableArr[] = array($this->extGetLL('info_countUserInt'), count($GLOBALS['TSFE']->config['INTincScript']));
+
+                       if (!empty($GLOBALS['TSFE']->fe_user->user['uid'])) {
+                               $tableArr[] = array($this->extGetLL('info_feuserName'), htmlspecialchars($GLOBALS['TSFE']->fe_user->user['username']));
+                               $tableArr[] = array($this->extGetLL('info_feuserId'), htmlspecialchars($GLOBALS['TSFE']->fe_user->user['uid']));
+                       }
+                       $tableArr[] = array($this->extGetLL('info_totalParsetime'), $GLOBALS['TSFE']->scriptParseTime . ' ms', TRUE);
                        $table = '';
-                       foreach ($tableArr as $arr) {
-                               // Put text wrapped by "*" between <strong> tags
-                               if (strlen($arr[0])) {
-                                       $value1 = preg_replace('/^\\*(.*)\\*$/', '$1', $arr[0], -1, $count);
-                                       $value1 = ($count ? '<strong>' : '') . $value1 . ($count ? '</strong>' : '');
-                               } else {
-                                       $value1 = '&nbsp;';
-                               }
-                               $value2 = strlen($arr[1]) ? $arr[1] : '&nbsp;';
-                               $value2 = $value2;
-                               $table .= '<tr class="typo3-adminPanel-itemRow">' . '<td class="typo3-adminPanel-section-content-title">' . $value1 . '</td>' . '<td class="typo3-adminPanel-section-content">' . $value2 . '</td>' . '</tr>';
+                       foreach ($tableArr as $key => $arr) {
+                               $label = (isset($arr[2]) ? '<strong>' . $arr[0] . '</strong>' : $arr[0]);
+                               $value = strlen($arr[1]) ? $arr[1] : '';
+                               $table .=
+                                       '<tr class="typo3-adminPanel-itemRow ' . ($key % 2 == 0 ? 'line-even' : 'line-odd') . '">
+                                                       <td class="typo3-adminPanel-section-content-title">' . $label . '</td>
+                                                       <td class="typo3-adminPanel-section-content">' . htmlspecialchars($value) . '</td>
+                                               </tr>';
                        }
                        $out .= $table;
+                       $out = '<tr><td colspan="2"><table class="admin-panel-table">' . $out . '</table></td></tr>';
                }
+
+               $out = $head . $out;
                return $out;
        }
 
        /*****************************************************
-        *
         * Admin Panel Layout Helper functions
-        *
         ****************************************************/
        /**
         * Returns a row (with colspan=4) which is a header for a section in the Admin Panel.
@@ -572,7 +553,13 @@ class AdminPanelView {
         * @see extGetHead()
         */
        public function linkSectionHeader($sectionSuffix, $sectionTitle, $className = '') {
-               return '<div class="typo3-adminPanel-label"><a href="javascript:void(0)" onclick="' . htmlspecialchars(('document.TSFE_ADMIN_PANEL_FORM[\'TSFE_ADMIN_PANEL[display_' . $sectionSuffix . ']\'].value=' . ($GLOBALS['BE_USER']->uc['TSFE_adminConfig']['display_' . $sectionSuffix] ? '0' : '1') . ';document.TSFE_ADMIN_PANEL_FORM.submit();return false;')) . '"' . ($className ? ' class="' . $className . '"' : '') . '>' . $sectionTitle . '</a></div>';
+               $onclick = 'document.TSFE_ADMIN_PANEL_FORM[\'TSFE_ADMIN_PANEL[display_' . $sectionSuffix . ']\'].value=' . ($GLOBALS['BE_USER']->uc['TSFE_adminConfig']['display_' . $sectionSuffix] ? '0' : '1') . ';document.TSFE_ADMIN_PANEL_FORM.submit();return false;';
+               $content = '<div class="typo3-adminPanel-label">
+                                               <a href="javascript:void(0)" onclick="' . htmlspecialchars($onclick) . '"' . ($className ? ' class="' . htmlspecialchars($className) . '"' : '') . '>'
+                       . $sectionTitle .
+                       '</a>
+               </div>';
+               return $content;
        }
 
        /**
@@ -581,14 +568,15 @@ class AdminPanelView {
         *
         * @param string $title Key to label
         * @param string $content The HTML content for the forth table cell.
-        * @param string $checkboxContent The HTML for a checkbox or hidden fields
+        * @param string $checkbox The HTML for a checkbox or hidden fields
         * @return string HTML table row.
         * @see extGetHead()
         */
-       public function extGetItem($title, $content = '', $checkboxContent = '') {
+       public function extGetItem($title, $content = '', $checkbox = '') {
+               $title = $title ? '<label for="' . htmlspecialchars($title) . '">' . $this->extGetLL($title) . '</label>' : '';
                $out = '<tr class="typo3-adminPanel-itemRow">
-                                       <td class="typo3-adminPanel-section-content">' . $checkboxContent . ($title ? '<label for="' . htmlspecialchars($title) . '">' . $this->extGetLL($title) . '</label>' : '&nbsp;') . $content .
-                       '</td></tr>';
+                                       <td class="typo3-adminPanel-section-content">' . $checkbox . $title . $content . '</td>
+                               </tr>';
                return $out;
        }
 
@@ -605,64 +593,68 @@ class AdminPanelView {
                $perms = $GLOBALS['BE_USER']->calcPerms($GLOBALS['TSFE']->page);
                $langAllowed = $GLOBALS['BE_USER']->checkLanguageAccess($GLOBALS['TSFE']->sys_language_uid);
                $id = $GLOBALS['TSFE']->id;
-               $toolBar = '<a href="' . htmlspecialchars((TYPO3_mainDir . 'show_rechis.php?element=' . rawurlencode(('pages:' . $id)) . '&returnUrl=' . rawurlencode(GeneralUtility::getIndpEnv('REQUEST_URI')))) . '#latest">' . '<img ' . \TYPO3\CMS\Backend\Utility\IconUtility::skinImg(TYPO3_mainDir, 'gfx/history2.gif', 'width="13" height="12"') . ' hspace="2" border="0" align="top" title="' . $this->extGetLL('edit_recordHistory') . '" alt="" /></a>';
+               $returnUrl = '&returnUrl=' . rawurlencode(GeneralUtility::getIndpEnv('REQUEST_URI'));
+
+               $icon = IconUtility::getSpriteIcon('actions-document-history-open', array('title' => $this->extGetLL('edit_newContentElement')));
+               $toolBar = '<a href="' . htmlspecialchars((TYPO3_mainDir . 'show_rechis.php?element=' . rawurlencode(('pages:' . $id)) . $returnUrl)) . '#latest">' . $icon . '</a>';
                if ($perms & 16 && $langAllowed) {
                        $params = '';
                        if ($GLOBALS['TSFE']->sys_language_uid) {
                                $params = '&sys_language_uid=' . $GLOBALS['TSFE']->sys_language_uid;
                        }
-                       $toolBar .= '<a href="' . htmlspecialchars(($newContentWizScriptPath . '?id=' . $id . $params . '&returnUrl=' . rawurlencode(GeneralUtility::getIndpEnv('REQUEST_URI')))) . '">' . '<img ' . \TYPO3\CMS\Backend\Utility\IconUtility::skinImg(TYPO3_mainDir, 'gfx/new_record.gif', 'width="16" height="12"') . ' hspace="1" border="0" align="top" title="' . $this->extGetLL('edit_newContentElement') . '" alt="" /></a>';
+                       $icon = IconUtility::getSpriteIcon('actions-document-new', array('title' => $this->extGetLL('edit_newContentElement')));
+                       $toolBar .= '<a href="' . htmlspecialchars(($newContentWizScriptPath . '?id=' . $id . $params . '&returnUrl=' . $returnUrl)) . '">' . $icon . '</a>';
                }
                if ($perms & 2) {
-                       $toolBar .= '<a href="' . htmlspecialchars((TYPO3_mainDir . 'move_el.php?table=pages&uid=' . $id . '&returnUrl=' . rawurlencode(GeneralUtility::getIndpEnv('REQUEST_URI')))) . '">' . '<img ' . \TYPO3\CMS\Backend\Utility\IconUtility::skinImg(TYPO3_mainDir, 'gfx/move_page.gif', 'width="11" height="12') . ' hspace="2" border="0" align="top" title="' . $this->extGetLL('edit_move_page') . '" alt="" /></a>';
+                       $icon = IconUtility::getSpriteIcon('actions-document-move', array('title' => $this->extGetLL('edit_move_page')));
+                       $toolBar .= '<a href="' . htmlspecialchars((TYPO3_mainDir . 'move_el.php?table=pages&uid=' . $id . '&returnUrl=' . $returnUrl)) . '">' . $icon . '</a>';
                }
                if ($perms & 8) {
-                       $toolBar .= '<a href="' . htmlspecialchars((TYPO3_mainDir . 'db_new.php?id=' . $id . '&pagesOnly=1&returnUrl=' . rawurlencode(GeneralUtility::getIndpEnv('REQUEST_URI')))) . '">' . '<img ' . \TYPO3\CMS\Backend\Utility\IconUtility::skinImg(TYPO3_mainDir, 'gfx/new_page.gif', 'width="13" height="12"') . ' hspace="0" border="0" align="top" title="' . $this->extGetLL('edit_newPage') . '" alt="" /></a>';
+                       $icon = IconUtility::getSpriteIcon('actions-page-new', array('title' => $this->extGetLL('edit_newPage')));
+                       $toolBar .= '<a href="' . htmlspecialchars((TYPO3_mainDir . 'db_new.php?id=' . $id . '&pagesOnly=1&returnUrl=' . $returnUrl)) . '">' . $icon . '</a>';
                }
                if ($perms & 2) {
                        $params = '&edit[pages][' . $id . ']=edit';
-                       $toolBar .= '<a href="' . htmlspecialchars((TYPO3_mainDir . 'alt_doc.php?' . $params . '&noView=1&returnUrl=' . rawurlencode(GeneralUtility::getIndpEnv('REQUEST_URI')))) . '">' . '<img ' . \TYPO3\CMS\Backend\Utility\IconUtility::skinImg(TYPO3_mainDir, 'gfx/edit2.gif', 'width="11" height="12"') . 'hspace="2" border="0" align="top" title="' . $this->extGetLL('edit_editPageProperties') . '" alt="" /></a>';
+                       $icon = IconUtility::getSpriteIcon('actions-document-open', array('title' => $this->extGetLL('edit_editPageProperties')));
+                       $toolBar .= '<a href="' . htmlspecialchars((TYPO3_mainDir . 'alt_doc.php?' . $params . '&noView=1&returnUrl=' . $returnUrl)) . '">' . $icon . '</a>';
                        if ($GLOBALS['TSFE']->sys_language_uid && $langAllowed) {
-                               $res = $GLOBALS['TYPO3_DB']->exec_SELECTquery(
+                               $row = $GLOBALS['TYPO3_DB']->exec_SELECTgetSingleRow(
                                        'uid,pid,t3ver_state',
                                        'pages_language_overlay',
                                        'pid=' . intval($id) .
-                                               ' AND sys_language_uid=' . $GLOBALS['TSFE']->sys_language_uid .
-                                               $GLOBALS['TSFE']->sys_page->enableFields('pages_language_overlay'),
-                                       '',
-                                       '',
-                                       '1'
+                                       ' AND sys_language_uid=' . $GLOBALS['TSFE']->sys_language_uid .
+                                       $GLOBALS['TSFE']->sys_page->enableFields('pages_language_overlay')
                                );
-                               $row = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res);
                                $GLOBALS['TSFE']->sys_page->versionOL('pages_language_overlay', $row);
                                if (is_array($row)) {
                                        $params = '&edit[pages_language_overlay][' . $row['uid'] . ']=edit';
-                                       $toolBar .= '<a href="' . htmlspecialchars((TYPO3_mainDir . 'alt_doc.php?' . $params . '&noView=1&returnUrl=' . rawurlencode(GeneralUtility::getIndpEnv('REQUEST_URI')))) . '">' . '<img ' . \TYPO3\CMS\Backend\Utility\IconUtility::skinImg(TYPO3_mainDir, 'gfx/edit3.gif', 'width="11" height="12"') . ' hspace="2" border="0" align="top" title="' . $this->extGetLL('edit_editPageOverlay') . '" alt="" /></a>';
+                                       $icon = IconUtility::getSpriteIcon('mimetypes-x-content-page-language-overlay', array('title' => $this->extGetLL('edit_editPageOverlay')));
+                                       $toolBar .= '<a href="' . htmlspecialchars((TYPO3_mainDir . 'alt_doc.php?' . $params . '&noView=1&returnUrl=' . $returnUrl)) . '">' . $icon . '</a>';
                                }
                        }
                }
                if ($GLOBALS['BE_USER']->check('modules', 'web_list')) {
-                       $urlParams = array();
-                       $urlParams['id'] = $id;
-                       $urlParams['returnUrl'] = GeneralUtility::getIndpEnv('REQUEST_URI');
-                       $toolBar .= '<a href="' . htmlspecialchars((TYPO3_mainDir . BackendUtility::getModuleUrl('web_list', $urlParams))) . '">' . '<img ' . \TYPO3\CMS\Backend\Utility\IconUtility::skinImg(TYPO3_mainDir, 'gfx/list.gif', 'width="11" height="11"') . ' hspace="2" border="0" align="top" title="' . $this->extGetLL('edit_db_list') . '" alt="" /></a>';
+                       $urlParams = array(
+                               'id' => $id,
+                               'returnUrl' => GeneralUtility::getIndpEnv('REQUEST_URI')
+                       );
+                       $icon = IconUtility::getSpriteIcon('actions-system-list-open', array('title' => $this->extGetLL('edit_db_list')));
+                       $toolBar .= '<a href="' . htmlspecialchars((TYPO3_mainDir . BackendUtility::getModuleUrl('web_list', $urlParams))) . '">' . $icon . '</a>';
                }
+
+               $toolBar = '<div class="toolbar">' . $toolBar . '</div>';
+
                return $toolBar;
        }
 
        /**
-        * Returns the label for key, $key. If a translation for the language set in $GLOBALS['BE_USER']->uc['lang'] is found that is returned, otherwise the default value.
-        * IF the global variable $LOCAL_LANG is NOT an array (yet) then this function loads the global $LOCAL_LANG array with the content of "sysext/lang/locallang_tsfe.xlf" so that the values therein can be used for labels in the Admin Panel
-        *
-        * FIXME The function should convert to $TSFE->renderCharset, not to UTF8!
+        * Translate given key
         *
         * @param string $key Key for a label in the $LOCAL_LANG array of "sysext/lang/locallang_tsfe.xlf
         * @return string The value for the $key
         */
        public function extGetLL($key) {
-               // Label string in the default backend output charset.
                $labelStr = htmlspecialchars($GLOBALS['LANG']->getLL($key));
-               $labelStr = $GLOBALS['LANG']->csConvObj->utf8_to_entities($labelStr);
                return $labelStr;
        }
 
index 2ae6887..98186ad 100644 (file)
                        <trans-unit id="info" xml:space="preserve">
                                <source>Info</source>
                        </trans-unit>
+                       <trans-unit id="info_imagesOnPage" xml:space="preserve">
+                               <source>Images on this page</source>
+                       </trans-unit>
+                       <trans-unit id="info_imagesSize" xml:space="preserve">
+                               <source>Total image file sizes</source>
+                       </trans-unit>
+                       <trans-unit id="info_DocumentSize" xml:space="preserve">
+                               <source>Document size</source>
+                       </trans-unit>
+                       <trans-unit id="info_id" xml:space="preserve">
+                               <source>Page Uid</source>
+                       </trans-unit>
+                       <trans-unit id="info_type" xml:space="preserve">
+                               <source>Page type</source>
+                       </trans-unit>
+                       <trans-unit id="info_groupList" xml:space="preserve">
+                               <source>Frontenduser group combination</source>
+                       </trans-unit>
+                       <trans-unit id="info_noCache" xml:space="preserve">
+                               <source>Page cached</source>
+                       </trans-unit>
+                       <trans-unit id="info_countUserInt" xml:space="preserve">
+                               <source>Count of USER_INT objects</source>
+                       </trans-unit>
+                       <trans-unit id="info_feuserName" xml:space="preserve">
+                               <source>Name of logged in FE-User</source>
+                       </trans-unit>
+                       <trans-unit id="info_feuserId" xml:space="preserve">
+                               <source>Id of logged in FE-User</source>
+                       </trans-unit>
+                       <trans-unit id="info_totalParsetime" xml:space="preserve">
+                               <source>Total parsetime</source>
+                       </trans-unit>
                        <trans-unit id="div_Levels_0" xml:space="preserve">
                                <source>This page</source>
                        </trans-unit>
index ae9650b..ca4c206 100644 (file)
@@ -392,7 +392,6 @@ var typoscriptWords = {
        'fontTag': 'reserved',
        'forceDisplayFieldIcons': 'reserved',
        'forceDisplayIcons': 'reserved',
-       'forceNoPopup': 'reserved',
        'forceTemplateParsing': 'reserved',
        'forceTypeValue': 'reserved',
        'format': 'reserved',
@@ -1720,7 +1719,6 @@ var typoscriptWords = {
        'fontTag': 'reserved',
        'forceDisplayFieldIcons': 'reserved',
        'forceDisplayIcons': 'reserved',
-       'forceNoPopup': 'reserved',
        'forceTemplateParsing': 'reserved',
        'forceTypeValue': 'reserved',
        'format': 'reserved',
index e69b412..4980896 100644 (file)
@@ -1,8 +1,39 @@
+@import "../sprites/t3skin.css";
+
+.t3-icon {
+       display: inline-block;
+       position: relative;
+       overflow: hidden;
+}
+
+.typo3-editPanel {
+       background: #ccc;
+}
+
+.typo3-editPanel-label {
+       display: inline;
+       margin: 0 10px;
+}
+
+.typo3-editPanel .t3-icon {
+       margin: 2px 1px;
+}
+
+.typo3-feedit-element {
+       outline: 3px solid rgba(247, 144, 37, 0.8) !important;
+       outline-offset: 4px;
+}
+
+.typo3-feedit-element-hidden {
+       filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=20);
+       opacity: 0.2;
+}
+
 #TSFE_ADMIN_PANEL_FORM {
-       background-color: #ffffff;
-       -moz-box-shadow: 0px 3px 15px #808080;
-       -webkit-box-shadow: 0px 3px 15px #808080;
-       box-shadow: 0px 3px 15px #808080;
+       background-color: #fff;
+       -moz-box-shadow: 0 3px 15px #808080;
+       -webkit-box-shadow: 0 3px 15px #808080;
+       box-shadow: 0 3px 15px #808080;
        margin: 0;
        padding: 0;
        z-index: 10002;
 }
 
 #TSFE_ADMIN_PANEL_FORM td {
-       padding: 10px;
-}
-
-#TSFE_ADMIN_PANEL_FORM a:active,
-#TSFE_ADMIN_PANEL_FORM a:focus {
-       -moz-outline-style: none;
-       outline-style: none;
+       /*padding: 10px;*/
 }
 
-#TSFE_ADMIN_PANEL_FORM tr.typo3-adminPanel-hRow td,
-#TSFE_ADMIN_PANEL_FORM tr.typo3-adminPanel-fRow td {
-       background-image: -moz-linear-gradient(center top, #555555 10%, #444547 90%);
-       background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0.1, #555555), color-stop(0.1, #555555), color-stop(0.9, #444547), color-stop(1.0, #444547));
-       background-color: #555555;
+#TSFE_ADMIN_PANEL_FORM tr.typo3-adminPanel-header td,
+#TSFE_ADMIN_PANEL_FORM tr.typo3-adminPanel-footer td {
+       background-image: -moz-linear-gradient(center top, #555 10%, #444547 90%);
+       background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0.1, #555), color-stop(0.1, #555), color-stop(0.9, #444547), color-stop(1.0, #444547));
+       background-color: #555;
        color: white;
        font-weight: bold;
        padding-bottom: 5px;
 }
 
-#TSFE_ADMIN_PANEL_FORM tr.typo3-adminPanel-hRow td {
+#TSFE_ADMIN_PANEL_FORM tr.typo3-adminPanel-header td {
        cursor: move;
 }
 
-#TSFE_ADMIN_PANEL_FORM tr.typo3-adminPanel-fRow td {
+#TSFE_ADMIN_PANEL_FORM tr.typo3-adminPanel-footer td {
        padding-right: 5px;
 }
 
-#TSFE_ADMIN_PANEL_FORM tr.typo3-adminPanel-hRow td a,
-#TSFE_ADMIN_PANEL_FORM tr.typo3-adminPanel-fRow td a {
-       color: #ffffff;
+#TSFE_ADMIN_PANEL_FORM tr.typo3-adminPanel-header td a,
+#TSFE_ADMIN_PANEL_FORM tr.typo3-adminPanel-footer td a {
+       color: #fff;
 }
 
 #TSFE_ADMIN_PANEL_FORM .typo3-adminPanel-header-title {
        margin-left: 10px;
 }
 
-
 #TSFE_ADMIN_PANEL_FORM .typo3-adminPanel-panel-open .typo3-adminPanel-header-button,
 #TSFE_ADMIN_PANEL_FORM .typo3-adminPanel-panel-closed .typo3-adminPanel-header-button {
        background: url(../../images/arrows/adminpanel-down.png) no-repeat;
        display: inline-block;
-       height: 19px;
        float: right;
+       height: 19px;
        width: 19px;
 }
 
 
 #TSFE_ADMIN_PANEL_FORM tr.typo3-adminPanel-section-title td {
        background-color: #e2e0e0;
-       border-bottom: 1px solid #cccccc;
-       border-top: 1px solid #cccccc;
+       border-bottom: 1px solid #ccc;
+       border-top: 1px solid #ccc;
        clear: left;
        margin: 0;
        padding: 0;
 #TSFE_ADMIN_PANEL_FORM tr.typo3-adminPanel-section-title td a {
        display: block;
        height: 26px;
+       line-height: 25px;
 }
 
 #TSFE_ADMIN_PANEL_FORM tr.typo3-adminPanel-section-title td a .typo3-adminPanel-label {
 #TSFE_ADMIN_PANEL_FORM tr.typo3-adminPanel-section-title td:hover {
        background-color: #7e7e7e;
        border-color: black;
-       color: #ffffff;
+       color: #fff;
 }
 
 #TSFE_ADMIN_PANEL_FORM tr.typo3-adminPanel-section-title td:hover a {
-       color: #ffffff;
+       color: #fff;
 }
 
 #TSFE_ADMIN_PANEL_FORM tr.typo3-adminPanel-section-title .typo3-adminPanel-section-open,
        background: url(../../images/arrows/module-menu-right.png) no-repeat 12px 7px;
 }
 
-
 #TSFE_ADMIN_PANEL_FORM tr.typo3-adminPanel-section-title td:hover a.typo3-adminPanel-section-open {
        background-image: url(../../images/arrows/module-menu-down-alt.png);
 }
 
-
 #TSFE_ADMIN_PANEL_FORM tr.typo3-adminPanel-section-title td:hover a.typo3-adminPanel-section-closed {
        background-image: url(../../images/arrows/module-menu-right-alt.png);
 }
 
 #TSFE_ADMIN_PANEL_FORM tr.typo3-adminPanel-itemRow td {
-       padding: 3px 5px 3px 26px;
-       text-align: left;
-       white-space: nowrap;
+       padding: 5px 15px;
 }
 
-#TSFE_ADMIN_PANEL_FORM tr.typo3-adminPanel-itemRow td.typo3-adminPanel-section-content-title {
-       padding-right: 9px;
-       padding-top: 5px;
-}
+/*#TSFE_ADMIN_PANEL_FORM tr.typo3-adminPanel-itemRow td.typo3-adminPanel-section-content-title {*/
+/*padding-right: 9px;*/
+/*padding-top: 5px;*/
+/*}*/
 
 #TSFE_ADMIN_PANEL_FORM td.typo3-adminPanel-section-content {
        padding-right: 11px;
 }
 
+#TSFE_ADMIN_PANEL_FORM td.typo3-adminPanel-section-content .toolbar span {
+       padding: 1px;
+}
+
 #TSFE_ADMIN_PANEL_FORM #typo3-adminPanel-tsLog {
        border: 1px solid #7e7e7e;
        border-spacing: 0;
 }
 
-#TSFE_ADMIN_PANEL_FORM #typo3-adminPanel-tsLog tr,
-#TSFE_ADMIN_PANEL_FORM #typo3-adminPanel-tsLog td {
+#TSFE_ADMIN_PANEL_FORM .admin-panel-table {
+       width: 100%;
+       border-collapse: collapse;
+       border-spacing: 0;
+}
+
+#TSFE_ADMIN_PANEL_FORM .admin-panel-table tr {
        margin: 0;
        padding: 0;
+       vertical-align: inherit;
+       border-color: inherit;
 }
 
-#TSFE_ADMIN_PANEL_FORM #typo3-adminPanel-tsLog th {
+#TSFE_ADMIN_PANEL_FORM .admin-panel-table td {
+       margin: 0;
+       vertical-align: inherit;
+       border-color: inherit;
+       padding: 2px 5px 3px 5px;
+       padding: 0 5px;
+       text-align: left;
+       white-space: nowrap;
+}
+
+#TSFE_ADMIN_PANEL_FORM .admin-panel-table th {
        background-color: #7e7e7e;
 }
 
-#TSFE_ADMIN_PANEL_FORM #typo3-adminPanel-tsLog th span[style] {
+#TSFE_ADMIN_PANEL_FORM .admin-panel-table th span[style] {
        color: #fff !important;
 }
 
-#TSFE_ADMIN_PANEL_FORM #typo3-adminPanel-tsLog .typo3-adminPanel-logRow-odd,
-#TSFE_ADMIN_PANEL_FORM #typo3-adminPanel-tsLog .typo3-adminPanel-logRow-even,
-#TSFE_ADMIN_PANEL_FORM #typo3-adminPanel-tsLog .typo3-adminpanel-logRow-highlight {
+/*#TSFE_ADMIN_PANEL_FORM #typo3-adminPanel-tsLog .typo3-adminPanel-tsLogTime {*/
+/*text-align: center;*/
+/*}*/
+
+#TSFE_ADMIN_PANEL_FORM #typo3-adminPanel-tsLog .typo3-adminPanel-logRow-highlight {
+       background-color: #fcd3cf;
+}
+
+#TSFE_ADMIN_PANEL_FORM .admin-panel-table .line-odd,
+#TSFE_ADMIN_PANEL_FORM .admin-panel-table .line-even {
        background-color: #f0f0f0;
        text-align: left;
        vertical-align: top;
 }
 
-#TSFE_ADMIN_PANEL_FORM #typo3-adminPanel-tsLog .typo3-adminPanel-tsLogTime {
-       text-align: center;
-}
-
-#TSFE_ADMIN_PANEL_FORM #typo3-adminPanel-tsLog .typo3-adminPanel-logRow-odd {
+#TSFE_ADMIN_PANEL_FORM .admin-panel-table .line-even {
        background-color: #dedede;
 }
 
-#TSFE_ADMIN_PANEL_FORM #typo3-adminPanel-tsLog .typo3-adminPanel-logRow-highlight {
-       background-color: #fcd3cf;
-}
-
 #TSFE_ADMIN_PANEL_FORM #typo3-adminPanel-tsLog .stackPointer {
        color: maroon;
        vertical-align: top;
  * General Form Styles
  **/
 #TSFE_ADMIN_PANEL_FORM input[type="submit"] {
-       -moz-border-radius: 1px 1px 1px 1px;
-       background-color: #F6F6F6;
-       background-image: url('../../typo3/sysext/t3skin/images/backgrounds/button-hover.png');
-       background-image: -moz-linear-gradient(center top , #F6F6F6 10%, #C8C8C8 90%);
-       background-image: -webkit-gradient(linear,0% 0%,0% 100%,color-stop(0.1,#F6F6F6),color-stop(0.9,#C8C8C8));
-       background-image: linear-gradient(center top,#F6F6F6 10%,#C8C8C8 90%);
+       background-color: #f6f6f6;
+       background-image: url('../../images/backgrounds/button-hover.png');
+       background-image: -moz-linear-gradient(center top, #f6f6f6 10%, #c8c8c8 90%);
+       background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, color-stop(0.1, #f6f6f6), color-stop(0.9, #c8c8c8));
+       background-image: linear-gradient(center top, #f6f6f6 10%, #c8c8c8 90%);
        background-position: center bottom;
-       background-repeat:repeat-x;
-       border:1px solid #737C7C;
-       color:#434343;
-       cursor:pointer;
+       background-repeat: repeat-x;
+       border: 1px solid #737c7c;
+       color: #434343;
+       cursor: pointer;
        padding: 3px;
+       margin-top: 2px;
 }
 
 #TSFE_ADMIN_PANEL_FORM input,
 #TSFE_ADMIN_PANEL_FORM input[type="checkbox"] {
        margin-left: 0;
 }
-
-/** End General Form Styles **/
\ No newline at end of file