Index: t3lib/tceforms/class.t3lib_tceforms_tree.php =================================================================== --- t3lib/tceforms/class.t3lib_tceforms_tree.php (Revision 0) +++ t3lib/tceforms/class.t3lib_tceforms_tree.php (Revision 0) @@ -0,0 +1,162 @@ + +* (c) 2010 Steffen Kamper +* 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! +***************************************************************/ +/** + * TCEforms wizard for rendering an AJAX selector for records + * + * $Id: class.t3lib_tceforms_suggest.php 7905 2010-06-13 14:42:33Z ohader $ + * + * @author Steffen Ritter + * @author Steffen Kamper + */ + +class t3lib_TCEforms_Tree { + + /** + * @param string The table name of the record + * @param string The field name which this element is supposed to edit + * @param array The record data array where the value(s) for the field can be found + * @param array An array with additional configuration options. + * @return string The HTML code for the TCEform field + */ + public function renderField($table, $field, $row, &$PA, &$tceForms) { + $valueArray = explode(',', $row[$field]); + $selectedNodes = array(); + if (count($valueArray)) { + foreach ($valueArray as $selectedValue) { + $temp = explode('|', $selectedValue); + $selectedNodes[] = $temp[0]; + } + } + + $treeDataProvider = t3lib_tree_Tca_DataProviderFactory::getDataProvider( + $GLOBALS['TCA'][$table]['columns'][$field]['config'], + $table, + $field, + $row + ); + $treeDataProvider->setSelectedList(implode(',', $selectedNodes)); + $treeDataProvider->initializeTreeData(); + + $treeRenderer = t3lib_div::makeInstance('t3lib_tree_Tca_ExtJsArrayRenderer'); + $tree = t3lib_div::makeInstance('t3lib_tree_Tca_TcaTree'); + $tree->setDataProvider($treeDataProvider); + $tree->setNodeRenderer($treeRenderer); + + $treeData = $tree->render(); + + $itemArray = array(); + if (is_array($PA['fieldConf']['config']['items'])) { + foreach ($PA['fieldConf']['config']['items'] as $additionalItem) { + if ($additionalItem[1] !== '--div--') { + $item = new stdClass(); + $item->uid = $additionalItem[1]; + $item->text = $GLOBALS['LANG']->sL($additionalItem[0]); + $item->selectable = true; + $item->leaf = true; + $item->checked = in_array($additionalItem[1], $selectedNodes); + if (file_exists(PATH_typo3 . $additionalItem[3])) { + $item->icon = $additionalItem[3]; + } elseif (strlen(trim($additionalItem[3]))) { + $item->iconCls= t3lib_iconWorks::getSpriteIconClasses($additionalItem[3]); + } + + $itemArray[] = $item; + } + } + } + $itemArray[] = $treeData; + $treeData = json_encode($itemArray); + + $id = md5($PA['itemFormElName']); + + if (isset($PA['fieldConf']['config']['size']) && intval($PA['fieldConf']['config']['size']) > 0 ) { + $height = intval($PA['fieldConf']['config']['size']) * 20; + } else { + $height = 280; + } + if (isset($PA['fieldConf']['config']['autoSizeMax']) && intval($PA['fieldConf']['config']['autoSizeMax']) > 0 ) { + $autoSizeMax = intval($PA['fieldConf']['config']['autoSizeMax']) * 20; + } + + + $header = FALSE; + $expanded = FALSE; + $appearance = $PA['fieldConf']['config']['treeConfig']['appearance']; + if (is_array($appearance)) { + $header = $appearance['showHeader'] ? TRUE : FALSE; + $expanded = ($appearance['expandAll'] === TRUE); + } + + $onChange = ''; + if ($PA['fieldChangeFunc']['TBE_EDITOR_fieldChanged']) { + $onChange = substr($PA['fieldChangeFunc']['TBE_EDITOR_fieldChanged'], 0, -1); + } + + /** @var $pageRenderer t3lib_PageRenderer */ + $pageRenderer = $GLOBALS['SOBE']->doc->getPageRenderer(); + $pageRenderer->loadExtJs(); + $pageRenderer->addJsFile('../t3lib/js/extjs/tree/tree.js'); + $pageRenderer->addExtOnReadyCode(' + TYPO3.Components.Tree.StandardTreeItemData["' . $id . '"] = ' . $treeData . '; + var tree' . $id . ' = new TYPO3.Components.Tree.StandardTree({ + checkChangeHandler: TYPO3.Components.Tree.TcaCheckChangeHandler, + id: "' . $id . '", + showHeader: ' . intval($header) . ', + onChange: "' . $onChange . '", + tcaMaxItems: ' . ($PA['fieldConf']['config']['maxitems'] ? intval($PA['fieldConf']['config']['maxitems']) : 99999) . ', + tcaExclusiveKeys: "' . ( + $PA['fieldConf']['config']['exclusiveKeys'] + ? $PA['fieldConf']['config']['exclusiveKeys'] : '') . '", + ucId: "' . md5($table . '|' . $field ) . '" + }); + tree' . $id . '.' . ($autoSizeMax + ? 'bodyStyle = "max-height: ' . $autoSizeMax . 'px;"' + : 'height = ' . $height + ) . '; + tree' . $id . '.render("tree_' . $id . '");' . + ($expanded ? 'tree' . $id . '.expandAll();' : '') . ' + '); + + $formField = ' +
+ +
+
+ +
'; + + return $formField; + } +} + + +if (defined('TYPO3_MODE') && $TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['classes/t3lib/tceforms/class.t3lib_tceforms_tree.php']) { + include_once($TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['classes/t3lib/tceforms/class.t3lib_tceforms_tree.php']); +} + +?> Index: t3lib/spritemanager/class.t3lib_spritemanager_spritegenerator.php =================================================================== --- t3lib/spritemanager/class.t3lib_spritemanager_spritegenerator.php (Revision 9244) +++ t3lib/spritemanager/class.t3lib_spritemanager_spritegenerator.php (Arbeitskopie) @@ -42,7 +42,7 @@ */ protected $templateSprite = ' .###NAMESPACE###-###SPRITENAME### { - background-image: url(\'###SPRITEURL###\'); + background-image: url(\'###SPRITEURL###\') !important; height: ###DEFAULTHEIGHT###px; width: ###DEFAULTWIDTH###px; } @@ -55,7 +55,7 @@ * @var string */ protected $templateIcon = '.###NAMESPACE###-###ICONNAME### { - background-position: -###LEFT###px -###TOP###px; + background-position: -###LEFT###px -###TOP###px !important; ###SIZE_INFO### } '; @@ -567,7 +567,7 @@ */ protected function buildFileInformationCache(array $files) { foreach ($files as $iconName => $iconFile) { - + $iconNameParts = t3lib_div::trimExplode('-', $iconName); if(!in_array($iconNameParts[0], $this->spriteBases)) { $this->spriteBases[] = $iconNameParts[0]; @@ -622,4 +622,4 @@ if (defined('TYPO3_MODE') && $TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['t3lib/spritemanager/class.t3lib_spritemanager_spritegenerator.php']) { include_once($TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['t3lib/spritemanager/class.t3lib_spritemanager_spritegenerator.php']); } -?> \ No newline at end of file +?> Index: t3lib/class.t3lib_tceforms.php =================================================================== --- t3lib/class.t3lib_tceforms.php (Revision 9244) +++ t3lib/class.t3lib_tceforms.php (Arbeitskopie) @@ -1563,12 +1563,15 @@ $maxitems = intval($config['maxitems']); // If a SINGLE selector box... - if ($maxitems<=1) { + if ($maxitems<=1 && $config['renderMode'] !== 'tree') { $item = $this->getSingleField_typeSelect_single($table,$field,$row,$PA,$config,$selItems,$nMV_label); } elseif (!strcmp($config['renderMode'],'checkbox')) { // Checkbox renderMode $item = $this->getSingleField_typeSelect_checkbox($table,$field,$row,$PA,$config,$selItems,$nMV_label); } elseif (!strcmp($config['renderMode'],'singlebox')) { // Single selector box renderMode $item = $this->getSingleField_typeSelect_singlebox($table,$field,$row,$PA,$config,$selItems,$nMV_label); + } elseif (!strcmp($config['renderMode'],'tree')) { // Tree renderMode + $treeClass = t3lib_div::makeInstance('t3lib_TCEforms_Tree'); + $item = $treeClass->renderField($table, $field, $row, $PA, $this); } else { // Traditional multiple selector box: $item = $this->getSingleField_typeSelect_multiple($table,$field,$row,$PA,$config,$selItems,$nMV_label); } Index: t3lib/js/extjs/tree/tree.js =================================================================== --- t3lib/js/extjs/tree/tree.js (Revision 0) +++ t3lib/js/extjs/tree/tree.js (Revision 0) @@ -0,0 +1,238 @@ +/*************************************************************** + * Copyright notice + * + * (c) 2010 Steffen Kamper + * 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! + ***************************************************************/ + +Ext.ns('TYPO3.Components', 'TYPO3.Components.Tree'); + +/** + * TYPO3window - General TYPO3 tree component + */ + +TYPO3.Components.Tree = {}; +TYPO3.Components.Tree.StandardTreeItemData = []; + +TYPO3.Components.Tree.StandardTree = function(config) { + var conf = Ext.apply({ + header: false, + width: 280, + minSize: 175, + maxSize: 500, + margins: '0 0 5 5', + cmargins: '0 0 0 0', + rootVisible: false, + useArrows: true, + lines: false, + autoScroll: true, + containerScroll: true, + exclusiveSelectedKey: null, + stateful: true, + filterOptionStartsWith: true, + countSelectedNodes: 0, + loader: new Ext.tree.TreeLoader({ + preloadChildren: true, + clearOnLoad: false + }), + root: new Ext.tree.AsyncTreeNode({ + text: 'TYPO3 StandardTree', + id: 'root', + expanded: true, + children: TYPO3.Components.Tree.StandardTreeItemData[config.id] + }), + collapseFirst: false, + listeners: { + 'checkchange': function(checkedNode, checked) { + if (Ext.isFunction(this.checkChangeHandler)) { + this.checkChangeHandler.call(this, checkedNode, checked); + } + }, + scope: this + } + + + }, config); + TYPO3.Components.Tree.StandardTree.superclass.constructor.call(this, conf); +}; + + +Ext.extend(TYPO3.Components.Tree.StandardTree, Ext.tree.TreePanel, { + + initComponent: function() { + Ext.apply(this, { + tbar: this.initialConfig.showHeader ? TYPO3.Components.Tree.Toolbar([], this) : null + }); + TYPO3.Components.Tree.StandardTree.superclass.initComponent.call(this); + }, + filterTree: function(filterText) { + var text = filterText.getValue(); + Ext.each(this.hiddenNodes, function(node) { + node.ui.show(); + node.ui.removeClass('bgColor6'); + }); + if (!text) { + this.filter.clear(); + return; + } + this.expandAll(); + var regText = (this.filterOptionStartsWith ? '^' : '') + Ext.escapeRe(text); + var re = new RegExp(regText, 'i'); + + // hide empty nodes that weren't filtered + this.hiddenNodes = []; + var me = this; + this.root.cascade(function(node) { + if (node.ui.ctNode.offsetHeight < 3) { + if (!re.test(node.text)) { + node.ui.hide(); + me.hiddenNodes.push(node); + } else { + node.ui.addClass('bgColor6'); + } + } + }, this); + } +}); + +TYPO3.Components.Tree.Toolbar = function(items, scope) { + items = items || []; + items.push([ + ' ', + { + iconCls: 't3-icon t3-icon-actions t3-icon-actions-system t3-icon-system-tree-search-open', + menu: { + items: [ + { + text: 'starts with', + checked: true, + group: 'searchStartsWith', + handler: function(item) { + scope.filterOptionStartsWith = true; + scope.filterTree(scope.getTopToolbar().getComponent('filterText')); + }, + scope: scope + }, + { + text: 'contains', + checked: false, + group: 'searchStartsWith', + handler: function(item) { + scope.filterOptionStartsWith = false; + scope.filterTree(scope.getTopToolbar().getComponent('filterText')); + }, + scope: scope + } + ] + } + }, + new Ext.form.TextField({ + width: 150, + emptyText:'Find item', + enableKeyEvents: true, + itemId: 'filterText', + listeners:{ + render: function(f) { + this.filter = new Ext.tree.TreeFilter(this, { + clearBlank: true, + autoClear: true + }); + }, + keydown: { + fn: scope.filterTree, + buffer: 350, + scope: scope + }, + scope: scope + } + }), + '->', + { + iconCls: 'icon-expand-all', + tooltip: 'Expand All', + handler: function() { + this.root.expand(true); + }, + scope: scope + }, { + iconCls: 'icon-collapse-all', + tooltip: 'Collapse All', + handler: function() { + this.root.collapse(true); + }, + scope: scope + } + ]); + return items; +}; + + +TYPO3.Components.Tree.TcaCheckChangeHandler = function(checkedNode, checked) { + var exclusiveKeys = this.tcaExclusiveKeys.split(','), + uid = '' + checkedNode.attributes.uid; + + this.suspendEvents(); + + if (this.tcaExclusiveKeys.length) { + if (checked = true && exclusiveKeys.indexOf(uid) > -1) { + // this key is exclusive, so uncheck all others + this.root.cascade(function(node) { + if (node !== checkedNode && node.attributes.checked) { + node.attributes.checked = false; + node.ui.toggleCheck(false); + } + }); + this.exclusiveSelectedKey = uid; + } else if (checked = true && exclusiveKeys.indexOf(uid) === -1 && !Ext.isEmpty(this.exclusiveSelectedKey)) { + // this key is exclusive, so uncheck all others + this.root.cascade(function(node) { + if (exclusiveKeys.indexOf('' + node.attributes.uid) > -1) { + node.attributes.checked = false; + node.ui.toggleCheck(false); + } + }); + this.exclusiveSelectedKey = null; + } + } + + if (this.countSelectedNodes >= this.tcaMaxItems) { + checkedNode.attributes.checked = false; + checkedNode.getUI().toggleCheck(false); + return false; + } + if (checked) { + checkedNode.getUI().addClass('complete'); + } else { + checkedNode.getUI().removeClass('complete'); + } + var selected = []; + this.root.cascade(function(node) { + if (node.ui.isChecked()) { + selected.push(node.attributes.uid); + } + }); + this.countSelectedNodes = selected.length; + Ext.fly('treeinput' + this.id).dom.value = selected.join(','); + eval(this.onChange); + + this.resumeEvents(); +}; \ No newline at end of file Index: t3lib/tree/renderer/class.t3lib_tree_renderer_abstract.php =================================================================== --- t3lib/tree/renderer/class.t3lib_tree_renderer_abstract.php (Revision 9244) +++ t3lib/tree/renderer/class.t3lib_tree_renderer_abstract.php (Arbeitskopie) @@ -32,7 +32,7 @@ * @package TYPO3 * @subpackage t3lib */ -abstract class t3lib_tree_renderer_Abstract { +abstract class t3lib_tree_Renderer_Abstract { /** * Renders a node recursive or just a single instance * Index: t3lib/tree/renderer/class.t3lib_tree_renderer_unorderedlist.php =================================================================== --- t3lib/tree/renderer/class.t3lib_tree_renderer_unorderedlist.php (Revision 9244) +++ t3lib/tree/renderer/class.t3lib_tree_renderer_unorderedlist.php (Arbeitskopie) @@ -32,7 +32,7 @@ * @package TYPO3 * @subpackage t3lib */ -class t3lib_tree_renderer_UnorderedList extends t3lib_tree_renderer_Abstract { +class t3lib_tree_Renderer_UnorderedList extends t3lib_tree_Renderer_Abstract { /** * recursion level * @@ -51,7 +51,7 @@ $code = '
  •  ' . $node->getLabel(); if ($recursive && $node->getChildNodes() !== NULL) { $this->recursionLevel++; - $code .= $this->renderCollection($node->getChildNodes()); + $code .= $this->renderNodeCollection($node->getChildNodes()); $this->recursionLevel--; } Index: t3lib/tree/renderer/class.t3lib_tree_renderer_extjs_json.php =================================================================== --- t3lib/tree/renderer/class.t3lib_tree_renderer_extjs_json.php (Revision 0) +++ t3lib/tree/renderer/class.t3lib_tree_renderer_extjs_json.php (Revision 0) @@ -0,0 +1,108 @@ + + * (c) 2010 Steffen Ritter + * 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! + ***************************************************************/ + + +/** + * Renderer for unordered lists + * + * @author Steffen Kamper + * @author Steffen Ritter + * @package TYPO3 + * @subpackage t3lib + */ +class t3lib_tree_Renderer_ExtJs_Json extends t3lib_tree_Renderer_Abstract { + /** + * recursion level + * + * @var int + */ + protected $recursionLevel = 0; + + /** + * Renders a node recursive or just a single instance + * + * @param t3lib_tree_RepresentationNode $node + * @param bool $recursive + * @return mixed + */ + public function renderNode(t3lib_tree_RepresentationNode $node, $recursive = TRUE) { + $nodeArray = $this->getNodeArray($node); + + if ($recursive && $node->hasChildNodes()) { + $this->recursionLevel++; + $children = $this->renderNodeCollection($node->getChildNodes()); + $nodeArray['children'] = $children; + $this->recursionLevel--; + } + return $nodeArray; + } + + /** + * + */ + protected function getNodeArray(t3lib_tree_RepresentationNode $node) { + $nodeArray = array( + 'iconCls' => $node->getIcon(), + 'text' => $node->getLabel() , + 'leaf' => !$node->hasChildNodes(), + 'id' => $node->getId(), + 'uid' => $node->getId() + ); + return $nodeArray; + } + + /** + * Renders a node collection recursive or just a single instance + * + * @param t3lib_tree_NodeCollection $node + * @param bool $recursive + * @return mixed + */ + public function renderTree(t3lib_tree_AbstractTree $tree, $recursive = TRUE) { + $this->recursionLevel = 0; + $children = $this->renderNode($tree->getRoot(), $recursive); + + return json_encode($children); + } + + /** + * Renders an tree recursive or just a single instance + * + * @param t3lib_tree_AbstractTree $node + * @param bool $recursive + * @return mixed + */ + public function renderNodeCollection(t3lib_tree_NodeCollection $collection, $recursive = TRUE) { + foreach($collection as $node) { + $treeItems[] = $this->renderNode($node, $recursive); + } + return $treeItems; + } +} + +?> \ No newline at end of file Index: t3lib/tree/tca/class.t3lib_tree_tca_extjsarrayrenderer.php =================================================================== --- t3lib/tree/tca/class.t3lib_tree_tca_extjsarrayrenderer.php (Revision 0) +++ t3lib/tree/tca/class.t3lib_tree_tca_extjsarrayrenderer.php (Revision 0) @@ -0,0 +1,69 @@ + + * 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! + ***************************************************************/ + +/** + * Renders a tca tree array for ExtJS + * + * @author Steffen Ritter + * @package TYPO3 + * @subpackage t3lib_tree + */ + +class t3lib_tree_Tca_ExtJsArrayRenderer extends t3lib_tree_Renderer_ExtJs_Json { + + protected function getNodeArray(t3lib_tree_Tca_DatabaseNode $node) { + $nodeArray = parent::getNodeArray($node); + $nodeArray = array_merge( + $nodeArray, + array( + 'expanded' => $node->getExpanded(), + 'expandable' => $node->hasChildNodes(), + 'checked' => $node->getSelected(), + ) + ); + if (!$node->getSelectable()) { + unset ($nodeArray['checked']); + } + return $nodeArray; + } + + /** + * Renders a node collection recursive or just a single instance + * + * @param t3lib_tree_NodeCollection $node + * @param bool $recursive + * @return array + */ + public function renderTree(t3lib_tree_AbstractTree $tree, $recursive = TRUE) { + $this->recursionLevel = 0; + $children = $this->renderNode($tree->getRoot(), $recursive); + + return $children; + } +} + +?> \ No newline at end of file Index: t3lib/tree/tca/class.t3lib_tree_tca_tcatree.php =================================================================== --- t3lib/tree/tca/class.t3lib_tree_tca_tcatree.php (Revision 0) +++ t3lib/tree/tca/class.t3lib_tree_tca_tcatree.php (Revision 0) @@ -0,0 +1,52 @@ + + * 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! + ***************************************************************/ + +/** + * Class for tca tree + * + * @author Steffen Ritter + * @package TYPO3 + * @subpackage t3lib_tree + */ + +class t3lib_tree_Tca_TcaTree extends t3lib_tree_AbstractTree { + + /** + * Returns the root node + * + * @return t3lib_tree_Node + */ + public function getRoot() { + return $this->dataProvider->getRoot(); + } + + public function render() { + return $this->nodeRenderer->renderTree($this); + } +} + +?> \ No newline at end of file Index: t3lib/tree/tca/class.t3lib_tree_tca_databasetreedataprovider.php =================================================================== --- t3lib/tree/tca/class.t3lib_tree_tca_databasetreedataprovider.php (Revision 0) +++ t3lib/tree/tca/class.t3lib_tree_tca_databasetreedataprovider.php (Revision 0) @@ -0,0 +1,288 @@ + + * 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! + ***************************************************************/ + +/** + * TCA tree data provider + * + * @author Steffen Ritter + * @package TYPO3 + * @subpackage t3lib_tree + */ + +class t3lib_tree_Tca_DatabaseTreeDataProvider extends t3lib_tree_Tca_AbstractTcaTreeDataProvider { + + const MODE_CHILDREN = 1; + const MODE_PARENT = 2; + + /** + * @var string + */ + protected $tableName = ''; + + /** + * @var string + */ + protected $treeId = ''; + + /** + * @var string + */ + protected $labelField = ''; + + /** + * @var string + * + */ + protected $tableWhere = ''; + + /** + * @var int + */ + protected $lookupMode = t3lib_tree_tca_DatabaseTreeDataProvider::MODE_CHILDREN; + + /** + * @var string + */ + protected $lookupField = ''; + + /** + * @var int + */ + protected $rootUid = 0; + + + /** + * @param string $labelField + * @return void + */ + public function setLabelField($labelField) { + $this->labelField = $labelField; + } + + /** + * @return string + */ + public function getLabelField() { + return $this->labelField; + } + /** + * @param string $tableName + * @return void + */ + public function setTableName($tableName) { + $this->tableName = $tableName; + } + + /** + * @return string + */ + public function getTableName() { + return $this->tableName; + } + + /** + * @param string $lookupField + * @return void + */ + public function setLookupField($lookupField) { + $this->lookupField = $lookupField; + } + + /** + * @return string + */ + public function getLookupField() { + return $this->lookupField; + } + + /** + * @param int $lookupMode + * @return void + */ + public function setLookupMode($lookupMode) { + $this->lookupMode = $lookupMode; + } + + /** + * @return int + */ + public function getLookupMode() { + return $this->lookupMode; + } + + + /** + * @param t3lib_tree_Node $node + * @return t3lib_tree_NodeCollection + */ + public function getNodes(t3lib_tree_Node $node) { + + } + + public function getRoot() { + return $this->buildRepresentationForNode($this->treeData); + } + + public function setRootUid($rootUid) { + $this->rootUid = $rootUid; + } + + public function getRootUid() { + return $this->rootUid; + } + + public function setTableWhere(string $tableWhere) { + $this->tableWhere = $tableWhere; + } + + public function getTableWhere() { + return $this->tableWhere; + } + + /** + * @param array $row + * @param t3lib_tree_tca_DatabaseNode $parent + * @param int $level + * @return t3lib_tree_tca_DatabaseNode + */ + protected function buildRepresentationForNode(t3lib_tree_Node $basicNode, t3lib_tree_tca_DatabaseNode $parent = NULL, $level = 0) { + $node = t3lib_div::makeInstance('t3lib_tree_tca_DatabaseNode'); + $row = array(); + if ($basicNode->getId() == 0) { + $node->setSelected(FALSE); + $node->setExpanded(TRUE); + $node->setLabel($GLOBALS['LANG']->sL($GLOBALS['TCA'][$this->tableName]['ctrl']['title'])); + } else { + $row = t3lib_BEfunc::getRecordWSOL($this->tableName, $basicNode->getId(), '*'); + if ($this->getLabelField() !== '') { + $node->setLabel($row[$this->getLabelField()]); + } else { + $node->setLabel($basicNode->getId()); + } + $node->setSelected(t3lib_div::inList($this->getSelectedList(), $basicNode->getId())); + $node->setExpanded($this->isExpanded($basicNode)); + } + $node->setSelectable(!t3lib_div::inList($this->getNonSelectableLevelList(), $level)); + $node->setIcon(t3lib_iconWorks::mapRecordTypeToSpriteIconClass($this->tableName, $row)); + $node->setId($basicNode->getId()); + $node->setParentNode($parent); + if ($basicNode->hasChildNodes()) { + $node->setHasChildren(TRUE); + + $childNodes = t3lib_div::makeInstance('t3lib_tree_NodeCollection'); + foreach ($basicNode->getChildNodes() as $child) { + $childNodes->append($this->buildRepresentationForNode($child, $node, $level + 1)); + } + $node->setChildNodes($childNodes); + } + return $node; + } + + public function initializeTreeData() { + parent::initializeTreeData(); + + $this->treeData = t3lib_div::makeInstance('t3lib_tree_Node'); + $this->treeData->setId($this->getRootUid()); + $this->treeData->setParentNode(NULL); + $childNodes = $this->getChildrenOf($this->treeData, 0); + if ($childNodes !== NULL) { + $this->treeData->setChildNodes($childNodes); + } + } + + protected function getChildrenOf(t3lib_tree_Node $node, $level) { + if ($this->getLookupMode() == t3lib_tree_tca_DatabaseTreeDataProvider::MODE_CHILDREN) { + $nodeData = NULL; + if ($node->getId() !== 0) { + $nodeData = current($GLOBALS['TYPO3_DB']->exec_SELECTgetRows('*', $this->tableName, 'uid=' . $node->getId())); + } + if ($nodeData == NULL) { + $nodeData = array('uid' => 0); + } + $children = $this->getRelatedRecords($nodeData); + } else { + $childrenDB = $GLOBALS['TYPO3_DB']->exec_SELECTgetRows( + 'uid', + $this->tableName, + $this->getLookupField() . '=' . intval($node->getId()) . $this->getTableWhere() + ); + $children = array(); + foreach ($childrenDB as $child) { + $children[] = $child['uid']; + } + } + if (count($children)) { + $storage = t3lib_div::makeInstance('t3lib_tree_NodeCollection'); + foreach ($children as $child) { + $node = t3lib_div::makeInstance('t3lib_tree_Node');; + $node->setId($child); + if ($level <= $this->levelMaximum) { + $children = $this->getChildrenOf($node, $level + 1); + if ($children !== NULL) { + $node->setChildNodes($this->getChildrenOf($node, $level + 1)); + } + } + $storage->append($node); + } + } else { + $storage = NULL; + } + return $storage; + } + + protected function getRelatedRecords(array $row) { + $relatedUids = array(); + $uid = $row['uid']; + $value = $row[$this->getLookupField()]; + + $theColConf = $GLOBALS['TCA'][$this->getTableName()]['columns'][$this->getLookupField()]['config']; + switch ((string)$theColConf['type']) { + case 'inline': + case 'select': + if ($theColConf['MM']) { + $dbGroup = t3lib_div::makeInstance('t3lib_loadDBGroup'); + $dbGroup->start($value, $theColConf['foreign_table'], $theColConf['MM'], $uid, $this->getLookupField(), $theColConf); + $relatedUids = $dbGroup->tableArray[$theColConf['foreign_table']]; + } elseif ($theColConf['foreign_table'] && $GLOBALS['TCA'][$theColConf['foreign_table']] && $theColConf['foreign_field']) { + $records = $GLOBALS['TYPO3_DB']->exec_SELECTgetRows('uid', $theColConf['foreign_table'], $theColConf['foreign_field'] . '=' . intval($uid) . ' ' . t3lib_BEfunc::deleteClause( $theColConf['foreign_table'])); + foreach ($records as $record) { + $relatedUids[] = $record['uid']; + } + } else { + $relatedUids = t3lib_div::trimExplode(',', $value); + } + break; + case 'group': + $relatedUids = t3lib_div::trimExplode(',', $value, 1); + break; + } + return $relatedUids; + } + +} + +?> \ No newline at end of file Index: t3lib/tree/tca/class.t3lib_tree_tca_databasenode.php =================================================================== --- t3lib/tree/tca/class.t3lib_tree_tca_databasenode.php (Revision 0) +++ t3lib/tree/tca/class.t3lib_tree_tca_databasenode.php (Revision 0) @@ -0,0 +1,109 @@ + + * 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! + ***************************************************************/ + +/** + * Represents a node in a TCA database setup + * + * @author Steffen Ritter + * @package TYPO3 + * @subpackage t3lib_tree + */ + +class t3lib_tree_Tca_DatabaseNode extends t3lib_tree_RepresentationNode { + /** + * @var boolean + */ + protected $selectable; + + /** + * @var boolean + */ + protected $selected = FALSE; + + /** + * @var boolean + */ + protected $expanded = TRUE; + + protected $hasChildren = FALSE; + + /** + * @var mixed + */ + private $sortValue; + + public function setExpanded($expanded) { + $this->expanded = $expanded; + } + + public function getExpanded() { + return $this->expanded; + } + + public function setSelectable($selectable) { + $this->selectable = $selectable; + } + + public function getSelectable() { + return $this->selectable; + } + + public function setSelected($selected) { + $this->selected = $selected; + } + + public function getSelected() { + return $this->selected; + } + + public function hasChildren() { + return $this->hasChildren; + } + + public function setHasChildren($value) { + $this->hasChildren = (boolean)$value; + } + public function compareTo($other) { + if ($this->sortValue > $other->sortValue) { + return 1; + } elseif ($this->sortValue < $other->sortValue) { + return -1; + } else { + return 0; + } + } + + public function setSortValue(mixed $sortValue) { + $this->sortValue = $sortValue; + } + + public function getSortValue() { + return $this->sortValue; + } +} + +?> \ No newline at end of file Index: t3lib/tree/tca/class.t3lib_tree_tca_dataproviderfactory.php =================================================================== --- t3lib/tree/tca/class.t3lib_tree_tca_dataproviderfactory.php (Revision 0) +++ t3lib/tree/tca/class.t3lib_tree_tca_dataproviderfactory.php (Revision 0) @@ -0,0 +1,134 @@ + + * 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! + ***************************************************************/ + +/** + * Builds a t3lib_tree_Tca_DatabaseTreeDataProvider object based on some TCA configuration + * + * @author Steffen Ritter + * @package TYPO3 + * @subpackage t3lib_tree + */ +class t3lib_tree_Tca_DataProviderFactory { + + /** + * + * @static + * @param array $tcaConfiguration + * @return t3lib_tree_Tca_DatabaseTreeDataProvider + * @throws InvalidArgumentException + */ + public static function getDataProvider(array $tcaConfiguration, $table, $field, $currentValue) { + $dataProvider = NULL; + + if (!isset($tcaConfiguration['internal_type'])) { + $tcaConfiguration['internal_type'] = 'db'; + } + + if ($tcaConfiguration['internal_type'] == 'db') { + /** + * @var $dataProvider t3lib_tree_Tca_DatabaseTreeDataProvider + */ + $dataProvider = t3lib_div::makeInstance('t3lib_tree_Tca_DatabaseTreeDataProvider'); + + if (isset($tcaConfiguration['foreign_table'])) { + $tableName = $tcaConfiguration['foreign_table']; + $dataProvider->setTableName($tableName); + + t3lib_div::loadTCA($tableName); + } else { + throw new InvalidArgumentException( + 'TCA Tree configuration is invalid: "foreign_table" not set', + '1288215888' + ); + } + + if (isset($tcaConfiguration['foreign_label'])) { + $dataProvider->setLabelField($tcaConfiguration['foreign_label']); + } else { + $dataProvider->setLabelField($GLOBALS['TCA'][$tableName]['ctrl']['label']); + } + $dataProvider->setTreeId(md5($table . '|' . $field)); + $dataProvider->setSelectedList($currentValue); + if (isset($tcaConfiguration['treeConfig']) && is_array($tcaConfiguration['treeConfig'])) { + $treeConfiguration = $tcaConfiguration['treeConfig']; + + if (isset($treeConfiguration['rootUid'])) { + $dataProvider->setRootUid(intval($treeConfiguration['rootUid'])); + } + + if (isset($treeConfiguration['appearance']['expandAll'])) { + $dataProvider->setExpandAll((boolean)$treeConfiguration['appearance']['expandAll']); + } + + if (isset($treeConfiguration['appearance']['maxLevels'])) { + $dataProvider->setLevelMaximum(intval($treeConfiguration['appearance']['maxLevels'])); + } + + if (isset($treeConfiguration['appearance']['nonSelectableLevels'])) { + $dataProvider->setNonSelectableLevelList($treeConfiguration['appearance']['nonSelectableLevels']); + } elseif (isset($treeConfiguration['rootUid'])) { + $dataProvider->setNonSelectableLevelList(''); + } + + if (isset($treeConfiguration['childrenField'])) { + $dataProvider->setLookupMode(t3lib_tree_tca_DatabaseTreeDataProvider::MODE_CHILDREN); + $dataProvider->setLookupField($treeConfiguration['childrenField']); + } elseif (isset($treeConfiguration['parentField'])) { + $dataProvider->setLookupMode(t3lib_tree_tca_DatabaseTreeDataProvider::MODE_PARENT); + $dataProvider->setLookupField($treeConfiguration['parentField']); + } else { + throw new InvalidArgumentException( + 'TCA Tree configuration is invalid: neither "childrenField" nor "parentField" is set', + '1288215889' + ); + } + } else { + throw new InvalidArgumentException( + 'TCA Tree configuration is invalid: "treeConfig" array is missing', + '1288215890' + ); + } + + } elseif ($tcaConfiguration['internal_type'] == 'file') { + // Not implemented yet + throw new InvalidArgumentException( + 'TCA Tree configuration is invalid: tree for "internal_type=file" not implemented yet', + '1288215891' + ); + } else { + throw new InvalidArgumentException( + 'TCA Tree configuration is invalid: tree for "internal_type=' . + $tcaConfiguration['internal_type'] . + '" not implemented yet', + '1288215892' + ); + } + return $dataProvider; + } +} + +?> \ No newline at end of file Index: t3lib/tree/tca/class.t3lib_tree_tca_abstracttcatreedataprovider.php =================================================================== --- t3lib/tree/tca/class.t3lib_tree_tca_abstracttcatreedataprovider.php (Revision 0) +++ t3lib/tree/tca/class.t3lib_tree_tca_abstracttcatreedataprovider.php (Revision 0) @@ -0,0 +1,157 @@ + + * 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! + ***************************************************************/ + +/** + * An abstract TCA tree data provider + * + * @author Steffen Ritter + * @package TYPO3 + * @subpackage t3lib_tree + */ +abstract class t3lib_tree_Tca_AbstractTcaTreeDataProvider extends t3lib_tree_AbstractDataProvider { + /** + * @var boolean + */ + protected $expandAll = FALSE; + + /** + * @var int + */ + protected $levelMaximum = 2; + + /** + * @var t3lib_tree_AbstractNode + */ + protected $treeData = NULL; + + /** + * @var string + */ + protected $nonSelectableLevelList = '0'; + + /** + * @var string + */ + protected $expandedList = ''; + + /** + * @var string + */ + protected $selectedList = ''; + + /** + * @param string $treeId + * @return void + */ + public function setTreeId($treeId) { + $this->treeId = $treeId; + } + + /** + * @return string + */ + public function getTreeId() { + return $this->treeId; + } + + + /** + * @param bool $expandAll + * @return void + */ + public function setExpandAll($expandAll) { + $this->expandAll = $expandAll; + } + + /** + * @return bool + */ + public function getExpandAll() { + return $this->expandAll; + } + + /** + * @param int $levelMaximum + * @return void + */ + public function setLevelMaximum($levelMaximum) { + $this->levelMaximum = $levelMaximum; + } + + /** + * @return int + */ + public function getLevelMaximum() { + return $this->levelMaximum; + } + + /** + * @param t3lib_tree_AbstractNode $node + * @return bool + */ + protected function isExpanded(t3lib_tree_Node $node) { + return $this->getExpandAll() || t3lib_div::inList($this->expandedList, $node->getId()); + } + + + /** + * @param string $expandedList + * @return void + */ + public function setExpandedList($expandedList) { + $this->expandedList = $expandedList; + } + + /** + * @return string + */ + public function getExpandedList() { + return $this->expandedList; + } + + public function initializeTreeData() { + $this->expandedList = $GLOBALS['BE_USER']->uc['tcaTrees'][$this->treeId]; + } + + public function setSelectedList($selectedList) { + $this->selectedList = $selectedList; + } + + public function getSelectedList() { + return $this->selectedList; + } + + public function setNonSelectableLevelList($nonSelectableLevelList) { + $this->nonSelectableLevelList = $nonSelectableLevelList; + } + + public function getNonSelectableLevelList() { + return $this->nonSelectableLevelList; + } +} + +?> \ No newline at end of file Index: t3lib/tree/extdirect/class.t3lib_tree_extdirect_abstractextjstree.php =================================================================== --- t3lib/tree/extdirect/class.t3lib_tree_extdirect_abstractextjstree.php (Revision 9244) +++ t3lib/tree/extdirect/class.t3lib_tree_extdirect_abstractextjstree.php (Arbeitskopie) @@ -32,7 +32,8 @@ * @package TYPO3 * @subpackage t3lib */ -abstract class t3lib_tree_extdirect_AbstractExtJsTree extends t3lib_tree_AbstractTree { +abstract class t3lib_tree_ExtDirect_AbstractExtJsTree extends t3lib_tree_AbstractTree { + /** * State Provider * @@ -64,3 +65,5 @@ */ abstract public function getNextTreeLevel(t3lib_tree_Node $node); } + +?> \ No newline at end of file Index: t3lib/core_autoload.php =================================================================== --- t3lib/core_autoload.php (Revision 9244) +++ t3lib/core_autoload.php (Arbeitskopie) @@ -158,12 +158,20 @@ 't3lib_tree_labeleditable' => PATH_t3lib . 'interfaces/tree/interface.t3lib_tree_labeleditable.php', 't3lib_tree_renderer_abstract' => PATH_t3lib . 'tree/renderer/class.t3lib_tree_renderer_abstract.php', 't3lib_tree_renderer_unorderedlist' => PATH_t3lib . 'tree/renderer/class.t3lib_tree_renderer_unorderedlist.php', + 't3lib_tree_renderer_extjs_json' => PATH_t3lib . 'tree/renderer/class.t3lib_tree_renderer_extjs_json.php', 't3lib_contextmenu_abstractcontextmenu' => PATH_t3lib . 'contextmenu/class.t3lib_contextmenu_abstractcontextmenu.php', 't3lib_contextmenu_abstractdataprovider' => PATH_t3lib . 'contextmenu/class.t3lib_contextmenu_abstractdataprovider.php', 't3lib_contextmenu_action' => PATH_t3lib . 'contextmenu/class.t3lib_contextmenu_action.php', 't3lib_contextmenu_actioncollection' => PATH_t3lib . 'contextmenu/class.t3lib_contextmenu_actioncollection.php', 't3lib_contextmenu_renderer_abstract' => PATH_t3lib . 'contextmenu/renderer/class.t3lib_contextmenu_renderer_abstract.php', 't3lib_contextmenu_extdirect_contextmenu' => PATH_t3lib . 'contextmenu/extdirect/class.t3lib_contextmenu_extdirect_contextmenu.php', + 't3lib_tceforms_tree' => PATH_t3lib . 'tceforms/class.t3lib_tceforms_tree.php', + 't3lib_tree_tca_abstracttcatreedataprovider' => PATH_t3lib . 'tree/tca/class.t3lib_tree_tca_abstracttcatreedataprovider.php', + 't3lib_tree_tca_extjsarrayrenderer' => PATH_t3lib . 'tree/tca/class.t3lib_tree_tca_extjsarrayrenderer.php', + 't3lib_tree_tca_databasenode' => PATH_t3lib . 'tree/tca/class.t3lib_tree_tca_databasenode.php', + 't3lib_tree_tca_databasetreedataprovider' => PATH_t3lib . 'tree/tca/class.t3lib_tree_tca_databasetreedataprovider.php', + 't3lib_tree_tca_dataproviderfactory' => PATH_t3lib . 'tree/tca/class.t3lib_tree_tca_dataproviderfactory.php', + 't3lib_tree_tca_tcatree' => PATH_t3lib . 'tree/tca/class.t3lib_tree_tca_tcatree.php', ); $tslibClasses = require(PATH_typo3 . 'sysext/cms/ext_autoload.php'); Index: typo3/sysext/t3skin/extjs/images/tree/expand-all.gif =================================================================== Kann nicht anzeigen: Dateityp ist als binär angegeben. svn:mime-type = application/octet-stream Eigenschaftsänderungen: typo3/sysext/t3skin/extjs/images/tree/expand-all.gif ___________________________________________________________________ Hinzugefügt: svn:mime-type + application/octet-stream Index: typo3/sysext/t3skin/extjs/images/tree/collapse-all.gif =================================================================== Kann nicht anzeigen: Dateityp ist als binär angegeben. svn:mime-type = application/octet-stream Eigenschaftsänderungen: typo3/sysext/t3skin/extjs/images/tree/collapse-all.gif ___________________________________________________________________ Hinzugefügt: svn:mime-type + application/octet-stream Index: typo3/sysext/t3skin/extjs/xtheme-t3skin.css =================================================================== --- typo3/sysext/t3skin/extjs/xtheme-t3skin.css (Revision 9244) +++ typo3/sysext/t3skin/extjs/xtheme-t3skin.css (Arbeitskopie) @@ -1295,23 +1295,18 @@ } .x-tree-node-expanded .x-tree-node-icon{ - background-image:url(images/tree/folder-open.gif); } .x-tree-node-leaf .x-tree-node-icon{ - background-image:url(images/tree/leaf.gif); } .x-tree-node-collapsed .x-tree-node-icon{ - background-image:url(images/tree/folder.gif); } .x-tree-node-loading .x-tree-node-icon{ - background-image:url(images/tree/loading.gif) !important; } .x-tree-node .x-tree-node-inline-icon { - background-image: none; } .x-tree-node-loading a span{ @@ -2233,3 +2228,17 @@ padding-left: 100px; background: url(../images/general/donate_teaser.png) no-repeat 25px 10px !important; } + +.icon-collapse-all { + background-image: url("images/tree/collapse-all.gif") !important; +} +.icon-expand-all { + background-image: url("images/tree/expand-all.gif") !important; +} + +.icon-collapse-all { + background-image: url("images/tree/collapse-all.gif") !important; +} +.icon-expand-all { + background-image: url("images/tree/expand-all.gif") !important; +} \ No newline at end of file Index: typo3/sysext/t3skin/stylesheets/ie6/z_t3-icons-gifSprites.css =================================================================== --- typo3/sysext/t3skin/stylesheets/ie6/z_t3-icons-gifSprites.css (Revision 9244) +++ typo3/sysext/t3skin/stylesheets/ie6/z_t3-icons-gifSprites.css (Arbeitskopie) @@ -1,30 +1,30 @@ .t3-icon-status { - background-image: url('../../images/sprites/t3skin.gif?1287312523'); + background-image: url('../../images/sprites/t3skin.gif?1288527635') !important; height: 16px; width: 16px; } .t3-icon-status { - background-image: url('../../images/sprites/t3skin.gif?1287312523'); + background-image: url('../../images/sprites/t3skin.gif?1288527635') !important; height: 16px; width: 16px; } .t3-icon-status { - background-image: url('../../images/sprites/t3skin.gif?1287312523'); + background-image: url('../../images/sprites/t3skin.gif?1288527635') !important; height: 16px; width: 16px; } .t3-icon-status { - background-image: url('../../images/sprites/t3skin.gif?1287312523'); + background-image: url('../../images/sprites/t3skin.gif?1288527635') !important; height: 16px; width: 16px; } .t3-icon-status { - background-image: url('../../images/sprites/t3skin.gif?1287312523'); + background-image: url('../../images/sprites/t3skin.gif?1288527635') !important; height: 16px; width: 16px; } Index: typo3/sysext/t3skin/stylesheets/sprites/t3skin.css =================================================================== --- typo3/sysext/t3skin/stylesheets/sprites/t3skin.css (Revision 9244) +++ typo3/sysext/t3skin/stylesheets/sprites/t3skin.css (Arbeitskopie) @@ -1,1182 +1,1182 @@ .t3-icon-actions { - background-image: url('../../images/sprites/t3skin.png?1287312523'); + background-image: url('../../images/sprites/t3skin.png?1288527635') !important; height: 16px; width: 16px; } .t3-icon-apps { - background-image: url('../../images/sprites/t3skin.png?1287312523'); + background-image: url('../../images/sprites/t3skin.png?1288527635') !important; height: 16px; width: 16px; } .t3-icon-mimetypes { - background-image: url('../../images/sprites/t3skin.png?1287312523'); + background-image: url('../../images/sprites/t3skin.png?1288527635') !important; height: 16px; width: 16px; } .t3-icon-places { - background-image: url('../../images/sprites/t3skin.png?1287312523'); + background-image: url('../../images/sprites/t3skin.png?1288527635') !important; height: 16px; width: 16px; } .t3-icon-status { - background-image: url('../../images/sprites/t3skin.png?1287312523'); + background-image: url('../../images/sprites/t3skin.png?1288527635') !important; height: 16px; width: 16px; } -.t3-icon-document-close { - background-position: -0px -0px; +.t3-icon-move-down { + background-position: -126px -36px !important; } -.t3-icon-document-duplicates-select { - background-position: -18px -0px; +.t3-icon-edit-add { + background-position: -90px -18px !important; } -.t3-icon-document-edit-access { - background-position: -36px -0px; +.t3-icon-move-to-bottom { + background-position: -198px -36px !important; } -.t3-icon-document-export-csv { - background-position: -54px -0px; +.t3-icon-input-clear { + background-position: -0px -324px !important; + height: 13px; + width: 13px; } -.t3-icon-document-export-t3d { - background-position: -72px -0px; +.t3-icon-document-move { + background-position: -162px -0px !important; } -.t3-icon-document-history-open { - background-position: -90px -0px; +.t3-icon-system-list-open { + background-position: -270px -54px !important; } -.t3-icon-document-import-t3d { - background-position: -108px -0px; +.t3-icon-document-export-t3d { + background-position: -72px -0px !important; } -.t3-icon-document-info { - background-position: -126px -0px; +.t3-icon-version-swap-workspace { + background-position: -180px -72px !important; } -.t3-icon-document-localize { - background-position: -144px -0px; +.t3-icon-move-left { + background-position: -144px -36px !important; } -.t3-icon-document-move { - background-position: -162px -0px; +.t3-icon-view-go-forward { + background-position: -270px -72px !important; } -.t3-icon-document-new { - background-position: -180px -0px; +.t3-icon-view-paging-next { + background-position: -108px -90px !important; } -.t3-icon-document-open-read-only { - background-position: -216px -0px; +.t3-icon-system-cache-clear-impact-low { + background-position: -90px -54px !important; } -.t3-icon-document-open { - background-position: -198px -0px; +.t3-icon-document-close { + background-position: -0px -0px !important; } -.t3-icon-document-paste-after { - background-position: -234px -0px; +.t3-icon-system-shortcut-new { + background-position: -36px -72px !important; } -.t3-icon-document-paste-into { - background-position: -252px -0px; +.t3-icon-version-page-open { + background-position: -144px -72px !important; } -.t3-icon-document-save-close { - background-position: -288px -0px; +.t3-icon-edit-copy { + background-position: -108px -18px !important; } -.t3-icon-document-save-new { - background-position: -0px -18px; +.t3-icon-insert-record { + background-position: -90px -36px !important; } -.t3-icon-document-save-view { - background-position: -18px -18px; +.t3-icon-selection-delete { + background-position: -0px -54px !important; } -.t3-icon-document-save { - background-position: -270px -0px; +.t3-icon-system-extension-uninstall { + background-position: -216px -54px !important; } -.t3-icon-document-select { - background-position: -36px -18px; +.t3-icon-page-open { + background-position: -288px -36px !important; } -.t3-icon-document-synchronize { - background-position: -54px -18px; +.t3-icon-view-go-back { + background-position: -234px -72px !important; } -.t3-icon-document-view { - background-position: -72px -18px; +.t3-icon-system-tree-search-open { + background-position: -54px -72px !important; } -.t3-icon-edit-add { - background-position: -90px -18px; +.t3-icon-document-save-view { + background-position: -18px -18px !important; } -.t3-icon-edit-copy-release { - background-position: -126px -18px; +.t3-icon-system-extension-update { + background-position: -234px -54px !important; } -.t3-icon-edit-copy { - background-position: -108px -18px; +.t3-icon-system-backend-user-emulate { + background-position: -18px -54px !important; } -.t3-icon-edit-cut-release { - background-position: -162px -18px; +.t3-icon-system-cache-clear-impact-high { + background-position: -72px -54px !important; } -.t3-icon-edit-cut { - background-position: -144px -18px; +.t3-icon-view-paging-first-disabled { + background-position: -54px -90px !important; } -.t3-icon-edit-delete { - background-position: -180px -18px; +.t3-icon-document-save-new { + background-position: -0px -18px !important; } -.t3-icon-edit-hide { - background-position: -198px -18px; +.t3-icon-version-workspace-preview { + background-position: -198px -72px !important; } -.t3-icon-edit-insert-default { - background-position: -216px -18px; +.t3-icon-document-synchronize { + background-position: -54px -18px !important; } -.t3-icon-edit-localize-status-high { - background-position: -234px -18px; +.t3-icon-edit-unhide { + background-position: -54px -36px !important; } -.t3-icon-edit-localize-status-low { - background-position: -252px -18px; +.t3-icon-document-new { + background-position: -180px -0px !important; } -.t3-icon-edit-pick-date { - background-position: -270px -18px; +.t3-icon-page-move { + background-position: -252px -36px !important; } -.t3-icon-edit-rename { - background-position: -288px -18px; +.t3-icon-document-save-close { + background-position: -288px -0px !important; } -.t3-icon-edit-restore { - background-position: -0px -36px; +.t3-icon-document-import-t3d { + background-position: -108px -0px !important; } -.t3-icon-edit-undelete-edit { - background-position: -18px -36px; +.t3-icon-edit-localize-status-high { + background-position: -234px -18px !important; } -.t3-icon-edit-undo { - background-position: -36px -36px; +.t3-icon-move-move { + background-position: -162px -36px !important; } -.t3-icon-edit-unhide { - background-position: -54px -36px; - -} .t3-icon-edit-upload { - background-position: -72px -36px; + background-position: -72px -36px !important; } -.t3-icon-input-clear { - background-position: -0px -324px; - height: 13px; - width: 13px; +.t3-icon-version-workspace-sendtostage { + background-position: -216px -72px !important; } -.t3-icon-insert-record { - background-position: -90px -36px; +.t3-icon-document-info { + background-position: -126px -0px !important; } -.t3-icon-insert-reference { - background-position: -108px -36px; +.t3-icon-system-cache-clear { + background-position: -54px -54px !important; } -.t3-icon-move-down { - background-position: -126px -36px; +.t3-icon-edit-rename { + background-position: -288px -18px !important; } -.t3-icon-move-left { - background-position: -144px -36px; +.t3-icon-edit-cut { + background-position: -144px -18px !important; } -.t3-icon-move-move { - background-position: -162px -36px; +.t3-icon-view-paging-previous { + background-position: -144px -90px !important; } -.t3-icon-move-right { - background-position: -180px -36px; +.t3-icon-version-document-remove { + background-position: -126px -72px !important; } -.t3-icon-move-to-bottom { - background-position: -198px -36px; +.t3-icon-system-help-open { + background-position: -252px -54px !important; } -.t3-icon-move-to-top { - background-position: -216px -36px; +.t3-icon-view-paging-last-disabled { + background-position: -90px -90px !important; } .t3-icon-move-up { - background-position: -234px -36px; + background-position: -234px -36px !important; } -.t3-icon-page-move { - background-position: -252px -36px; +.t3-icon-insert-reference { + background-position: -108px -36px !important; } -.t3-icon-page-new { - background-position: -270px -36px; +.t3-icon-edit-undelete-edit { + background-position: -18px -36px !important; } -.t3-icon-page-open { - background-position: -288px -36px; +.t3-icon-document-duplicates-select { + background-position: -18px -0px !important; } -.t3-icon-selection-delete { - background-position: -0px -54px; +.t3-icon-system-extension-install { + background-position: -198px -54px !important; } -.t3-icon-system-backend-user-emulate { - background-position: -18px -54px; +.t3-icon-document-save { + background-position: -270px -0px !important; } +.t3-icon-edit-restore { + background-position: -0px -36px !important; + +} .t3-icon-system-backend-user-switch { - background-position: -36px -54px; + background-position: -36px -54px !important; } -.t3-icon-system-cache-clear-impact-high { - background-position: -72px -54px; +.t3-icon-document-paste-after { + background-position: -234px -0px !important; } -.t3-icon-system-cache-clear-impact-low { - background-position: -90px -54px; +.t3-icon-system-typoscript-documentation { + background-position: -72px -72px !important; } -.t3-icon-system-cache-clear-impact-medium { - background-position: -108px -54px; +.t3-icon-document-open-read-only { + background-position: -216px -0px !important; } -.t3-icon-system-cache-clear-rte { - background-position: -126px -54px; +.t3-icon-system-typoscript-documentation-open { + background-position: -90px -72px !important; } -.t3-icon-system-cache-clear { - background-position: -54px -54px; +.t3-icon-edit-pick-date { + background-position: -270px -18px !important; } -.t3-icon-system-extension-documentation { - background-position: -144px -54px; +.t3-icon-view-paging-previous-disabled { + background-position: -162px -90px !important; } -.t3-icon-system-extension-download { - background-position: -162px -54px; +.t3-icon-edit-cut-release { + background-position: -162px -18px !important; } .t3-icon-system-extension-import { - background-position: -180px -54px; + background-position: -180px -54px !important; } -.t3-icon-system-extension-install { - background-position: -198px -54px; +.t3-icon-view-go-down { + background-position: -252px -72px !important; } -.t3-icon-system-extension-uninstall { - background-position: -216px -54px; +.t3-icon-document-edit-access { + background-position: -36px -0px !important; } -.t3-icon-system-extension-update { - background-position: -234px -54px; +.t3-icon-edit-undo { + background-position: -36px -36px !important; } -.t3-icon-system-help-open { - background-position: -252px -54px; +.t3-icon-document-open { + background-position: -198px -0px !important; } -.t3-icon-system-list-open { - background-position: -270px -54px; +.t3-icon-view-list-expand { + background-position: -18px -90px !important; } -.t3-icon-system-options-view { - background-position: -288px -54px; +.t3-icon-view-paging-first { + background-position: -36px -90px !important; } -.t3-icon-system-pagemodule-open { - background-position: -0px -72px; +.t3-icon-document-localize { + background-position: -144px -0px !important; } -.t3-icon-system-refresh { - background-position: -18px -72px; +.t3-icon-view-table-expand { + background-position: -198px -90px !important; } -.t3-icon-system-shortcut-new { - background-position: -36px -72px; +.t3-icon-system-refresh { + background-position: -18px -72px !important; } -.t3-icon-system-tree-search-open { - background-position: -54px -72px; +.t3-icon-system-extension-documentation { + background-position: -144px -54px !important; } -.t3-icon-system-typoscript-documentation-open { - background-position: -90px -72px; +.t3-icon-system-cache-clear-rte { + background-position: -126px -54px !important; } -.t3-icon-system-typoscript-documentation { - background-position: -72px -72px; +.t3-icon-system-pagemodule-open { + background-position: -0px -72px !important; } -.t3-icon-template-new { - background-position: -108px -72px; +.t3-icon-page-new { + background-position: -270px -36px !important; } -.t3-icon-version-document-remove { - background-position: -126px -72px; +.t3-icon-view-paging-next-disabled { + background-position: -126px -90px !important; } -.t3-icon-version-page-open { - background-position: -144px -72px; +.t3-icon-view-paging-last { + background-position: -72px -90px !important; } -.t3-icon-version-swap-version { - background-position: -162px -72px; +.t3-icon-document-paste-into { + background-position: -252px -0px !important; } -.t3-icon-version-swap-workspace { - background-position: -180px -72px; +.t3-icon-document-history-open { + background-position: -90px -0px !important; } -.t3-icon-version-workspace-preview { - background-position: -198px -72px; +.t3-icon-view-table-collapse { + background-position: -180px -90px !important; } -.t3-icon-version-workspace-sendtostage { - background-position: -216px -72px; +.t3-icon-document-export-csv { + background-position: -54px -0px !important; } -.t3-icon-view-go-back { - background-position: -234px -72px; +.t3-icon-document-select { + background-position: -36px -18px !important; } -.t3-icon-view-go-down { - background-position: -252px -72px; +.t3-icon-version-swap-version { + background-position: -162px -72px !important; } -.t3-icon-view-go-forward { - background-position: -270px -72px; +.t3-icon-move-to-top { + background-position: -216px -36px !important; } -.t3-icon-view-go-up { - background-position: -288px -72px; +.t3-icon-view-list-collapse { + background-position: -0px -90px !important; } -.t3-icon-view-list-collapse { - background-position: -0px -90px; +.t3-icon-edit-copy-release { + background-position: -126px -18px !important; } -.t3-icon-view-list-expand { - background-position: -18px -90px; +.t3-icon-template-new { + background-position: -108px -72px !important; } -.t3-icon-view-paging-first-disabled { - background-position: -54px -90px; +.t3-icon-system-extension-download { + background-position: -162px -54px !important; } -.t3-icon-view-paging-first { - background-position: -36px -90px; +.t3-icon-system-cache-clear-impact-medium { + background-position: -108px -54px !important; } -.t3-icon-view-paging-last-disabled { - background-position: -90px -90px; +.t3-icon-view-go-up { + background-position: -288px -72px !important; } -.t3-icon-view-paging-last { - background-position: -72px -90px; +.t3-icon-edit-hide { + background-position: -198px -18px !important; } -.t3-icon-view-paging-next-disabled { - background-position: -126px -90px; +.t3-icon-document-view { + background-position: -72px -18px !important; } -.t3-icon-view-paging-next { - background-position: -108px -90px; +.t3-icon-edit-localize-status-low { + background-position: -252px -18px !important; } -.t3-icon-view-paging-previous-disabled { - background-position: -162px -90px; +.t3-icon-system-options-view { + background-position: -288px -54px !important; } -.t3-icon-view-paging-previous { - background-position: -144px -90px; +.t3-icon-edit-insert-default { + background-position: -216px -18px !important; } -.t3-icon-view-table-collapse { - background-position: -180px -90px; +.t3-icon-edit-delete { + background-position: -180px -18px !important; } -.t3-icon-view-table-expand { - background-position: -198px -90px; +.t3-icon-move-right { + background-position: -180px -36px !important; } .t3-icon-window-open { - background-position: -216px -90px; + background-position: -216px -90px !important; } -.t3-icon-clipboard-images { - background-position: -234px -90px; +.t3-icon-filetree-root { + background-position: -144px -108px !important; } -.t3-icon-clipboard-list { - background-position: -252px -90px; +.t3-icon-pagetree-page-frontend-users { + background-position: -270px -126px !important; } -.t3-icon-filetree-folder-add { - background-position: -270px -90px; +.t3-icon-toolbar-menu-opendocs { + background-position: -36px -162px !important; } -.t3-icon-filetree-folder-default { - background-position: -288px -90px; +.t3-icon-pagetree-page-recycler { + background-position: -144px -144px !important; } -.t3-icon-filetree-folder-list { - background-position: -0px -108px; +.t3-icon-filetree-folder-temp { + background-position: -90px -108px !important; } -.t3-icon-filetree-folder-locked { - background-position: -18px -108px; +.t3-icon-pagetree-page-advanced-hideinmenu { + background-position: -90px -126px !important; } -.t3-icon-filetree-folder-media { - background-position: -36px -108px; +.t3-icon-pagetree-page-shortcut-hideinmenu { + background-position: -234px -144px !important; } -.t3-icon-filetree-folder-news { - background-position: -54px -108px; +.t3-icon-pagetree-backend-user { + background-position: -162px -108px !important; } -.t3-icon-filetree-folder-recycler { - background-position: -72px -108px; +.t3-icon-pagetree-page-frontend-user-hideinmenu { + background-position: -234px -126px !important; } -.t3-icon-filetree-folder-temp { - background-position: -90px -108px; +.t3-icon-pagetree-page-default { + background-position: -180px -126px !important; } -.t3-icon-filetree-folder-user { - background-position: -108px -108px; +.t3-icon-pagetree-drag-place-denied { + background-position: -270px -108px !important; } -.t3-icon-filetree-mount { - background-position: -126px -108px; +.t3-icon-filetree-folder-user { + background-position: -108px -108px !important; } -.t3-icon-filetree-root { - background-position: -144px -108px; +.t3-icon-pagetree-page-shortcut-external-hideinmenu { + background-position: -198px -144px !important; } -.t3-icon-pagetree-backend-user-hideinmenu { - background-position: -180px -108px; +.t3-icon-toolbar-menu-actions { + background-position: -0px -162px !important; } -.t3-icon-pagetree-backend-user { - background-position: -162px -108px; +.t3-icon-pagetree-page-shortcut-root { + background-position: -252px -144px !important; } -.t3-icon-pagetree-drag-move-between { - background-position: -198px -108px; +.t3-icon-pagetree-drag-new-inside { + background-position: -252px -108px !important; } .t3-icon-pagetree-drag-move-into { - background-position: -216px -108px; + background-position: -216px -108px !important; } -.t3-icon-pagetree-drag-new-between { - background-position: -234px -108px; +.t3-icon-pagetree-page-backend-users-root { + background-position: -162px -126px !important; } -.t3-icon-pagetree-drag-new-inside { - background-position: -252px -108px; +.t3-icon-filetree-folder-add { + background-position: -270px -90px !important; } -.t3-icon-pagetree-drag-place-denied { - background-position: -270px -108px; +.t3-icon-pagetree-folder-contains-fe_users { + background-position: -18px -126px !important; } -.t3-icon-pagetree-folder-contains-approve { - background-position: -288px -108px; +.t3-icon-pagetree-page-domain { + background-position: -198px -126px !important; } -.t3-icon-pagetree-folder-contains-board { - background-position: -0px -126px; +.t3-icon-pagetree-folder-contains-shop { + background-position: -0px -306px !important; + width: 18px; } -.t3-icon-pagetree-folder-contains-fe_users { - background-position: -18px -126px; +.t3-icon-toolbar-menu-workspace { + background-position: -90px -162px !important; } -.t3-icon-pagetree-folder-contains-news { - background-position: -36px -126px; +.t3-icon-pagetree-drag-new-between { + background-position: -234px -108px !important; } -.t3-icon-pagetree-folder-contains-shop { - background-position: -0px -306px; - width: 18px; +.t3-icon-pagetree-page-shortcut-external { + background-position: -180px -144px !important; } -.t3-icon-pagetree-folder-default { - background-position: -54px -126px; +.t3-icon-pagetree-drag-move-between { + background-position: -198px -108px !important; } -.t3-icon-pagetree-page-advanced-hideinmenu { - background-position: -90px -126px; +.t3-icon-pagetree-page-backend-users { + background-position: -126px -126px !important; } -.t3-icon-pagetree-page-advanced-root { - background-position: -108px -126px; +.t3-icon-filetree-folder-locked { + background-position: -18px -108px !important; } -.t3-icon-pagetree-page-advanced { - background-position: -72px -126px; +.t3-icon-pagetree-folder-contains-news { + background-position: -36px -126px !important; } -.t3-icon-pagetree-page-backend-users-hideinmenu { - background-position: -144px -126px; +.t3-icon-pagetree-backend-user-hideinmenu { + background-position: -180px -108px !important; } -.t3-icon-pagetree-page-backend-users-root { - background-position: -162px -126px; +.t3-icon-pagetree-page-mountpoint { + background-position: -18px -144px !important; } -.t3-icon-pagetree-page-backend-users { - background-position: -126px -126px; +.t3-icon-pagetree-root { + background-position: -270px -144px !important; } -.t3-icon-pagetree-page-default { - background-position: -180px -126px; +.t3-icon-pagetree-folder-contains-approve { + background-position: -288px -108px !important; } -.t3-icon-pagetree-page-domain { - background-position: -198px -126px; +.t3-icon-pagetree-page-frontend-user { + background-position: -216px -126px !important; } -.t3-icon-pagetree-page-frontend-user-hideinmenu { - background-position: -234px -126px; +.t3-icon-pagetree-page-shortcut-external-root { + background-position: -216px -144px !important; } -.t3-icon-pagetree-page-frontend-user-root { - background-position: -252px -126px; +.t3-icon-pagetree-page-advanced { + background-position: -72px -126px !important; } -.t3-icon-pagetree-page-frontend-user { - background-position: -216px -126px; +.t3-icon-toolbar-menu-cache { + background-position: -18px -162px !important; } .t3-icon-pagetree-page-frontend-users-hideinmenu { - background-position: -288px -126px; + background-position: -288px -126px !important; } .t3-icon-pagetree-page-frontend-users-root { - background-position: -0px -144px; + background-position: -0px -144px !important; } -.t3-icon-pagetree-page-frontend-users { - background-position: -270px -126px; +.t3-icon-pagetree-page-frontend-user-root { + background-position: -252px -126px !important; } -.t3-icon-pagetree-page-mountpoint-hideinmenu { - background-position: -36px -144px; +.t3-icon-pagetree-folder-contains-board { + background-position: -0px -126px !important; } -.t3-icon-pagetree-page-mountpoint-root { - background-position: -54px -144px; +.t3-icon-filetree-mount { + background-position: -126px -108px !important; } -.t3-icon-pagetree-page-mountpoint { - background-position: -18px -144px; +.t3-icon-toolbar-menu-shortcut { + background-position: -72px -162px !important; } .t3-icon-pagetree-page-no-icon-found-hideinmenu { - background-position: -90px -144px; + background-position: -90px -144px !important; } -.t3-icon-pagetree-page-no-icon-found-root { - background-position: -108px -144px; +.t3-icon-filetree-folder-default { + background-position: -288px -90px !important; } -.t3-icon-pagetree-page-no-icon-found { - background-position: -72px -144px; +.t3-icon-pagetree-page-shortcut { + background-position: -162px -144px !important; } -.t3-icon-pagetree-page-not-in-menu { - background-position: -126px -144px; +.t3-icon-clipboard-images { + background-position: -234px -90px !important; } -.t3-icon-pagetree-page-recycler { - background-position: -144px -144px; +.t3-icon-filetree-folder-recycler { + background-position: -72px -108px !important; } -.t3-icon-pagetree-page-shortcut-external-hideinmenu { - background-position: -198px -144px; +.t3-icon-pagetree-page-no-icon-found { + background-position: -72px -144px !important; } -.t3-icon-pagetree-page-shortcut-external-root { - background-position: -216px -144px; +.t3-icon-filetree-folder-media { + background-position: -36px -108px !important; } -.t3-icon-pagetree-page-shortcut-external { - background-position: -180px -144px; +.t3-icon-pagetree-spacer { + background-position: -288px -144px !important; } -.t3-icon-pagetree-page-shortcut-hideinmenu { - background-position: -234px -144px; +.t3-icon-pagetree-page-mountpoint-root { + background-position: -54px -144px !important; } -.t3-icon-pagetree-page-shortcut-root { - background-position: -252px -144px; +.t3-icon-pagetree-page-advanced-root { + background-position: -108px -126px !important; } -.t3-icon-pagetree-page-shortcut { - background-position: -162px -144px; +.t3-icon-pagetree-page-mountpoint-hideinmenu { + background-position: -36px -144px !important; } -.t3-icon-pagetree-root { - background-position: -270px -144px; +.t3-icon-pagetree-page-backend-users-hideinmenu { + background-position: -144px -126px !important; } -.t3-icon-pagetree-spacer { - background-position: -288px -144px; +.t3-icon-pagetree-folder-default { + background-position: -54px -126px !important; } -.t3-icon-toolbar-menu-actions { - background-position: -0px -162px; +.t3-icon-pagetree-page-not-in-menu { + background-position: -126px -144px !important; } -.t3-icon-toolbar-menu-cache { - background-position: -18px -162px; +.t3-icon-toolbar-menu-search { + background-position: -54px -162px !important; } -.t3-icon-toolbar-menu-opendocs { - background-position: -36px -162px; +.t3-icon-clipboard-list { + background-position: -252px -90px !important; } -.t3-icon-toolbar-menu-search { - background-position: -54px -162px; +.t3-icon-filetree-folder-news { + background-position: -54px -108px !important; } -.t3-icon-toolbar-menu-shortcut { - background-position: -72px -162px; +.t3-icon-pagetree-page-no-icon-found-root { + background-position: -108px -144px !important; } -.t3-icon-toolbar-menu-workspace { - background-position: -90px -162px; +.t3-icon-filetree-folder-list { + background-position: -0px -108px !important; } -.t3-icon-compressed { - background-position: -108px -162px; +.t3-icon-x-content-link { + background-position: -198px -180px !important; } -.t3-icon-excel { - background-position: -126px -162px; +.t3-icon-text-css { + background-position: -270px -162px !important; } -.t3-icon-media-audio { - background-position: -144px -162px; +.t3-icon-media-video { + background-position: -198px -162px !important; } -.t3-icon-media-flash { - background-position: -162px -162px; +.t3-icon-x-sys_action { + background-position: -162px -198px !important; } -.t3-icon-media-image { - background-position: -180px -162px; +.t3-icon-x-content-script { + background-position: -36px -198px !important; } -.t3-icon-media-video { - background-position: -198px -162px; +.t3-icon-x-content-plugin { + background-position: -18px -198px !important; } -.t3-icon-other-other { - background-position: -216px -162px; +.t3-icon-x-content-template-extension { + background-position: -90px -198px !important; } -.t3-icon-pdf { - background-position: -234px -162px; +.t3-icon-x-content-page-language-overlay { + background-position: -0px -198px !important; } -.t3-icon-powerpoint { - background-position: -252px -162px; +.t3-icon-media-audio { + background-position: -144px -162px !important; } -.t3-icon-text-css { - background-position: -270px -162px; +.t3-icon-other-other { + background-position: -216px -162px !important; } -.t3-icon-text-csv { - background-position: -288px -162px; +.t3-icon-x-sys_language { + background-position: -20px -306px !important; + width: 18px; } -.t3-icon-text-html { - background-position: -0px -180px; +.t3-icon-pdf { + background-position: -234px -162px !important; } -.t3-icon-text-js { - background-position: -18px -180px; +.t3-icon-x-content-divider { + background-position: -72px -180px !important; } -.t3-icon-text-php { - background-position: -36px -180px; +.t3-icon-powerpoint { + background-position: -252px -162px !important; } -.t3-icon-text-text { - background-position: -54px -180px; +.t3-icon-x-content-table { + background-position: -54px -198px !important; } -.t3-icon-x-content-divider { - background-position: -72px -180px; +.t3-icon-x-content-text-picture { + background-position: -144px -198px !important; } -.t3-icon-x-content-domain { - background-position: -90px -180px; +.t3-icon-x-sys_workspace { + background-position: -198px -198px !important; } -.t3-icon-x-content-form-search { - background-position: -126px -180px; +.t3-icon-x-content-login { + background-position: -252px -180px !important; } -.t3-icon-x-content-form { - background-position: -108px -180px; +.t3-icon-x-content-header { + background-position: -144px -180px !important; } -.t3-icon-x-content-header { - background-position: -144px -180px; +.t3-icon-x-content-form-search { + background-position: -126px -180px !important; } -.t3-icon-x-content-html { - background-position: -162px -180px; +.t3-icon-excel { + background-position: -126px -162px !important; } -.t3-icon-x-content-image { - background-position: -180px -180px; +.t3-icon-x-content-template { + background-position: -72px -198px !important; } -.t3-icon-x-content-link { - background-position: -198px -180px; +.t3-icon-x-content-multimedia { + background-position: -288px -180px !important; } -.t3-icon-x-content-list-bullets { - background-position: -216px -180px; +.t3-icon-text-csv { + background-position: -288px -162px !important; } .t3-icon-x-content-list-files { - background-position: -234px -180px; + background-position: -234px -180px !important; } -.t3-icon-x-content-login { - background-position: -252px -180px; +.t3-icon-x-content-text { + background-position: -126px -198px !important; } -.t3-icon-x-content-menu { - background-position: -270px -180px; +.t3-icon-text-text { + background-position: -54px -180px !important; } -.t3-icon-x-content-multimedia { - background-position: -288px -180px; +.t3-icon-x-sys_news { + background-position: -180px -198px !important; } -.t3-icon-x-content-page-language-overlay { - background-position: -0px -198px; +.t3-icon-text-php { + background-position: -36px -180px !important; } -.t3-icon-x-content-plugin { - background-position: -18px -198px; +.t3-icon-x-content-list-bullets { + background-position: -216px -180px !important; } -.t3-icon-x-content-script { - background-position: -36px -198px; +.t3-icon-media-image { + background-position: -180px -162px !important; } -.t3-icon-x-content-table { - background-position: -54px -198px; +.t3-icon-x-content-form { + background-position: -108px -180px !important; } -.t3-icon-x-content-template-extension { - background-position: -90px -198px; +.t3-icon-x-content-image { + background-position: -180px -180px !important; } -.t3-icon-x-content-template-static { - background-position: -108px -198px; +.t3-icon-x-content-menu { + background-position: -270px -180px !important; } -.t3-icon-x-content-template { - background-position: -72px -198px; +.t3-icon-compressed { + background-position: -108px -162px !important; } -.t3-icon-x-content-text-picture { - background-position: -144px -198px; +.t3-icon-x-content-domain { + background-position: -90px -180px !important; } -.t3-icon-x-content-text { - background-position: -126px -198px; +.t3-icon-x-content-html { + background-position: -162px -180px !important; } -.t3-icon-x-sys_action { - background-position: -162px -198px; +.t3-icon-text-html { + background-position: -0px -180px !important; } -.t3-icon-x-sys_language { - background-position: -20px -306px; - width: 18px; +.t3-icon-media-flash { + background-position: -162px -162px !important; } -.t3-icon-x-sys_news { - background-position: -180px -198px; +.t3-icon-x-content-template-static { + background-position: -108px -198px !important; } -.t3-icon-x-sys_workspace { - background-position: -198px -198px; +.t3-icon-text-js { + background-position: -18px -180px !important; } .t3-icon-folder-closed { - background-position: -216px -198px; + background-position: -216px -198px !important; } .t3-icon-folder-opened { - background-position: -234px -198px; + background-position: -234px -198px !important; } -.t3-icon-dialog-error { - background-position: -252px -198px; +.t3-icon-version-17 { + background-position: -162px -252px !important; } -.t3-icon-dialog-information { - background-position: -270px -198px; +.t3-icon-version-44 { + background-position: -36px -288px !important; } -.t3-icon-dialog-notification { - background-position: -288px -198px; +.t3-icon-version-40 { + background-position: -270px -270px !important; } -.t3-icon-dialog-ok { - background-position: -0px -216px; +.t3-icon-version-47 { + background-position: -90px -288px !important; } -.t3-icon-dialog-warning { - background-position: -18px -216px; +.t3-icon-version-5 { + background-position: -252px -234px !important; } -.t3-icon-overlay-access-restricted { - background-position: -36px -216px; - -} .t3-icon-overlay-deleted { - background-position: -54px -216px; + background-position: -54px -216px !important; } -.t3-icon-overlay-hidden { - background-position: -72px -216px; +.t3-icon-version-3 { + background-position: -216px -234px !important; } -.t3-icon-overlay-icon-missing { - background-position: -90px -216px; +.t3-icon-overlay-includes-subpages { + background-position: -108px -216px !important; } -.t3-icon-overlay-includes-subpages { - background-position: -108px -216px; +.t3-icon-version-21 { + background-position: -234px -252px !important; } -.t3-icon-overlay-locked { - background-position: -126px -216px; +.t3-icon-dialog-ok { + background-position: -0px -216px !important; } -.t3-icon-overlay-scheduled-future-end { - background-position: -162px -216px; +.t3-icon-version-18 { + background-position: -180px -252px !important; } -.t3-icon-overlay-scheduled { - background-position: -144px -216px; +.t3-icon-version-46 { + background-position: -72px -288px !important; } -.t3-icon-overlay-translated { - background-position: -180px -216px; +.t3-icon-version-38 { + background-position: -234px -270px !important; } .t3-icon-status-checked { - background-position: -198px -216px; + background-position: -198px -216px !important; } -.t3-icon-status-current { - background-position: -216px -216px; +.t3-icon-version-19 { + background-position: -198px -252px !important; } -.t3-icon-status-edit-read-only { - background-position: -234px -216px; +.t3-icon-dialog-error { + background-position: -252px -198px !important; } -.t3-icon-status-icon-missing { - background-position: -252px -216px; +.t3-icon-version-14 { + background-position: -108px -252px !important; } -.t3-icon-status-locked { - background-position: -270px -216px; +.t3-icon-version-39 { + background-position: -252px -270px !important; } -.t3-icon-status-permission-denied { - background-position: -288px -216px; +.t3-icon-version-no-version { + background-position: -162px -288px !important; } -.t3-icon-status-permission-granted { - background-position: -0px -234px; +.t3-icon-user-group-backend { + background-position: -144px -234px !important; } -.t3-icon-status-reference-hard { - background-position: -18px -234px; +.t3-icon-status-edit-read-only { + background-position: -234px -216px !important; } -.t3-icon-status-reference-soft { - background-position: -36px -234px; +.t3-icon-version-11 { + background-position: -54px -252px !important; } -.t3-icon-status-workspace-draft { - background-position: -54px -234px; +.t3-icon-user-group-frontend { + background-position: -162px -234px !important; } -.t3-icon-system-extension-required { - background-position: -72px -234px; +.t3-icon-status-permission-granted { + background-position: -0px -234px !important; } -.t3-icon-user-admin { - background-position: -90px -234px; +.t3-icon-warning-lock { + background-position: -198px -288px !important; } -.t3-icon-user-backend { - background-position: -108px -234px; +.t3-icon-version-45 { + background-position: -54px -288px !important; } -.t3-icon-user-frontend { - background-position: -126px -234px; +.t3-icon-overlay-hidden { + background-position: -72px -216px !important; } -.t3-icon-user-group-backend { - background-position: -144px -234px; +.t3-icon-version-4 { + background-position: -234px -234px !important; } -.t3-icon-user-group-frontend { - background-position: -162px -234px; +.t3-icon-version-28 { + background-position: -54px -270px !important; } -.t3-icon-version-1 { - background-position: -180px -234px; +.t3-icon-version-24 { + background-position: -288px -252px !important; } -.t3-icon-version-10 { - background-position: -36px -252px; +.t3-icon-version-15 { + background-position: -126px -252px !important; } -.t3-icon-version-11 { - background-position: -54px -252px; +.t3-icon-overlay-icon-missing { + background-position: -90px -216px !important; } -.t3-icon-version-12 { - background-position: -72px -252px; +.t3-icon-version-33 { + background-position: -144px -270px !important; } -.t3-icon-version-13 { - background-position: -90px -252px; +.t3-icon-dialog-information { + background-position: -270px -198px !important; } -.t3-icon-version-14 { - background-position: -108px -252px; +.t3-icon-version-22 { + background-position: -252px -252px !important; } -.t3-icon-version-15 { - background-position: -126px -252px; +.t3-icon-user-frontend { + background-position: -126px -234px !important; } -.t3-icon-version-16 { - background-position: -144px -252px; +.t3-icon-version-9 { + background-position: -18px -252px !important; } -.t3-icon-version-17 { - background-position: -162px -252px; +.t3-icon-version-50 { + background-position: -144px -288px !important; } -.t3-icon-version-18 { - background-position: -180px -252px; +.t3-icon-status-icon-missing { + background-position: -252px -216px !important; } -.t3-icon-version-19 { - background-position: -198px -252px; +.t3-icon-version-29 { + background-position: -72px -270px !important; } -.t3-icon-version-2 { - background-position: -198px -234px; +.t3-icon-version-13 { + background-position: -90px -252px !important; } -.t3-icon-version-20 { - background-position: -216px -252px; +.t3-icon-version-6 { + background-position: -270px -234px !important; } -.t3-icon-version-21 { - background-position: -234px -252px; +.t3-icon-user-backend { + background-position: -108px -234px !important; } -.t3-icon-version-22 { - background-position: -252px -252px; +.t3-icon-version-41 { + background-position: -288px -270px !important; } -.t3-icon-version-23 { - background-position: -270px -252px; +.t3-icon-version-16 { + background-position: -144px -252px !important; } -.t3-icon-version-24 { - background-position: -288px -252px; +.t3-icon-version-37 { + background-position: -216px -270px !important; } -.t3-icon-version-25 { - background-position: -0px -270px; +.t3-icon-system-extension-required { + background-position: -72px -234px !important; } -.t3-icon-version-26 { - background-position: -18px -270px; +.t3-icon-overlay-scheduled { + background-position: -144px -216px !important; } -.t3-icon-version-27 { - background-position: -36px -270px; +.t3-icon-version-34 { + background-position: -162px -270px !important; } -.t3-icon-version-28 { - background-position: -54px -270px; +.t3-icon-status-reference-soft { + background-position: -36px -234px !important; } -.t3-icon-version-29 { - background-position: -72px -270px; +.t3-icon-status-reference-hard { + background-position: -18px -234px !important; } -.t3-icon-version-3 { - background-position: -216px -234px; +.t3-icon-version-43 { + background-position: -18px -288px !important; } -.t3-icon-version-30 { - background-position: -90px -270px; +.t3-icon-version-2 { + background-position: -198px -234px !important; } -.t3-icon-version-31 { - background-position: -108px -270px; +.t3-icon-version-35 { + background-position: -180px -270px !important; } -.t3-icon-version-32 { - background-position: -126px -270px; +.t3-icon-version-49 { + background-position: -126px -288px !important; } -.t3-icon-version-33 { - background-position: -144px -270px; +.t3-icon-version-1 { + background-position: -180px -234px !important; } -.t3-icon-version-34 { - background-position: -162px -270px; +.t3-icon-overlay-locked { + background-position: -126px -216px !important; } -.t3-icon-version-35 { - background-position: -180px -270px; +.t3-icon-version-32 { + background-position: -126px -270px !important; } .t3-icon-version-36 { - background-position: -198px -270px; + background-position: -198px -270px !important; } -.t3-icon-version-37 { - background-position: -216px -270px; +.t3-icon-version-48 { + background-position: -108px -288px !important; } -.t3-icon-version-38 { - background-position: -234px -270px; +.t3-icon-version-30 { + background-position: -90px -270px !important; } -.t3-icon-version-39 { - background-position: -252px -270px; +.t3-icon-version-8 { + background-position: -0px -252px !important; } -.t3-icon-version-4 { - background-position: -234px -234px; +.t3-icon-status-locked { + background-position: -270px -216px !important; } -.t3-icon-version-40 { - background-position: -270px -270px; +.t3-icon-warning-in-use { + background-position: -180px -288px !important; } -.t3-icon-version-41 { - background-position: -288px -270px; +.t3-icon-status-workspace-draft { + background-position: -54px -234px !important; } -.t3-icon-version-42 { - background-position: -0px -288px; +.t3-icon-user-admin { + background-position: -90px -234px !important; } -.t3-icon-version-43 { - background-position: -18px -288px; +.t3-icon-overlay-scheduled-future-end { + background-position: -162px -216px !important; } -.t3-icon-version-44 { - background-position: -36px -288px; +.t3-icon-version-7 { + background-position: -288px -234px !important; } -.t3-icon-version-45 { - background-position: -54px -288px; +.t3-icon-version-10 { + background-position: -36px -252px !important; } -.t3-icon-version-46 { - background-position: -72px -288px; +.t3-icon-version-27 { + background-position: -36px -270px !important; } -.t3-icon-version-47 { - background-position: -90px -288px; +.t3-icon-version-23 { + background-position: -270px -252px !important; } -.t3-icon-version-48 { - background-position: -108px -288px; +.t3-icon-version-42 { + background-position: -0px -288px !important; } -.t3-icon-version-49 { - background-position: -126px -288px; +.t3-icon-dialog-notification { + background-position: -288px -198px !important; } -.t3-icon-version-5 { - background-position: -252px -234px; +.t3-icon-version-20 { + background-position: -216px -252px !important; } -.t3-icon-version-50 { - background-position: -144px -288px; +.t3-icon-status-current { + background-position: -216px -216px !important; } -.t3-icon-version-6 { - background-position: -270px -234px; +.t3-icon-version-25 { + background-position: -0px -270px !important; } -.t3-icon-version-7 { - background-position: -288px -234px; +.t3-icon-overlay-translated { + background-position: -180px -216px !important; } -.t3-icon-version-8 { - background-position: -0px -252px; +.t3-icon-version-31 { + background-position: -108px -270px !important; } -.t3-icon-version-9 { - background-position: -18px -252px; +.t3-icon-version-12 { + background-position: -72px -252px !important; } -.t3-icon-version-no-version { - background-position: -162px -288px; +.t3-icon-dialog-warning { + background-position: -18px -216px !important; } -.t3-icon-warning-in-use { - background-position: -180px -288px; +.t3-icon-status-permission-denied { + background-position: -288px -216px !important; } -.t3-icon-warning-lock { - background-position: -198px -288px; +.t3-icon-overlay-access-restricted { + background-position: -36px -216px !important; } +.t3-icon-version-26 { + background-position: -18px -270px !important; + +}