Ejemplo n.º 1
0
 public static function enable()
 {
     require_once 'KokenPlugin.php';
     require_once 'Contracts/KokenCache.php';
     require_once 'Contracts/KokenEmail.php';
     require_once 'Contracts/KokenDatabaseConfiguration.php';
     require_once 'Contracts/KokenEncryptionKey.php';
     require_once 'Contracts/KokenOriginalStore.php';
     $root = dirname(dirname(dirname(dirname(__FILE__))));
     self::scan('app/plugins', true, true);
     if (getenv('KOKEN_SHUTTER_AUTOLOAD')) {
         self::scan(getenv('KOKEN_SHUTTER_AUTOLOAD'), true, true);
     }
     $compiled = self::get_cache('plugins/compiled.cache');
     if (!$compiled && strpos($_SERVER['QUERY_STRING'], 'plugins/compile') === false) {
         include dirname(__DIR__) . '/Utils/KokenAPI.php';
         $api = new KokenAPI();
         $api->get('/plugins/compile');
     }
     $compiled = self::get_cache('plugins/compiled.cache');
     Shutter::$email_provider = self::$class_map['DDI_Email'];
     if ($compiled) {
         $compiled_plugins = unserialize($compiled['data']);
         foreach ($compiled_plugins['plugins'] as $plugin) {
             self::parse($root . '/storage/plugins/' . $plugin['path'], true, false, isset($plugin['data']) ? $plugin['data'] : array());
         }
         if (isset($compiled_plugins['info']['email_handler']) && isset(self::$class_map[$compiled_plugins['info']['email_handler']])) {
             self::$email_provider = self::$class_map[$compiled_plugins['info']['email_handler']];
         }
         if (isset($compiled_plugins['info']['email_delivery_address'])) {
             self::$email_delivery_address = $compiled_plugins['info']['email_delivery_address'];
         }
     }
 }