|
TYPO3 API
SVNRelease
|
00001 <?php 00002 /*************************************************************** 00003 * Copyright notice 00004 * 00005 * (c) 2010-2011 Ernesto Baschny <ernst@cron-it.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 * Manager to register and call registered media wizard providers 00030 * 00031 * $Id: $ 00032 00033 * @author Ernesto Baschny <ernst@cron-it.de> 00034 * @static 00035 */ 00036 class tslib_mediaWizardManager { 00037 00038 protected static $providers = array(); 00039 00040 /** 00041 * Allows extensions to register themselves as media wizard providers 00042 * 00043 * @param string $className A class implementing tslib_mediaWizardProvider 00044 * @return void 00045 */ 00046 public static function registerMediaWizardProvider($className) { 00047 if (!isset(self::$providers[$className])) { 00048 $provider = t3lib_div::makeInstance($className); 00049 if (!($provider instanceof tslib_mediaWizardProvider)) { 00050 throw new UnexpectedValueException( 00051 $className .' is registered as a mediaWizardProvider, so it must implement interface tslib_mediaWizardProvider', 00052 1285022360 00053 ); 00054 } 00055 self::$providers[$className] = $provider; 00056 } 00057 } 00058 00059 /** 00060 * 00061 * @param string $url 00062 * @return a valid mediaWizardProvider that can handle this URL 00063 */ 00064 public static function getValidMediaWizardProvider($url) { 00065 // Go through registered providers in reverse order (last one registered wins) 00066 $providers = array_reverse(self::$providers, TRUE); 00067 foreach (self::$providers as $className => $provider) { 00068 /** @var $provider tslib_mediaWizardProvider */ 00069 if ($provider->canHandle($url)) { 00070 return $provider; 00071 } 00072 } 00073 // no provider found 00074 return NULL; 00075 } 00076 00077 } 00078 00079 if (defined('TYPO3_MODE') && isset($GLOBALS['TYPO3_CONF_VARS'][TYPO3_MODE]['XCLASS']['tslib/class.tslib_mediawizardmanager.php'])) { 00080 include_once($GLOBALS['TYPO3_CONF_VARS'][TYPO3_MODE]['XCLASS']['tslib/class.tslib_mediawizardmanager.php']); 00081 } 00082 00083 ?>
1.8.0