Mercurial > hg > fapweb
view dbdefs.inc.php @ 1024:2a96426159f1
Fix configuration file checking.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Fri, 06 Nov 2015 21:41:27 +0200 |
parents | e6e6be0218f8 |
children | 8fecb417e6a9 |
line wrap: on
line source
<? $dbVersion = 30; // // Site settings and defaults we put in // $siteSettingsGroups = array( "general" => array("General", "General settings"), "html" => array("Site HTML", "Global HTML blurbs"), "news" => array("News", "News related settings"), "register" => array("Registration", "Visitor registration"), "event" => array("Event / Schedule", "Event and schedule related settings"), "compos" => array("Compos", "Compo related settings"), "voting" => array("Voting", "Voting related settings"), ); $siteDefaultSettings = array( // // General site settings // "general" => 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"), "showResults" => array(VT_BOOL, false, "Enable results page"), "showInfoTextOnAbout" => array(VT_BOOL, false, "Show site info HTML on About page"), "requireEMail" => array(VT_BOOL, false, "Require e-mail address in registrations"), "allowRegister" => array(VT_BOOL, false, "Enable event registration"), ), "html" => array( "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)"), "siteInfoText" => array(VT_TEXT, " <a href=\"about\"> <img src=\"img/fapsm.png\" alt=\"Finnish Amiga Party 2014\" class=\"logo\" /></a> <div id=\"date\"> 5.-8.12.2014<br /> Helsinki, Finland<br /> @ old location<br /> <span class=\"notice\">Entry 15 EUR + prod</span> </div>", "Site 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"), ), // // News related // "news" => array( "showNews" => array(VT_BOOL, true, "Enable News link on main menu + News page"), "showNewsOnAbout" => array(VT_BOOL, true, "Show latest news item on About page"), "newsHeader" => array(VT_TEXT, "", "News page header text"), ), // // Attendee/visitor registration // "register" => array( "visitorsPageRegLink" => array(VT_TEXT, " <div class=\"reglink\"> To register, use <a href=\"register\">this form</a>. </div> ", "Visitors page registration link blurb"), "registerPageBlurb" => array(VT_TEXT, " <h1>Registration</h1> ", "Registration page header"), "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://#fap2014@ircnet\">#fap2014 @ 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"), ), // // Event / schedule information // "event" => array( "showSchedule" => array(VT_BOOL, true, "Enable Schedule link on main menu + Schedule page"), "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."), ), // // Competitions // "compos" => array( "showCompos" => array(VT_BOOL, true, "Enable Compos link on main menu + Compos page"), "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"), ), // // Voting // "voting" => array( "allowVoting" => array(VT_BOOL, false, "Enable voting (individual compos must be enabled as well)"), "voteFinishedText" => array(VT_TEXT, " <h1>Yay, you have voted!</h1> <p>Now go FAP some more! And make a demo about it.</p> <p>Or perhaps <a href=\"vote\">vote again!</a></p> ", "Message shown after successful voting"), "votingDisabled" => array(VT_TEXT, " <h1>Sorry, voting disabled!</h1> <p>Voting functionality not available at this time.</p> ", "Error message for voting disabled"), "voteAuthError" => array(VT_TEXT, " <h1>Not authenticated to vote</h1> <p> You are not authenticated currently. <a href=\"vote\">Try to login again.</a> </p> ", "Error message for vote auth failure"), ), ); // // Database table definitions // $sqlTables = array( // Site settings "settings_groups" => array( array("id" , "INTEGER", "PRIMARY KEY", "AUTOINCREMENT"), array("name" , "VARCHAR(64)"), array("description" , "VARCHAR(128)"), ), "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)"), array("vgroup" , "INT"), ), "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("notes" , "VARCHAR(".SET_LEN_COMPO_NOTES.")"), array("visible" , "INT", "DEFAULT 0"), array("voting" , "INT", "DEFAULT 0"), // Default preview type (see PREV_* in msite.inc.php) // Global for the compo (entry-specific overrides if it is != PREV_NONE) // Preview filename/path is determined internally array("preview_type" , "INT", "DEFAULT 0"), array("show_authors" , "INT", "DEFAULT 0"), // Show author(s) on compo main screen/voting page for COMPO_NORMAL compos // For COMPO_POINTS and COMPO_ASSIGN, show on results page or not array("ctype" , "INT", "DEFAULT 0"), array("cpath" , "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("info" , "VARCHAR(".SET_LEN_ENTRY_INFO.")", "DEFAULT NULL"), array("notes" , "VARCHAR(".SET_LEN_ENTRY_NOTES.")", "DEFAULT NULL"), array("flags" , "INT", "DEFAULT 0"), array("evalue" , "INT", "DEFAULT 0"), array("file_id" , "INT", "DEFAULT 0"), // uploaded file id from "files" table array("preview_id" , "INT", "DEFAULT 0"), // uploaded preview file id from "files" table array("utime" , "INT", "DEFAULT 0"), array("owner_id" , "INT", "DEFAULT 0"), // 0 = admin, otherwise votekey id ), "files" => array( array("id" , "INTEGER", "PRIMARY KEY", "AUTOINCREMENT"), array("filename" , "VARCHAR(".SET_LEN_ENTRY_FILENAME.")", "DEFAULT NULL"), // stored filename array("origname" , "VARCHAR(".SET_LEN_ENTRY_FILENAME.")", "DEFAULT NULL"), // original uploaded filename array("filetype" , "VARCHAR(32)", "DEFAULT NULL"), // type of the file, if any, as key from $fileTypeData array("uploadtype" , "VARCHAR(32)", "DEFAULT NULL"), // "preview", "entry" array("filesize" , "INT", "DEFAULT 0"), // uploaded size array("entry_id" , "INT", "DEFAULT 0"), // belongs to this entry (0 = none) array("uploader_id" , "INT", "DEFAULT 0"), // 0 = admin, otherwise votekey id array("deleted" , "INT", "DEFAULT 0"), // 1 = to be deleted array("utime" , "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("reghost" , "VARCHAR(".SET_LEN_REGHOST.")", "DEFAULT NULL"), array("key_id" , "INT", "DEFAULT NULL"), array("usr_flags" , "INT", "DEFAULT 0"), array("adm_flags" , "INT", "DEFAULT 0"), ), "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"), array("utime" , "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), ), ); $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"), ), 14 => array( "settings_groups" => array("table" => FALSE), ), 17 => array( "ctype" => array("key" => "type"), "cpath" => array("key" => "path"), ), ); ?>