changeset 11:c10bf196390f

Improve database initialization script.
author Matti Hamalainen <ccr@tnsp.org>
date Thu, 06 Dec 2012 14:45:07 +0200
parents 11816aad6967
children 358534308c61
files createdb.php
diffstat 1 files changed, 30 insertions(+), 20 deletions(-) [+]
line wrap: on
line diff
--- a/createdb.php	Thu Dec 06 14:44:30 2012 +0200
+++ b/createdb.php	Thu Dec 06 14:45:07 2012 +0200
@@ -9,21 +9,23 @@
 
 // The defaults we put in
 $siteDefaults = array(
-  "maxAttendees"     => array(VT_INT, 30),
+  "maxAttendees"     => array(VT_INT, 30, "Maximum attendees (soft limit)"),
 
-  "voteTimeout"      => array(VT_INT, 120*60),
-  "admTimeout"       => array(VT_INT, 15*60),
+  "voteTimeout"      => array(VT_INT, 120*60, "Vote page timeout (seconds)"),
+  "admTimeout"       => array(VT_INT, 15*60, "Administration interface timeout (seconds)"),
 
-  "allowRegister"    => array(VT_BOOL, false),
-  "allowVoting"      => array(VT_BOOL, false),
-  "showAttendees"    => array(VT_BOOL, false),
-  "showResults"      => array(VT_BOOL, false),
-  "showResAuthors"   => array(VT_BOOL, false),
-  "showVoteAuthors"  => array(VT_BOOL, false),
+  "allowRegister"    => array(VT_BOOL, false, "Enable event registration"),
+  "allowVoting"      => array(VT_BOOL, false, "Enable voting"),
+  "showAttendees"    => array(VT_BOOL, false, "Show attendees list"),
+  "showResults"      => array(VT_BOOL, false, "Enable results page"),
+  "showResAuthors"   => array(VT_BOOL, false, "Show entry authors on results page"),
+  "showVoteAuthors"  => array(VT_BOOL, false, "Show entry authors on voting page"),
 
-  "eventDescription" => array(VT_TEXT, ""),
-  "compoDescription" => array(VT_TEXT, ""),
-  "siteInfoText"     => array(VT_TEXT, "<a href=\"news\"><img src=\"img/fapsm.png\" alt=\"Finnish Amiga Party 2012\" class=\"logo\" /></a><div id=\"date\">30.11. - 2.12.2012<br />Helsinki, Finland<br />@ old location<br />Entry 15 EUR + prod</div>"),
+  "eventDescription" => array(VT_TEXT, "", "Event general description / timetables etc."),
+  "compoDescription" => array(VT_TEXT, "", "Compo general description"),
+  "siteInfoText"     => array(VT_TEXT,
+"<a href=\"news\"><img src=\"img/fapsm.png\" alt=\"Finnish Amiga Party 2012\" class=\"logo\" /></a><div id=\"date\">30.11. - 2.12.2012<br />Helsinki, Finland<br />@ old location<br />Entry 15 EUR + prod</div>",
+  "Site header text"),
   "newsDescription"  => array(VT_TEXT, "
 <div style=\"text-align: center;\">
 <img src=\"img/fap.png\" alt=\"FAP\" />
@@ -34,8 +36,8 @@
 YOU <b>MUST</b> HAVE AT LEAST ONE ENTRY TO COMPETITIONS IF YOU COME TO THE PARTY.
 </span>
 </p>
-</div>
-  "),
+</div>",
+  "News page header text"),
 );
 
 $sqlTables = array(
@@ -45,7 +47,7 @@
   "entries" => "id INTEGER PRIMARY KEY AUTOINCREMENT, name VARCHAR(64), author VARCHAR(64), compo_id INT DEFAULT NULL",
   "voters" => "id INTEGER PRIMARY KEY AUTOINCREMENT, key VARCHAR(64), name VARCHAR(64), enabled INT DEFAULT 0",
   "votes" => "id INTEGER PRIMARY KEY AUTOINCREMENT, entry_id INT DEFAULT NULL, voter_id INT DEFAULT NULL, value INT DEFAULT 0",
-  "settings" => "key VARCHAR(32) PRIMARY KEY, vtype INT, vstr VARCHAR(128), vtext TEXT, vint INT",
+  "settings" => "key VARCHAR(32) PRIMARY KEY, vtype INT, vstr VARCHAR(128), vtext TEXT, vint INT, desc VARCHAR(128)",
 );
 
 
@@ -66,6 +68,12 @@
 }
 
 
+function stCreateOneTable($name, $schema)
+{
+  return (stExecSQL("CREATE TABLE ".$name." (".$schema.")") !== FALSE) ? TRUE : FALSE;
+}
+
+
 function stCreateTables()
 {
   global $sqlTables;
@@ -73,7 +81,7 @@
   foreach ($sqlTables as $name => $schema)
   {
     echo " - '".$name."'\n";
-    if (stExecSQL("CREATE TABLE ".$name." (".$schema.")") === FALSE)
+    if (!stCreateOneTable($name, $schema))
       return FALSE;
   }
   return TRUE;
@@ -95,8 +103,8 @@
     }
 
     $sql = stPrepareSQL(
-      "INSERT INTO settings (key,vtype,".$var.") VALUES (%s,%d,".$type.")",
-      $key, $value[0], $value[1]);
+      "INSERT INTO settings (key,vtype,".$var.",desc) VALUES (%s,%d,".$type.",%s)",
+      $key, $value[0], $value[1], $value[2]);
     
     stExecSQL($sql);
   }
@@ -135,8 +143,10 @@
 
   case "reset":
     echo "Deleting old settings.\n";
-    stExecSQL("DELETE FROM settings");
-    stAddSettings();
+    stExecSQL("DROP TABLE settings");
+
+    if (stCreateOneTable("settings", $sqlTables["settings"]))
+      stAddSettings();
     break;
 }