[TASK] ClickMenu: Set background via CSS instead of JS 92/26092/6
authorStefan Neufeind <typo3.neufeind@speedpartner.de>
Sun, 8 Dec 2013 23:47:25 +0000 (00:47 +0100)
committerHelmut Hummel <helmut.hummel@typo3.org>
Thu, 30 Jan 2014 12:43:20 +0000 (13:43 +0100)
Move background-style from JS to CSS. Since other skinning-
extensions might override color-settings in TBE_STYLES we need
to generate CSS dynamically and late in the process inside t3skin.

Since backend-CSS is concatenated/compressed this will be included
in the generated merged CSS-file.

Change-Id: Ib04bdf0be172081eb463bdeb9dbd846f7c32cea3
Resolves: #54286
Releases: 6.2
Reviewed-on: https://review.typo3.org/26092
Reviewed-by: Stefan Neufeind
Reviewed-by: Helmut Hummel
Tested-by: Helmut Hummel
typo3/sysext/backend/Classes/ClickMenu/ClickMenu.php
typo3/sysext/t3skin/Classes/Hook/StyleGenerationHook.php [new file with mode: 0644]
typo3/sysext/t3skin/ext_localconf.php

index a341ee8..561ac7d 100644 (file)
@@ -1190,7 +1190,7 @@ class ClickMenu {
                                }
                                $CSM = ' oncontextmenu="this.click();return false;"';
                                $out[] = '
-                                       <tr class="typo3-CSM-itemRow" onclick="' . htmlspecialchars($onClick) . '" onmouseover="this.bgColor=\'' . $GLOBALS['TBE_TEMPLATE']->bgColor5 . '\';" onmouseout="this.bgColor=\'\';"' . $CSM . '>
+                                       <tr class="typo3-CSM-itemRow" onclick="' . htmlspecialchars($onClick) . '"' . $CSM . '>
                                                ' . (!$this->leftIcons ? '<td class="typo3-CSM-item">' . $i[1] . '</td><td align="center">' . $i[2] . '</td>' : '<td align="center">' . $i[2] . '</td><td class="typo3-CSM-item">' . $i[1] . '</td>') . '
                                        </tr>';
                        }
diff --git a/typo3/sysext/t3skin/Classes/Hook/StyleGenerationHook.php b/typo3/sysext/t3skin/Classes/Hook/StyleGenerationHook.php
new file mode 100644 (file)
index 0000000..68e79ec
--- /dev/null
@@ -0,0 +1,50 @@
+<?php
+namespace TYPO3\CMS\T3skin\Hook;
+
+/***************************************************************
+ *  Copyright notice
+ *
+ *  (c) 2013-2013 Stefan Neufeind <info [at] speedpartner.de>
+ *
+ *  All rights reserved
+ *
+ *  This script is part of the TYPO3 project. The TYPO3 project is
+ *  free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 2 of the License, or
+ *  (at your option) any later version.
+ *
+ *  The GNU General Public License can be found at
+ *  http://www.gnu.org/copyleft/gpl.html.
+ *  A copy is found in the textfile GPL.txt and important notices to the license
+ *  from the author is found in LICENSE.txt distributed with these scripts.
+ *
+ *
+ *  This script is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  This copyright notice MUST APPEAR in all copies of the script!
+ ***************************************************************/
+
+/**
+ * Hook for adding styles to backend page-generation in DocumentTemplate
+ *
+ * @author Stefan Neufeind <info [at] speedpartner.de>
+ */
+class StyleGenerationHook {
+
+       /**
+        * Hooks into the \TYPO3\CMS\Backend\Template\DocumentTemplate::startPage and adds styles based on settings
+        * from color-schema from $GLOBALS['TBE_STYLES']
+        *
+        * @param array $hookParameters
+        * @param \TYPO3\CMS\Backend\Template\DocumentTemplate $documentTemplate Reference to instance of DocumentTemplate
+        * @return void
+        */
+       public function preStartPageHook($hookParameters, \TYPO3\CMS\Backend\Template\DocumentTemplate $documentTemplate) {
+               $documentTemplate->inDocStylesArray['TYPO3\\CMS\\T3skin\\Hook\\StyleGenerationHook'] = 'tr.typo3-CSM-itemRow:hover {background-color: ' . $GLOBALS['TBE_STYLES']['scriptIDindex']['typo3/alt_clickmenu.php']['mainColors']['bgColor5'] . ';} ';
+       }
+
+}
\ No newline at end of file
index 880c20e..323ec6b 100644 (file)
@@ -6,3 +6,4 @@ if (!defined('TYPO3_MODE')) {
        RTE.default.skin = EXT:' . $_EXTKEY . '/rtehtmlarea/htmlarea.css
        RTE.default.FE.skin = EXT:' . $_EXTKEY . '/rtehtmlarea/htmlarea.css
 ');
+$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['typo3/template.php']['preStartPageHook']['TYPO3\\CMS\\T3skin\\Hook\\StyleGenerationHook'] = 'TYPO3\\CMS\\T3skin\\Hook\\StyleGenerationHook->preStartPageHook';
\ No newline at end of file