/var/www/hkosl.com/aga/wp-content/plugins/smart-slider-3/nextend/library/libraries/mvc/base.php


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
<?php

class N2Base {

    private static 
$isReady false;


    
/** @var N2ApplicationInfo[] */
    
private static $applicationInfo = array();

    
/** @var N2Application[] */
    
private static $applications = array();

    
/**
     * @var N2ApplicationType
     */
    
public static $currentApplicationType;

    private static function 
init() {
        if (!
self::$isReady) {
            
N2Loader::importAll('libraries.mvc.application');
            
N2Loader::importAll('libraries.mvc');
            
N2Loader::import('libraries.mvc.controllers.backend');
            
N2Loader::importAll('libraries.mvc.controllers');
            
N2Loader::importAll('libraries.cache');
            
N2Loader::importAll('libraries.assets');
            
N2Loader::importAll('libraries.google');
            
N2Loader::importAll('libraries.assets.css');
            
N2Loader::importAll('libraries.assets.js');
            
N2Loader::importAll('libraries.assets.less');
            
N2Loader::importAll('libraries.assets.google');
            
N2Loader::importAll('libraries.assets.image');
            
N2Loader::importAll('libraries.uri');
            
N2Loader::import('libraries.acl.acl');
            
N2Loader::import('libraries.message.message');

            
N2Loader::import('libraries.image.helper');

            
self::$isReady true;

            foreach (
self::$applicationInfo AS $applicationInfo) {
                
$applicationInfo->onReady();
            }
        }
    }

    public static function 
registerApplication($infoPath) {
        
/**
         * @var $info N2ApplicationInfo
         */
        
$info = require_once($infoPath);
        if (
is_object($info)) {
            if (
self::$isReady) {
                
$info->onReady();
            }
            
self::$applicationInfo[$info->getName()] = $info;
        }
    }

    
/**
     * @param $name
     *
     * @return bool|N2ApplicationInfo
     */
    
public static function getApplicationInfo($name) {
        if (!isset(
self::$applicationInfo[$name])) {
            return 
false;
        }

        return 
self::$applicationInfo[$name];
    }

    
/**
     * @param $name
     *
     * @return N2Application
     * @throws Exception
     */
    
public static function getApplication($name) {
        if (!isset(
self::$applications[$name])) {
            
self::createApplication($name);

            
N2Pluggable::doAction('applicationLoaded', array($name));
        }

        return 
self::$applications[$name];
    }

    private static function 
createApplication($name) {
        if (isset(
self::$applicationInfo[$name])) {
            
self::init();
            
/**
             * @var $nextendApp N2Application
             */
            
self::$applications[$name] = self::$applicationInfo[$name]->getInstance();

        } else {
            throw new 
Exception("Application not available: {$name}");
        }
    }
}