diff managedb.php @ 555:206196b610fd

Move site specific things to dbdefs.inc.php
author Matti Hamalainen <ccr@tnsp.org>
date Thu, 19 Dec 2013 21:58:52 +0200
parents f13e7a513db1
children ed2247111fdd
line wrap: on
line diff
--- a/managedb.php	Mon Dec 16 03:57:21 2013 +0200
+++ b/managedb.php	Thu Dec 19 21:58:52 2013 +0200
@@ -2,375 +2,26 @@
 <?
 require_once "mconfig.inc.php";
 require_once "msite.inc.php";
+require_once "dbdefs.inc.php";
 
 stCheckCLIExec();
 
-$dbVersion = 12;
+
 $currVersion = -1;
-
-$dbMeta = array(
+$dbMetaData = array(
   "dbVersion" => array(VT_INT, $dbVersion, "Database version"),
 );
 
-
-//
-// Site settings and defaults we put in
-//
-$siteDefaults = array(
-  "maxAttendeesHard" => array(VT_INT, 60, "Maximum attendees (HARD limit, <= 0 means no limit)"),
-  "maxAttendeesSoft" => array(VT_INT, 50, "Maximum attendees (soft limit, <= 0 means no limit)"),
-
-  "userTimeout"      => array(VT_INT, 120, "User pages (voting) timeout in minutes"),
-  "admTimeout"       => array(VT_INT, 15, "Administration interface timeout in minutes"),
-
-  "showAdmin"        => array(VT_BOOL, false, "Always show administration interface link on the menu"),
-  "showAttendees"    => array(VT_BOOL, true, "Show attendees list"),
-  "allowRegister"    => array(VT_BOOL, false, "Enable event registration"),
-  "allowVoting"      => array(VT_BOOL, false, "Enable voting (individual compos must be enabled as well)"),
-
-  "showResults"      => array(VT_BOOL, false, "Enable results page"),
-  "showResAuthors"   => array(VT_BOOL, true, "Show entry authors on results page"),
-
-  "requireEMail"     => array(VT_BOOL, false, "Require e-mail address in registrations"),
-
-  "showNews"         => array(VT_BOOL, true, "Enable News link on main menu"),
-  "showNewsOnAbout"  => array(VT_BOOL, true, "Show latest news item on About page"),
-
-  "registerInfoText" => array(VT_TEXT, "<p>
-Only your <b>handle</b> and the answer to the botcheck are strictly required.
-If you plan on joining the IRC channel
-(<a href=\"irc://#fap2013@ircnet\">#fap2013 @ IRCNet</a>) or staying up to date by other means,
-<b>e-mail</b> is not required either.
-</p>", "Registration page info text"),
-
-  "registerPostText" => array(VT_TEXT, "
-<h1>Registration successful</h1>
-<p>Now go make a demo about it!</p>",
-  "Successful post-registration note text"),
-
-  "registerLimitExceeded" => array(VT_TEXT, "
-<h1>Sorry, registration disabled!</h1>
-<p>
-Registration to the event is not available at this time due to
-number of attendees limit having been reached. <b>:(</b>
-</p>
-",
-  "Registration attendee limit exceeded note text"),
-
-  "registerNotEnabled" => array(VT_TEXT, "
-<h1>Sorry, registration disabled!</h1>
-<p>
-Registration to the event is not enabled at this time.
-</p>
-",
-  "Registration not enabled note text"),
-
-  "registerPostNoEmail" => array(VT_TEXT, "
-<h2>By the way ...</h2>
-<p>As you did not specify an e-mail contact address, you'll have to get updates
-and information about the location (if you don't already know it) by 
-some other means (IRC, for example.)</p>
-", "No e-mail address registration note"),
-
-  "eventDescription" => array(VT_TEXT, "
-<h1>Event program &amp; schedule</h1>
-<ul>
- <li><b>Aegis</b> of DSS and FAG will be performing a DJ gig.</li>
- <li>.. and possible additional live acts. More info to come.</li>
-</ul>
-
-<h2>Friday 30.11.</h2>
-<ul>
- <li><b>18:00</b> - <i>Doors open</i>.</li>
- <li><b>22:00</b> - DJ set by Aegis.</li>
-</ul>
-
-<h2>Saturday 1.12.</h2>
-<ul>
- <li><b>14:00</b> - Deadline for remote entries.</li>
- <li><b>18:00</b> - Deadline for the entries delivered on location.</li>
- <li><b>20:00</b> - Competitions start.</li>
-</ul>
-
-Competition schedule and voting deadline will depend on number of entries.
-
-<h2>Sunday 2.12.</h2>
-<ul>
- <li><b>12:00</b> - Party over?</li>
-</ul>
-", "Event general description / timetables etc."),
-
-
-  "compoDescription" => array(VT_TEXT, "
-<h1>General</h1>
-<p class=\"notice\">
-YOU <b>MUST</b> HAVE AT LEAST ONE ENTRY TO COMPETITIONS IF YOU COME TO THE PARTY.
-</p>
-
-<p class=\"note\">
-If there are enough entries, then AGA/OCS/ECS demos will be run in separate compos.
-<br />
-Remote entries are welcome!
-</p>
-
-<p>
-The compo machine will be an <b>A1200 with an 060/50 and lots of
-RAM</b>. An <b>A500 1.3 512k/512k</b> will also be available if your
-prod is not AGA compatible.
-</p>
-
-<h1>Compos</h1>
-", "Compo general description"),
-
-
-  "siteInfoText"     => array(VT_TEXT, "
-<a href=\"about\">
-<img src=\"img/fapsm.png\" alt=\"Finnish Amiga Party 2013\" class=\"logo\" /></a>
-<div id=\"date\">
-5.-8.12.2013<br />
-Helsinki, Finland<br />
-@ old location<br />
-<span class=\"notice\">Entry 15 EUR + prod</span>
-</div>", "Site header text"),
-
-
-  "newsHeader"  => array(VT_TEXT, "", "News page header text"),
-
-
-  "aboutDescription"  => array(VT_TEXT, "
-<div style=\"text-align: center;\">
-<img src=\"img/fap.png\" alt=\"FAP\" />
-<p>
-Pure Amiga demoscene party, all traditional Amiga compos and purely Amiga-oriented program.
-<br />
-<span class=\"notice\">
-YOU <b>MUST</b> HAVE AT LEAST ONE ENTRY TO COMPETITIONS IF YOU COME TO THE PARTY.
-</span>
-</p>
-</div>",
-  "About page text"),
-
-  "voteFinishedText" => array(VT_TEXT, "
-<h1>Yay, you have voted!</h1>
-<p>Now go FAP some more! And make a demo about it.</p>",
-  "Message shown after successful voting."),
-
-  "siteMenuHeader" => array(VT_TEXT, "<div>13.FAP:&gt; <span class=\"mblink\">&#9632;</span></div>", "Site menu header text"),
-  "siteMenuFooter" => array(VT_TEXT, "", "Site menu footer text"),
-  "siteExtraHTML" => array(VT_TEXT, "<div id=\"sponsors\">Gentle Eye</div>", "Extra global HTML code (f.e. sponsors box)"),
+$sqlTables["dbmeta"] = array(
+  array("key"          , "VARCHAR(32)", "PRIMARY KEY"),
+  array("vtype"        , "INT"),
+  array("vstr"         , "VARCHAR(128)"),
+  array("vtext"        , "TEXT"),
+  array("vint"         , "INT"),
+  array("sdesc"        , "VARCHAR(128)"),
 );
 
 
-//
-// Database table definitions
-//
-$sqlTables = array(
-  // Database metadata
-  "dbmeta" => array(
-    array("key"          , "VARCHAR(32)", "PRIMARY KEY"),
-    array("vtype"        , "INT"),
-    array("vstr"         , "VARCHAR(128)"),
-    array("vtext"        , "TEXT"),
-    array("vint"         , "INT"),
-    array("sdesc"        , "VARCHAR(128)"),
-  ),
-
-  // Site settings
-  "settings" => array(
-    array("key"          , "VARCHAR(32)", "PRIMARY KEY"),
-    array("vtype"        , "INT"),
-    array("vstr"         , "VARCHAR(128)"),
-    array("vtext"        , "TEXT"),
-    array("vint"         , "INT"),
-    array("sdesc"        , "VARCHAR(128)"),
-  ),
-
-  "news" => array(
-    array("id"           , "INTEGER", "PRIMARY KEY", "AUTOINCREMENT"),
-    array("utime"        , "INT"),
-    array("title"        , "VARCHAR(".SET_LEN_NEWS_TITLE.")"),
-    array("text"         , "VARCHAR(".SET_LEN_NEWS_TEXT.")"),
-    array("author"       , "VARCHAR(".SET_LEN_NEWS_AUTHOR.")"),
-    array("persist"      , "INT", "DEFAULT 0"),
-  ),
-
-  "compos" => array(
-    array("id"           , "INTEGER", "PRIMARY KEY", "AUTOINCREMENT"),
-    array("name"         , "VARCHAR(".SET_LEN_COMPO_NAME.")"),
-    array("description"  , "VARCHAR(".SET_LEN_COMPO_DESC.")"),
-    array("visible"      , "INT", "DEFAULT 0"),
-    array("voting"       , "INT", "DEFAULT 0"),
-    array("show_authors" , "INT", "DEFAULT 0"),
-    array("type"         , "INT", "DEFAULT 0"),
-    array("path"         , "VARCHAR(".SET_LEN_COMPO_PATH.")"),
-  ),
-  
-  "entries" => array(
-    array("id"           , "INTEGER", "PRIMARY KEY", "AUTOINCREMENT"),
-    array("show_id"      , "INT", "DEFAULT 0"),
-    array("name"         , "VARCHAR(".SET_LEN_ENTRY_NAME.")"),
-    array("author"       , "VARCHAR(".SET_LEN_ENTRY_AUTHOR.")"),
-    array("compo_id"     , "INT", "DEFAULT 0"),
-    array("filename"     , "VARCHAR(".SET_LEN_ENTRY_FILENAME.")", "DEFAULT NULL"),
-    array("info"         , "VARCHAR(".SET_LEN_ENTRY_INFO.")", "DEFAULT NULL"),
-    array("notes"        , "VARCHAR(".SET_LEN_ENTRY_NOTES.")", "DEFAULT NULL"),
-    array("preview_file" , "VARCHAR(".SET_LEN_ENTRY_PREVIEW_FILE.")", "DEFAULT NULL"),
-    array("preview_type" , "INT", "DEFAULT 0"),
-    array("flags"        , "INT", "DEFAULT 0"),
-  ),
-
-  "attendees" => array(
-    array("id"           , "INTEGER", "PRIMARY KEY", "AUTOINCREMENT"),
-    array("regtime"      , "INT"),
-    array("name"         , "VARCHAR(".SET_LEN_USERNAME.")"),
-    array("groups"       , "VARCHAR(".SET_LEN_GROUPS.")"),
-    array("oneliner"     , "VARCHAR(".SET_LEN_ONELINER.")"),
-    array("email"        , "VARCHAR(".SET_LEN_EMAIL.")"),
-    array("key_id"       , "INT", "DEFAULT NULL"),
-  ),
-
-  "votekeys" => array(
-    array("id"           , "INTEGER", "PRIMARY KEY", "AUTOINCREMENT"),
-    array("key"          , "VARCHAR(".SET_LEN_VOTEKEY.")"),
-    array("active"       , "INT", "DEFAULT 0"),
-  ),
-
-  "votes" => array(
-    array("id"           , "INTEGER", "PRIMARY KEY", "AUTOINCREMENT"),
-    array("entry_id"     , "INT", "DEFAULT NULL"),
-    array("key_id"       , "INT", "DEFAULT 0"),
-    array("value"        , "INT", "DEFAULT 0"),
-  ),
-
-
-  // Party information system tables
-  "display_vars" => array(
-    array("key"          , "VARCHAR(32)", "PRIMARY KEY"),
-    array("vtype"        , "INT"),
-    array("vstr"         , "VARCHAR(128)"),
-    array("vtext"        , "TEXT"),
-    array("vint"         , "INT"),
-    array("sdesc"        , "VARCHAR(128)"),
-  ),
-
-  "display_slides" => array(
-    array("id"           , "INTEGER", "PRIMARY KEY", "AUTOINCREMENT"),
-    array("title"        , "VARCHAR(".SET_LEN_DISP_SLIDE_TITLE.")"),
-    array("text"         , "VARCHAR(".SET_LEN_DISP_SLIDE_TEXT.")"),
-  ),
-
-  "rot_list_data" => array(
-    array("id"           , "INTEGER", "PRIMARY KEY", "AUTOINCREMENT"),
-    array("name"         , "VARCHAR(".SET_LEN_ROT_LIST_NAME.")"),
-  ),
-  
-  "rot_list_slides" => array(
-    array("id"           , "INTEGER", "PRIMARY KEY", "AUTOINCREMENT"),
-    array("list_id"      , "INT", "DEFAULT 0"),
-    array("slide_id"     , "INT", "DEFAULT 0"),
-    array("order_num"    , "INT", "DEFAULT 0"),
-  ),
-);
-
-
-//
-// Party information system settings / data
-//
-$siteDisplayVars = array(
-  "showMode"          => array(VT_INT, 0, "Currently active display mode"),
-  "rotateDuration"    => array(VT_INT, 15, "Slide rotation time per slide (seconds)"),
-
-  "tempDuration"      => array(VT_INT, 5, "Temporary slide display time (minutes)"),
-  "tempSlide"         => array(VT_INT, 0, "Temporary slide ID"),
-
-  "compoID"           => array(VT_INT, 0, "Compo ID of current compo"),
-  "compoPrevEntry"    => array(VT_INT, 0, "Previously shown compo entry"),
-  "compoCurrEntry"    => array(VT_INT, 0, "Current / next compo entry to be shown"),
-  
-  // Not user-manageable
-  "tempSlideSet"      => array(VT_BOOL, false, "Temporary slide set"),
-
-  "activeSlideMode"   => array(VT_INT, 0, "Current active slide display mode"),
-  "activeSlide"       => array(VT_INT, 0, "Current active slide"),
-  "activeSlideExpire" => array(VT_INT, 0, "Expiration timestamp of current slide"),
-
-  "rotateList"        => array(VT_INT, 0, "Current rotation list ID"),
-  "rotateListIndex"   => array(VT_INT, 0, "Current index in rotation list"),
-
-  "lastUpdate"        => array(VT_INT, 0, "Timestamp of last slide update"),
-);
-
-
-//
-// Some premade test data
-//
-$siteTestData = array(
-  "news" => array(
-    "utime,title,text,author",
-    time().",%s,%s,%s",
-    array("Today's news", "We. Are. Back.", "orgaz"),
-    array("Good news, everybody!", "...", "The Professor"),
-  ),
-
-  "votekeys" => array(
-    "key",
-    "%s",
-    array("test1"),
-    array("test2"),
-    array("7jjnqt5z"),
-    array("c7jcfk1G"),
-  ),
-
-  "attendees" => array(
-    "regtime,name,groups,oneliner,email",
-    "%d,%s,%s,%s,%s",
-    array(time()-0, "man with no alias", "supergroup", "foo-bar", "c@supergroup.com"),
-    array(time()-15, "man with alias", "supergroup", "hi!", "c@supergroup.com"),
-    array(time()-30, "alias with a man", "supergroup", "mega super kewl rulets", "x@microsoft.com"),
-  ),
-
-  "compos" => array(
-    "name,description,visible,voting",
-    "%s,%s,1,1",
-    array("Graphics", "Anything in standard resolutions."),
-    array("Protracker music", "Standard 4-channel Protracker MOD music."),
-    array("4k intro", "4k intro competition"),
-  ),
-  
-  "entries" => array(
-    "name,author,compo_id,filename,info",
-    "%s,%s,%d,%s,%s",
-    array("Donkey Dong", "electric/extend", 1, "donkey.lbm", "amigaaaah!"),
-    array("Your kondom", "ccr/TNSP", 1, "kondom.lbm", "oh my god, it's full of cocks!"),
-    array("Penis song", "reed/flt", 2, "penis.mod", "laulu rakkaudelle"),
-    array("jenkka", "aegis", 2, "jenkka.mod", ""),
-    array("Fungiform 2", "mfx", 3, "mfx-fungiform2.lzh", "OCS-only"),
-  ),
-  
-  "display_slides" => array(
-    "title,text",
-    "%s,%s",
-    array("Next Up 4k", "<h1>Next up: 4k intro</h1><h2>4k intro compo is about to begin</h2>... in about 10 minutes."),
-    array("Astu to infodesk", "<b>Astu</b> - please come to info desk!"),
-    array("Gentle Eye mainos", "<b>Buy Amiga stuff!</b><br />Gentle Eye Oy is selling Amiga-related stuff near organizer desk!"),
-  ),
-  
-  "rot_list_data" => array(
-    "name",
-    "%s",
-    array("Main rotation"),
-    array("Next Up"),
-  ),
-  
-  "rot_list_slides" => array(
-    "list_id,slide_id",
-    "%d,%d",
-    array(1,2),
-    array(1,3),
-    array(2,1),
-  ),
-);
-
 
 //
 // Helper functions
@@ -444,18 +95,6 @@
 }
 
 
-$upgradeMappings = array(
-//  "" => array("key" => "", value => ""),
-  12 => array(
-    "show_authors" => array("key" => "showAuthors"),
-    "display_vars" => array("table" => "displayVars"),
-    "display_slides" => array("table" => "displaySlides"),
-    "rot_list_data" => array("table" => "rotationListData"),
-    "rot_list_slides" => array("table" => "rotationListSlides"),
-  ),
-);
-
-
 function stUpgradeMap($type, $name)
 {
   global $upgradeMappings, $currVersion, $dbVersion;
@@ -771,7 +410,7 @@
     // Create tables, add defaults
     if (stCreateTables($inDB, FALSE))
     {
-      stAddSettings($inDB, $inDB, $dbMeta, "dbmeta", FALSE);
+      stAddSettings($inDB, $inDB, $dbMetaData, "dbmeta", FALSE);
       stAddSettings($inDB, $inDB, $siteDefaults, "settings", FALSE);
       stAddSettings($inDB, $inDB, $siteDisplayVars, "display_vars", FALSE);
     }
@@ -833,7 +472,7 @@
       if (!stAddSettings($inDB, $outDB, $siteDisplayVars, "display_vars", TRUE))
         exit;
 
-      stAddSettings($inDB, $outDB, $dbMeta, "dbmeta", TRUE);
+      stAddSettings($inDB, $outDB, $dbMetaData, "dbmeta", TRUE);
 
       // Migrate other tables
       if (!stMigrateTables($inDB, $outDB, $upgrade, array("settings", "display_vars", "dbmeta")))