TYPO3 API  SVNRelease
class.t3lib_tree_tca_extjsarrayrenderer.php
Go to the documentation of this file.
00001 <?php
00002 /***************************************************************
00003  *  Copyright notice
00004  *
00005  *  (c) 2010-2011 Steffen Ritter <info@steffen-ritter.net>
00006  *  All rights reserved
00007  *
00008  *  This script is part of the TYPO3 project. The TYPO3 project is
00009  *  free software; you can redistribute it and/or modify
00010  *  it under the terms of the GNU General Public License as published by
00011  *  the Free Software Foundation; either version 2 of the License, or
00012  *  (at your option) any later version.
00013  *
00014  *  The GNU General Public License can be found at
00015  *  http://www.gnu.org/copyleft/gpl.html.
00016  *  A copy is found in the textfile GPL.txt and important notices to the license
00017  *  from the author is found in LICENSE.txt distributed with these scripts.
00018  *
00019  *
00020  *  This script is distributed in the hope that it will be useful,
00021  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
00022  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00023  *  GNU General Public License for more details.
00024  *
00025  *  This copyright notice MUST APPEAR in all copies of the script!
00026  ***************************************************************/
00027 
00028 /**
00029  * Renders a tca tree array for ExtJS
00030  *
00031  * @author  Steffen Ritter <info@steffen-ritter.net>
00032  * @package TYPO3
00033  * @subpackage t3lib_tree
00034  */
00035 
00036 class t3lib_tree_Tca_ExtJsArrayRenderer extends t3lib_tree_Renderer_ExtJsJson {
00037 
00038     /**
00039      * Gets the node array. If the TCA configuration has defined items,
00040      * they are added to rootlevel on top of the tree
00041      *
00042      * @param t3lib_tree_Tca_DatabaseNode $node
00043      * @return array
00044      */
00045     protected function getNodeArray(t3lib_tree_Tca_DatabaseNode $node) {
00046         $nodeArray = parent::getNodeArray($node);
00047         $nodeArray = array_merge(
00048             $nodeArray,
00049             array(
00050                  'expanded' => $node->getExpanded(),
00051                  'expandable' => $node->hasChildNodes(),
00052                  'checked' => $node->getSelected(),
00053             )
00054         );
00055         if (!$node->getSelectable()) {
00056             unset ($nodeArray['checked']);
00057         }
00058 
00059         return $nodeArray;
00060     }
00061 
00062     /**
00063      * Renders a node collection recursive or just a single instance
00064      *
00065      * @param t3lib_tree_NodeCollection $node
00066      * @param bool $recursive
00067      * @return array
00068      */
00069     public function renderTree(t3lib_tree_AbstractTree $tree, $recursive = TRUE) {
00070         $this->recursionLevel = 0;
00071         $children = $this->renderNode($tree->getRoot(), $recursive);
00072 
00073         return $children;
00074     }
00075 }
00076 
00077 ?>