annotate msitegen.inc.php @ 1096:bbc0a3d0b51e

Major renaming / refactor of site messages. Some that were previously modifiable from admin interface are now "hardcoded" in the configuration file. Having these settings made modifiable from there made no sense and just took space in the UI.
author Matti Hamalainen <ccr@tnsp.org>
date Fri, 27 Jan 2017 22:15:06 +0200
parents 7bfa5a38b6ca
children c9c73d2c4702
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1071
76e11ae923a7 Use long tags.
Matti Hamalainen <ccr@tnsp.org>
parents: 1069
diff changeset
1 <?php
0
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
2 //
571
ce11ea112a65 Change the header blurb a bit.
Matti Hamalainen <ccr@tnsp.org>
parents: 569
diff changeset
3 // FAPWeb - Simple Web-based Demoparty Management System
33
5bf22431176c Modularize.
Matti Hamalainen <ccr@tnsp.org>
parents: 32
diff changeset
4 // Generic and miscellaneous site support code
1072
7da8bde9b7be Bump copyrights.
Matti Hamalainen <ccr@tnsp.org>
parents: 1071
diff changeset
5 // (C) Copyright 2012-2017 Tecnic Software productions (TNSP)
0
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
6 //
9
fa9b66f596bb More work on settings storage.
Matti Hamalainen <ccr@tnsp.org>
parents: 8
diff changeset
7
fa9b66f596bb More work on settings storage.
Matti Hamalainen <ccr@tnsp.org>
parents: 8
diff changeset
8 // Globals and definitions
0
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
9 $errorSet = FALSE;
210
cafc05949a19 Work on error handling.
Matti Hamalainen <ccr@tnsp.org>
parents: 208
diff changeset
10 $errorMsgs = array();
208
8985d2bdb29b More work on error handling etc.
Matti Hamalainen <ccr@tnsp.org>
parents: 198
diff changeset
11 $statusSet = 0;
8985d2bdb29b More work on error handling etc.
Matti Hamalainen <ccr@tnsp.org>
parents: 198
diff changeset
12 $statusMsg = "";
0
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
13
184
1b30c2107e5b Add function for validating input with different definable conditions. Use
Matti Hamalainen <ccr@tnsp.org>
parents: 180
diff changeset
14 // Value types
8
4c5f651aa107 Migrate certain settings to SQL database, cleanups, etc.
Matti Hamalainen <ccr@tnsp.org>
parents: 7
diff changeset
15 define("VT_STR", 1);
4c5f651aa107 Migrate certain settings to SQL database, cleanups, etc.
Matti Hamalainen <ccr@tnsp.org>
parents: 7
diff changeset
16 define("VT_INT", 2);
4c5f651aa107 Migrate certain settings to SQL database, cleanups, etc.
Matti Hamalainen <ccr@tnsp.org>
parents: 7
diff changeset
17 define("VT_BOOL", 3);
4c5f651aa107 Migrate certain settings to SQL database, cleanups, etc.
Matti Hamalainen <ccr@tnsp.org>
parents: 7
diff changeset
18 define("VT_TEXT", 4);
4c5f651aa107 Migrate certain settings to SQL database, cleanups, etc.
Matti Hamalainen <ccr@tnsp.org>
parents: 7
diff changeset
19
184
1b30c2107e5b Add function for validating input with different definable conditions. Use
Matti Hamalainen <ccr@tnsp.org>
parents: 180
diff changeset
20 // Validation check types
1b30c2107e5b Add function for validating input with different definable conditions. Use
Matti Hamalainen <ccr@tnsp.org>
parents: 180
diff changeset
21 define("CHK_TYPE", 1);
1b30c2107e5b Add function for validating input with different definable conditions. Use
Matti Hamalainen <ccr@tnsp.org>
parents: 180
diff changeset
22 define("CHK_ISLT", 2);
1b30c2107e5b Add function for validating input with different definable conditions. Use
Matti Hamalainen <ccr@tnsp.org>
parents: 180
diff changeset
23 define("CHK_ISGT", 3);
1b30c2107e5b Add function for validating input with different definable conditions. Use
Matti Hamalainen <ccr@tnsp.org>
parents: 180
diff changeset
24 define("CHK_ISEQ", 4);
244
70c424d025d6 Improve input validation helper functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 232
diff changeset
25 define("CHK_GTEQ", 5);
70c424d025d6 Improve input validation helper functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 232
diff changeset
26 define("CHK_LTEQ", 6);
70c424d025d6 Improve input validation helper functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 232
diff changeset
27 define("CHK_RANGE", 7);
70c424d025d6 Improve input validation helper functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 232
diff changeset
28 define("CHK_CUSTOM", 8);
907
affd8bd8c910 Add new check type(s) CHK_ARRAY_KEY and CHK_ARRAY_VAL, remove CHK_ARRAY as
Matti Hamalainen <ccr@tnsp.org>
parents: 906
diff changeset
29 define("CHK_ARRAY_KEY", 9);
908
21b163500ed6 Oops, 100L.
Matti Hamalainen <ccr@tnsp.org>
parents: 907
diff changeset
30 define("CHK_ARRAY_VAL", 10);
184
1b30c2107e5b Add function for validating input with different definable conditions. Use
Matti Hamalainen <ccr@tnsp.org>
parents: 180
diff changeset
31
94
6edd7d623eab Start adding votekey modes code.
Matti Hamalainen <ccr@tnsp.org>
parents: 87
diff changeset
32
173
fef53f6170b5 Move stDebug() to msitegen module.
Matti Hamalainen <ccr@tnsp.org>
parents: 172
diff changeset
33 function stDebug($msg)
fef53f6170b5 Move stDebug() to msitegen module.
Matti Hamalainen <ccr@tnsp.org>
parents: 172
diff changeset
34 {
fef53f6170b5 Move stDebug() to msitegen module.
Matti Hamalainen <ccr@tnsp.org>
parents: 172
diff changeset
35 if (stGetSetting("debug"))
906
0fe53c3ddcfb Error logging stuff.
Matti Hamalainen <ccr@tnsp.org>
parents: 896
diff changeset
36 error_log("FAPWeb[D]: ".$msg);
173
fef53f6170b5 Move stDebug() to msitegen module.
Matti Hamalainen <ccr@tnsp.org>
parents: 172
diff changeset
37 }
fef53f6170b5 Move stDebug() to msitegen module.
Matti Hamalainen <ccr@tnsp.org>
parents: 172
diff changeset
38
fef53f6170b5 Move stDebug() to msitegen module.
Matti Hamalainen <ccr@tnsp.org>
parents: 172
diff changeset
39
874
ffb5643eff4f Rename functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 861
diff changeset
40 function stLogError($msg)
861
62b3a69e9030 Add stErrorLog() and use it.
Matti Hamalainen <ccr@tnsp.org>
parents: 836
diff changeset
41 {
906
0fe53c3ddcfb Error logging stuff.
Matti Hamalainen <ccr@tnsp.org>
parents: 896
diff changeset
42 error_log("FAPWeb[E]: ".$msg);
861
62b3a69e9030 Add stErrorLog() and use it.
Matti Hamalainen <ccr@tnsp.org>
parents: 836
diff changeset
43 return FALSE;
62b3a69e9030 Add stErrorLog() and use it.
Matti Hamalainen <ccr@tnsp.org>
parents: 836
diff changeset
44 }
62b3a69e9030 Add stErrorLog() and use it.
Matti Hamalainen <ccr@tnsp.org>
parents: 836
diff changeset
45
62b3a69e9030 Add stErrorLog() and use it.
Matti Hamalainen <ccr@tnsp.org>
parents: 836
diff changeset
46
874
ffb5643eff4f Rename functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 861
diff changeset
47 function stLogSQLError($dbh, $sql)
ffb5643eff4f Rename functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 861
diff changeset
48 {
906
0fe53c3ddcfb Error logging stuff.
Matti Hamalainen <ccr@tnsp.org>
parents: 896
diff changeset
49 return stLogError("SQL error '".implode("; ", $dbh->errorInfo())."' in statement: \"".$sql."\"");
874
ffb5643eff4f Rename functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 861
diff changeset
50 }
ffb5643eff4f Rename functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 861
diff changeset
51
ffb5643eff4f Rename functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 861
diff changeset
52
0
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
53 function stError($msg)
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
54 {
210
cafc05949a19 Work on error handling.
Matti Hamalainen <ccr@tnsp.org>
parents: 208
diff changeset
55 global $errorSet, $errorMsgs;
0
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
56 $errorSet = TRUE;
210
cafc05949a19 Work on error handling.
Matti Hamalainen <ccr@tnsp.org>
parents: 208
diff changeset
57 $errorMsgs[] = $msg;
812
8083b39d3bde Return FALSE from stError() functions, as a convenience.
Matti Hamalainen <ccr@tnsp.org>
parents: 811
diff changeset
58 return FALSE;
0
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
59 }
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
60
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
61
208
8985d2bdb29b More work on error handling etc.
Matti Hamalainen <ccr@tnsp.org>
parents: 198
diff changeset
62 function stSetStatus($status, $msg)
8985d2bdb29b More work on error handling etc.
Matti Hamalainen <ccr@tnsp.org>
parents: 198
diff changeset
63 {
8985d2bdb29b More work on error handling etc.
Matti Hamalainen <ccr@tnsp.org>
parents: 198
diff changeset
64 global $statusSet, $statusMsg;
8985d2bdb29b More work on error handling etc.
Matti Hamalainen <ccr@tnsp.org>
parents: 198
diff changeset
65 $statusMsg = $msg;
8985d2bdb29b More work on error handling etc.
Matti Hamalainen <ccr@tnsp.org>
parents: 198
diff changeset
66 $statusSet = $status;
8985d2bdb29b More work on error handling etc.
Matti Hamalainen <ccr@tnsp.org>
parents: 198
diff changeset
67 }
8985d2bdb29b More work on error handling etc.
Matti Hamalainen <ccr@tnsp.org>
parents: 198
diff changeset
68
8985d2bdb29b More work on error handling etc.
Matti Hamalainen <ccr@tnsp.org>
parents: 198
diff changeset
69
211
5bae42020034 Factorize some code into msitegen.
Matti Hamalainen <ccr@tnsp.org>
parents: 210
diff changeset
70 function stDumpAJAXStatusErrors()
5bae42020034 Factorize some code into msitegen.
Matti Hamalainen <ccr@tnsp.org>
parents: 210
diff changeset
71 {
5bae42020034 Factorize some code into msitegen.
Matti Hamalainen <ccr@tnsp.org>
parents: 210
diff changeset
72 global $errorSet, $errorMsgs, $statusSet, $statusMsg;
5bae42020034 Factorize some code into msitegen.
Matti Hamalainen <ccr@tnsp.org>
parents: 210
diff changeset
73
5bae42020034 Factorize some code into msitegen.
Matti Hamalainen <ccr@tnsp.org>
parents: 210
diff changeset
74 if ($errorSet && !$statusSet)
5bae42020034 Factorize some code into msitegen.
Matti Hamalainen <ccr@tnsp.org>
parents: 210
diff changeset
75 stSetStatus(902, "Error");
5bae42020034 Factorize some code into msitegen.
Matti Hamalainen <ccr@tnsp.org>
parents: 210
diff changeset
76
5bae42020034 Factorize some code into msitegen.
Matti Hamalainen <ccr@tnsp.org>
parents: 210
diff changeset
77 if ($statusSet)
5bae42020034 Factorize some code into msitegen.
Matti Hamalainen <ccr@tnsp.org>
parents: 210
diff changeset
78 {
229
Matti Hamalainen <ccr@tnsp.org>
parents: 211
diff changeset
79 header("HTTP/1.0 ".$statusSet." ".$statusMsg);
211
5bae42020034 Factorize some code into msitegen.
Matti Hamalainen <ccr@tnsp.org>
parents: 210
diff changeset
80 header("Status: ".$statusSet." ".$statusMsg);
5bae42020034 Factorize some code into msitegen.
Matti Hamalainen <ccr@tnsp.org>
parents: 210
diff changeset
81 }
5bae42020034 Factorize some code into msitegen.
Matti Hamalainen <ccr@tnsp.org>
parents: 210
diff changeset
82
5bae42020034 Factorize some code into msitegen.
Matti Hamalainen <ccr@tnsp.org>
parents: 210
diff changeset
83 if ($errorSet)
5bae42020034 Factorize some code into msitegen.
Matti Hamalainen <ccr@tnsp.org>
parents: 210
diff changeset
84 {
559
67c6bde8d265 Cosmetics.
Matti Hamalainen <ccr@tnsp.org>
parents: 558
diff changeset
85 echo
67c6bde8d265 Cosmetics.
Matti Hamalainen <ccr@tnsp.org>
parents: 558
diff changeset
86 "<h1>Following errors occured</h1>\n".
349
61c4dda0ec03 New message/confirmation boxes code done in JS + CSS instead of relying on
Matti Hamalainen <ccr@tnsp.org>
parents: 336
diff changeset
87 "<ul>\n";
559
67c6bde8d265 Cosmetics.
Matti Hamalainen <ccr@tnsp.org>
parents: 558
diff changeset
88
211
5bae42020034 Factorize some code into msitegen.
Matti Hamalainen <ccr@tnsp.org>
parents: 210
diff changeset
89 foreach ($errorMsgs as $msg)
349
61c4dda0ec03 New message/confirmation boxes code done in JS + CSS instead of relying on
Matti Hamalainen <ccr@tnsp.org>
parents: 336
diff changeset
90 echo " <li>".chentities($msg)."</li>\n";
559
67c6bde8d265 Cosmetics.
Matti Hamalainen <ccr@tnsp.org>
parents: 558
diff changeset
91
349
61c4dda0ec03 New message/confirmation boxes code done in JS + CSS instead of relying on
Matti Hamalainen <ccr@tnsp.org>
parents: 336
diff changeset
92 echo "</ul>\n";
211
5bae42020034 Factorize some code into msitegen.
Matti Hamalainen <ccr@tnsp.org>
parents: 210
diff changeset
93 }
5bae42020034 Factorize some code into msitegen.
Matti Hamalainen <ccr@tnsp.org>
parents: 210
diff changeset
94 }
5bae42020034 Factorize some code into msitegen.
Matti Hamalainen <ccr@tnsp.org>
parents: 210
diff changeset
95
5bae42020034 Factorize some code into msitegen.
Matti Hamalainen <ccr@tnsp.org>
parents: 210
diff changeset
96
0
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
97 function stCheckHTTPS()
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
98 {
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
99 return isset($_SERVER["HTTPS"]) && ($_SERVER["HTTPS"] != "" && $_SERVER["HTTPS"] != "off");
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
100 }
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
101
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
102
5
76c3b89d7b11 Improve voting, clean up the code, etc.
Matti Hamalainen <ccr@tnsp.org>
parents: 0
diff changeset
103 function stSetupCacheControl()
76c3b89d7b11 Improve voting, clean up the code, etc.
Matti Hamalainen <ccr@tnsp.org>
parents: 0
diff changeset
104 {
8
4c5f651aa107 Migrate certain settings to SQL database, cleanups, etc.
Matti Hamalainen <ccr@tnsp.org>
parents: 7
diff changeset
105 header("Cache-Control: must-revalidate, no-store, private");
4c5f651aa107 Migrate certain settings to SQL database, cleanups, etc.
Matti Hamalainen <ccr@tnsp.org>
parents: 7
diff changeset
106 header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); // Date in the past
5
76c3b89d7b11 Improve voting, clean up the code, etc.
Matti Hamalainen <ccr@tnsp.org>
parents: 0
diff changeset
107 }
76c3b89d7b11 Improve voting, clean up the code, etc.
Matti Hamalainen <ccr@tnsp.org>
parents: 0
diff changeset
108
76c3b89d7b11 Improve voting, clean up the code, etc.
Matti Hamalainen <ccr@tnsp.org>
parents: 0
diff changeset
109
198
96ab189e5c03 Add some new helper functions and use them.
Matti Hamalainen <ccr@tnsp.org>
parents: 184
diff changeset
110 function stGetSQLSettingData($item)
96ab189e5c03 Add some new helper functions and use them.
Matti Hamalainen <ccr@tnsp.org>
parents: 184
diff changeset
111 {
96ab189e5c03 Add some new helper functions and use them.
Matti Hamalainen <ccr@tnsp.org>
parents: 184
diff changeset
112 switch ($item["vtype"])
96ab189e5c03 Add some new helper functions and use them.
Matti Hamalainen <ccr@tnsp.org>
parents: 184
diff changeset
113 {
96ab189e5c03 Add some new helper functions and use them.
Matti Hamalainen <ccr@tnsp.org>
parents: 184
diff changeset
114 case VT_INT: return intval($item["vint"]);
96ab189e5c03 Add some new helper functions and use them.
Matti Hamalainen <ccr@tnsp.org>
parents: 184
diff changeset
115 case VT_BOOL: return intval($item["vint"]) ? true : false;
96ab189e5c03 Add some new helper functions and use them.
Matti Hamalainen <ccr@tnsp.org>
parents: 184
diff changeset
116 case VT_STR: return $item["vstr"];
96ab189e5c03 Add some new helper functions and use them.
Matti Hamalainen <ccr@tnsp.org>
parents: 184
diff changeset
117 case VT_TEXT: return $item["vtext"];
96ab189e5c03 Add some new helper functions and use them.
Matti Hamalainen <ccr@tnsp.org>
parents: 184
diff changeset
118 }
96ab189e5c03 Add some new helper functions and use them.
Matti Hamalainen <ccr@tnsp.org>
parents: 184
diff changeset
119 }
96ab189e5c03 Add some new helper functions and use them.
Matti Hamalainen <ccr@tnsp.org>
parents: 184
diff changeset
120
96ab189e5c03 Add some new helper functions and use them.
Matti Hamalainen <ccr@tnsp.org>
parents: 184
diff changeset
121
96ab189e5c03 Add some new helper functions and use them.
Matti Hamalainen <ccr@tnsp.org>
parents: 184
diff changeset
122 function stGetSettingSQL($item, $val)
96ab189e5c03 Add some new helper functions and use them.
Matti Hamalainen <ccr@tnsp.org>
parents: 184
diff changeset
123 {
96ab189e5c03 Add some new helper functions and use them.
Matti Hamalainen <ccr@tnsp.org>
parents: 184
diff changeset
124 global $db;
96ab189e5c03 Add some new helper functions and use them.
Matti Hamalainen <ccr@tnsp.org>
parents: 184
diff changeset
125 switch ($item["vtype"])
96ab189e5c03 Add some new helper functions and use them.
Matti Hamalainen <ccr@tnsp.org>
parents: 184
diff changeset
126 {
96ab189e5c03 Add some new helper functions and use them.
Matti Hamalainen <ccr@tnsp.org>
parents: 184
diff changeset
127 case VT_INT: return "vint=".intval($val); break;
96ab189e5c03 Add some new helper functions and use them.
Matti Hamalainen <ccr@tnsp.org>
parents: 184
diff changeset
128 case VT_BOOL: return "vint=".($val ? "1" : "0"); break;
96ab189e5c03 Add some new helper functions and use them.
Matti Hamalainen <ccr@tnsp.org>
parents: 184
diff changeset
129 case VT_STR: return "vstr=".$db->quote($val); break;
96ab189e5c03 Add some new helper functions and use them.
Matti Hamalainen <ccr@tnsp.org>
parents: 184
diff changeset
130 case VT_TEXT: return "vtext=".$db->quote($val); break;
96ab189e5c03 Add some new helper functions and use them.
Matti Hamalainen <ccr@tnsp.org>
parents: 184
diff changeset
131 default: return FALSE;
96ab189e5c03 Add some new helper functions and use them.
Matti Hamalainen <ccr@tnsp.org>
parents: 184
diff changeset
132 }
96ab189e5c03 Add some new helper functions and use them.
Matti Hamalainen <ccr@tnsp.org>
parents: 184
diff changeset
133 }
96ab189e5c03 Add some new helper functions and use them.
Matti Hamalainen <ccr@tnsp.org>
parents: 184
diff changeset
134
293
19964ec7f552 Cosmetic.
Matti Hamalainen <ccr@tnsp.org>
parents: 292
diff changeset
135
8
4c5f651aa107 Migrate certain settings to SQL database, cleanups, etc.
Matti Hamalainen <ccr@tnsp.org>
parents: 7
diff changeset
136 function stReloadSettings()
4c5f651aa107 Migrate certain settings to SQL database, cleanups, etc.
Matti Hamalainen <ccr@tnsp.org>
parents: 7
diff changeset
137 {
4c5f651aa107 Migrate certain settings to SQL database, cleanups, etc.
Matti Hamalainen <ccr@tnsp.org>
parents: 7
diff changeset
138 global $siteSettings;
198
96ab189e5c03 Add some new helper functions and use them.
Matti Hamalainen <ccr@tnsp.org>
parents: 184
diff changeset
139
96ab189e5c03 Add some new helper functions and use them.
Matti Hamalainen <ccr@tnsp.org>
parents: 184
diff changeset
140 if (($res = stExecSQL("SELECT * FROM settings")) !== FALSE)
8
4c5f651aa107 Migrate certain settings to SQL database, cleanups, etc.
Matti Hamalainen <ccr@tnsp.org>
parents: 7
diff changeset
141 {
198
96ab189e5c03 Add some new helper functions and use them.
Matti Hamalainen <ccr@tnsp.org>
parents: 184
diff changeset
142 foreach ($res as $item)
96ab189e5c03 Add some new helper functions and use them.
Matti Hamalainen <ccr@tnsp.org>
parents: 184
diff changeset
143 $siteSettings[$item["key"]] = stGetSQLSettingData($item);
8
4c5f651aa107 Migrate certain settings to SQL database, cleanups, etc.
Matti Hamalainen <ccr@tnsp.org>
parents: 7
diff changeset
144 }
4c5f651aa107 Migrate certain settings to SQL database, cleanups, etc.
Matti Hamalainen <ccr@tnsp.org>
parents: 7
diff changeset
145 else
4c5f651aa107 Migrate certain settings to SQL database, cleanups, etc.
Matti Hamalainen <ccr@tnsp.org>
parents: 7
diff changeset
146 die("Error fetching site settings.");
4c5f651aa107 Migrate certain settings to SQL database, cleanups, etc.
Matti Hamalainen <ccr@tnsp.org>
parents: 7
diff changeset
147 }
4c5f651aa107 Migrate certain settings to SQL database, cleanups, etc.
Matti Hamalainen <ccr@tnsp.org>
parents: 7
diff changeset
148
4c5f651aa107 Migrate certain settings to SQL database, cleanups, etc.
Matti Hamalainen <ccr@tnsp.org>
parents: 7
diff changeset
149
538
Matti Hamalainen <ccr@tnsp.org>
parents: 537
diff changeset
150 function stGetSetting($name, $default = FALSE)
0
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
151 {
8
4c5f651aa107 Migrate certain settings to SQL database, cleanups, etc.
Matti Hamalainen <ccr@tnsp.org>
parents: 7
diff changeset
152 global $siteSettings;
0
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
153 if (isset($siteSettings[$name]))
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
154 return $siteSettings[$name];
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
155 else
538
Matti Hamalainen <ccr@tnsp.org>
parents: 537
diff changeset
156 if ($default !== FALSE)
537
12726b4be750 Make database connection settings better.
Matti Hamalainen <ccr@tnsp.org>
parents: 524
diff changeset
157 return $default;
12726b4be750 Make database connection settings better.
Matti Hamalainen <ccr@tnsp.org>
parents: 524
diff changeset
158 else
291
ce30a9083b40 Add error_log() for missing settings.
Matti Hamalainen <ccr@tnsp.org>
parents: 246
diff changeset
159 {
874
ffb5643eff4f Rename functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 861
diff changeset
160 stLogError("No config value for '".$name."'");
8
4c5f651aa107 Migrate certain settings to SQL database, cleanups, etc.
Matti Hamalainen <ccr@tnsp.org>
parents: 7
diff changeset
161 die("No config value for '".$name."'.\n");
291
ce30a9083b40 Add error_log() for missing settings.
Matti Hamalainen <ccr@tnsp.org>
parents: 246
diff changeset
162 }
0
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
163 }
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
164
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
165
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
166 function stChkSetting($name)
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
167 {
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
168 global $siteSettings;
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
169 return isset($siteSettings[$name]) && $siteSettings[$name];
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
170 }
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
171
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
172
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
173 function dhentities($str)
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
174 {
674
3e37a29468bf Cosmetics.
Matti Hamalainen <ccr@tnsp.org>
parents: 670
diff changeset
175 return str_replace(array("&lt;","&gt;"), array("<", ">"),
3e37a29468bf Cosmetics.
Matti Hamalainen <ccr@tnsp.org>
parents: 670
diff changeset
176 htmlentities($str, ENT_NOQUOTES, "UTF-8"));
0
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
177 }
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
178
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
179
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
180 function chentities($str)
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
181 {
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
182 return htmlentities($str, ENT_NOQUOTES, "UTF-8");
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
183 }
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
184
485
9737c24d39d2 Cosmetics.
Matti Hamalainen <ccr@tnsp.org>
parents: 484
diff changeset
185
297
fdcd78675d1c Possibly fix input quotation and escaping issues.
Matti Hamalainen <ccr@tnsp.org>
parents: 293
diff changeset
186 function ihentities($str)
fdcd78675d1c Possibly fix input quotation and escaping issues.
Matti Hamalainen <ccr@tnsp.org>
parents: 293
diff changeset
187 {
fdcd78675d1c Possibly fix input quotation and escaping issues.
Matti Hamalainen <ccr@tnsp.org>
parents: 293
diff changeset
188 return htmlentities($str, ENT_QUOTES, "UTF-8");
fdcd78675d1c Possibly fix input quotation and escaping issues.
Matti Hamalainen <ccr@tnsp.org>
parents: 293
diff changeset
189 }
0
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
190
485
9737c24d39d2 Cosmetics.
Matti Hamalainen <ccr@tnsp.org>
parents: 484
diff changeset
191
676
8104e54bce71 Add a comment.
Matti Hamalainen <ccr@tnsp.org>
parents: 675
diff changeset
192 //
8104e54bce71 Add a comment.
Matti Hamalainen <ccr@tnsp.org>
parents: 675
diff changeset
193 // Helper functions for form/HTML elements
8104e54bce71 Add a comment.
Matti Hamalainen <ccr@tnsp.org>
parents: 675
diff changeset
194 // XXX/TODO .. this name/id/prefix mess needs to be cleaned up.
8104e54bce71 Add a comment.
Matti Hamalainen <ccr@tnsp.org>
parents: 675
diff changeset
195 //
12
358534308c61 Clean up some of the html item generation code.
Matti Hamalainen <ccr@tnsp.org>
parents: 9
diff changeset
196 function stGetIDName($name, $id, $prefix = "")
358534308c61 Clean up some of the html item generation code.
Matti Hamalainen <ccr@tnsp.org>
parents: 9
diff changeset
197 {
358534308c61 Clean up some of the html item generation code.
Matti Hamalainen <ccr@tnsp.org>
parents: 9
diff changeset
198 return
358534308c61 Clean up some of the html item generation code.
Matti Hamalainen <ccr@tnsp.org>
parents: 9
diff changeset
199 ($id != "" ? "id=\"".$prefix.$name.$id."\" " : "").
358534308c61 Clean up some of the html item generation code.
Matti Hamalainen <ccr@tnsp.org>
parents: 9
diff changeset
200 ($name != "" ? "name=\"".$prefix.$name.$id."\" " : "");
358534308c61 Clean up some of the html item generation code.
Matti Hamalainen <ccr@tnsp.org>
parents: 9
diff changeset
201 }
358534308c61 Clean up some of the html item generation code.
Matti Hamalainen <ccr@tnsp.org>
parents: 9
diff changeset
202
358534308c61 Clean up some of the html item generation code.
Matti Hamalainen <ccr@tnsp.org>
parents: 9
diff changeset
203
0
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
204 function stGetFormCheckBoxInput($name, $id, $prefix, $checked, $label, $extra = "")
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
205 {
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
206 return
12
358534308c61 Clean up some of the html item generation code.
Matti Hamalainen <ccr@tnsp.org>
parents: 9
diff changeset
207 "<input ".$extra." type=\"checkbox\" ".stGetIDName($name, $id, $prefix).
358534308c61 Clean up some of the html item generation code.
Matti Hamalainen <ccr@tnsp.org>
parents: 9
diff changeset
208 ($checked ? "checked=\"checked\" " : "")." />".
336
49094cfbd674 Fix radio- and checkbutton labels.
Matti Hamalainen <ccr@tnsp.org>
parents: 297
diff changeset
209 ($label != "" ? "<label for=\"".$prefix.$name.$id."\">".$label."</label>" : "");
0
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
210 }
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
211
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
212
26
7be3f8cf1f7a Lots of cleanups, preparing for adding entry submission support.
Matti Hamalainen <ccr@tnsp.org>
parents: 24
diff changeset
213 function stGetFormRadioButtonInput($name, $id, $prefix, $value, $checked, $label, $extra = "")
7be3f8cf1f7a Lots of cleanups, preparing for adding entry submission support.
Matti Hamalainen <ccr@tnsp.org>
parents: 24
diff changeset
214 {
7be3f8cf1f7a Lots of cleanups, preparing for adding entry submission support.
Matti Hamalainen <ccr@tnsp.org>
parents: 24
diff changeset
215 return
7be3f8cf1f7a Lots of cleanups, preparing for adding entry submission support.
Matti Hamalainen <ccr@tnsp.org>
parents: 24
diff changeset
216 "<input ".$extra." type=\"radio\" ".stGetIDName($name, $id, $prefix).
7be3f8cf1f7a Lots of cleanups, preparing for adding entry submission support.
Matti Hamalainen <ccr@tnsp.org>
parents: 24
diff changeset
217 ($checked ? "checked=\"checked\" " : "")." value=\"".$value."\" />".
336
49094cfbd674 Fix radio- and checkbutton labels.
Matti Hamalainen <ccr@tnsp.org>
parents: 297
diff changeset
218 ($label != "" ? "<label for=\"".$prefix.$name.$id."\">".$label."</label>" : "");
26
7be3f8cf1f7a Lots of cleanups, preparing for adding entry submission support.
Matti Hamalainen <ccr@tnsp.org>
parents: 24
diff changeset
219 }
7be3f8cf1f7a Lots of cleanups, preparing for adding entry submission support.
Matti Hamalainen <ccr@tnsp.org>
parents: 24
diff changeset
220
7be3f8cf1f7a Lots of cleanups, preparing for adding entry submission support.
Matti Hamalainen <ccr@tnsp.org>
parents: 24
diff changeset
221
0
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
222 function stGetFormButtonInput($name, $id, $prefix, $label, $onclick = "")
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
223 {
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
224 return
12
358534308c61 Clean up some of the html item generation code.
Matti Hamalainen <ccr@tnsp.org>
parents: 9
diff changeset
225 "<input type=\"button\" ".stGetIDName($name, $id, $prefix).
297
fdcd78675d1c Possibly fix input quotation and escaping issues.
Matti Hamalainen <ccr@tnsp.org>
parents: 293
diff changeset
226 "value=\" ".ihentities($label)." \" ".
0
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
227 ($onclick != "" ? "onClick=\"".$onclick."\"" : "")." />";
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
228 }
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
229
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
230
680
c9b96a7b9dc4 Add new helper function and use it.
Matti Hamalainen <ccr@tnsp.org>
parents: 676
diff changeset
231 function stGetFormButtonElement($name, $id, $prefix, $label, $onclick = "")
c9b96a7b9dc4 Add new helper function and use it.
Matti Hamalainen <ccr@tnsp.org>
parents: 676
diff changeset
232 {
c9b96a7b9dc4 Add new helper function and use it.
Matti Hamalainen <ccr@tnsp.org>
parents: 676
diff changeset
233 return
c9b96a7b9dc4 Add new helper function and use it.
Matti Hamalainen <ccr@tnsp.org>
parents: 676
diff changeset
234 "<button class=\"button\" ".stGetIDName($name, $id, $prefix)." type=\"button\"".
c9b96a7b9dc4 Add new helper function and use it.
Matti Hamalainen <ccr@tnsp.org>
parents: 676
diff changeset
235 ($onclick != "" ? " onClick=\"".$onclick."\"" : "")."> ".chentities($label)." </button>";
c9b96a7b9dc4 Add new helper function and use it.
Matti Hamalainen <ccr@tnsp.org>
parents: 676
diff changeset
236 }
c9b96a7b9dc4 Add new helper function and use it.
Matti Hamalainen <ccr@tnsp.org>
parents: 676
diff changeset
237
747
330e6d79c5dc Change stGetFormOptionList* function APIs a bit.
Matti Hamalainen <ccr@tnsp.org>
parents: 680
diff changeset
238
0
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
239 function stGetFormTextArea($rows, $cols, $name, $id, $prefix, $value, $extra = "")
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
240 {
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
241 return
12
358534308c61 Clean up some of the html item generation code.
Matti Hamalainen <ccr@tnsp.org>
parents: 9
diff changeset
242 "<textarea ".$extra." ".stGetIDName($name, $id, $prefix).
358534308c61 Clean up some of the html item generation code.
Matti Hamalainen <ccr@tnsp.org>
parents: 9
diff changeset
243 "rows=\"".$rows."\" cols=\"".$cols."\">".
297
fdcd78675d1c Possibly fix input quotation and escaping issues.
Matti Hamalainen <ccr@tnsp.org>
parents: 293
diff changeset
244 (isset($value) ? ihentities($value) : "").
0
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
245 "</textarea>";
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
246 }
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
247
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
248
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
249 function stGetFormTextInput($size, $len, $name, $id, $prefix, $value, $extra = "")
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
250 {
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
251 return
12
358534308c61 Clean up some of the html item generation code.
Matti Hamalainen <ccr@tnsp.org>
parents: 9
diff changeset
252 "<input ".$extra." type=\"text\" ".stGetIDName($name, $id, $prefix).
358534308c61 Clean up some of the html item generation code.
Matti Hamalainen <ccr@tnsp.org>
parents: 9
diff changeset
253 "size=\"".$size."\" maxlength=\"".$len."\"".
297
fdcd78675d1c Possibly fix input quotation and escaping issues.
Matti Hamalainen <ccr@tnsp.org>
parents: 293
diff changeset
254 (isset($value) ? " value=\"".ihentities($value)."\"" : "").
0
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
255 " />";
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
256 }
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
257
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
258
246
cb34e3fafb33 Add extra parameter to stGetFormPasswordInput().
Matti Hamalainen <ccr@tnsp.org>
parents: 244
diff changeset
259 function stGetFormPasswordInput($name, $id, $prefix, $extra = "")
0
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
260 {
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
261 return
246
cb34e3fafb33 Add extra parameter to stGetFormPasswordInput().
Matti Hamalainen <ccr@tnsp.org>
parents: 244
diff changeset
262 "<input type=\"password\" ".stGetIDName($name, $id, $prefix)." ".$extra." />";
0
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
263 }
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
264
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
265
26
7be3f8cf1f7a Lots of cleanups, preparing for adding entry submission support.
Matti Hamalainen <ccr@tnsp.org>
parents: 24
diff changeset
266 function stGetFormSubmitInput($name, $label, $onclick = "")
7be3f8cf1f7a Lots of cleanups, preparing for adding entry submission support.
Matti Hamalainen <ccr@tnsp.org>
parents: 24
diff changeset
267 {
7be3f8cf1f7a Lots of cleanups, preparing for adding entry submission support.
Matti Hamalainen <ccr@tnsp.org>
parents: 24
diff changeset
268 return
7be3f8cf1f7a Lots of cleanups, preparing for adding entry submission support.
Matti Hamalainen <ccr@tnsp.org>
parents: 24
diff changeset
269 "<input type=\"submit\" name=\"".$name.
297
fdcd78675d1c Possibly fix input quotation and escaping issues.
Matti Hamalainen <ccr@tnsp.org>
parents: 293
diff changeset
270 "\" value=\" ".ihentities($label)." \" ".
26
7be3f8cf1f7a Lots of cleanups, preparing for adding entry submission support.
Matti Hamalainen <ccr@tnsp.org>
parents: 24
diff changeset
271 ($onclick != "" ? "onClick=\"".$onclick."\"" : "")." />";
7be3f8cf1f7a Lots of cleanups, preparing for adding entry submission support.
Matti Hamalainen <ccr@tnsp.org>
parents: 24
diff changeset
272 }
7be3f8cf1f7a Lots of cleanups, preparing for adding entry submission support.
Matti Hamalainen <ccr@tnsp.org>
parents: 24
diff changeset
273
7be3f8cf1f7a Lots of cleanups, preparing for adding entry submission support.
Matti Hamalainen <ccr@tnsp.org>
parents: 24
diff changeset
274
0
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
275 function stGetFormHiddenInput($name, $value)
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
276 {
12
358534308c61 Clean up some of the html item generation code.
Matti Hamalainen <ccr@tnsp.org>
parents: 9
diff changeset
277 return
358534308c61 Clean up some of the html item generation code.
Matti Hamalainen <ccr@tnsp.org>
parents: 9
diff changeset
278 "<input type=\"hidden\" name=\"".$name.
297
fdcd78675d1c Possibly fix input quotation and escaping issues.
Matti Hamalainen <ccr@tnsp.org>
parents: 293
diff changeset
279 "\" value=\"".ihentities($value)."\" />";
0
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
280 }
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
281
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
282
771
cd8a29647c09 Change the API of stGetFormStart().
Matti Hamalainen <ccr@tnsp.org>
parents: 760
diff changeset
283 function stGetFormStart($name, $action = FALSE, $method = FALSE, $extra = FALSE)
26
7be3f8cf1f7a Lots of cleanups, preparing for adding entry submission support.
Matti Hamalainen <ccr@tnsp.org>
parents: 24
diff changeset
284 {
359
f7a806d5060f Add preliminary code for CSRF prevention via unique hash tokens. Not fully
Matti Hamalainen <ccr@tnsp.org>
parents: 357
diff changeset
285 $str =
771
cd8a29647c09 Change the API of stGetFormStart().
Matti Hamalainen <ccr@tnsp.org>
parents: 760
diff changeset
286 "<form name=\"".$name."\"".
cd8a29647c09 Change the API of stGetFormStart().
Matti Hamalainen <ccr@tnsp.org>
parents: 760
diff changeset
287 ($action !== FALSE ? " action=\"".$action."\"" : "").
cd8a29647c09 Change the API of stGetFormStart().
Matti Hamalainen <ccr@tnsp.org>
parents: 760
diff changeset
288 " method=\"".($method !== FALSE ? $method : "post")."\"".
cd8a29647c09 Change the API of stGetFormStart().
Matti Hamalainen <ccr@tnsp.org>
parents: 760
diff changeset
289 ($extra !== FALSE ? " ".$extra : "").">\n";
359
f7a806d5060f Add preliminary code for CSRF prevention via unique hash tokens. Not fully
Matti Hamalainen <ccr@tnsp.org>
parents: 357
diff changeset
290
f7a806d5060f Add preliminary code for CSRF prevention via unique hash tokens. Not fully
Matti Hamalainen <ccr@tnsp.org>
parents: 357
diff changeset
291 if (($csrfID = stGetSessionItem("csrfID", FALSE)) !== FALSE)
f7a806d5060f Add preliminary code for CSRF prevention via unique hash tokens. Not fully
Matti Hamalainen <ccr@tnsp.org>
parents: 357
diff changeset
292 $str .= stGetFormHiddenInput("csrfID", $csrfID)."\n";
f7a806d5060f Add preliminary code for CSRF prevention via unique hash tokens. Not fully
Matti Hamalainen <ccr@tnsp.org>
parents: 357
diff changeset
293
f7a806d5060f Add preliminary code for CSRF prevention via unique hash tokens. Not fully
Matti Hamalainen <ccr@tnsp.org>
parents: 357
diff changeset
294 return $str;
26
7be3f8cf1f7a Lots of cleanups, preparing for adding entry submission support.
Matti Hamalainen <ccr@tnsp.org>
parents: 24
diff changeset
295 }
7be3f8cf1f7a Lots of cleanups, preparing for adding entry submission support.
Matti Hamalainen <ccr@tnsp.org>
parents: 24
diff changeset
296
7be3f8cf1f7a Lots of cleanups, preparing for adding entry submission support.
Matti Hamalainen <ccr@tnsp.org>
parents: 24
diff changeset
297
675
13ad8e133c22 Rename some functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 674
diff changeset
298 function stGetFormOptionListStart($id, $indent, $outer, $size = 10, $onChange = "")
0
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
299 {
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
300 return
637
a376521c7bd1 Move some code around, for more appropriate placement in the modules.
Matti Hamalainen <ccr@tnsp.org>
parents: 619
diff changeset
301 ($outer ? $indent."<div id=\"".$id."\">\n" : "").
638
79bbd09114c5 Allow selection list size to be zero.
Matti Hamalainen <ccr@tnsp.org>
parents: 637
diff changeset
302 $indent."<select class=\"selectBox\" id=\"".$id."Sel\"".
79bbd09114c5 Allow selection list size to be zero.
Matti Hamalainen <ccr@tnsp.org>
parents: 637
diff changeset
303 ($size > 0 ? " size=\"".$size."\"" : "").
637
a376521c7bd1 Move some code around, for more appropriate placement in the modules.
Matti Hamalainen <ccr@tnsp.org>
parents: 619
diff changeset
304 ($onChange != "" ? " onChange=\"".$onChange."\"" : "").">\n";
0
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
305 }
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
306
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
307
747
330e6d79c5dc Change stGetFormOptionList* function APIs a bit.
Matti Hamalainen <ccr@tnsp.org>
parents: 680
diff changeset
308 function stGetFormOptionListItem($indent, $value, $active, $name)
0
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
309 {
637
a376521c7bd1 Move some code around, for more appropriate placement in the modules.
Matti Hamalainen <ccr@tnsp.org>
parents: 619
diff changeset
310 return
747
330e6d79c5dc Change stGetFormOptionList* function APIs a bit.
Matti Hamalainen <ccr@tnsp.org>
parents: 680
diff changeset
311 $indent."<option value=\"".$value."\"".
637
a376521c7bd1 Move some code around, for more appropriate placement in the modules.
Matti Hamalainen <ccr@tnsp.org>
parents: 619
diff changeset
312 ($active ? " selected=\"selected\"" : "").
a376521c7bd1 Move some code around, for more appropriate placement in the modules.
Matti Hamalainen <ccr@tnsp.org>
parents: 619
diff changeset
313 ">".str_replace(" ", "&nbsp;", chentities($name))."</option>\n";
0
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
314 }
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
315
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
316
675
13ad8e133c22 Rename some functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 674
diff changeset
317 function stGetFormOptionListEnd($indent, $outer)
0
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
318 {
637
a376521c7bd1 Move some code around, for more appropriate placement in the modules.
Matti Hamalainen <ccr@tnsp.org>
parents: 619
diff changeset
319 return
a376521c7bd1 Move some code around, for more appropriate placement in the modules.
Matti Hamalainen <ccr@tnsp.org>
parents: 619
diff changeset
320 $indent."</select>\n".
a376521c7bd1 Move some code around, for more appropriate placement in the modules.
Matti Hamalainen <ccr@tnsp.org>
parents: 619
diff changeset
321 ($outer ? $indent."</div>\n" : "");
a376521c7bd1 Move some code around, for more appropriate placement in the modules.
Matti Hamalainen <ccr@tnsp.org>
parents: 619
diff changeset
322 }
a376521c7bd1 Move some code around, for more appropriate placement in the modules.
Matti Hamalainen <ccr@tnsp.org>
parents: 619
diff changeset
323
a376521c7bd1 Move some code around, for more appropriate placement in the modules.
Matti Hamalainen <ccr@tnsp.org>
parents: 619
diff changeset
324
752
c714140541d5 Add more data to previewTypeList array and implement array index argument in
Matti Hamalainen <ccr@tnsp.org>
parents: 747
diff changeset
325 function stGetFormOptionListFromArray($id, $indent, $outer, $data, $active, $size = 10, $arrIndex = 0, $onChange = "")
637
a376521c7bd1 Move some code around, for more appropriate placement in the modules.
Matti Hamalainen <ccr@tnsp.org>
parents: 619
diff changeset
326 {
675
13ad8e133c22 Rename some functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 674
diff changeset
327 $str = stGetFormOptionListStart($id, $indent, $outer, $size, $onChange);
637
a376521c7bd1 Move some code around, for more appropriate placement in the modules.
Matti Hamalainen <ccr@tnsp.org>
parents: 619
diff changeset
328
639
26ec29d2e728 Elements of arrays passed to selection list can be arrays themselves, the
Matti Hamalainen <ccr@tnsp.org>
parents: 638
diff changeset
329 foreach ($data as $key => $value)
26ec29d2e728 Elements of arrays passed to selection list can be arrays themselves, the
Matti Hamalainen <ccr@tnsp.org>
parents: 638
diff changeset
330 {
747
330e6d79c5dc Change stGetFormOptionList* function APIs a bit.
Matti Hamalainen <ccr@tnsp.org>
parents: 680
diff changeset
331 $str .= stGetFormOptionListItem($indent." ", $key,
642
9fbbbb8628ff Fix comparision check. :S
Matti Hamalainen <ccr@tnsp.org>
parents: 639
diff changeset
332 ($key == $active),
752
c714140541d5 Add more data to previewTypeList array and implement array index argument in
Matti Hamalainen <ccr@tnsp.org>
parents: 747
diff changeset
333 is_array($value) ? $value[$arrIndex] : $value);
639
26ec29d2e728 Elements of arrays passed to selection list can be arrays themselves, the
Matti Hamalainen <ccr@tnsp.org>
parents: 638
diff changeset
334 }
637
a376521c7bd1 Move some code around, for more appropriate placement in the modules.
Matti Hamalainen <ccr@tnsp.org>
parents: 619
diff changeset
335
675
13ad8e133c22 Rename some functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 674
diff changeset
336 return $str.stGetFormOptionListEnd($indent, $outer);
0
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
337 }
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
338
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
339
793
ff6e6c6200a4 Add improved error message formatting to stChkRequestItem*() functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 771
diff changeset
340 function stErrorStrF($fmt)
0
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
341 {
793
ff6e6c6200a4 Add improved error message formatting to stChkRequestItem*() functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 771
diff changeset
342 $argc = func_num_args();
ff6e6c6200a4 Add improved error message formatting to stChkRequestItem*() functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 771
diff changeset
343 $argv = func_get_args();
ff6e6c6200a4 Add improved error message formatting to stChkRequestItem*() functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 771
diff changeset
344
ff6e6c6200a4 Add improved error message formatting to stChkRequestItem*() functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 771
diff changeset
345 $len = strlen($fmt);
ff6e6c6200a4 Add improved error message formatting to stChkRequestItem*() functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 771
diff changeset
346 $str = "";
ff6e6c6200a4 Add improved error message formatting to stChkRequestItem*() functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 771
diff changeset
347 $argn = 1;
ff6e6c6200a4 Add improved error message formatting to stChkRequestItem*() functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 771
diff changeset
348 for ($pos = 0; $pos < $len; $pos++)
ff6e6c6200a4 Add improved error message formatting to stChkRequestItem*() functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 771
diff changeset
349 {
ff6e6c6200a4 Add improved error message formatting to stChkRequestItem*() functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 771
diff changeset
350 if ($fmt[$pos] == "%")
ff6e6c6200a4 Add improved error message formatting to stChkRequestItem*() functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 771
diff changeset
351 {
ff6e6c6200a4 Add improved error message formatting to stChkRequestItem*() functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 771
diff changeset
352 $pos++;
ff6e6c6200a4 Add improved error message formatting to stChkRequestItem*() functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 771
diff changeset
353 if ($fmt[$pos] == "%")
ff6e6c6200a4 Add improved error message formatting to stChkRequestItem*() functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 771
diff changeset
354 $str .= "%";
ff6e6c6200a4 Add improved error message formatting to stChkRequestItem*() functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 771
diff changeset
355 else
ff6e6c6200a4 Add improved error message formatting to stChkRequestItem*() functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 771
diff changeset
356 {
ff6e6c6200a4 Add improved error message formatting to stChkRequestItem*() functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 771
diff changeset
357 $n = intval($fmt[$pos]);
ff6e6c6200a4 Add improved error message formatting to stChkRequestItem*() functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 771
diff changeset
358 if ($n >= 1 && $n < $argc)
ff6e6c6200a4 Add improved error message formatting to stChkRequestItem*() functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 771
diff changeset
359 $str .= $argv[$n];
ff6e6c6200a4 Add improved error message formatting to stChkRequestItem*() functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 771
diff changeset
360 else
ff6e6c6200a4 Add improved error message formatting to stChkRequestItem*() functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 771
diff changeset
361 {
874
ffb5643eff4f Rename functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 861
diff changeset
362 stLogError("Invalid stErrorStrF() format string, arg #".$n.
793
ff6e6c6200a4 Add improved error message formatting to stChkRequestItem*() functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 771
diff changeset
363 " referenced, but only has ".$argc." arguments: '".$fmt."'\n");
ff6e6c6200a4 Add improved error message formatting to stChkRequestItem*() functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 771
diff changeset
364 return FALSE;
ff6e6c6200a4 Add improved error message formatting to stChkRequestItem*() functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 771
diff changeset
365 }
ff6e6c6200a4 Add improved error message formatting to stChkRequestItem*() functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 771
diff changeset
366 }
ff6e6c6200a4 Add improved error message formatting to stChkRequestItem*() functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 771
diff changeset
367 }
ff6e6c6200a4 Add improved error message formatting to stChkRequestItem*() functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 771
diff changeset
368 else
ff6e6c6200a4 Add improved error message formatting to stChkRequestItem*() functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 771
diff changeset
369 $str .= $fmt[$pos];
ff6e6c6200a4 Add improved error message formatting to stChkRequestItem*() functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 771
diff changeset
370 }
ff6e6c6200a4 Add improved error message formatting to stChkRequestItem*() functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 771
diff changeset
371
ff6e6c6200a4 Add improved error message formatting to stChkRequestItem*() functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 771
diff changeset
372 stError($str);
184
1b30c2107e5b Add function for validating input with different definable conditions. Use
Matti Hamalainen <ccr@tnsp.org>
parents: 180
diff changeset
373 return FALSE;
0
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
374 }
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
375
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
376
184
1b30c2107e5b Add function for validating input with different definable conditions. Use
Matti Hamalainen <ccr@tnsp.org>
parents: 180
diff changeset
377 //
1b30c2107e5b Add function for validating input with different definable conditions. Use
Matti Hamalainen <ccr@tnsp.org>
parents: 180
diff changeset
378 // Check and validate one item from $_REQUEST[], based on
1b30c2107e5b Add function for validating input with different definable conditions. Use
Matti Hamalainen <ccr@tnsp.org>
parents: 180
diff changeset
379 // list of validation conditions. For example:
1b30c2107e5b Add function for validating input with different definable conditions. Use
Matti Hamalainen <ccr@tnsp.org>
parents: 180
diff changeset
380 //
1b30c2107e5b Add function for validating input with different definable conditions. Use
Matti Hamalainen <ccr@tnsp.org>
parents: 180
diff changeset
381 // stChkRequestItem("name", FALSE,
1b30c2107e5b Add function for validating input with different definable conditions. Use
Matti Hamalainen <ccr@tnsp.org>
parents: 180
diff changeset
382 // array(CHK_ISGT, VT_STR, 0, "Handle / name not given."),
1b30c2107e5b Add function for validating input with different definable conditions. Use
Matti Hamalainen <ccr@tnsp.org>
parents: 180
diff changeset
383 // array(CHK_ISGT, VT_STR, 3, "Handle / name too short, should be 3 characters or more."),
244
70c424d025d6 Improve input validation helper functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 232
diff changeset
384 // array(CHK_LTEQ, VT_STR, SET_LEN_USERNAME, "Handle / name is too long, should be less than ".SET_LEN_USERNAME." characters."),
70c424d025d6 Improve input validation helper functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 232
diff changeset
385 // array(CHK_RANGE, VT_STR, array(3, SET_LEN_USERNAME), "Ulululu!"),
70c424d025d6 Improve input validation helper functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 232
diff changeset
386 // ^- ranges specified as array of MIN and MAX values (inclusive)
70c424d025d6 Improve input validation helper functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 232
diff changeset
387 //
70c424d025d6 Improve input validation helper functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 232
diff changeset
388 // array(CHK_CUSTOM, VT_STR, function($value) { return FALSE; }, "Error! Error!"),
70c424d025d6 Improve input validation helper functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 232
diff changeset
389 // ^- can be any callable/anonymous function etc.
70c424d025d6 Improve input validation helper functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 232
diff changeset
390 // ...
184
1b30c2107e5b Add function for validating input with different definable conditions. Use
Matti Hamalainen <ccr@tnsp.org>
parents: 180
diff changeset
391 //
244
70c424d025d6 Improve input validation helper functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 232
diff changeset
392 function stChkRequestDataItem($type, $value, $cmp)
70c424d025d6 Improve input validation helper functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 232
diff changeset
393 {
70c424d025d6 Improve input validation helper functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 232
diff changeset
394 switch ($type)
70c424d025d6 Improve input validation helper functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 232
diff changeset
395 {
70c424d025d6 Improve input validation helper functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 232
diff changeset
396 case CHK_ISLT : return $value < $cmp;
70c424d025d6 Improve input validation helper functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 232
diff changeset
397 case CHK_ISGT : return $value > $cmp;
70c424d025d6 Improve input validation helper functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 232
diff changeset
398 case CHK_ISEQ : return $value == $cmp;
70c424d025d6 Improve input validation helper functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 232
diff changeset
399 case CHK_LTEQ : return $value <= $cmp;
70c424d025d6 Improve input validation helper functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 232
diff changeset
400 case CHK_GTEQ : return $value >= $cmp;
70c424d025d6 Improve input validation helper functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 232
diff changeset
401 case CHK_RANGE:
70c424d025d6 Improve input validation helper functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 232
diff changeset
402 if (!is_array($cmp))
70c424d025d6 Improve input validation helper functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 232
diff changeset
403 return FALSE;
70c424d025d6 Improve input validation helper functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 232
diff changeset
404 else
70c424d025d6 Improve input validation helper functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 232
diff changeset
405 return ($value >= $cmp[0] && $value <= $cmp[1]);
70c424d025d6 Improve input validation helper functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 232
diff changeset
406 break;
70c424d025d6 Improve input validation helper functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 232
diff changeset
407 default: return FALSE;
70c424d025d6 Improve input validation helper functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 232
diff changeset
408 }
70c424d025d6 Improve input validation helper functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 232
diff changeset
409 }
70c424d025d6 Improve input validation helper functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 232
diff changeset
410
70c424d025d6 Improve input validation helper functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 232
diff changeset
411
670
8a091dc8d608 Add new utility function stChkRequestItemFail().
Matti Hamalainen <ccr@tnsp.org>
parents: 642
diff changeset
412 function stDoCheckRequestItem($name, &$sdata, $nindex, $argc, $argv)
0
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
413 {
369
a3caded43f6d Add possibility of always using GET requests when debug mode is enabled.
Matti Hamalainen <ccr@tnsp.org>
parents: 365
diff changeset
414 if (stGetSetting("debug"))
a3caded43f6d Add possibility of always using GET requests when debug mode is enabled.
Matti Hamalainen <ccr@tnsp.org>
parents: 365
diff changeset
415 {
a3caded43f6d Add possibility of always using GET requests when debug mode is enabled.
Matti Hamalainen <ccr@tnsp.org>
parents: 365
diff changeset
416 if (!isset($_REQUEST[$name]))
793
ff6e6c6200a4 Add improved error message formatting to stChkRequestItem*() functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 771
diff changeset
417 return stErrorStrF("Required data item '%1' not set.", $name);
184
1b30c2107e5b Add function for validating input with different definable conditions. Use
Matti Hamalainen <ccr@tnsp.org>
parents: 180
diff changeset
418
369
a3caded43f6d Add possibility of always using GET requests when debug mode is enabled.
Matti Hamalainen <ccr@tnsp.org>
parents: 365
diff changeset
419 $data = trim($_REQUEST[$name]);
a3caded43f6d Add possibility of always using GET requests when debug mode is enabled.
Matti Hamalainen <ccr@tnsp.org>
parents: 365
diff changeset
420 }
a3caded43f6d Add possibility of always using GET requests when debug mode is enabled.
Matti Hamalainen <ccr@tnsp.org>
parents: 365
diff changeset
421 else
a3caded43f6d Add possibility of always using GET requests when debug mode is enabled.
Matti Hamalainen <ccr@tnsp.org>
parents: 365
diff changeset
422 {
a3caded43f6d Add possibility of always using GET requests when debug mode is enabled.
Matti Hamalainen <ccr@tnsp.org>
parents: 365
diff changeset
423 if (!isset($_POST[$name]))
793
ff6e6c6200a4 Add improved error message formatting to stChkRequestItem*() functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 771
diff changeset
424 return stErrorStrF("Required data item '%1' not set.", $name);
369
a3caded43f6d Add possibility of always using GET requests when debug mode is enabled.
Matti Hamalainen <ccr@tnsp.org>
parents: 365
diff changeset
425
a3caded43f6d Add possibility of always using GET requests when debug mode is enabled.
Matti Hamalainen <ccr@tnsp.org>
parents: 365
diff changeset
426 $data = trim($_POST[$name]);
a3caded43f6d Add possibility of always using GET requests when debug mode is enabled.
Matti Hamalainen <ccr@tnsp.org>
parents: 365
diff changeset
427 }
a3caded43f6d Add possibility of always using GET requests when debug mode is enabled.
Matti Hamalainen <ccr@tnsp.org>
parents: 365
diff changeset
428
184
1b30c2107e5b Add function for validating input with different definable conditions. Use
Matti Hamalainen <ccr@tnsp.org>
parents: 180
diff changeset
429 $slen = strlen($data);
1b30c2107e5b Add function for validating input with different definable conditions. Use
Matti Hamalainen <ccr@tnsp.org>
parents: 180
diff changeset
430
1b30c2107e5b Add function for validating input with different definable conditions. Use
Matti Hamalainen <ccr@tnsp.org>
parents: 180
diff changeset
431
1b30c2107e5b Add function for validating input with different definable conditions. Use
Matti Hamalainen <ccr@tnsp.org>
parents: 180
diff changeset
432 // Go through list of validation checks
670
8a091dc8d608 Add new utility function stChkRequestItemFail().
Matti Hamalainen <ccr@tnsp.org>
parents: 642
diff changeset
433 for ($argn = $nindex; $argn < $argc; $argn++)
184
1b30c2107e5b Add function for validating input with different definable conditions. Use
Matti Hamalainen <ccr@tnsp.org>
parents: 180
diff changeset
434 {
1b30c2107e5b Add function for validating input with different definable conditions. Use
Matti Hamalainen <ccr@tnsp.org>
parents: 180
diff changeset
435 // Act according to check type
1b30c2107e5b Add function for validating input with different definable conditions. Use
Matti Hamalainen <ccr@tnsp.org>
parents: 180
diff changeset
436 $check = $argv[$argn];
1b30c2107e5b Add function for validating input with different definable conditions. Use
Matti Hamalainen <ccr@tnsp.org>
parents: 180
diff changeset
437 switch ($check[0])
1b30c2107e5b Add function for validating input with different definable conditions. Use
Matti Hamalainen <ccr@tnsp.org>
parents: 180
diff changeset
438 {
1b30c2107e5b Add function for validating input with different definable conditions. Use
Matti Hamalainen <ccr@tnsp.org>
parents: 180
diff changeset
439 case CHK_TYPE:
1b30c2107e5b Add function for validating input with different definable conditions. Use
Matti Hamalainen <ccr@tnsp.org>
parents: 180
diff changeset
440 // Check type of the data
1b30c2107e5b Add function for validating input with different definable conditions. Use
Matti Hamalainen <ccr@tnsp.org>
parents: 180
diff changeset
441 switch ($check[1])
1b30c2107e5b Add function for validating input with different definable conditions. Use
Matti Hamalainen <ccr@tnsp.org>
parents: 180
diff changeset
442 {
1b30c2107e5b Add function for validating input with different definable conditions. Use
Matti Hamalainen <ccr@tnsp.org>
parents: 180
diff changeset
443 case VT_STR:
1b30c2107e5b Add function for validating input with different definable conditions. Use
Matti Hamalainen <ccr@tnsp.org>
parents: 180
diff changeset
444 if ($slen == 0)
793
ff6e6c6200a4 Add improved error message formatting to stChkRequestItem*() functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 771
diff changeset
445 return stErrorStrF($check[2], $slen);
184
1b30c2107e5b Add function for validating input with different definable conditions. Use
Matti Hamalainen <ccr@tnsp.org>
parents: 180
diff changeset
446 break;
1b30c2107e5b Add function for validating input with different definable conditions. Use
Matti Hamalainen <ccr@tnsp.org>
parents: 180
diff changeset
447
1b30c2107e5b Add function for validating input with different definable conditions. Use
Matti Hamalainen <ccr@tnsp.org>
parents: 180
diff changeset
448 case VT_INT:
1b30c2107e5b Add function for validating input with different definable conditions. Use
Matti Hamalainen <ccr@tnsp.org>
parents: 180
diff changeset
449 case VT_BOOL:
1b30c2107e5b Add function for validating input with different definable conditions. Use
Matti Hamalainen <ccr@tnsp.org>
parents: 180
diff changeset
450 if ($slen == 0 || !is_numeric($data))
1b30c2107e5b Add function for validating input with different definable conditions. Use
Matti Hamalainen <ccr@tnsp.org>
parents: 180
diff changeset
451 return stErrorStrF($check[2], $data);
813
c635887048aa Apply intval() to data when checking type.
Matti Hamalainen <ccr@tnsp.org>
parents: 812
diff changeset
452 else
c635887048aa Apply intval() to data when checking type.
Matti Hamalainen <ccr@tnsp.org>
parents: 812
diff changeset
453 $data = intval($data);
184
1b30c2107e5b Add function for validating input with different definable conditions. Use
Matti Hamalainen <ccr@tnsp.org>
parents: 180
diff changeset
454 break;
1b30c2107e5b Add function for validating input with different definable conditions. Use
Matti Hamalainen <ccr@tnsp.org>
parents: 180
diff changeset
455 }
1b30c2107e5b Add function for validating input with different definable conditions. Use
Matti Hamalainen <ccr@tnsp.org>
parents: 180
diff changeset
456 break;
1b30c2107e5b Add function for validating input with different definable conditions. Use
Matti Hamalainen <ccr@tnsp.org>
parents: 180
diff changeset
457
244
70c424d025d6 Improve input validation helper functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 232
diff changeset
458 case CHK_ISLT: case CHK_ISGT: case CHK_ISEQ:
70c424d025d6 Improve input validation helper functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 232
diff changeset
459 case CHK_GTEQ: case CHK_LTEQ: case CHK_RANGE:
184
1b30c2107e5b Add function for validating input with different definable conditions. Use
Matti Hamalainen <ccr@tnsp.org>
parents: 180
diff changeset
460 // Check length or value of the data
1b30c2107e5b Add function for validating input with different definable conditions. Use
Matti Hamalainen <ccr@tnsp.org>
parents: 180
diff changeset
461 switch ($check[1])
1b30c2107e5b Add function for validating input with different definable conditions. Use
Matti Hamalainen <ccr@tnsp.org>
parents: 180
diff changeset
462 {
1b30c2107e5b Add function for validating input with different definable conditions. Use
Matti Hamalainen <ccr@tnsp.org>
parents: 180
diff changeset
463 case VT_STR:
1b30c2107e5b Add function for validating input with different definable conditions. Use
Matti Hamalainen <ccr@tnsp.org>
parents: 180
diff changeset
464 case VT_TEXT:
1b30c2107e5b Add function for validating input with different definable conditions. Use
Matti Hamalainen <ccr@tnsp.org>
parents: 180
diff changeset
465 // Strings get their length checked
244
70c424d025d6 Improve input validation helper functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 232
diff changeset
466 if (!stChkRequestDataItem($check[0], $slen, $check[2]))
793
ff6e6c6200a4 Add improved error message formatting to stChkRequestItem*() functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 771
diff changeset
467 return stErrorStrF($check[3], $slen, $check[2]);
184
1b30c2107e5b Add function for validating input with different definable conditions. Use
Matti Hamalainen <ccr@tnsp.org>
parents: 180
diff changeset
468 break;
1b30c2107e5b Add function for validating input with different definable conditions. Use
Matti Hamalainen <ccr@tnsp.org>
parents: 180
diff changeset
469
1b30c2107e5b Add function for validating input with different definable conditions. Use
Matti Hamalainen <ccr@tnsp.org>
parents: 180
diff changeset
470 case VT_INT:
1b30c2107e5b Add function for validating input with different definable conditions. Use
Matti Hamalainen <ccr@tnsp.org>
parents: 180
diff changeset
471 case VT_BOOL:
1b30c2107e5b Add function for validating input with different definable conditions. Use
Matti Hamalainen <ccr@tnsp.org>
parents: 180
diff changeset
472 // Integer values checked against .. value
292
51fd76a8d8c9 Fix a 100L.
Matti Hamalainen <ccr@tnsp.org>
parents: 291
diff changeset
473 if (!stChkRequestDataItem($check[0], intval($data), $check[2]))
793
ff6e6c6200a4 Add improved error message formatting to stChkRequestItem*() functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 771
diff changeset
474 return stErrorStrF($check[3], intval($data), $check[2]);
184
1b30c2107e5b Add function for validating input with different definable conditions. Use
Matti Hamalainen <ccr@tnsp.org>
parents: 180
diff changeset
475 break;
1b30c2107e5b Add function for validating input with different definable conditions. Use
Matti Hamalainen <ccr@tnsp.org>
parents: 180
diff changeset
476 }
1b30c2107e5b Add function for validating input with different definable conditions. Use
Matti Hamalainen <ccr@tnsp.org>
parents: 180
diff changeset
477 break;
1b30c2107e5b Add function for validating input with different definable conditions. Use
Matti Hamalainen <ccr@tnsp.org>
parents: 180
diff changeset
478
907
affd8bd8c910 Add new check type(s) CHK_ARRAY_KEY and CHK_ARRAY_VAL, remove CHK_ARRAY as
Matti Hamalainen <ccr@tnsp.org>
parents: 906
diff changeset
479 case CHK_ARRAY_KEY:
896
52737f6192bb More work on preview handling.
Matti Hamalainen <ccr@tnsp.org>
parents: 874
diff changeset
480 if (!isset($check[1][$data]))
52737f6192bb More work on preview handling.
Matti Hamalainen <ccr@tnsp.org>
parents: 874
diff changeset
481 return stErrorStrF($check[2], $data);
810
2a23243a6cc4 Add new check type for stChkRequestItem*(), CHK_ARRAY.
Matti Hamalainen <ccr@tnsp.org>
parents: 803
diff changeset
482 break;
2a23243a6cc4 Add new check type for stChkRequestItem*(), CHK_ARRAY.
Matti Hamalainen <ccr@tnsp.org>
parents: 803
diff changeset
483
907
affd8bd8c910 Add new check type(s) CHK_ARRAY_KEY and CHK_ARRAY_VAL, remove CHK_ARRAY as
Matti Hamalainen <ccr@tnsp.org>
parents: 906
diff changeset
484 case CHK_ARRAY_VAL:
affd8bd8c910 Add new check type(s) CHK_ARRAY_KEY and CHK_ARRAY_VAL, remove CHK_ARRAY as
Matti Hamalainen <ccr@tnsp.org>
parents: 906
diff changeset
485 if (!in_array($data, $check[1], TRUE))
affd8bd8c910 Add new check type(s) CHK_ARRAY_KEY and CHK_ARRAY_VAL, remove CHK_ARRAY as
Matti Hamalainen <ccr@tnsp.org>
parents: 906
diff changeset
486 return stErrorStrF($check[2], $data);
affd8bd8c910 Add new check type(s) CHK_ARRAY_KEY and CHK_ARRAY_VAL, remove CHK_ARRAY as
Matti Hamalainen <ccr@tnsp.org>
parents: 906
diff changeset
487 break;
affd8bd8c910 Add new check type(s) CHK_ARRAY_KEY and CHK_ARRAY_VAL, remove CHK_ARRAY as
Matti Hamalainen <ccr@tnsp.org>
parents: 906
diff changeset
488
184
1b30c2107e5b Add function for validating input with different definable conditions. Use
Matti Hamalainen <ccr@tnsp.org>
parents: 180
diff changeset
489 case CHK_CUSTOM:
1b30c2107e5b Add function for validating input with different definable conditions. Use
Matti Hamalainen <ccr@tnsp.org>
parents: 180
diff changeset
490 // Call a custom function (or closure)
1b30c2107e5b Add function for validating input with different definable conditions. Use
Matti Hamalainen <ccr@tnsp.org>
parents: 180
diff changeset
491 $func = $check[1];
1b30c2107e5b Add function for validating input with different definable conditions. Use
Matti Hamalainen <ccr@tnsp.org>
parents: 180
diff changeset
492 if (!is_callable($func) || !$func($data))
1b30c2107e5b Add function for validating input with different definable conditions. Use
Matti Hamalainen <ccr@tnsp.org>
parents: 180
diff changeset
493 return stErrorStrF($check[2], $data);
1b30c2107e5b Add function for validating input with different definable conditions. Use
Matti Hamalainen <ccr@tnsp.org>
parents: 180
diff changeset
494 break;
1b30c2107e5b Add function for validating input with different definable conditions. Use
Matti Hamalainen <ccr@tnsp.org>
parents: 180
diff changeset
495 }
1b30c2107e5b Add function for validating input with different definable conditions. Use
Matti Hamalainen <ccr@tnsp.org>
parents: 180
diff changeset
496 }
1b30c2107e5b Add function for validating input with different definable conditions. Use
Matti Hamalainen <ccr@tnsp.org>
parents: 180
diff changeset
497
436
4ce10edceedf Only assign data if it has been completely validated.
Matti Hamalainen <ccr@tnsp.org>
parents: 369
diff changeset
498 if ($sdata !== FALSE)
4ce10edceedf Only assign data if it has been completely validated.
Matti Hamalainen <ccr@tnsp.org>
parents: 369
diff changeset
499 $sdata = $data;
4ce10edceedf Only assign data if it has been completely validated.
Matti Hamalainen <ccr@tnsp.org>
parents: 369
diff changeset
500
184
1b30c2107e5b Add function for validating input with different definable conditions. Use
Matti Hamalainen <ccr@tnsp.org>
parents: 180
diff changeset
501 return TRUE;
0
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
502 }
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
503
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
504
670
8a091dc8d608 Add new utility function stChkRequestItemFail().
Matti Hamalainen <ccr@tnsp.org>
parents: 642
diff changeset
505 function stChkRequestItem($name, &$sdata)
8a091dc8d608 Add new utility function stChkRequestItemFail().
Matti Hamalainen <ccr@tnsp.org>
parents: 642
diff changeset
506 {
8a091dc8d608 Add new utility function stChkRequestItemFail().
Matti Hamalainen <ccr@tnsp.org>
parents: 642
diff changeset
507 return stDoCheckRequestItem($name, $sdata, 2, func_num_args(), func_get_args());
8a091dc8d608 Add new utility function stChkRequestItemFail().
Matti Hamalainen <ccr@tnsp.org>
parents: 642
diff changeset
508 }
8a091dc8d608 Add new utility function stChkRequestItemFail().
Matti Hamalainen <ccr@tnsp.org>
parents: 642
diff changeset
509
8a091dc8d608 Add new utility function stChkRequestItemFail().
Matti Hamalainen <ccr@tnsp.org>
parents: 642
diff changeset
510
8a091dc8d608 Add new utility function stChkRequestItemFail().
Matti Hamalainen <ccr@tnsp.org>
parents: 642
diff changeset
511 function stChkRequestItemFail($name, &$sdata, &$sfail)
8a091dc8d608 Add new utility function stChkRequestItemFail().
Matti Hamalainen <ccr@tnsp.org>
parents: 642
diff changeset
512 {
8a091dc8d608 Add new utility function stChkRequestItemFail().
Matti Hamalainen <ccr@tnsp.org>
parents: 642
diff changeset
513 $sres = stDoCheckRequestItem($name, $sdata, 3, func_num_args(), func_get_args());
8a091dc8d608 Add new utility function stChkRequestItemFail().
Matti Hamalainen <ccr@tnsp.org>
parents: 642
diff changeset
514 if ($sres !== TRUE) $sfail = FALSE;
8a091dc8d608 Add new utility function stChkRequestItemFail().
Matti Hamalainen <ccr@tnsp.org>
parents: 642
diff changeset
515 return $sres;
8a091dc8d608 Add new utility function stChkRequestItemFail().
Matti Hamalainen <ccr@tnsp.org>
parents: 642
diff changeset
516 }
8a091dc8d608 Add new utility function stChkRequestItemFail().
Matti Hamalainen <ccr@tnsp.org>
parents: 642
diff changeset
517
8a091dc8d608 Add new utility function stChkRequestItemFail().
Matti Hamalainen <ccr@tnsp.org>
parents: 642
diff changeset
518
1003
668fd0ea4e08 Add check for request items that might not be strings.
Matti Hamalainen <ccr@tnsp.org>
parents: 1001
diff changeset
519 function stTrimIfString($val)
668fd0ea4e08 Add check for request items that might not be strings.
Matti Hamalainen <ccr@tnsp.org>
parents: 1001
diff changeset
520 {
668fd0ea4e08 Add check for request items that might not be strings.
Matti Hamalainen <ccr@tnsp.org>
parents: 1001
diff changeset
521 if (is_string($val))
668fd0ea4e08 Add check for request items that might not be strings.
Matti Hamalainen <ccr@tnsp.org>
parents: 1001
diff changeset
522 return trim($val);
668fd0ea4e08 Add check for request items that might not be strings.
Matti Hamalainen <ccr@tnsp.org>
parents: 1001
diff changeset
523 else
668fd0ea4e08 Add check for request items that might not be strings.
Matti Hamalainen <ccr@tnsp.org>
parents: 1001
diff changeset
524 return $val;
668fd0ea4e08 Add check for request items that might not be strings.
Matti Hamalainen <ccr@tnsp.org>
parents: 1001
diff changeset
525 }
668fd0ea4e08 Add check for request items that might not be strings.
Matti Hamalainen <ccr@tnsp.org>
parents: 1001
diff changeset
526
668fd0ea4e08 Add check for request items that might not be strings.
Matti Hamalainen <ccr@tnsp.org>
parents: 1001
diff changeset
527
357
7e906c827e68 Make default of request items to allow POST only, GET enabled on case by case basis.
Matti Hamalainen <ccr@tnsp.org>
parents: 349
diff changeset
528 function stGetRequestItem($name, $default = "", $allowGet = FALSE)
0
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
529 {
369
a3caded43f6d Add possibility of always using GET requests when debug mode is enabled.
Matti Hamalainen <ccr@tnsp.org>
parents: 365
diff changeset
530 if ($allowGet || stGetSetting("debug"))
1003
668fd0ea4e08 Add check for request items that might not be strings.
Matti Hamalainen <ccr@tnsp.org>
parents: 1001
diff changeset
531 return isset($_REQUEST[$name]) ? stTrimIfString($_REQUEST[$name]) : $default;
357
7e906c827e68 Make default of request items to allow POST only, GET enabled on case by case basis.
Matti Hamalainen <ccr@tnsp.org>
parents: 349
diff changeset
532 else
1003
668fd0ea4e08 Add check for request items that might not be strings.
Matti Hamalainen <ccr@tnsp.org>
parents: 1001
diff changeset
533 return isset($_POST[$name]) ? stTrimIfString($_POST[$name]) : $default;
0
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
534 }
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
535
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
536
486
e0fa6bb432d7 Add new helper functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 485
diff changeset
537 function stConnectSQLDBSpec($dbspec)
e0fa6bb432d7 Add new helper functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 485
diff changeset
538 {
e0fa6bb432d7 Add new helper functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 485
diff changeset
539 try {
e0fa6bb432d7 Add new helper functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 485
diff changeset
540 $dbh = new PDO($dbspec);
e0fa6bb432d7 Add new helper functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 485
diff changeset
541 }
e0fa6bb432d7 Add new helper functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 485
diff changeset
542 catch (PDOException $e) {
874
ffb5643eff4f Rename functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 861
diff changeset
543 stLogError("Could not connect to SQL database: ".$e->getMessage().".");
486
e0fa6bb432d7 Add new helper functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 485
diff changeset
544 return FALSE;
e0fa6bb432d7 Add new helper functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 485
diff changeset
545 }
e0fa6bb432d7 Add new helper functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 485
diff changeset
546 return $dbh;
e0fa6bb432d7 Add new helper functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 485
diff changeset
547 }
e0fa6bb432d7 Add new helper functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 485
diff changeset
548
e0fa6bb432d7 Add new helper functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 485
diff changeset
549
0
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
550 function stConnectSQLDB()
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
551 {
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
552 global $db;
537
12726b4be750 Make database connection settings better.
Matti Hamalainen <ccr@tnsp.org>
parents: 524
diff changeset
553 try {
12726b4be750 Make database connection settings better.
Matti Hamalainen <ccr@tnsp.org>
parents: 524
diff changeset
554 $db = new PDO(stGetSetting("sqlDB"),
538
Matti Hamalainen <ccr@tnsp.org>
parents: 537
diff changeset
555 stGetSetting("sqlUsername", NULL),
Matti Hamalainen <ccr@tnsp.org>
parents: 537
diff changeset
556 stGetSetting("sqlPassword", NULL),
537
12726b4be750 Make database connection settings better.
Matti Hamalainen <ccr@tnsp.org>
parents: 524
diff changeset
557 stGetSetting("sqlOptions", array()));
12726b4be750 Make database connection settings better.
Matti Hamalainen <ccr@tnsp.org>
parents: 524
diff changeset
558 }
12726b4be750 Make database connection settings better.
Matti Hamalainen <ccr@tnsp.org>
parents: 524
diff changeset
559 catch (PDOException $e) {
874
ffb5643eff4f Rename functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 861
diff changeset
560 stLogError("Could not connect to SQL database: ".$e->getMessage().".");
537
12726b4be750 Make database connection settings better.
Matti Hamalainen <ccr@tnsp.org>
parents: 524
diff changeset
561 return FALSE;
12726b4be750 Make database connection settings better.
Matti Hamalainen <ccr@tnsp.org>
parents: 524
diff changeset
562 }
486
e0fa6bb432d7 Add new helper functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 485
diff changeset
563 $db = stConnectSQLDBSpec(stGetSetting("sqlDB"));
e0fa6bb432d7 Add new helper functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 485
diff changeset
564 return ($db !== false);
0
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
565 }
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
566
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
567
1093
7bfa5a38b6ca Move function.
Matti Hamalainen <ccr@tnsp.org>
parents: 1072
diff changeset
568 function stDBGetSQLParam($dbh, $type, $value)
7bfa5a38b6ca Move function.
Matti Hamalainen <ccr@tnsp.org>
parents: 1072
diff changeset
569 {
7bfa5a38b6ca Move function.
Matti Hamalainen <ccr@tnsp.org>
parents: 1072
diff changeset
570 switch ($type)
7bfa5a38b6ca Move function.
Matti Hamalainen <ccr@tnsp.org>
parents: 1072
diff changeset
571 {
7bfa5a38b6ca Move function.
Matti Hamalainen <ccr@tnsp.org>
parents: 1072
diff changeset
572 case "d": return intval($value);
7bfa5a38b6ca Move function.
Matti Hamalainen <ccr@tnsp.org>
parents: 1072
diff changeset
573 case "s": return $dbh->quote($value);
7bfa5a38b6ca Move function.
Matti Hamalainen <ccr@tnsp.org>
parents: 1072
diff changeset
574 case "b": return intval($value) ? 1 : 0;
7bfa5a38b6ca Move function.
Matti Hamalainen <ccr@tnsp.org>
parents: 1072
diff changeset
575
7bfa5a38b6ca Move function.
Matti Hamalainen <ccr@tnsp.org>
parents: 1072
diff changeset
576 case "D": return intval(stGetRequestItem($value));
7bfa5a38b6ca Move function.
Matti Hamalainen <ccr@tnsp.org>
parents: 1072
diff changeset
577 case "S": return $dbh->quote(stGetRequestItem($value));
7bfa5a38b6ca Move function.
Matti Hamalainen <ccr@tnsp.org>
parents: 1072
diff changeset
578 case "Q": return $dbh->quote(stGetRequestItem($value));
7bfa5a38b6ca Move function.
Matti Hamalainen <ccr@tnsp.org>
parents: 1072
diff changeset
579 case "B": return intval(stGetRequestItem($value)) ? 1 : 0;
7bfa5a38b6ca Move function.
Matti Hamalainen <ccr@tnsp.org>
parents: 1072
diff changeset
580 }
7bfa5a38b6ca Move function.
Matti Hamalainen <ccr@tnsp.org>
parents: 1072
diff changeset
581 }
7bfa5a38b6ca Move function.
Matti Hamalainen <ccr@tnsp.org>
parents: 1072
diff changeset
582
7bfa5a38b6ca Move function.
Matti Hamalainen <ccr@tnsp.org>
parents: 1072
diff changeset
583
487
289692a0169c More helper functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 486
diff changeset
584 function stDBPrepareSQLUpdate($dbh, $table, $cond, $pairs)
0
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
585 {
487
289692a0169c More helper functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 486
diff changeset
586 $sql = array();
289692a0169c More helper functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 486
diff changeset
587 foreach ($pairs as $name => $attr)
0
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
588 {
487
289692a0169c More helper functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 486
diff changeset
589 $sql[] = $name."=".stDBGetSQLParam($dbh, $attr, $name);
0
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
590 }
487
289692a0169c More helper functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 486
diff changeset
591 return
289692a0169c More helper functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 486
diff changeset
592 "UPDATE ".$table." SET ".implode(",", $sql).
289692a0169c More helper functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 486
diff changeset
593 ($cond != "" ? " ".$cond : "");
0
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
594 }
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
595
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
596
487
289692a0169c More helper functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 486
diff changeset
597 function stDBPrepareSQL($dbh)
0
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
598 {
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
599 $argc = func_num_args();
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
600 $argv = func_get_args();
87
3da47d3e6a3c Remove a function, etc.
Matti Hamalainen <ccr@tnsp.org>
parents: 72
diff changeset
601
487
289692a0169c More helper functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 486
diff changeset
602 $fmt = $argv[1];
0
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
603 $len = strlen($fmt);
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
604 $sql = "";
487
289692a0169c More helper functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 486
diff changeset
605 $argn = 2;
289692a0169c More helper functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 486
diff changeset
606 for ($pos = 0; $pos < $len; $pos++)
0
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
607 {
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
608 if ($fmt[$pos] == "%")
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
609 {
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
610 if ($argn < $argc)
501
5f6e74b660df Fix some bugs.
Matti Hamalainen <ccr@tnsp.org>
parents: 492
diff changeset
611 $sql .= stDBGetSQLParam($dbh, $fmt[++$pos], $argv[$argn++]);
0
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
612 else
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
613 {
874
ffb5643eff4f Rename functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 861
diff changeset
614 stLogError("Invalid SQL statement format string '".$fmt.
0
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
615 "', not enough parameters specified (".$argn." of ".$argc.")");
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
616 return FALSE;
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
617 }
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
618 }
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
619 else
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
620 $sql .= $fmt[$pos];
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
621 }
485
9737c24d39d2 Cosmetics.
Matti Hamalainen <ccr@tnsp.org>
parents: 484
diff changeset
622
0
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
623 return $sql;
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
624 }
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
625
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
626
487
289692a0169c More helper functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 486
diff changeset
627 function stPrepareSQL()
0
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
628 {
487
289692a0169c More helper functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 486
diff changeset
629 global $db;
289692a0169c More helper functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 486
diff changeset
630 $argc = func_num_args();
289692a0169c More helper functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 486
diff changeset
631 $argv = func_get_args();
289692a0169c More helper functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 486
diff changeset
632
289692a0169c More helper functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 486
diff changeset
633 $fmt = $argv[0];
289692a0169c More helper functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 486
diff changeset
634 $len = strlen($fmt);
289692a0169c More helper functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 486
diff changeset
635 $sql = "";
289692a0169c More helper functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 486
diff changeset
636 $argn = 1;
289692a0169c More helper functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 486
diff changeset
637 for ($pos = 0; $pos < $len; $pos++)
0
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
638 {
487
289692a0169c More helper functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 486
diff changeset
639 if ($fmt[$pos] == "%")
289692a0169c More helper functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 486
diff changeset
640 {
289692a0169c More helper functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 486
diff changeset
641 if ($argn < $argc)
492
7d1f08ec1d45 Oops, 100L for me.
Matti Hamalainen <ccr@tnsp.org>
parents: 487
diff changeset
642 $sql .= stDBGetSQLParam($db, $fmt[++$pos], $argv[$argn++]);
487
289692a0169c More helper functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 486
diff changeset
643 else
289692a0169c More helper functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 486
diff changeset
644 {
874
ffb5643eff4f Rename functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 861
diff changeset
645 stLogError("Invalid SQL statement format string '".$fmt.
487
289692a0169c More helper functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 486
diff changeset
646 "', not enough parameters specified (".$argn." of ".$argc.")");
289692a0169c More helper functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 486
diff changeset
647 return FALSE;
289692a0169c More helper functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 486
diff changeset
648 }
289692a0169c More helper functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 486
diff changeset
649 }
289692a0169c More helper functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 486
diff changeset
650 else
289692a0169c More helper functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 486
diff changeset
651 $sql .= $fmt[$pos];
0
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
652 }
487
289692a0169c More helper functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 486
diff changeset
653
289692a0169c More helper functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 486
diff changeset
654 return $sql;
0
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
655 }
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
656
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
657
547
1fceb6f57c90 Add helper functions for SQL INSERT that return the last insert id, to work
Matti Hamalainen <ccr@tnsp.org>
parents: 538
diff changeset
658 function stDBExecSQLInsert($dbh, $sql)
1fceb6f57c90 Add helper functions for SQL INSERT that return the last insert id, to work
Matti Hamalainen <ccr@tnsp.org>
parents: 538
diff changeset
659 {
1fceb6f57c90 Add helper functions for SQL INSERT that return the last insert id, to work
Matti Hamalainen <ccr@tnsp.org>
parents: 538
diff changeset
660 switch ($dbh->getAttribute(PDO::ATTR_DRIVER_NAME))
1fceb6f57c90 Add helper functions for SQL INSERT that return the last insert id, to work
Matti Hamalainen <ccr@tnsp.org>
parents: 538
diff changeset
661 {
1fceb6f57c90 Add helper functions for SQL INSERT that return the last insert id, to work
Matti Hamalainen <ccr@tnsp.org>
parents: 538
diff changeset
662 case "pgsql":
1fceb6f57c90 Add helper functions for SQL INSERT that return the last insert id, to work
Matti Hamalainen <ccr@tnsp.org>
parents: 538
diff changeset
663 if (($res = stDBFetchSQLColumn($dbh, $sql." RETURNING id")) !== false)
1fceb6f57c90 Add helper functions for SQL INSERT that return the last insert id, to work
Matti Hamalainen <ccr@tnsp.org>
parents: 538
diff changeset
664 return $res;
1fceb6f57c90 Add helper functions for SQL INSERT that return the last insert id, to work
Matti Hamalainen <ccr@tnsp.org>
parents: 538
diff changeset
665 else
1fceb6f57c90 Add helper functions for SQL INSERT that return the last insert id, to work
Matti Hamalainen <ccr@tnsp.org>
parents: 538
diff changeset
666 return FALSE;
1fceb6f57c90 Add helper functions for SQL INSERT that return the last insert id, to work
Matti Hamalainen <ccr@tnsp.org>
parents: 538
diff changeset
667
1fceb6f57c90 Add helper functions for SQL INSERT that return the last insert id, to work
Matti Hamalainen <ccr@tnsp.org>
parents: 538
diff changeset
668 default:
1fceb6f57c90 Add helper functions for SQL INSERT that return the last insert id, to work
Matti Hamalainen <ccr@tnsp.org>
parents: 538
diff changeset
669 if (stDBExecSQL($dbh, $sql) !== false)
1fceb6f57c90 Add helper functions for SQL INSERT that return the last insert id, to work
Matti Hamalainen <ccr@tnsp.org>
parents: 538
diff changeset
670 return $dbh->lastInsertId();
1fceb6f57c90 Add helper functions for SQL INSERT that return the last insert id, to work
Matti Hamalainen <ccr@tnsp.org>
parents: 538
diff changeset
671 else
1fceb6f57c90 Add helper functions for SQL INSERT that return the last insert id, to work
Matti Hamalainen <ccr@tnsp.org>
parents: 538
diff changeset
672 return FALSE;
1fceb6f57c90 Add helper functions for SQL INSERT that return the last insert id, to work
Matti Hamalainen <ccr@tnsp.org>
parents: 538
diff changeset
673 }
1fceb6f57c90 Add helper functions for SQL INSERT that return the last insert id, to work
Matti Hamalainen <ccr@tnsp.org>
parents: 538
diff changeset
674 }
1fceb6f57c90 Add helper functions for SQL INSERT that return the last insert id, to work
Matti Hamalainen <ccr@tnsp.org>
parents: 538
diff changeset
675
1fceb6f57c90 Add helper functions for SQL INSERT that return the last insert id, to work
Matti Hamalainen <ccr@tnsp.org>
parents: 538
diff changeset
676
487
289692a0169c More helper functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 486
diff changeset
677 function stDBExecSQL($dbh, $sql)
0
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
678 {
487
289692a0169c More helper functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 486
diff changeset
679 if (($res = $dbh->query($sql)) !== FALSE)
0
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
680 return $res;
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
681 else
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
682 {
501
5f6e74b660df Fix some bugs.
Matti Hamalainen <ccr@tnsp.org>
parents: 492
diff changeset
683 stLogSQLError($dbh, $sql);
0
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
684 stError("Oh noes! SQL error #23!");
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
685 return FALSE;
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
686 }
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
687 }
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
688
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
689
487
289692a0169c More helper functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 486
diff changeset
690 function stDBFetchSQL($dbh, $sql)
0
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
691 {
487
289692a0169c More helper functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 486
diff changeset
692 if (($res = $dbh->query($sql)) !== FALSE)
0
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
693 return $res->fetch();
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
694 else
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
695 {
501
5f6e74b660df Fix some bugs.
Matti Hamalainen <ccr@tnsp.org>
parents: 492
diff changeset
696 stLogSQLError($dbh, $sql);
0
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
697 stError("Oh noes! SQL error #31!");
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
698 return FALSE;
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
699 }
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
700 }
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
701
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
702
487
289692a0169c More helper functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 486
diff changeset
703 function stDBFetchSQLColumn($dbh, $sql, $column = 0)
0
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
704 {
487
289692a0169c More helper functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 486
diff changeset
705 if (($res = $dbh->query($sql)) !== FALSE)
0
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
706 return $res->fetchColumn($column);
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
707 else
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
708 {
501
5f6e74b660df Fix some bugs.
Matti Hamalainen <ccr@tnsp.org>
parents: 492
diff changeset
709 stLogSQLError($dbh, $sql);
0
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
710 stError("Oh noes! SQL error #81!");
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
711 return FALSE;
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
712 }
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
713 }
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
714
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
715
487
289692a0169c More helper functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 486
diff changeset
716 function stPrepareSQLUpdate($table, $cond, $pairs)
66
230aacc22cb4 Move some functions to site lib.
Matti Hamalainen <ccr@tnsp.org>
parents: 65
diff changeset
717 {
487
289692a0169c More helper functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 486
diff changeset
718 global $db;
289692a0169c More helper functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 486
diff changeset
719 return stDBPrepareSQLUpdate($db, $table, $cond, $pairs);
289692a0169c More helper functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 486
diff changeset
720 }
289692a0169c More helper functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 486
diff changeset
721
289692a0169c More helper functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 486
diff changeset
722
547
1fceb6f57c90 Add helper functions for SQL INSERT that return the last insert id, to work
Matti Hamalainen <ccr@tnsp.org>
parents: 538
diff changeset
723 function stExecSQLInsert($sql)
1fceb6f57c90 Add helper functions for SQL INSERT that return the last insert id, to work
Matti Hamalainen <ccr@tnsp.org>
parents: 538
diff changeset
724 {
1fceb6f57c90 Add helper functions for SQL INSERT that return the last insert id, to work
Matti Hamalainen <ccr@tnsp.org>
parents: 538
diff changeset
725 global $db;
1fceb6f57c90 Add helper functions for SQL INSERT that return the last insert id, to work
Matti Hamalainen <ccr@tnsp.org>
parents: 538
diff changeset
726 return stDBExecSQLInsert($db, $sql);
1fceb6f57c90 Add helper functions for SQL INSERT that return the last insert id, to work
Matti Hamalainen <ccr@tnsp.org>
parents: 538
diff changeset
727 }
1fceb6f57c90 Add helper functions for SQL INSERT that return the last insert id, to work
Matti Hamalainen <ccr@tnsp.org>
parents: 538
diff changeset
728
1fceb6f57c90 Add helper functions for SQL INSERT that return the last insert id, to work
Matti Hamalainen <ccr@tnsp.org>
parents: 538
diff changeset
729
492
7d1f08ec1d45 Oops, 100L for me.
Matti Hamalainen <ccr@tnsp.org>
parents: 487
diff changeset
730 function stExecSQL($sql)
487
289692a0169c More helper functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 486
diff changeset
731 {
289692a0169c More helper functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 486
diff changeset
732 global $db;
289692a0169c More helper functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 486
diff changeset
733 return stDBExecSQL($db, $sql);
289692a0169c More helper functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 486
diff changeset
734 }
289692a0169c More helper functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 486
diff changeset
735
289692a0169c More helper functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 486
diff changeset
736
492
7d1f08ec1d45 Oops, 100L for me.
Matti Hamalainen <ccr@tnsp.org>
parents: 487
diff changeset
737 function stFetchSQL($sql)
487
289692a0169c More helper functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 486
diff changeset
738 {
289692a0169c More helper functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 486
diff changeset
739 global $db;
289692a0169c More helper functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 486
diff changeset
740 return stDBFetchSQL($db, $sql);
289692a0169c More helper functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 486
diff changeset
741 }
289692a0169c More helper functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 486
diff changeset
742
289692a0169c More helper functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 486
diff changeset
743
289692a0169c More helper functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 486
diff changeset
744 function stFetchSQLColumn($sql, $column = 0)
289692a0169c More helper functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 486
diff changeset
745 {
289692a0169c More helper functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 486
diff changeset
746 global $db;
289692a0169c More helper functions.
Matti Hamalainen <ccr@tnsp.org>
parents: 486
diff changeset
747 return stDBFetchSQLColumn($db, $sql, $column);
66
230aacc22cb4 Move some functions to site lib.
Matti Hamalainen <ccr@tnsp.org>
parents: 65
diff changeset
748 }
230aacc22cb4 Move some functions to site lib.
Matti Hamalainen <ccr@tnsp.org>
parents: 65
diff changeset
749
230aacc22cb4 Move some functions to site lib.
Matti Hamalainen <ccr@tnsp.org>
parents: 65
diff changeset
750
578
4227095a1384 Add functions for beginning and committing SQL transactions and use them.
Matti Hamalainen <ccr@tnsp.org>
parents: 577
diff changeset
751 function stDBBeginTransaction($dbh = FALSE)
4227095a1384 Add functions for beginning and committing SQL transactions and use them.
Matti Hamalainen <ccr@tnsp.org>
parents: 577
diff changeset
752 {
4227095a1384 Add functions for beginning and committing SQL transactions and use them.
Matti Hamalainen <ccr@tnsp.org>
parents: 577
diff changeset
753 global $db;
579
204106edd2b6 Return the return values.
Matti Hamalainen <ccr@tnsp.org>
parents: 578
diff changeset
754 return stDBExecSQL(($dbh !== FALSE) ? $dbh : $db, "BEGIN TRANSACTION");
578
4227095a1384 Add functions for beginning and committing SQL transactions and use them.
Matti Hamalainen <ccr@tnsp.org>
parents: 577
diff changeset
755 }
4227095a1384 Add functions for beginning and committing SQL transactions and use them.
Matti Hamalainen <ccr@tnsp.org>
parents: 577
diff changeset
756
4227095a1384 Add functions for beginning and committing SQL transactions and use them.
Matti Hamalainen <ccr@tnsp.org>
parents: 577
diff changeset
757
607
e78d90ca4f4a Use default database handle for transaction commits if none provided.
Matti Hamalainen <ccr@tnsp.org>
parents: 579
diff changeset
758 function stDBCommitTransaction($dbh = FALSE)
578
4227095a1384 Add functions for beginning and committing SQL transactions and use them.
Matti Hamalainen <ccr@tnsp.org>
parents: 577
diff changeset
759 {
4227095a1384 Add functions for beginning and committing SQL transactions and use them.
Matti Hamalainen <ccr@tnsp.org>
parents: 577
diff changeset
760 global $db;
579
204106edd2b6 Return the return values.
Matti Hamalainen <ccr@tnsp.org>
parents: 578
diff changeset
761 return stDBExecSQL(($dbh !== FALSE) ? $dbh : $db, "COMMIT");
578
4227095a1384 Add functions for beginning and committing SQL transactions and use them.
Matti Hamalainen <ccr@tnsp.org>
parents: 577
diff changeset
762 }
4227095a1384 Add functions for beginning and committing SQL transactions and use them.
Matti Hamalainen <ccr@tnsp.org>
parents: 577
diff changeset
763
4227095a1384 Add functions for beginning and committing SQL transactions and use them.
Matti Hamalainen <ccr@tnsp.org>
parents: 577
diff changeset
764
577
ba521a7e7653 Move two DB helper functions from managedb to msitegen module.
Matti Hamalainen <ccr@tnsp.org>
parents: 575
diff changeset
765 function stDBGetTableSchema($dbh, $data)
ba521a7e7653 Move two DB helper functions from managedb to msitegen module.
Matti Hamalainen <ccr@tnsp.org>
parents: 575
diff changeset
766 {
ba521a7e7653 Move two DB helper functions from managedb to msitegen module.
Matti Hamalainen <ccr@tnsp.org>
parents: 575
diff changeset
767 $res = array();
ba521a7e7653 Move two DB helper functions from managedb to msitegen module.
Matti Hamalainen <ccr@tnsp.org>
parents: 575
diff changeset
768 $driver = $dbh->getAttribute(PDO::ATTR_DRIVER_NAME);
ba521a7e7653 Move two DB helper functions from managedb to msitegen module.
Matti Hamalainen <ccr@tnsp.org>
parents: 575
diff changeset
769
ba521a7e7653 Move two DB helper functions from managedb to msitegen module.
Matti Hamalainen <ccr@tnsp.org>
parents: 575
diff changeset
770 foreach ($data as $col)
ba521a7e7653 Move two DB helper functions from managedb to msitegen module.
Matti Hamalainen <ccr@tnsp.org>
parents: 575
diff changeset
771 {
ba521a7e7653 Move two DB helper functions from managedb to msitegen module.
Matti Hamalainen <ccr@tnsp.org>
parents: 575
diff changeset
772 $tmp = array();
ba521a7e7653 Move two DB helper functions from managedb to msitegen module.
Matti Hamalainen <ccr@tnsp.org>
parents: 575
diff changeset
773
ba521a7e7653 Move two DB helper functions from managedb to msitegen module.
Matti Hamalainen <ccr@tnsp.org>
parents: 575
diff changeset
774 switch ($driver)
ba521a7e7653 Move two DB helper functions from managedb to msitegen module.
Matti Hamalainen <ccr@tnsp.org>
parents: 575
diff changeset
775 {
ba521a7e7653 Move two DB helper functions from managedb to msitegen module.
Matti Hamalainen <ccr@tnsp.org>
parents: 575
diff changeset
776 case "pgsql":
ba521a7e7653 Move two DB helper functions from managedb to msitegen module.
Matti Hamalainen <ccr@tnsp.org>
parents: 575
diff changeset
777 foreach ($col as $elem)
ba521a7e7653 Move two DB helper functions from managedb to msitegen module.
Matti Hamalainen <ccr@tnsp.org>
parents: 575
diff changeset
778 {
ba521a7e7653 Move two DB helper functions from managedb to msitegen module.
Matti Hamalainen <ccr@tnsp.org>
parents: 575
diff changeset
779 // For Postgres, use SERIAL for autoincrement
ba521a7e7653 Move two DB helper functions from managedb to msitegen module.
Matti Hamalainen <ccr@tnsp.org>
parents: 575
diff changeset
780 if ($elem == "AUTOINCREMENT")
ba521a7e7653 Move two DB helper functions from managedb to msitegen module.
Matti Hamalainen <ccr@tnsp.org>
parents: 575
diff changeset
781 $tmp[1] = "SERIAL";
ba521a7e7653 Move two DB helper functions from managedb to msitegen module.
Matti Hamalainen <ccr@tnsp.org>
parents: 575
diff changeset
782 else
ba521a7e7653 Move two DB helper functions from managedb to msitegen module.
Matti Hamalainen <ccr@tnsp.org>
parents: 575
diff changeset
783 $tmp[] = $elem;
ba521a7e7653 Move two DB helper functions from managedb to msitegen module.
Matti Hamalainen <ccr@tnsp.org>
parents: 575
diff changeset
784 }
ba521a7e7653 Move two DB helper functions from managedb to msitegen module.
Matti Hamalainen <ccr@tnsp.org>
parents: 575
diff changeset
785 break;
ba521a7e7653 Move two DB helper functions from managedb to msitegen module.
Matti Hamalainen <ccr@tnsp.org>
parents: 575
diff changeset
786
ba521a7e7653 Move two DB helper functions from managedb to msitegen module.
Matti Hamalainen <ccr@tnsp.org>
parents: 575
diff changeset
787 case "mysql":
ba521a7e7653 Move two DB helper functions from managedb to msitegen module.
Matti Hamalainen <ccr@tnsp.org>
parents: 575
diff changeset
788 foreach ($col as $elem)
ba521a7e7653 Move two DB helper functions from managedb to msitegen module.
Matti Hamalainen <ccr@tnsp.org>
parents: 575
diff changeset
789 {
ba521a7e7653 Move two DB helper functions from managedb to msitegen module.
Matti Hamalainen <ccr@tnsp.org>
parents: 575
diff changeset
790 if ($elem != "AUTOINCREMENT")
ba521a7e7653 Move two DB helper functions from managedb to msitegen module.
Matti Hamalainen <ccr@tnsp.org>
parents: 575
diff changeset
791 $tmp[] = "AUTO_INCREMENT";
ba521a7e7653 Move two DB helper functions from managedb to msitegen module.
Matti Hamalainen <ccr@tnsp.org>
parents: 575
diff changeset
792 else
ba521a7e7653 Move two DB helper functions from managedb to msitegen module.
Matti Hamalainen <ccr@tnsp.org>
parents: 575
diff changeset
793 $tmp[] = $elem;
ba521a7e7653 Move two DB helper functions from managedb to msitegen module.
Matti Hamalainen <ccr@tnsp.org>
parents: 575
diff changeset
794 }
ba521a7e7653 Move two DB helper functions from managedb to msitegen module.
Matti Hamalainen <ccr@tnsp.org>
parents: 575
diff changeset
795 break;
ba521a7e7653 Move two DB helper functions from managedb to msitegen module.
Matti Hamalainen <ccr@tnsp.org>
parents: 575
diff changeset
796
ba521a7e7653 Move two DB helper functions from managedb to msitegen module.
Matti Hamalainen <ccr@tnsp.org>
parents: 575
diff changeset
797 case "sqlite":
ba521a7e7653 Move two DB helper functions from managedb to msitegen module.
Matti Hamalainen <ccr@tnsp.org>
parents: 575
diff changeset
798 $tmp = $col;
ba521a7e7653 Move two DB helper functions from managedb to msitegen module.
Matti Hamalainen <ccr@tnsp.org>
parents: 575
diff changeset
799 break;
ba521a7e7653 Move two DB helper functions from managedb to msitegen module.
Matti Hamalainen <ccr@tnsp.org>
parents: 575
diff changeset
800
ba521a7e7653 Move two DB helper functions from managedb to msitegen module.
Matti Hamalainen <ccr@tnsp.org>
parents: 575
diff changeset
801 default:
ba521a7e7653 Move two DB helper functions from managedb to msitegen module.
Matti Hamalainen <ccr@tnsp.org>
parents: 575
diff changeset
802 die("Don't know how to handle PDO driver '".$driver."' yet.\n");
ba521a7e7653 Move two DB helper functions from managedb to msitegen module.
Matti Hamalainen <ccr@tnsp.org>
parents: 575
diff changeset
803 }
ba521a7e7653 Move two DB helper functions from managedb to msitegen module.
Matti Hamalainen <ccr@tnsp.org>
parents: 575
diff changeset
804
ba521a7e7653 Move two DB helper functions from managedb to msitegen module.
Matti Hamalainen <ccr@tnsp.org>
parents: 575
diff changeset
805 $res[] = implode(" ", $tmp);
ba521a7e7653 Move two DB helper functions from managedb to msitegen module.
Matti Hamalainen <ccr@tnsp.org>
parents: 575
diff changeset
806 }
ba521a7e7653 Move two DB helper functions from managedb to msitegen module.
Matti Hamalainen <ccr@tnsp.org>
parents: 575
diff changeset
807
ba521a7e7653 Move two DB helper functions from managedb to msitegen module.
Matti Hamalainen <ccr@tnsp.org>
parents: 575
diff changeset
808 return implode(", ", $res);
ba521a7e7653 Move two DB helper functions from managedb to msitegen module.
Matti Hamalainen <ccr@tnsp.org>
parents: 575
diff changeset
809 }
ba521a7e7653 Move two DB helper functions from managedb to msitegen module.
Matti Hamalainen <ccr@tnsp.org>
parents: 575
diff changeset
810
ba521a7e7653 Move two DB helper functions from managedb to msitegen module.
Matti Hamalainen <ccr@tnsp.org>
parents: 575
diff changeset
811
ba521a7e7653 Move two DB helper functions from managedb to msitegen module.
Matti Hamalainen <ccr@tnsp.org>
parents: 575
diff changeset
812 function stDBCreateOneTable($dbh, $name, $schema)
ba521a7e7653 Move two DB helper functions from managedb to msitegen module.
Matti Hamalainen <ccr@tnsp.org>
parents: 575
diff changeset
813 {
ba521a7e7653 Move two DB helper functions from managedb to msitegen module.
Matti Hamalainen <ccr@tnsp.org>
parents: 575
diff changeset
814 // echo "CREATE TABLE ".$name ." (".$schema.")\n";
ba521a7e7653 Move two DB helper functions from managedb to msitegen module.
Matti Hamalainen <ccr@tnsp.org>
parents: 575
diff changeset
815 return (stDBExecSQL($dbh, "CREATE TABLE ".$name." (".$schema.")") !== FALSE) ? TRUE : FALSE;
ba521a7e7653 Move two DB helper functions from managedb to msitegen module.
Matti Hamalainen <ccr@tnsp.org>
parents: 575
diff changeset
816 }
ba521a7e7653 Move two DB helper functions from managedb to msitegen module.
Matti Hamalainen <ccr@tnsp.org>
parents: 575
diff changeset
817
ba521a7e7653 Move two DB helper functions from managedb to msitegen module.
Matti Hamalainen <ccr@tnsp.org>
parents: 575
diff changeset
818
803
ddb30c989b47 Add new helper function stSubStrCmp() for comparing substrings.
Matti Hamalainen <ccr@tnsp.org>
parents: 793
diff changeset
819 function stSubStrCmp($str, $cmp, $send = FALSE)
ddb30c989b47 Add new helper function stSubStrCmp() for comparing substrings.
Matti Hamalainen <ccr@tnsp.org>
parents: 793
diff changeset
820 {
ddb30c989b47 Add new helper function stSubStrCmp() for comparing substrings.
Matti Hamalainen <ccr@tnsp.org>
parents: 793
diff changeset
821 if ($send)
ddb30c989b47 Add new helper function stSubStrCmp() for comparing substrings.
Matti Hamalainen <ccr@tnsp.org>
parents: 793
diff changeset
822 return substr($str, -strlen($cmp)) == $cmp;
ddb30c989b47 Add new helper function stSubStrCmp() for comparing substrings.
Matti Hamalainen <ccr@tnsp.org>
parents: 793
diff changeset
823 else
ddb30c989b47 Add new helper function stSubStrCmp() for comparing substrings.
Matti Hamalainen <ccr@tnsp.org>
parents: 793
diff changeset
824 return substr($str, 0, strlen($cmp)) == $cmp;
ddb30c989b47 Add new helper function stSubStrCmp() for comparing substrings.
Matti Hamalainen <ccr@tnsp.org>
parents: 793
diff changeset
825 }
ddb30c989b47 Add new helper function stSubStrCmp() for comparing substrings.
Matti Hamalainen <ccr@tnsp.org>
parents: 793
diff changeset
826
ddb30c989b47 Add new helper function stSubStrCmp() for comparing substrings.
Matti Hamalainen <ccr@tnsp.org>
parents: 793
diff changeset
827
135
eecac02579c4 Move stChop() to site module and rename it to stStrChop().
Matti Hamalainen <ccr@tnsp.org>
parents: 121
diff changeset
828 function stStrChop($str, $len)
eecac02579c4 Move stChop() to site module and rename it to stStrChop().
Matti Hamalainen <ccr@tnsp.org>
parents: 121
diff changeset
829 {
569
9e8637631089 Fix stStrChop() and stStrChopPad() UTF-8 handling.
Matti Hamalainen <ccr@tnsp.org>
parents: 565
diff changeset
830 return (mb_strlen($str) > $len) ? mb_substr($str, 0, $len - 3)."..." : $str;
558
09a11dd385c7 Add new function stStrChopPad() that replaces stStrChop(), but stStrChop()
Matti Hamalainen <ccr@tnsp.org>
parents: 547
diff changeset
831 }
09a11dd385c7 Add new function stStrChopPad() that replaces stStrChop(), but stStrChop()
Matti Hamalainen <ccr@tnsp.org>
parents: 547
diff changeset
832
09a11dd385c7 Add new function stStrChopPad() that replaces stStrChop(), but stStrChop()
Matti Hamalainen <ccr@tnsp.org>
parents: 547
diff changeset
833
09a11dd385c7 Add new function stStrChopPad() that replaces stStrChop(), but stStrChop()
Matti Hamalainen <ccr@tnsp.org>
parents: 547
diff changeset
834 function stStrChopPad($str, $len)
09a11dd385c7 Add new function stStrChopPad() that replaces stStrChop(), but stStrChop()
Matti Hamalainen <ccr@tnsp.org>
parents: 547
diff changeset
835 {
569
9e8637631089 Fix stStrChop() and stStrChopPad() UTF-8 handling.
Matti Hamalainen <ccr@tnsp.org>
parents: 565
diff changeset
836 $tmp = stStrChop($str, $len);
9e8637631089 Fix stStrChop() and stStrChopPad() UTF-8 handling.
Matti Hamalainen <ccr@tnsp.org>
parents: 565
diff changeset
837 for ($i = mb_strlen($tmp); $i < $len; $i++)
9e8637631089 Fix stStrChop() and stStrChopPad() UTF-8 handling.
Matti Hamalainen <ccr@tnsp.org>
parents: 565
diff changeset
838 $tmp .= " ";
9e8637631089 Fix stStrChop() and stStrChopPad() UTF-8 handling.
Matti Hamalainen <ccr@tnsp.org>
parents: 565
diff changeset
839 return $tmp;
135
eecac02579c4 Move stChop() to site module and rename it to stStrChop().
Matti Hamalainen <ccr@tnsp.org>
parents: 121
diff changeset
840 }
eecac02579c4 Move stChop() to site module and rename it to stStrChop().
Matti Hamalainen <ccr@tnsp.org>
parents: 121
diff changeset
841
174
63c840590476 Move common code from mcommon.inc.php to msitegen module.
Matti Hamalainen <ccr@tnsp.org>
parents: 173
diff changeset
842
1017
438457153ced Add new utility function stStrAtime().
Matti Hamalainen <ccr@tnsp.org>
parents: 1006
diff changeset
843 $stStrAtimeData =
438457153ced Add new utility function stStrAtime().
Matti Hamalainen <ccr@tnsp.org>
parents: 1006
diff changeset
844 [
438457153ced Add new utility function stStrAtime().
Matti Hamalainen <ccr@tnsp.org>
parents: 1006
diff changeset
845 [ 30*24*60*60, "month" , "months" ],
438457153ced Add new utility function stStrAtime().
Matti Hamalainen <ccr@tnsp.org>
parents: 1006
diff changeset
846 [ 7*24*60*60, "week" , "weeks" ],
438457153ced Add new utility function stStrAtime().
Matti Hamalainen <ccr@tnsp.org>
parents: 1006
diff changeset
847 [ 24*60*60, "day" , "days" ],
438457153ced Add new utility function stStrAtime().
Matti Hamalainen <ccr@tnsp.org>
parents: 1006
diff changeset
848 [ 60*60, "hour" , "hours" ],
438457153ced Add new utility function stStrAtime().
Matti Hamalainen <ccr@tnsp.org>
parents: 1006
diff changeset
849 [ 60, "minute" , "minutes" ],
438457153ced Add new utility function stStrAtime().
Matti Hamalainen <ccr@tnsp.org>
parents: 1006
diff changeset
850 ];
438457153ced Add new utility function stStrAtime().
Matti Hamalainen <ccr@tnsp.org>
parents: 1006
diff changeset
851
438457153ced Add new utility function stStrAtime().
Matti Hamalainen <ccr@tnsp.org>
parents: 1006
diff changeset
852
438457153ced Add new utility function stStrAtime().
Matti Hamalainen <ccr@tnsp.org>
parents: 1006
diff changeset
853 function stStrAtime($val)
438457153ced Add new utility function stStrAtime().
Matti Hamalainen <ccr@tnsp.org>
parents: 1006
diff changeset
854 {
438457153ced Add new utility function stStrAtime().
Matti Hamalainen <ccr@tnsp.org>
parents: 1006
diff changeset
855 global $stStrAtimeData;
438457153ced Add new utility function stStrAtime().
Matti Hamalainen <ccr@tnsp.org>
parents: 1006
diff changeset
856
438457153ced Add new utility function stStrAtime().
Matti Hamalainen <ccr@tnsp.org>
parents: 1006
diff changeset
857 $res = [];
438457153ced Add new utility function stStrAtime().
Matti Hamalainen <ccr@tnsp.org>
parents: 1006
diff changeset
858 foreach ($stStrAtimeData as $data)
438457153ced Add new utility function stStrAtime().
Matti Hamalainen <ccr@tnsp.org>
parents: 1006
diff changeset
859 if ($val >= $data[0])
438457153ced Add new utility function stStrAtime().
Matti Hamalainen <ccr@tnsp.org>
parents: 1006
diff changeset
860 {
438457153ced Add new utility function stStrAtime().
Matti Hamalainen <ccr@tnsp.org>
parents: 1006
diff changeset
861 $tmp = $val / $data[0];
438457153ced Add new utility function stStrAtime().
Matti Hamalainen <ccr@tnsp.org>
parents: 1006
diff changeset
862 $val = $val % $data[0];
438457153ced Add new utility function stStrAtime().
Matti Hamalainen <ccr@tnsp.org>
parents: 1006
diff changeset
863 $res[] = $tmp." ".($tmp > 1 ? $data[2] : $data[1]);
438457153ced Add new utility function stStrAtime().
Matti Hamalainen <ccr@tnsp.org>
parents: 1006
diff changeset
864 }
438457153ced Add new utility function stStrAtime().
Matti Hamalainen <ccr@tnsp.org>
parents: 1006
diff changeset
865 return implode(", ", $res);
438457153ced Add new utility function stStrAtime().
Matti Hamalainen <ccr@tnsp.org>
parents: 1006
diff changeset
866 }
438457153ced Add new utility function stStrAtime().
Matti Hamalainen <ccr@tnsp.org>
parents: 1006
diff changeset
867
438457153ced Add new utility function stStrAtime().
Matti Hamalainen <ccr@tnsp.org>
parents: 1006
diff changeset
868
574
463189fc05ed Some changes from custom site system branch.
Matti Hamalainen <ccr@tnsp.org>
parents: 571
diff changeset
869 function cmPrintCSSLine($filename, $media = FALSE)
174
63c840590476 Move common code from mcommon.inc.php to msitegen module.
Matti Hamalainen <ccr@tnsp.org>
parents: 173
diff changeset
870 {
180
a3f0f2a3551a Split stylesheets into separate files for different platforms and also split
Matti Hamalainen <ccr@tnsp.org>
parents: 178
diff changeset
871 echo
574
463189fc05ed Some changes from custom site system branch.
Matti Hamalainen <ccr@tnsp.org>
parents: 571
diff changeset
872 " <link rel=\"stylesheet\" href=\"".$filename.
463189fc05ed Some changes from custom site system branch.
Matti Hamalainen <ccr@tnsp.org>
parents: 571
diff changeset
873 "\" type=\"text/css\" ".($media !== FALSE ? "media=\"".$media."\"": "")." />\n";
174
63c840590476 Move common code from mcommon.inc.php to msitegen module.
Matti Hamalainen <ccr@tnsp.org>
parents: 173
diff changeset
874 }
63c840590476 Move common code from mcommon.inc.php to msitegen module.
Matti Hamalainen <ccr@tnsp.org>
parents: 173
diff changeset
875
63c840590476 Move common code from mcommon.inc.php to msitegen module.
Matti Hamalainen <ccr@tnsp.org>
parents: 173
diff changeset
876
63c840590476 Move common code from mcommon.inc.php to msitegen module.
Matti Hamalainen <ccr@tnsp.org>
parents: 173
diff changeset
877 function cmPrintPageHeader($pageTitle, $pageExtra = "", $useContents = TRUE)
63c840590476 Move common code from mcommon.inc.php to msitegen module.
Matti Hamalainen <ccr@tnsp.org>
parents: 173
diff changeset
878 {
575
1ec34a220df3 Another merge from generic custom site branch.
Matti Hamalainen <ccr@tnsp.org>
parents: 574
diff changeset
879 global $pageCSS, $pageCSSIndex, $pageCharset, $pageAuthor, $pageCSSData, $pageUrchin;
1ec34a220df3 Another merge from generic custom site branch.
Matti Hamalainen <ccr@tnsp.org>
parents: 574
diff changeset
880
1ec34a220df3 Another merge from generic custom site branch.
Matti Hamalainen <ccr@tnsp.org>
parents: 574
diff changeset
881 if (!isset($pageCSS))
1ec34a220df3 Another merge from generic custom site branch.
Matti Hamalainen <ccr@tnsp.org>
parents: 574
diff changeset
882 {
1ec34a220df3 Another merge from generic custom site branch.
Matti Hamalainen <ccr@tnsp.org>
parents: 574
diff changeset
883 if (!isset($pageCSSData))
1ec34a220df3 Another merge from generic custom site branch.
Matti Hamalainen <ccr@tnsp.org>
parents: 574
diff changeset
884 {
1ec34a220df3 Another merge from generic custom site branch.
Matti Hamalainen <ccr@tnsp.org>
parents: 574
diff changeset
885 $pageCSSData = array(
1ec34a220df3 Another merge from generic custom site branch.
Matti Hamalainen <ccr@tnsp.org>
parents: 574
diff changeset
886 "cookie" => "docscss",
1ec34a220df3 Another merge from generic custom site branch.
Matti Hamalainen <ccr@tnsp.org>
parents: 574
diff changeset
887 "prefix" => "/css/docs",
1ec34a220df3 Another merge from generic custom site branch.
Matti Hamalainen <ccr@tnsp.org>
parents: 574
diff changeset
888 );
1ec34a220df3 Another merge from generic custom site branch.
Matti Hamalainen <ccr@tnsp.org>
parents: 574
diff changeset
889 }
1ec34a220df3 Another merge from generic custom site branch.
Matti Hamalainen <ccr@tnsp.org>
parents: 574
diff changeset
890
1ec34a220df3 Another merge from generic custom site branch.
Matti Hamalainen <ccr@tnsp.org>
parents: 574
diff changeset
891 if (isset($_GET["css"]))
1ec34a220df3 Another merge from generic custom site branch.
Matti Hamalainen <ccr@tnsp.org>
parents: 574
diff changeset
892 {
1ec34a220df3 Another merge from generic custom site branch.
Matti Hamalainen <ccr@tnsp.org>
parents: 574
diff changeset
893 $pageCSSIndex = intval($_GET["css"]);
1ec34a220df3 Another merge from generic custom site branch.
Matti Hamalainen <ccr@tnsp.org>
parents: 574
diff changeset
894 setcookie($pageCSSData["cookie"], $pageCSSIndex, time() + 365*24*60*60, "/"); // expire in a year
1ec34a220df3 Another merge from generic custom site branch.
Matti Hamalainen <ccr@tnsp.org>
parents: 574
diff changeset
895 }
1ec34a220df3 Another merge from generic custom site branch.
Matti Hamalainen <ccr@tnsp.org>
parents: 574
diff changeset
896 else
1ec34a220df3 Another merge from generic custom site branch.
Matti Hamalainen <ccr@tnsp.org>
parents: 574
diff changeset
897 {
1ec34a220df3 Another merge from generic custom site branch.
Matti Hamalainen <ccr@tnsp.org>
parents: 574
diff changeset
898 $pageCSSIndex = isset($_COOKIE[$pageCSSData["cookie"]]) ? intval($_COOKIE[$pageCSSData["cookie"]]) : 1;
1ec34a220df3 Another merge from generic custom site branch.
Matti Hamalainen <ccr@tnsp.org>
parents: 574
diff changeset
899 }
1ec34a220df3 Another merge from generic custom site branch.
Matti Hamalainen <ccr@tnsp.org>
parents: 574
diff changeset
900 $pageCSS = $pageCSSData["prefix"].$pageCSSIndex.".css";
1ec34a220df3 Another merge from generic custom site branch.
Matti Hamalainen <ccr@tnsp.org>
parents: 574
diff changeset
901 }
174
63c840590476 Move common code from mcommon.inc.php to msitegen module.
Matti Hamalainen <ccr@tnsp.org>
parents: 173
diff changeset
902
63c840590476 Move common code from mcommon.inc.php to msitegen module.
Matti Hamalainen <ccr@tnsp.org>
parents: 173
diff changeset
903 echo
363
bab3b508be55 Add HTML5 doctype.
Matti Hamalainen <ccr@tnsp.org>
parents: 362
diff changeset
904 "<!DOCTYPE html>\n".
178
0c2bdc46b93c Move toward HTML5.
Matti Hamalainen <ccr@tnsp.org>
parents: 177
diff changeset
905 "<html>\n".
174
63c840590476 Move common code from mcommon.inc.php to msitegen module.
Matti Hamalainen <ccr@tnsp.org>
parents: 173
diff changeset
906 "<head>\n".
232
aad9ededea6c Reorder some meta tags.
Matti Hamalainen <ccr@tnsp.org>
parents: 229
diff changeset
907 " <meta charset=\"".$pageCharset."\">\n".
362
38dfe9e0a017 Add meta-equiv for document content type.
Matti Hamalainen <ccr@tnsp.org>
parents: 359
diff changeset
908 " <meta http-equiv=\"Content-type\" content=\"text/html;charset=".$pageCharset."\">\n".
232
aad9ededea6c Reorder some meta tags.
Matti Hamalainen <ccr@tnsp.org>
parents: 229
diff changeset
909 " <title>".strip_tags($pageTitle)."</title>\n".
aad9ededea6c Reorder some meta tags.
Matti Hamalainen <ccr@tnsp.org>
parents: 229
diff changeset
910 $pageExtra;
174
63c840590476 Move common code from mcommon.inc.php to msitegen module.
Matti Hamalainen <ccr@tnsp.org>
parents: 173
diff changeset
911
63c840590476 Move common code from mcommon.inc.php to msitegen module.
Matti Hamalainen <ccr@tnsp.org>
parents: 173
diff changeset
912 if (is_array($pageCSS))
63c840590476 Move common code from mcommon.inc.php to msitegen module.
Matti Hamalainen <ccr@tnsp.org>
parents: 173
diff changeset
913 {
180
a3f0f2a3551a Split stylesheets into separate files for different platforms and also split
Matti Hamalainen <ccr@tnsp.org>
parents: 178
diff changeset
914 foreach ($pageCSS as $uri => $media)
a3f0f2a3551a Split stylesheets into separate files for different platforms and also split
Matti Hamalainen <ccr@tnsp.org>
parents: 178
diff changeset
915 cmPrintCSSLine($uri, $media);
174
63c840590476 Move common code from mcommon.inc.php to msitegen module.
Matti Hamalainen <ccr@tnsp.org>
parents: 173
diff changeset
916 }
63c840590476 Move common code from mcommon.inc.php to msitegen module.
Matti Hamalainen <ccr@tnsp.org>
parents: 173
diff changeset
917 else
63c840590476 Move common code from mcommon.inc.php to msitegen module.
Matti Hamalainen <ccr@tnsp.org>
parents: 173
diff changeset
918 {
574
463189fc05ed Some changes from custom site system branch.
Matti Hamalainen <ccr@tnsp.org>
parents: 571
diff changeset
919 cmPrintCSSLine($pageCSS, FALSE);
174
63c840590476 Move common code from mcommon.inc.php to msitegen module.
Matti Hamalainen <ccr@tnsp.org>
parents: 173
diff changeset
920 }
63c840590476 Move common code from mcommon.inc.php to msitegen module.
Matti Hamalainen <ccr@tnsp.org>
parents: 173
diff changeset
921
232
aad9ededea6c Reorder some meta tags.
Matti Hamalainen <ccr@tnsp.org>
parents: 229
diff changeset
922 echo
174
63c840590476 Move common code from mcommon.inc.php to msitegen module.
Matti Hamalainen <ccr@tnsp.org>
parents: 173
diff changeset
923 "</head>\n".
63c840590476 Move common code from mcommon.inc.php to msitegen module.
Matti Hamalainen <ccr@tnsp.org>
parents: 173
diff changeset
924 "<body>\n";
63c840590476 Move common code from mcommon.inc.php to msitegen module.
Matti Hamalainen <ccr@tnsp.org>
parents: 173
diff changeset
925
574
463189fc05ed Some changes from custom site system branch.
Matti Hamalainen <ccr@tnsp.org>
parents: 571
diff changeset
926 if (isset($pageUrchin) && file_exists($pageUrchin))
174
63c840590476 Move common code from mcommon.inc.php to msitegen module.
Matti Hamalainen <ccr@tnsp.org>
parents: 173
diff changeset
927 require_once $pageUrchin;
574
463189fc05ed Some changes from custom site system branch.
Matti Hamalainen <ccr@tnsp.org>
parents: 571
diff changeset
928 else
463189fc05ed Some changes from custom site system branch.
Matti Hamalainen <ccr@tnsp.org>
parents: 571
diff changeset
929 if (file_exists("urchin.inc.php"))
463189fc05ed Some changes from custom site system branch.
Matti Hamalainen <ccr@tnsp.org>
parents: 571
diff changeset
930 require_once "urchin.inc.php";
349
61c4dda0ec03 New message/confirmation boxes code done in JS + CSS instead of relying on
Matti Hamalainen <ccr@tnsp.org>
parents: 336
diff changeset
931
61c4dda0ec03 New message/confirmation boxes code done in JS + CSS instead of relying on
Matti Hamalainen <ccr@tnsp.org>
parents: 336
diff changeset
932 echo "<div id=\"messageBox\"></div>\n";
574
463189fc05ed Some changes from custom site system branch.
Matti Hamalainen <ccr@tnsp.org>
parents: 571
diff changeset
933
174
63c840590476 Move common code from mcommon.inc.php to msitegen module.
Matti Hamalainen <ccr@tnsp.org>
parents: 173
diff changeset
934 if ($useContents)
63c840590476 Move common code from mcommon.inc.php to msitegen module.
Matti Hamalainen <ccr@tnsp.org>
parents: 173
diff changeset
935 echo "<div id=\"contents\">\n";
63c840590476 Move common code from mcommon.inc.php to msitegen module.
Matti Hamalainen <ccr@tnsp.org>
parents: 173
diff changeset
936 }
63c840590476 Move common code from mcommon.inc.php to msitegen module.
Matti Hamalainen <ccr@tnsp.org>
parents: 173
diff changeset
937
63c840590476 Move common code from mcommon.inc.php to msitegen module.
Matti Hamalainen <ccr@tnsp.org>
parents: 173
diff changeset
938
63c840590476 Move common code from mcommon.inc.php to msitegen module.
Matti Hamalainen <ccr@tnsp.org>
parents: 173
diff changeset
939 function cmPrintPageFooter($useContents = TRUE)
63c840590476 Move common code from mcommon.inc.php to msitegen module.
Matti Hamalainen <ccr@tnsp.org>
parents: 173
diff changeset
940 {
63c840590476 Move common code from mcommon.inc.php to msitegen module.
Matti Hamalainen <ccr@tnsp.org>
parents: 173
diff changeset
941 if ($useContents)
63c840590476 Move common code from mcommon.inc.php to msitegen module.
Matti Hamalainen <ccr@tnsp.org>
parents: 173
diff changeset
942 echo "</div>\n";
63c840590476 Move common code from mcommon.inc.php to msitegen module.
Matti Hamalainen <ccr@tnsp.org>
parents: 173
diff changeset
943
63c840590476 Move common code from mcommon.inc.php to msitegen module.
Matti Hamalainen <ccr@tnsp.org>
parents: 173
diff changeset
944 echo "</body>\n</html>\n";
63c840590476 Move common code from mcommon.inc.php to msitegen module.
Matti Hamalainen <ccr@tnsp.org>
parents: 173
diff changeset
945 }
63c840590476 Move common code from mcommon.inc.php to msitegen module.
Matti Hamalainen <ccr@tnsp.org>
parents: 173
diff changeset
946
63c840590476 Move common code from mcommon.inc.php to msitegen module.
Matti Hamalainen <ccr@tnsp.org>
parents: 173
diff changeset
947
63c840590476 Move common code from mcommon.inc.php to msitegen module.
Matti Hamalainen <ccr@tnsp.org>
parents: 173
diff changeset
948 function cmQM($msg)
63c840590476 Move common code from mcommon.inc.php to msitegen module.
Matti Hamalainen <ccr@tnsp.org>
parents: 173
diff changeset
949 {
63c840590476 Move common code from mcommon.inc.php to msitegen module.
Matti Hamalainen <ccr@tnsp.org>
parents: 173
diff changeset
950 global $pageTranslations, $pageLang;
63c840590476 Move common code from mcommon.inc.php to msitegen module.
Matti Hamalainen <ccr@tnsp.org>
parents: 173
diff changeset
951
63c840590476 Move common code from mcommon.inc.php to msitegen module.
Matti Hamalainen <ccr@tnsp.org>
parents: 173
diff changeset
952 if (isset($pageTranslations[$msg]) && isset($pageTranslations[$msg][$pageLang]))
63c840590476 Move common code from mcommon.inc.php to msitegen module.
Matti Hamalainen <ccr@tnsp.org>
parents: 173
diff changeset
953 $str = $pageTranslations[$msg][$pageLang];
63c840590476 Move common code from mcommon.inc.php to msitegen module.
Matti Hamalainen <ccr@tnsp.org>
parents: 173
diff changeset
954 else
63c840590476 Move common code from mcommon.inc.php to msitegen module.
Matti Hamalainen <ccr@tnsp.org>
parents: 173
diff changeset
955 $str = $msg;
63c840590476 Move common code from mcommon.inc.php to msitegen module.
Matti Hamalainen <ccr@tnsp.org>
parents: 173
diff changeset
956
63c840590476 Move common code from mcommon.inc.php to msitegen module.
Matti Hamalainen <ccr@tnsp.org>
parents: 173
diff changeset
957 foreach (func_get_args() as $argn => $argv)
63c840590476 Move common code from mcommon.inc.php to msitegen module.
Matti Hamalainen <ccr@tnsp.org>
parents: 173
diff changeset
958 $str = preg_replace("/\%".$argn."/", $argv, $str);
63c840590476 Move common code from mcommon.inc.php to msitegen module.
Matti Hamalainen <ccr@tnsp.org>
parents: 173
diff changeset
959 return $str;
63c840590476 Move common code from mcommon.inc.php to msitegen module.
Matti Hamalainen <ccr@tnsp.org>
parents: 173
diff changeset
960 }
63c840590476 Move common code from mcommon.inc.php to msitegen module.
Matti Hamalainen <ccr@tnsp.org>
parents: 173
diff changeset
961
479
86ee2b42a995 Move CLI helper functions to msitegen, again.
Matti Hamalainen <ccr@tnsp.org>
parents: 436
diff changeset
962
1069
5f92fa5e683a Refactor how the "AJAX" stuff works.
Matti Hamalainen <ccr@tnsp.org>
parents: 1027
diff changeset
963 function stCommonAJAX($backend, $failover)
5f92fa5e683a Refactor how the "AJAX" stuff works.
Matti Hamalainen <ccr@tnsp.org>
parents: 1027
diff changeset
964 {
5f92fa5e683a Refactor how the "AJAX" stuff works.
Matti Hamalainen <ccr@tnsp.org>
parents: 1027
diff changeset
965 ?>
5f92fa5e683a Refactor how the "AJAX" stuff works.
Matti Hamalainen <ccr@tnsp.org>
parents: 1027
diff changeset
966 function jsSendPOSTRequest(params, success, failure)
5f92fa5e683a Refactor how the "AJAX" stuff works.
Matti Hamalainen <ccr@tnsp.org>
parents: 1027
diff changeset
967 {
5f92fa5e683a Refactor how the "AJAX" stuff works.
Matti Hamalainen <ccr@tnsp.org>
parents: 1027
diff changeset
968 <?php
5f92fa5e683a Refactor how the "AJAX" stuff works.
Matti Hamalainen <ccr@tnsp.org>
parents: 1027
diff changeset
969 if (($csrfID = stGetSessionItem("csrfID", FALSE)) !== FALSE)
5f92fa5e683a Refactor how the "AJAX" stuff works.
Matti Hamalainen <ccr@tnsp.org>
parents: 1027
diff changeset
970 echo " params += \"&csrfID=".$csrfID."\";\n";
5f92fa5e683a Refactor how the "AJAX" stuff works.
Matti Hamalainen <ccr@tnsp.org>
parents: 1027
diff changeset
971 else
5f92fa5e683a Refactor how the "AJAX" stuff works.
Matti Hamalainen <ccr@tnsp.org>
parents: 1027
diff changeset
972 echo "// No CSRF?\n";
5f92fa5e683a Refactor how the "AJAX" stuff works.
Matti Hamalainen <ccr@tnsp.org>
parents: 1027
diff changeset
973 ?>
5f92fa5e683a Refactor how the "AJAX" stuff works.
Matti Hamalainen <ccr@tnsp.org>
parents: 1027
diff changeset
974 var req = jsCreateXMLRequest();
1071
76e11ae923a7 Use long tags.
Matti Hamalainen <ccr@tnsp.org>
parents: 1069
diff changeset
975 req.open("POST", "<?php echo $backend ?>", true);
1069
5f92fa5e683a Refactor how the "AJAX" stuff works.
Matti Hamalainen <ccr@tnsp.org>
parents: 1027
diff changeset
976 req.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
5f92fa5e683a Refactor how the "AJAX" stuff works.
Matti Hamalainen <ccr@tnsp.org>
parents: 1027
diff changeset
977 req.setRequestHeader("Content-length", params.length);
5f92fa5e683a Refactor how the "AJAX" stuff works.
Matti Hamalainen <ccr@tnsp.org>
parents: 1027
diff changeset
978 req.setRequestHeader("Connection", "close");
5f92fa5e683a Refactor how the "AJAX" stuff works.
Matti Hamalainen <ccr@tnsp.org>
parents: 1027
diff changeset
979
5f92fa5e683a Refactor how the "AJAX" stuff works.
Matti Hamalainen <ccr@tnsp.org>
parents: 1027
diff changeset
980 req.onreadystatechange = function()
5f92fa5e683a Refactor how the "AJAX" stuff works.
Matti Hamalainen <ccr@tnsp.org>
parents: 1027
diff changeset
981 {
5f92fa5e683a Refactor how the "AJAX" stuff works.
Matti Hamalainen <ccr@tnsp.org>
parents: 1027
diff changeset
982 if (req.readyState == 4)
5f92fa5e683a Refactor how the "AJAX" stuff works.
Matti Hamalainen <ccr@tnsp.org>
parents: 1027
diff changeset
983 {
5f92fa5e683a Refactor how the "AJAX" stuff works.
Matti Hamalainen <ccr@tnsp.org>
parents: 1027
diff changeset
984 switch (req.status)
5f92fa5e683a Refactor how the "AJAX" stuff works.
Matti Hamalainen <ccr@tnsp.org>
parents: 1027
diff changeset
985 {
5f92fa5e683a Refactor how the "AJAX" stuff works.
Matti Hamalainen <ccr@tnsp.org>
parents: 1027
diff changeset
986 case 404:
1071
76e11ae923a7 Use long tags.
Matti Hamalainen <ccr@tnsp.org>
parents: 1069
diff changeset
987 window.location = "<?php echo $failover ?>";
1069
5f92fa5e683a Refactor how the "AJAX" stuff works.
Matti Hamalainen <ccr@tnsp.org>
parents: 1027
diff changeset
988 break;
5f92fa5e683a Refactor how the "AJAX" stuff works.
Matti Hamalainen <ccr@tnsp.org>
parents: 1027
diff changeset
989
5f92fa5e683a Refactor how the "AJAX" stuff works.
Matti Hamalainen <ccr@tnsp.org>
parents: 1027
diff changeset
990 case 902:
5f92fa5e683a Refactor how the "AJAX" stuff works.
Matti Hamalainen <ccr@tnsp.org>
parents: 1027
diff changeset
991 jsStatusMsg(req.statusText);
5f92fa5e683a Refactor how the "AJAX" stuff works.
Matti Hamalainen <ccr@tnsp.org>
parents: 1027
diff changeset
992 jsMessageBox(req.responseText);
5f92fa5e683a Refactor how the "AJAX" stuff works.
Matti Hamalainen <ccr@tnsp.org>
parents: 1027
diff changeset
993 break;
5f92fa5e683a Refactor how the "AJAX" stuff works.
Matti Hamalainen <ccr@tnsp.org>
parents: 1027
diff changeset
994
5f92fa5e683a Refactor how the "AJAX" stuff works.
Matti Hamalainen <ccr@tnsp.org>
parents: 1027
diff changeset
995 case 903:
5f92fa5e683a Refactor how the "AJAX" stuff works.
Matti Hamalainen <ccr@tnsp.org>
parents: 1027
diff changeset
996 {
5f92fa5e683a Refactor how the "AJAX" stuff works.
Matti Hamalainen <ccr@tnsp.org>
parents: 1027
diff changeset
997 var nitem = document.getElementById("messageBox");
5f92fa5e683a Refactor how the "AJAX" stuff works.
Matti Hamalainen <ccr@tnsp.org>
parents: 1027
diff changeset
998 if (nitem)
5f92fa5e683a Refactor how the "AJAX" stuff works.
Matti Hamalainen <ccr@tnsp.org>
parents: 1027
diff changeset
999 {
5f92fa5e683a Refactor how the "AJAX" stuff works.
Matti Hamalainen <ccr@tnsp.org>
parents: 1027
diff changeset
1000 nitem.innerHTML = "<div class='messageBoxInner'>"+ req.responseText +
5f92fa5e683a Refactor how the "AJAX" stuff works.
Matti Hamalainen <ccr@tnsp.org>
parents: 1027
diff changeset
1001 "<div class='messageBoxControls'>"+
5f92fa5e683a Refactor how the "AJAX" stuff works.
Matti Hamalainen <ccr@tnsp.org>
parents: 1027
diff changeset
1002 "</div></div>";
5f92fa5e683a Refactor how the "AJAX" stuff works.
Matti Hamalainen <ccr@tnsp.org>
parents: 1027
diff changeset
1003 nitem.style.display = "block";
5f92fa5e683a Refactor how the "AJAX" stuff works.
Matti Hamalainen <ccr@tnsp.org>
parents: 1027
diff changeset
1004 }
5f92fa5e683a Refactor how the "AJAX" stuff works.
Matti Hamalainen <ccr@tnsp.org>
parents: 1027
diff changeset
1005 }
5f92fa5e683a Refactor how the "AJAX" stuff works.
Matti Hamalainen <ccr@tnsp.org>
parents: 1027
diff changeset
1006 break;
5f92fa5e683a Refactor how the "AJAX" stuff works.
Matti Hamalainen <ccr@tnsp.org>
parents: 1027
diff changeset
1007
5f92fa5e683a Refactor how the "AJAX" stuff works.
Matti Hamalainen <ccr@tnsp.org>
parents: 1027
diff changeset
1008 case 200:
5f92fa5e683a Refactor how the "AJAX" stuff works.
Matti Hamalainen <ccr@tnsp.org>
parents: 1027
diff changeset
1009 if (success)
5f92fa5e683a Refactor how the "AJAX" stuff works.
Matti Hamalainen <ccr@tnsp.org>
parents: 1027
diff changeset
1010 success(req.responseText);
5f92fa5e683a Refactor how the "AJAX" stuff works.
Matti Hamalainen <ccr@tnsp.org>
parents: 1027
diff changeset
1011 jsStatusMsg(req.statusText);
5f92fa5e683a Refactor how the "AJAX" stuff works.
Matti Hamalainen <ccr@tnsp.org>
parents: 1027
diff changeset
1012 break;
5f92fa5e683a Refactor how the "AJAX" stuff works.
Matti Hamalainen <ccr@tnsp.org>
parents: 1027
diff changeset
1013
5f92fa5e683a Refactor how the "AJAX" stuff works.
Matti Hamalainen <ccr@tnsp.org>
parents: 1027
diff changeset
1014 default:
5f92fa5e683a Refactor how the "AJAX" stuff works.
Matti Hamalainen <ccr@tnsp.org>
parents: 1027
diff changeset
1015 if (failure)
5f92fa5e683a Refactor how the "AJAX" stuff works.
Matti Hamalainen <ccr@tnsp.org>
parents: 1027
diff changeset
1016 failure(req.status, req.statusText, req.responseText);
5f92fa5e683a Refactor how the "AJAX" stuff works.
Matti Hamalainen <ccr@tnsp.org>
parents: 1027
diff changeset
1017 else
5f92fa5e683a Refactor how the "AJAX" stuff works.
Matti Hamalainen <ccr@tnsp.org>
parents: 1027
diff changeset
1018 jsStatusMsg("["+req.status+" - "+req.statusText+"] "+ req.responseText);
5f92fa5e683a Refactor how the "AJAX" stuff works.
Matti Hamalainen <ccr@tnsp.org>
parents: 1027
diff changeset
1019 break;
5f92fa5e683a Refactor how the "AJAX" stuff works.
Matti Hamalainen <ccr@tnsp.org>
parents: 1027
diff changeset
1020 }
5f92fa5e683a Refactor how the "AJAX" stuff works.
Matti Hamalainen <ccr@tnsp.org>
parents: 1027
diff changeset
1021 }
5f92fa5e683a Refactor how the "AJAX" stuff works.
Matti Hamalainen <ccr@tnsp.org>
parents: 1027
diff changeset
1022 }
5f92fa5e683a Refactor how the "AJAX" stuff works.
Matti Hamalainen <ccr@tnsp.org>
parents: 1027
diff changeset
1023 req.send(params);
5f92fa5e683a Refactor how the "AJAX" stuff works.
Matti Hamalainen <ccr@tnsp.org>
parents: 1027
diff changeset
1024 }
5f92fa5e683a Refactor how the "AJAX" stuff works.
Matti Hamalainen <ccr@tnsp.org>
parents: 1027
diff changeset
1025
5f92fa5e683a Refactor how the "AJAX" stuff works.
Matti Hamalainen <ccr@tnsp.org>
parents: 1027
diff changeset
1026 <?php
5f92fa5e683a Refactor how the "AJAX" stuff works.
Matti Hamalainen <ccr@tnsp.org>
parents: 1027
diff changeset
1027 }
5f92fa5e683a Refactor how the "AJAX" stuff works.
Matti Hamalainen <ccr@tnsp.org>
parents: 1027
diff changeset
1028
479
86ee2b42a995 Move CLI helper functions to msitegen, again.
Matti Hamalainen <ccr@tnsp.org>
parents: 436
diff changeset
1029 //
86ee2b42a995 Move CLI helper functions to msitegen, again.
Matti Hamalainen <ccr@tnsp.org>
parents: 436
diff changeset
1030 // CLI related helper functions
86ee2b42a995 Move CLI helper functions to msitegen, again.
Matti Hamalainen <ccr@tnsp.org>
parents: 436
diff changeset
1031 //
86ee2b42a995 Move CLI helper functions to msitegen, again.
Matti Hamalainen <ccr@tnsp.org>
parents: 436
diff changeset
1032
86ee2b42a995 Move CLI helper functions to msitegen, again.
Matti Hamalainen <ccr@tnsp.org>
parents: 436
diff changeset
1033 // Check if we are running from commandline or not
86ee2b42a995 Move CLI helper functions to msitegen, again.
Matti Hamalainen <ccr@tnsp.org>
parents: 436
diff changeset
1034 function stCheckCLIExec($fail = TRUE)
86ee2b42a995 Move CLI helper functions to msitegen, again.
Matti Hamalainen <ccr@tnsp.org>
parents: 436
diff changeset
1035 {
86ee2b42a995 Move CLI helper functions to msitegen, again.
Matti Hamalainen <ccr@tnsp.org>
parents: 436
diff changeset
1036 if (php_sapi_name() != "cli" || !empty($_SERVER["REMOTE_ADDR"]))
86ee2b42a995 Move CLI helper functions to msitegen, again.
Matti Hamalainen <ccr@tnsp.org>
parents: 436
diff changeset
1037 {
86ee2b42a995 Move CLI helper functions to msitegen, again.
Matti Hamalainen <ccr@tnsp.org>
parents: 436
diff changeset
1038 if ($fail)
86ee2b42a995 Move CLI helper functions to msitegen, again.
Matti Hamalainen <ccr@tnsp.org>
parents: 436
diff changeset
1039 {
86ee2b42a995 Move CLI helper functions to msitegen, again.
Matti Hamalainen <ccr@tnsp.org>
parents: 436
diff changeset
1040 header("Status: 404 Not Found");
86ee2b42a995 Move CLI helper functions to msitegen, again.
Matti Hamalainen <ccr@tnsp.org>
parents: 436
diff changeset
1041 die();
86ee2b42a995 Move CLI helper functions to msitegen, again.
Matti Hamalainen <ccr@tnsp.org>
parents: 436
diff changeset
1042 }
86ee2b42a995 Move CLI helper functions to msitegen, again.
Matti Hamalainen <ccr@tnsp.org>
parents: 436
diff changeset
1043 else
86ee2b42a995 Move CLI helper functions to msitegen, again.
Matti Hamalainen <ccr@tnsp.org>
parents: 436
diff changeset
1044 return TRUE;
86ee2b42a995 Move CLI helper functions to msitegen, again.
Matti Hamalainen <ccr@tnsp.org>
parents: 436
diff changeset
1045 }
86ee2b42a995 Move CLI helper functions to msitegen, again.
Matti Hamalainen <ccr@tnsp.org>
parents: 436
diff changeset
1046 else
86ee2b42a995 Move CLI helper functions to msitegen, again.
Matti Hamalainen <ccr@tnsp.org>
parents: 436
diff changeset
1047 return FALSE;
86ee2b42a995 Move CLI helper functions to msitegen, again.
Matti Hamalainen <ccr@tnsp.org>
parents: 436
diff changeset
1048 }
86ee2b42a995 Move CLI helper functions to msitegen, again.
Matti Hamalainen <ccr@tnsp.org>
parents: 436
diff changeset
1049
86ee2b42a995 Move CLI helper functions to msitegen, again.
Matti Hamalainen <ccr@tnsp.org>
parents: 436
diff changeset
1050
1006
cb23b23a2d8b Improve commandline parsing, fix some potential bug situations.
Matti Hamalainen <ccr@tnsp.org>
parents: 1003
diff changeset
1051 function stCArg($index, $clip = FALSE)
479
86ee2b42a995 Move CLI helper functions to msitegen, again.
Matti Hamalainen <ccr@tnsp.org>
parents: 436
diff changeset
1052 {
86ee2b42a995 Move CLI helper functions to msitegen, again.
Matti Hamalainen <ccr@tnsp.org>
parents: 436
diff changeset
1053 global $argc, $argv;
86ee2b42a995 Move CLI helper functions to msitegen, again.
Matti Hamalainen <ccr@tnsp.org>
parents: 436
diff changeset
1054 if ($index < $argc)
1006
cb23b23a2d8b Improve commandline parsing, fix some potential bug situations.
Matti Hamalainen <ccr@tnsp.org>
parents: 1003
diff changeset
1055 {
cb23b23a2d8b Improve commandline parsing, fix some potential bug situations.
Matti Hamalainen <ccr@tnsp.org>
parents: 1003
diff changeset
1056 $str = $argv[$index];
cb23b23a2d8b Improve commandline parsing, fix some potential bug situations.
Matti Hamalainen <ccr@tnsp.org>
parents: 1003
diff changeset
1057 return ($clip !== FALSE) ? substr($str, 0, $clip) : $str;
cb23b23a2d8b Improve commandline parsing, fix some potential bug situations.
Matti Hamalainen <ccr@tnsp.org>
parents: 1003
diff changeset
1058 }
479
86ee2b42a995 Move CLI helper functions to msitegen, again.
Matti Hamalainen <ccr@tnsp.org>
parents: 436
diff changeset
1059 else
86ee2b42a995 Move CLI helper functions to msitegen, again.
Matti Hamalainen <ccr@tnsp.org>
parents: 436
diff changeset
1060 return FALSE;
86ee2b42a995 Move CLI helper functions to msitegen, again.
Matti Hamalainen <ccr@tnsp.org>
parents: 436
diff changeset
1061 }
86ee2b42a995 Move CLI helper functions to msitegen, again.
Matti Hamalainen <ccr@tnsp.org>
parents: 436
diff changeset
1062
86ee2b42a995 Move CLI helper functions to msitegen, again.
Matti Hamalainen <ccr@tnsp.org>
parents: 436
diff changeset
1063
1006
cb23b23a2d8b Improve commandline parsing, fix some potential bug situations.
Matti Hamalainen <ccr@tnsp.org>
parents: 1003
diff changeset
1064 function stCArgLC($index, $clip = FALSE)
479
86ee2b42a995 Move CLI helper functions to msitegen, again.
Matti Hamalainen <ccr@tnsp.org>
parents: 436
diff changeset
1065 {
86ee2b42a995 Move CLI helper functions to msitegen, again.
Matti Hamalainen <ccr@tnsp.org>
parents: 436
diff changeset
1066 global $argc, $argv;
86ee2b42a995 Move CLI helper functions to msitegen, again.
Matti Hamalainen <ccr@tnsp.org>
parents: 436
diff changeset
1067 if ($index < $argc)
1006
cb23b23a2d8b Improve commandline parsing, fix some potential bug situations.
Matti Hamalainen <ccr@tnsp.org>
parents: 1003
diff changeset
1068 {
cb23b23a2d8b Improve commandline parsing, fix some potential bug situations.
Matti Hamalainen <ccr@tnsp.org>
parents: 1003
diff changeset
1069 $str = strtolower($argv[$index]);
cb23b23a2d8b Improve commandline parsing, fix some potential bug situations.
Matti Hamalainen <ccr@tnsp.org>
parents: 1003
diff changeset
1070 return ($clip !== FALSE) ? substr($str, 0, $clip) : $str;
cb23b23a2d8b Improve commandline parsing, fix some potential bug situations.
Matti Hamalainen <ccr@tnsp.org>
parents: 1003
diff changeset
1071 }
479
86ee2b42a995 Move CLI helper functions to msitegen, again.
Matti Hamalainen <ccr@tnsp.org>
parents: 436
diff changeset
1072 else
86ee2b42a995 Move CLI helper functions to msitegen, again.
Matti Hamalainen <ccr@tnsp.org>
parents: 436
diff changeset
1073 return FALSE;
86ee2b42a995 Move CLI helper functions to msitegen, again.
Matti Hamalainen <ccr@tnsp.org>
parents: 436
diff changeset
1074 }
86ee2b42a995 Move CLI helper functions to msitegen, again.
Matti Hamalainen <ccr@tnsp.org>
parents: 436
diff changeset
1075
86ee2b42a995 Move CLI helper functions to msitegen, again.
Matti Hamalainen <ccr@tnsp.org>
parents: 436
diff changeset
1076
1027
0603012e99b7 Add CLI helper functions stYesNoPrompt() and stInputPrompt().
Matti Hamalainen <ccr@tnsp.org>
parents: 1017
diff changeset
1077 function stYesNoPrompt($msg, $default = FALSE)
0603012e99b7 Add CLI helper functions stYesNoPrompt() and stInputPrompt().
Matti Hamalainen <ccr@tnsp.org>
parents: 1017
diff changeset
1078 {
0603012e99b7 Add CLI helper functions stYesNoPrompt() and stInputPrompt().
Matti Hamalainen <ccr@tnsp.org>
parents: 1017
diff changeset
1079 echo $msg." [".($default ? "Y/n" : "y/N")."]? ";
0603012e99b7 Add CLI helper functions stYesNoPrompt() and stInputPrompt().
Matti Hamalainen <ccr@tnsp.org>
parents: 1017
diff changeset
1080 $sprompt = strtolower(trim(fgets(STDIN)));
0603012e99b7 Add CLI helper functions stYesNoPrompt() and stInputPrompt().
Matti Hamalainen <ccr@tnsp.org>
parents: 1017
diff changeset
1081
0603012e99b7 Add CLI helper functions stYesNoPrompt() and stInputPrompt().
Matti Hamalainen <ccr@tnsp.org>
parents: 1017
diff changeset
1082 if ($default)
0603012e99b7 Add CLI helper functions stYesNoPrompt() and stInputPrompt().
Matti Hamalainen <ccr@tnsp.org>
parents: 1017
diff changeset
1083 return ($sprompt == "n");
0603012e99b7 Add CLI helper functions stYesNoPrompt() and stInputPrompt().
Matti Hamalainen <ccr@tnsp.org>
parents: 1017
diff changeset
1084 else
0603012e99b7 Add CLI helper functions stYesNoPrompt() and stInputPrompt().
Matti Hamalainen <ccr@tnsp.org>
parents: 1017
diff changeset
1085 return ($sprompt == "y");
0603012e99b7 Add CLI helper functions stYesNoPrompt() and stInputPrompt().
Matti Hamalainen <ccr@tnsp.org>
parents: 1017
diff changeset
1086 }
0603012e99b7 Add CLI helper functions stYesNoPrompt() and stInputPrompt().
Matti Hamalainen <ccr@tnsp.org>
parents: 1017
diff changeset
1087
0603012e99b7 Add CLI helper functions stYesNoPrompt() and stInputPrompt().
Matti Hamalainen <ccr@tnsp.org>
parents: 1017
diff changeset
1088
0603012e99b7 Add CLI helper functions stYesNoPrompt() and stInputPrompt().
Matti Hamalainen <ccr@tnsp.org>
parents: 1017
diff changeset
1089 function stInputPrompt($msg, $default = FALSE, $validate = null)
0603012e99b7 Add CLI helper functions stYesNoPrompt() and stInputPrompt().
Matti Hamalainen <ccr@tnsp.org>
parents: 1017
diff changeset
1090 {
0603012e99b7 Add CLI helper functions stYesNoPrompt() and stInputPrompt().
Matti Hamalainen <ccr@tnsp.org>
parents: 1017
diff changeset
1091 $valid = FALSE;
0603012e99b7 Add CLI helper functions stYesNoPrompt() and stInputPrompt().
Matti Hamalainen <ccr@tnsp.org>
parents: 1017
diff changeset
1092 while (!$valid)
0603012e99b7 Add CLI helper functions stYesNoPrompt() and stInputPrompt().
Matti Hamalainen <ccr@tnsp.org>
parents: 1017
diff changeset
1093 {
0603012e99b7 Add CLI helper functions stYesNoPrompt() and stInputPrompt().
Matti Hamalainen <ccr@tnsp.org>
parents: 1017
diff changeset
1094 echo $msg."\n".($default !== FALSE ? "[".$default."]" : "")."> ";
0603012e99b7 Add CLI helper functions stYesNoPrompt() and stInputPrompt().
Matti Hamalainen <ccr@tnsp.org>
parents: 1017
diff changeset
1095 $sprompt = trim(fgets(STDIN));
0603012e99b7 Add CLI helper functions stYesNoPrompt() and stInputPrompt().
Matti Hamalainen <ccr@tnsp.org>
parents: 1017
diff changeset
1096
0603012e99b7 Add CLI helper functions stYesNoPrompt() and stInputPrompt().
Matti Hamalainen <ccr@tnsp.org>
parents: 1017
diff changeset
1097 if ($sprompt == "")
0603012e99b7 Add CLI helper functions stYesNoPrompt() and stInputPrompt().
Matti Hamalainen <ccr@tnsp.org>
parents: 1017
diff changeset
1098 $sprompt = ($default !== FALSE ? $default : "");
0603012e99b7 Add CLI helper functions stYesNoPrompt() and stInputPrompt().
Matti Hamalainen <ccr@tnsp.org>
parents: 1017
diff changeset
1099
0603012e99b7 Add CLI helper functions stYesNoPrompt() and stInputPrompt().
Matti Hamalainen <ccr@tnsp.org>
parents: 1017
diff changeset
1100 $valid = !is_callable($validate) || call_user_func($validate, $sprompt);
0603012e99b7 Add CLI helper functions stYesNoPrompt() and stInputPrompt().
Matti Hamalainen <ccr@tnsp.org>
parents: 1017
diff changeset
1101 }
0603012e99b7 Add CLI helper functions stYesNoPrompt() and stInputPrompt().
Matti Hamalainen <ccr@tnsp.org>
parents: 1017
diff changeset
1102 return $sprompt;
0603012e99b7 Add CLI helper functions stYesNoPrompt() and stInputPrompt().
Matti Hamalainen <ccr@tnsp.org>
parents: 1017
diff changeset
1103 }
0603012e99b7 Add CLI helper functions stYesNoPrompt() and stInputPrompt().
Matti Hamalainen <ccr@tnsp.org>
parents: 1017
diff changeset
1104
0603012e99b7 Add CLI helper functions stYesNoPrompt() and stInputPrompt().
Matti Hamalainen <ccr@tnsp.org>
parents: 1017
diff changeset
1105
0603012e99b7 Add CLI helper functions stYesNoPrompt() and stInputPrompt().
Matti Hamalainen <ccr@tnsp.org>
parents: 1017
diff changeset
1106 function stValidateNotEmpty($val)
0603012e99b7 Add CLI helper functions stYesNoPrompt() and stInputPrompt().
Matti Hamalainen <ccr@tnsp.org>
parents: 1017
diff changeset
1107 {
0603012e99b7 Add CLI helper functions stYesNoPrompt() and stInputPrompt().
Matti Hamalainen <ccr@tnsp.org>
parents: 1017
diff changeset
1108 if ($val == "")
0603012e99b7 Add CLI helper functions stYesNoPrompt() and stInputPrompt().
Matti Hamalainen <ccr@tnsp.org>
parents: 1017
diff changeset
1109 {
0603012e99b7 Add CLI helper functions stYesNoPrompt() and stInputPrompt().
Matti Hamalainen <ccr@tnsp.org>
parents: 1017
diff changeset
1110 echo "The value can't be empty.\n";
0603012e99b7 Add CLI helper functions stYesNoPrompt() and stInputPrompt().
Matti Hamalainen <ccr@tnsp.org>
parents: 1017
diff changeset
1111 return FALSE;
0603012e99b7 Add CLI helper functions stYesNoPrompt() and stInputPrompt().
Matti Hamalainen <ccr@tnsp.org>
parents: 1017
diff changeset
1112 }
0603012e99b7 Add CLI helper functions stYesNoPrompt() and stInputPrompt().
Matti Hamalainen <ccr@tnsp.org>
parents: 1017
diff changeset
1113 else
0603012e99b7 Add CLI helper functions stYesNoPrompt() and stInputPrompt().
Matti Hamalainen <ccr@tnsp.org>
parents: 1017
diff changeset
1114 return TRUE;
0603012e99b7 Add CLI helper functions stYesNoPrompt() and stInputPrompt().
Matti Hamalainen <ccr@tnsp.org>
parents: 1017
diff changeset
1115 }
0603012e99b7 Add CLI helper functions stYesNoPrompt() and stInputPrompt().
Matti Hamalainen <ccr@tnsp.org>
parents: 1017
diff changeset
1116
0603012e99b7 Add CLI helper functions stYesNoPrompt() and stInputPrompt().
Matti Hamalainen <ccr@tnsp.org>
parents: 1017
diff changeset
1117
502
d2a38070e18f Partially refactor database upgrading .. not finished yet, and the
Matti Hamalainen <ccr@tnsp.org>
parents: 501
diff changeset
1118 function stGetDBMeta($dbh, $name)
479
86ee2b42a995 Move CLI helper functions to msitegen, again.
Matti Hamalainen <ccr@tnsp.org>
parents: 436
diff changeset
1119 {
502
d2a38070e18f Partially refactor database upgrading .. not finished yet, and the
Matti Hamalainen <ccr@tnsp.org>
parents: 501
diff changeset
1120 if (($item = stDBFetchSQL($dbh, "SELECT * FROM dbmeta WHERE key=".$dbh->quote($name))) === FALSE)
479
86ee2b42a995 Move CLI helper functions to msitegen, again.
Matti Hamalainen <ccr@tnsp.org>
parents: 436
diff changeset
1121 return FALSE;
86ee2b42a995 Move CLI helper functions to msitegen, again.
Matti Hamalainen <ccr@tnsp.org>
parents: 436
diff changeset
1122
86ee2b42a995 Move CLI helper functions to msitegen, again.
Matti Hamalainen <ccr@tnsp.org>
parents: 436
diff changeset
1123 return stGetSQLSettingData($item);
86ee2b42a995 Move CLI helper functions to msitegen, again.
Matti Hamalainen <ccr@tnsp.org>
parents: 436
diff changeset
1124 }
86ee2b42a995 Move CLI helper functions to msitegen, again.
Matti Hamalainen <ccr@tnsp.org>
parents: 436
diff changeset
1125
86ee2b42a995 Move CLI helper functions to msitegen, again.
Matti Hamalainen <ccr@tnsp.org>
parents: 436
diff changeset
1126
502
d2a38070e18f Partially refactor database upgrading .. not finished yet, and the
Matti Hamalainen <ccr@tnsp.org>
parents: 501
diff changeset
1127 function stSetDBMeta($dbh, $name, $value)
479
86ee2b42a995 Move CLI helper functions to msitegen, again.
Matti Hamalainen <ccr@tnsp.org>
parents: 436
diff changeset
1128 {
502
d2a38070e18f Partially refactor database upgrading .. not finished yet, and the
Matti Hamalainen <ccr@tnsp.org>
parents: 501
diff changeset
1129 if (($item = stDBFetchSQL($dbh, "SELECT * FROM dbmeta WHERE key=".$dbh->quote($name))) === FALSE)
479
86ee2b42a995 Move CLI helper functions to msitegen, again.
Matti Hamalainen <ccr@tnsp.org>
parents: 436
diff changeset
1130 return FALSE;
86ee2b42a995 Move CLI helper functions to msitegen, again.
Matti Hamalainen <ccr@tnsp.org>
parents: 436
diff changeset
1131
502
d2a38070e18f Partially refactor database upgrading .. not finished yet, and the
Matti Hamalainen <ccr@tnsp.org>
parents: 501
diff changeset
1132 $sql = "UPDATE dbmeta SET ".stGetSettingSQL($item, $value)." WHERE key=".$dbh->quote($name);
d2a38070e18f Partially refactor database upgrading .. not finished yet, and the
Matti Hamalainen <ccr@tnsp.org>
parents: 501
diff changeset
1133 return stDBExecSQL($dbh, $sql);
479
86ee2b42a995 Move CLI helper functions to msitegen, again.
Matti Hamalainen <ccr@tnsp.org>
parents: 436
diff changeset
1134 }
86ee2b42a995 Move CLI helper functions to msitegen, again.
Matti Hamalainen <ccr@tnsp.org>
parents: 436
diff changeset
1135
86ee2b42a995 Move CLI helper functions to msitegen, again.
Matti Hamalainen <ccr@tnsp.org>
parents: 436
diff changeset
1136
561
6b4cbd590d35 More locale initialization refactoring.
Matti Hamalainen <ccr@tnsp.org>
parents: 560
diff changeset
1137 //
6b4cbd590d35 More locale initialization refactoring.
Matti Hamalainen <ccr@tnsp.org>
parents: 560
diff changeset
1138 // Global locale initialization
6b4cbd590d35 More locale initialization refactoring.
Matti Hamalainen <ccr@tnsp.org>
parents: 560
diff changeset
1139 //
562
d576bc58df3c Cosmetic/indentation.
Matti Hamalainen <ccr@tnsp.org>
parents: 561
diff changeset
1140 if (!isset($localeInited) || !$localeInited)
d576bc58df3c Cosmetic/indentation.
Matti Hamalainen <ccr@tnsp.org>
parents: 561
diff changeset
1141 {
d576bc58df3c Cosmetic/indentation.
Matti Hamalainen <ccr@tnsp.org>
parents: 561
diff changeset
1142 $localeInited = TRUE;
574
463189fc05ed Some changes from custom site system branch.
Matti Hamalainen <ccr@tnsp.org>
parents: 571
diff changeset
1143 $pageCharset = "UTF-8";
561
6b4cbd590d35 More locale initialization refactoring.
Matti Hamalainen <ccr@tnsp.org>
parents: 560
diff changeset
1144
562
d576bc58df3c Cosmetic/indentation.
Matti Hamalainen <ccr@tnsp.org>
parents: 561
diff changeset
1145 mb_internal_encoding($pageCharset);
561
6b4cbd590d35 More locale initialization refactoring.
Matti Hamalainen <ccr@tnsp.org>
parents: 560
diff changeset
1146
562
d576bc58df3c Cosmetic/indentation.
Matti Hamalainen <ccr@tnsp.org>
parents: 561
diff changeset
1147 $tmp = "en_US.".strtolower(str_replace("-", "", $pageCharset));
d576bc58df3c Cosmetic/indentation.
Matti Hamalainen <ccr@tnsp.org>
parents: 561
diff changeset
1148 setlocale(LC_ALL, $tmp);
d576bc58df3c Cosmetic/indentation.
Matti Hamalainen <ccr@tnsp.org>
parents: 561
diff changeset
1149 }
0
8019b357cc03 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
1150 ?>