Bontiv-Sourceer source code viewer
Root | Help
./bontiv-cms/core/core_libraries.php
<?php
if (!defined('INDEX') || INDEX == false) die ('Acc�s denied');

/**
 * Library manager
 *
 * @version 0.1
 * @copyright 2010
 */

/**
 * Manager for libraries
 *
 */
class core_libraries
{
   
/**
    * Statics proprieties
    */
   
private static $libraries = array();

   
/**
    * Statics methods
    */
   
public static function IsLoaded($Job)
    {
        return isset(
self::$libraries[$Job]);
    }
   
    public static function
LoadLibrary($Job, $Library = null)
    {
        if (
$Library !== null && self::$libraries[$Job] != $Library)
        {
            throw new
LibraryLoadingError('You try to load ' . $Job . ' with the lib ' . $Library . ' but it is already loaded with ' . self::$libraries[$Job]);
        }
        elseif (isset(
self::$libraries[$Job]))
        {
            return
true;
        }
        elseif (
$Library === null)
        {
           
$jobs = new SQL('jobs');
           
$jobs = $jobs->where(array('Jname' => $Job))->select('Jname');
            if (
$jobs->count() < 1)
            {
                throw new
LibraryLoadingError('Job not found. Have you installed libs for ' . $Job . ' ?');
            }
            else
            {
               
$lib = $jobs->current();
                require_once
LIBSDIR . $lib->Jlib . DIRECTORY_SEPARATOR . $Job . '.php';
            }
           
self::$libraries[$Job] = $lib->Jlib;
            return
true;
        }
        else
        {
           
$file = LIBSDIR . $Library . DIRECTORY_SEPARATOR . $Job . '.php';
            if (
file_exists($file))
            {
                require_once
$file;
                return
true;
            }
            else
                throw new
LibraryLoadingError('Library ' . $Library . ' not found for the job ' . $Job);
        }
    }
}
?>
Presented with Bontiv-Sourceer