Beispiel #1
0
 public function __construct()
 {
     ci()->load->config('files/files');
     self::$path = config_item('files:path');
     self::$_cache_path = config_item('cache_dir') . 'cloud_cache/';
     if ($providers = Settings::get('files_enabled_providers')) {
         self::$providers = explode(',', $providers);
         // make 'local' mandatory. We search for the value because of backwards compatibility
         if (!in_array('local', self::$providers)) {
             array_unshift(self::$providers, 'local');
         }
     } else {
         self::$providers = array('local');
     }
     // work out the most restrictive ini setting
     $post_max = str_replace('M', '', ini_get('post_max_size'));
     $file_max = str_replace('M', '', ini_get('upload_max_filesize'));
     // set the largest size the server can handle and the largest the admin set
     self::$max_size_possible = ($file_max > $post_max ? $post_max : $file_max) * 1048576;
     // convert to bytes
     self::$max_size_allowed = Settings::get('files_upload_limit') * 1048576;
     // convert this to bytes also
     set_exception_handler(array($this, 'exception_handler'));
     set_error_handler(array($this, 'error_handler'));
     ci()->load->model('files/file_m');
     ci()->load->model('files/file_folders_m');
     ci()->load->spark('cloudmanic-storage/1.0.4');
 }
 public static function create($path)
 {
     Log::debug("Reading monitor configuration from directory '{$path}'...");
     $xmls = self::scanXmls($path);
     $reader = new MonitorXmlReader();
     $monitor = new self();
     foreach ($xmls as $xml) {
         if ($reader->read(Files::path($path, $xml))) {
             foreach ($reader->getSources() as $source) {
                 $monitor->tReadSources[] = $source;
                 Log::debug("Read source '{$source}'");
             }
             foreach ($reader->getNetworkmaps() as $networkmap) {
                 $monitor->tReadNetworkmaps[] = $networkmap;
                 Log::debug("Read network map '{$networkmap}'");
             }
             foreach ($reader->getUserdbs() as $userdb) {
                 $monitor->tReadUserdbs[] = $userdb;
                 Log::debug("Read user db '{$userdb}'");
             }
             foreach ($reader->getEvents() as $event) {
                 $monitor->tReadEvents[] = $event;
                 Log::debug("Read event '{$event}'");
             }
         }
     }
     self::validateSourceReferences($monitor->tReadSources, $monitor->tReadNetworkmaps, $monitor->tReadUserdbs, $monitor->tReadEvents);
     $monitor->tEnabledSources = self::filterUnreferencedSources(self::filterDuplicateSources($monitor->tReadSources), $monitor->tReadNetworkmaps, $monitor->tReadUserdbs, $monitor->tReadEvents);
     if (count($monitor->tEnabledSources) == 0) {
         Log::err("Found no active source/events definitions while reading monitor configuration from directory '{$path}'");
         $monitor = false;
     }
     return $monitor;
 }
 private function scanLogFiles($file)
 {
     $logfiles = array();
     $pathinfo = pathinfo($file);
     $path = $pathinfo["dirname"];
     $pattern = $pathinfo["basename"];
     $dir = Files::safeOpendir($path);
     while (($logfile = Files::readdirMatch($dir, $pattern)) !== false) {
         $logfiles[] = Files::path($path, $logfile);
     }
     closedir($dir);
     asort($logfiles);
     return $logfiles;
 }