[BUGFIX] Highlight page in pagetree if a content element is changed
authorSonja Scholz <ss@cabag.ch>
Thu, 7 Jul 2011 20:31:05 +0000 (22:31 +0200)
committerMarco Bresch <marco.bresch@starfinanz.de>
Sat, 9 Jul 2011 12:47:10 +0000 (14:47 +0200)
Change-Id: Idd69c7837d4d04c97e761252b3888df5dd3c4ab8
Resolves: #12743
Releases: 4.6

typo3/sysext/workspaces/Classes/BackendUserInterface/class.tx_workspaces_pagetree_collectionsprocessor.php [new file with mode: 0644]
typo3/sysext/workspaces/ext_localconf.php

diff --git a/typo3/sysext/workspaces/Classes/BackendUserInterface/class.tx_workspaces_pagetree_collectionsprocessor.php b/typo3/sysext/workspaces/Classes/BackendUserInterface/class.tx_workspaces_pagetree_collectionsprocessor.php
new file mode 100644 (file)
index 0000000..aa32c65
--- /dev/null
@@ -0,0 +1,94 @@
+<?php
+/***************************************************************
+ *  Copyright notice
+ *
+ *  (c) 2011 Tolleiv Nietsch <typo3@tolleiv.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!
+ ***************************************************************/
+
+/**
+ * Interface for classes which perform pre or post processing
+ *
+ * @author Tolleiv Nietsch <typo3@tolleiv.de>
+ * @package    TYPO3
+ * @subpackage t3lib
+ */
+class tx_workspaces_pagetree_CollectionsProcessor implements t3lib_tree_pagetree_interfaces_CollectionProcessor {
+
+       /**
+        * @abstract
+        * @param  t3lib_tree_pagetree_Node $node
+        * @param  int $mountPoint
+        * @param  int $level
+        * @param  t3lib_tree_pagetree_NodeCollection $nodeCollection
+        * @return void
+        */
+       public function postProcessGetNodes($node, $mountPoint, $level, $nodeCollection) {
+               foreach($nodeCollection as $node) {
+                       /** @var $node t3lib_tree_Node */
+                       $this->highlightVersionizedElements($node);
+               }
+       }
+
+       /**
+        * @abstract
+        * @param  t3lib_tree_pagetree_Node $node
+        * @param  string $searchFilter
+        * @param  int $mountPoint
+        * @param  t3lib_tree_pagetree_NodeCollection $nodeCollection
+        * @return void
+        */
+       public function postProcessFilteredNodes($node, $searchFilter, $mountPoint, $nodeCollection) {
+               foreach($nodeCollection as $node) {
+                       /** @var $node t3lib_tree_Node */
+                       $this->highlightVersionizedElements($node);
+               }
+       }
+
+       /**
+        * @abstract
+        * @param  string $searchFilter
+        * @param  t3lib_tree_pagetree_NodeCollection $nodeCollection
+        * @return void
+        */
+       public function postProcessGetTreeMounts($searchFilter, $nodeCollection) {
+               foreach($nodeCollection as $node) {
+                       /** @var $node t3lib_tree_Node */
+                       $this->highlightVersionizedElements($node);
+               }
+       }
+
+       /**
+        * Sets the CSS Class on all pages which have versioned records
+        * in the current workspace
+        *
+        * @param t3lib_tree_Node $node
+        * @return void
+        */
+       protected function highlightVersionizedElements(t3lib_tree_Node $node) {
+               if (!$node->getCls() && count(t3lib_BEfunc::countVersionsOfRecordsOnPage($GLOBALS['BE_USER']->workspace, $node->getId(), TRUE)))        {
+                       $node->setCls('ver-versions');
+               }
+       }
+}
+
+?>
\ No newline at end of file
index cb22d01..20f13eb 100644 (file)
@@ -31,4 +31,8 @@ if (!is_array($GLOBALS['TYPO3_CONF_VARS']['SYS']['caching']['cacheConfigurations
 
 t3lib_extMgm::addUserTSConfig('options.workspaces.considerReferences = 1');
 
+$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['t3lib/tree/pagetree/class.t3lib_tree_pagetree_dataprovider.php']['postProcessCollections'][] = 'EXT:workspaces/Classes/BackendUserInterface/class.tx_workspaces_pagetree_collectionsprocessor.php:tx_workspaces_pagetree_collectionsprocessor';
+t3lib_extMgm::addUserTSConfig('options.workspaces.considerReferences = 1');
+
+
 ?>
\ No newline at end of file