issue82, read out F-Spot DB version to differ between different databases schemas
[phpfspot.git] / phpfspot.class.php
index e2b24a861b6296589511f8487c05c112e1af721f..6d357e5ad155902320f42b722de050868df2a744 100644 (file)
@@ -32,6 +32,7 @@ class PHPFSPOT {
    var $tmpl;
    var $tags;
    var $avail_tags;
+   private $dbver;
 
    /**
     * class constructor
@@ -58,7 +59,9 @@ class PHPFSPOT {
          print $this->cfg->fspot_db ." is not writeable for user ". $this->getuid() ."\n";
          exit(1);
       }
-      
+
+      $this->dbver = $this->getFspotDBVersion();
+
       if(!is_writeable(dirname($this->cfg->phpfspot_db))) {
          print dirname($this->cfg->phpfspot_db) .": directory is not writeable!";
          exit(1);
@@ -1051,6 +1054,7 @@ class PHPFSPOT {
    {
       $this->tmpl->assign('version', $this->cfg->version);
       $this->tmpl->assign('product', $this->cfg->product);
+      $this->tmpl->assign('db_version', $this->dbver);
       $this->tmpl->show("credits.tpl");
 
    } // showCredits()
@@ -2102,6 +2106,26 @@ class PHPFSPOT {
 
    } // checkDbIndices()
 
-}
+   /**
+    * retrive F-Spot database version
+    *
+    * this function will return the F-Spot database version number
+    * It is stored within the sqlite3 database in the table meta
+    */
+   public function getFspotDBVersion()
+   {
+      if($result = $this->db->db_fetchSingleRow("
+         SELECT data as version
+         FROM meta
+         WHERE
+            name LIKE 'F-Spot Database Version'
+      "))
+         return $result['version'];
+
+      return null;
+
+   } // getFspotDBVersion()
+
+} // class PHPFSPOT
 
 ?>