Index: Classes/BackendUserInterface/class.tx_workspaces_pagetree_collectionsprocessor.php =================================================================== --- Classes/BackendUserInterface/class.tx_workspaces_pagetree_collectionsprocessor.php (revision 0) +++ Classes/BackendUserInterface/class.tx_workspaces_pagetree_collectionsprocessor.php (revision 0) @@ -0,0 +1,94 @@ + + * 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 + * @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->highlighVersionizedElements($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->highlighVersionizedElements($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->highlighVersionizedElements($node); + } + } + + /** + * Set's the CSS Class on all pages which have versioned records + * in the current workspace + * + * @param t3lib_tree_Node $node + * @return void + */ + protected function highlighVersionizedElements(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: ext_localconf.php =================================================================== --- ext_localconf.php (revision 4171) +++ ext_localconf.php (working copy) @@ -32,6 +32,8 @@ ); } +$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