TYPO3 API  SVNRelease
class.t3lib_tree_pagetree_indicator.php
Go to the documentation of this file.
00001 <?php
00002 /***************************************************************
00003  *  Copyright notice
00004  *
00005  *  (c) 2010-2011 Susanne Moog <typo3@susanne-moog.de>
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  * Class for pagetree indicator
00030  *
00031  * @author Susanne Moog <typo3@susanne-moog.de>
00032  * @package TYPO3
00033  * @subpackage t3lib
00034  */
00035 class t3lib_tree_pagetree_Indicator {
00036     /**
00037      * Indicator Providers
00038      *
00039      * @var array
00040      */
00041     protected $indicatorProviders = array();
00042 
00043     /**
00044      * Constructor for class tx_reports_report_Status
00045      */
00046     public function __construct() {
00047         $this->getIndicatorProviders();
00048     }
00049 
00050     /**
00051      * Gets all registered indicator providers and instantiates them
00052      *
00053      */
00054     protected function getIndicatorProviders() {
00055         $providers = $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['pagetree']['t3lib_tree_pagetree']['indicator']['providers'];
00056         if (!is_array($providers)) {
00057             return;
00058         }
00059 
00060         foreach ($providers as $indicatorProvider) {
00061             /** @var $indicatorProviderInstance t3lib_tree_pagetree_interfaces_IndicatorProvider */
00062             $indicatorProviderInstance = t3lib_div::makeInstance($indicatorProvider);
00063             if ($indicatorProviderInstance instanceof t3lib_tree_pagetree_interfaces_IndicatorProvider) {
00064                 $this->indicatorProviders[] = $indicatorProviderInstance;
00065             }
00066         }
00067     }
00068 
00069     /**
00070      * Runs through all indicator providers and returns all indicators collected.
00071      *
00072      * @return  array   An array of
00073      */
00074     public function getAllIndicators() {
00075         $indicators = array();
00076         foreach ($this->indicatorProviders as $indicatorProvider) {
00077             $indicator = $indicatorProvider->getIndicator();
00078             if($indicator) {
00079                 $indicators[] = $indicator;
00080             }
00081         }
00082 
00083         return $indicators;
00084     }
00085 }
00086 
00087 if (defined('TYPO3_MODE') && isset($GLOBALS['TYPO3_CONF_VARS'][TYPO3_MODE]['XCLASS']['t3lib/tree/pagetree/class.t3lib_tree_pagetree_indicator.php'])) {
00088     include_once($GLOBALS['TYPO3_CONF_VARS'][TYPO3_MODE]['XCLASS']['t3lib/tree/pagetree/class.t3lib_tree_pagetree_indicator.php']);
00089 }
00090 
00091 
00092 ?>