87 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			87 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| /*
 | |
|  * @package		Joomla.Framework
 | |
|  * @copyright	Copyright (C) 2005 - 2010 Open Source Matters, Inc. All rights reserved.
 | |
|  * @license		GNU General Public License version 2 or later; see LICENSE.txt
 | |
|  *
 | |
|  * @component Phoca Component
 | |
|  * @copyright Copyright (C) Jan Pavelka www.phoca.cz
 | |
|  * @license http://www.gnu.org/copyleft/gpl.html GNU General Public License version 2 or later;
 | |
|  */
 | |
| defined('_JEXEC') or die;
 | |
| 
 | |
| 
 | |
| spl_autoload_register(array('JLoader','load'));
 | |
| 
 | |
| class PhocaGalleryLoader extends JLoader
 | |
| {
 | |
| 	private static $paths 	= array();
 | |
| 	protected static $classes = array();
 | |
| 
 | |
| 	public static function import($filePath, $base = null, $key = 'libraries.') {
 | |
| 
 | |
| 
 | |
| 
 | |
| 		$keyPath = $key ? $key . $filePath : $filePath;
 | |
| 
 | |
| 		if (!isset($paths[$keyPath])) {
 | |
| 			if ( !$base ) {
 | |
| 				$base =  JPATH_ADMINISTRATOR.'/components/com_phocagallery/libraries';
 | |
| 			}
 | |
| 
 | |
| 			$parts = explode( '.', $filePath );
 | |
| 
 | |
| 			$className = array_pop( $parts );
 | |
| 
 | |
| 
 | |
| 			switch($className) {
 | |
| 				case 'helper' :
 | |
| 					$className = ucfirst((string)array_pop( $parts )).ucfirst((string)$className);
 | |
| 					break;
 | |
| 
 | |
| 				default :
 | |
| 					$className = ucfirst((string)$className);
 | |
| 					break;
 | |
| 			}
 | |
| 
 | |
| 			$path  = str_replace( '.', '/', $filePath );
 | |
| 
 | |
| 			if (strpos($filePath, 'phocagallery') === 0) {
 | |
| 				$className	= 'PhocaGallery'.$className;
 | |
| 				$classes	= JLoader::register($className, $base. '/'. $path.'.php');
 | |
| 
 | |
| 				$rs			= isset($classes[strtolower($className)]);
 | |
| 
 | |
| 
 | |
| 			} else {
 | |
| 				// If it is not in the joomla namespace then we have no idea if
 | |
| 				// it uses our pattern for class names/files so just include
 | |
| 				// if the file exists or set it to false if not
 | |
| 
 | |
| 				$filename = $base. '/'. $path.'.php';
 | |
| 
 | |
| 				if (is_file($filename)) {
 | |
| 					$rs   = (bool) include $filename;
 | |
| 				} else {
 | |
| 					// if the file doesn't exist fail
 | |
| 					$rs   = false;
 | |
| 
 | |
| 					// note: JLoader::register does an is_file check itself so we don't need it above, we do it here because we
 | |
| 					// try to load the file directly and it may not exist which could cause php to throw up nasty warning messages
 | |
| 					// at us so we set it to false here and hope that if the programmer is good enough they'll check the return value
 | |
| 					// instead of hoping it'll work. remmeber include only fires a warning, so $rs was going to be false with a nasty
 | |
| 					// warning message
 | |
| 				}
 | |
| 			}
 | |
| 
 | |
| 			PhocaGalleryLoader::$paths[$keyPath] = $rs;
 | |
| 		}
 | |
| 
 | |
| 		return PhocaGalleryLoader::$paths[$keyPath];
 | |
| 	}
 | |
| }
 | |
| 
 | |
| function phocagalleryimport($path) {
 | |
| 	return PhocaGalleryLoader::import($path);
 | |
| }
 |