issue implode() instead of looping around an array, arun
[phpfspot.git] / phpfspot.class.php
index ffb511d97361df9c475132a27bb0c9e4cc6d7f99..d67c7e39dc4f1b1543296ce209ed7e0071a4beaa 100644 (file)
@@ -23,7 +23,6 @@
 
 require_once "phpfspot_cfg.php";
 require_once "phpfspot_db.php";
 
 require_once "phpfspot_cfg.php";
 require_once "phpfspot_db.php";
-require_once "phpfspot_tmpl.php";
 
 class PHPFSPOT {
 
 
 class PHPFSPOT {
 
@@ -43,23 +42,38 @@ class PHPFSPOT {
     */
    public function __construct()
    {
     */
    public function __construct()
    {
+      $this->cfg = new PHPFSPOT_CFG;
+
+      /* set application name and version information */
+      $this->cfg->product = "phpfspot";
+      $this->cfg->version = "1.2";
+
       /* Check necessary requirements */
       if(!$this->checkRequirements()) {
          exit(1);
       }
 
       /* Check necessary requirements */
       if(!$this->checkRequirements()) {
          exit(1);
       }
 
-      $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);
       }
          
       
       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();
 
       $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();
       $this->tmpl = new PHPFSPOT_TMPL($this);
 
       $this->get_tags();
@@ -100,35 +114,36 @@ class PHPFSPOT {
       $this->tmpl->assign('searchfor', $_SESSION['searchfor']);
       $this->tmpl->assign('page_title', $this->cfg->page_title);
       $this->tmpl->assign('current_condition', $_SESSION['tag_condition']);
       $this->tmpl->assign('searchfor', $_SESSION['searchfor']);
       $this->tmpl->assign('page_title', $this->cfg->page_title);
       $this->tmpl->assign('current_condition', $_SESSION['tag_condition']);
+      $this->tmpl->assign('template_path', 'themes/'. $this->cfg->theme_name);
 
       $_SESSION['start_action'] = $_GET['mode'];
 
       switch($_GET['mode']) {
          case 'showpi':
             if(isset($_GET['tags'])) {
 
       $_SESSION['start_action'] = $_GET['mode'];
 
       switch($_GET['mode']) {
          case 'showpi':
             if(isset($_GET['tags'])) {
-               $_SESSION['selected_tags'] = split(',', $_GET['tags']);
+               $_SESSION['selected_tags'] = $this->extractTags($_GET['tags']);
             }
             }
-            if(isset($_GET['from_date'])) {
-               $_SESSION['from_date'] = $_GET['from_date'];
+            if(isset($_GET['from_date']) && $this->isValidDate($_GET['from_date'])) {
+               $_SESSION['from_date'] = strtotime($_GET['from_date'] ." 00:00:00");
             }
             }
-            if(isset($_GET['to_date'])) {
-               $_SESSION['to_date'] = $_GET['to_date'];
+            if(isset($_GET['to_date']) && $this->isValidDate($_GET['to_date'])) {
+               $_SESSION['to_date'] = strtotime($_GET['to_date'] ." 23:59:59");
             }
             break;
          case 'showp':
             if(isset($_GET['tags'])) {
             }
             break;
          case 'showp':
             if(isset($_GET['tags'])) {
-               $_SESSION['selected_tags'] = split(',', $_GET['tags']);
+               $_SESSION['selected_tags'] = $this->extractTags($_GET['tags']);
                $_SESSION['start_action'] = 'showp';
             }
                $_SESSION['start_action'] = 'showp';
             }
-            if(isset($_GET['id'])) {
+            if(isset($_GET['id']) && is_numeric($_GET['id'])) {
                $_SESSION['current_photo'] = $_GET['id'];
                $_SESSION['start_action'] = 'showp';
             }
                $_SESSION['current_photo'] = $_GET['id'];
                $_SESSION['start_action'] = 'showp';
             }
-            if(isset($_GET['from_date'])) {
-               $_SESSION['from_date'] = $_GET['from_date'];
+            if(isset($_GET['from_date']) && $this->isValidDate($_GET['from_date'])) {
+               $_SESSION['from_date'] = strtotime($_GET['from_date']);
             }
             }
-            if(isset($_GET['to_date'])) {
-               $_SESSION['to_date'] = $_GET['to_date'];
+            if(isset($_GET['to_date']) && $this->isValidDate($_GET['to_date'])) {
+               $_SESSION['to_date'] = strtotime($_GET['to_date']);
             }
             break;
          case 'export':
             }
             break;
          case 'export':