Mercurial > hg > fapweb
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 & 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:> <span class=\"mblink\">■</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")))