Вход Регистрация
Файл: adultscript-2.0.3-pro/files/libraries/framework/module.php
Строк: 48
<?php
defined
('_VALID') or die('Restricted Access!');
class 
VModule
{
    private static 
$modules = array();
    public static function 
load($name$force=FALSE)
    {
        if (!isset(
self::$modules['core'])) {
            
self::__cache_modules();
        }
    
        
$found         = (isset(self::$modules[$name])) ? TRUE FALSE;
        
$enabled    = ($found && self::$modules[$name]['status'] === 1) ? TRUE FALSE;
        if (
$found === TRUE && $force === TRUE) {
            
$enabled TRUE;
        }
        
        if (
$enabled) {
            
$module            self::$modules[$name]['module'];
            
$module_file     MODULES_DIR.'/'.$module.'/'.$module.'.php';
            
$module_class    'VModule_'.$module;
            try {
                require 
$module_file;
                
$module_obj        = new $module_class();
                
$module_obj->render();
            } catch(
Exception $e) {
                throw new 
VException($e);
            }
        } else {
            if (
$name != '404') {
                
VModule::load('404'true);
            } else {
                throw new 
VException('Application Error! Aborting...');
            }
        }
    }
    
    public static function 
valid($name)
    {
        if (!isset(
self::$modules['core'])) {
            
self::__cache_modules();
        }
        
        return (isset(
self::$modules[$name])) ? TRUE FALSE;
    }
    
    public static function 
enabled($name)
    {
        if (!isset(
self::$modules['core'])) {
            
self::__cache_modules();
        }
        
        return (isset(
self::$modules[$name]) && self::$modules[$name]['status'] === 1) ? TRUE FALSE;
    }
    
    private static function 
__cache_modules()
    {
        if (!
$modules VF::cache_get('modules''config')) {
            
$db    VF::factory('database');
            
$db->query("SELECT name, status, slugs FROM #__module");
            if (!
$db->affected_rows()) {
                throw new 
Exception('Failed to load modules! Aborting...');
            }
            
            
$rows        $db->fetch_rows();
            
$modules    = array();
            foreach (
$rows as $row) {
                
$name    $row['name'];
                
$slugs    $row['slugs'];
                
$status    = (int) $row['status'];

                
$slugs    explode(','$slugs);
                foreach (
$slugs as $slug) {
                    
$slug    trim($slug);
                    
$modules[$slug]    = array('module' => $name'status' => $status);
                }
                
                
VF::cache_set('modules'$modules'config');
            }
        }
        
        
self::$modules $modules;
    }
}
?>
Онлайн: 0
Реклама