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);
|
|
}
|