typo fix
[phpfspot.git] / phpfspot.class.php
index 57551f39abc41f3df44ae10f1184c9c95889dbc0..50ab45e139423f31c34f08d6c414af13062ac91c 100644 (file)
@@ -23,7 +23,6 @@
 
 require_once "phpfspot_cfg.php";
 require_once "phpfspot_db.php";
-require_once "phpfspot_tmpl.php";
 
 class PHPFSPOT {
 
@@ -50,21 +49,27 @@ class PHPFSPOT {
 
       $this->cfg = new PHPFSPOT_CFG;
 
-      $this->db  = new PHPFSPOT_DB(&$this, $this->cfg->fspot_db);
+      $this->db  = new PHPFSPOT_DB($this, $this->cfg->fspot_db);
       
       if(!is_writeable(dirname($this->cfg->phpfspot_db))) {
          print dirname($this->cfg->phpfspot_db) .": directory is not writeable!";
          exit(1);
       }
          
-      $this->cfg_db = new PHPFSPOT_DB(&$this, $this->cfg->phpfspot_db);
+      $this->cfg_db = new PHPFSPOT_DB($this, $this->cfg->phpfspot_db);
       if(!is_writeable($this->cfg->phpfspot_db)) {
          print $this->cfg->phpfspot_db ." is not writeable for user ". $this->getuid() ."\n";
          exit(1);
       }
       $this->check_config_table();
 
-
+      /* include Smarty template engine */
+      if(!$this->check_readable($this->cfg->smarty_path .'/libs/Smarty.class.php')) {
+         exit(1);
+      }
+      require $this->cfg->smarty_path .'/libs/Smarty.class.php';
+      /* overload Smarty class if our own template handler */
+      require_once "phpfspot_tmpl.php";
       $this->tmpl = new PHPFSPOT_TMPL($this);
 
       $this->get_tags();
@@ -1410,7 +1415,7 @@ class PHPFSPOT {
          $missing = true;
       }
 
-      if(!function_exists("sqlite3_open")) {
+      if($this->cfg->db_access == "native" && !function_exists("sqlite3_open")) {
          print "PHP SQLite3 library extension is missing<br />\n";
          $missing = true;
       }
@@ -1942,6 +1947,31 @@ class PHPFSPOT {
    {
       return $this->get_web_protocol() ."://". $this->get_server_name() . $this->cfg->web_path;
    } // get_phpfspot_url()
+   
+   /**
+    * check file exists and is readable
+    *
+    * returns true, if everything is ok, otherwise false
+    * if $silent is not set, this function will output and
+    * error message
+    */
+   private function check_readable($file, $silent = null)
+   {
+      if(!file_exists($file)) {
+         if(!isset($silent))
+            print "File \"". $file ."\" does not exist.\n";
+         return false;
+      }
+
+      if(!is_readable($file)) {
+         if(!isset($silent))
+            print "File \"". $file ."\" is not reachable for user ". $this->getuid() ."\n";
+         return false;
+      }
+
+      return true;
+
+   } // check_readable()
 
 }