fix #8131 - chinese translations
[Pman.Core] / Config.php
index 7eb3160..d6dc5e6 100644 (file)
@@ -10,19 +10,41 @@ class Pman_Core_Config {
     var $defaults = array(  ); // override... 
     
     
+    // note if other extended 'config's require more, then you porbably need to include these first.
+    var $required_extensions = array(
+        'json',        
+        'curl',
+        'gd',
+        'mbstring',
+        'http'
+    );
+    
     function init($ff, $cfg)
     {
-      
+        
+        
+        
         $cfg = $this->overlayDefaults($cfg);
         
         if (!empty($this->memory_limit)) {
             $mem = ini_get('memory_limit');
             if (php_sapi_name() != 'cli' && $this->to_bytes($mem) < $this->to_bytes($this->memory_limit)) {
-                die("increase the memory limit settings to 2048M or more");
+                trigger_error("increase the memory limit settings to 2048M or more", E_USER_ERROR);
             }
         
         }
         
+        $this->verifyExtensions();
+        
+        
+        if (!isset($cfg['Pman']['timezone'])) {
+            trigger_error("timezone needs setting in Pman[timezone]", E_USER_ERROR);
+        }
+        if ($cfg['Pman']['timezone'] != ini_get('date.timezone')) {
+            trigger_error("timezone needs setting in php.ini date.timezone = " . $cfg['Pman']['timezone'], E_USER_ERROR);
+        }
+        
+        
         return $cfg;
     }
     
@@ -46,7 +68,9 @@ class Pman_Core_Config {
     }
     function overlayDefaults($cfg)
     {
-        $this->defaults['disable'] = implode(',', $this->defaults['disable']);
+        if (isset($this->defaults['disable']) && is_array($this->defaults['disable']) ) {
+            $this->defaults['disable'] = implode(',', $this->defaults['disable']);
+        }
         foreach($this->defaults as $k=>$v) {
             if (is_array($v)) {
                 
@@ -71,6 +95,23 @@ class Pman_Core_Config {
         
         return $cfg;
     }
-    
+    function verifyExtensions()
+    {
+        $error = array();
+        
+        foreach ($this->required_extensions as $e){
+            
+            if(empty($e) || extension_loaded($e)) {
+                continue;
+            }
+            
+            $error[] = "Error: Please install php extension: {$e}";
+        }
+        
+        if(empty($error)){
+           return true; 
+        }
+        trigger_error("Missing Extensions: \n" . implode('\n', $error), E_USER_ERROR);
+    }
 
 }