|
1 <?php |
|
2 |
|
3 /* |
|
4 * Enano - an open-source CMS capable of wiki functions, Drupal-like sidebar blocks, and everything in between |
|
5 * Version 1.0 (Banshee) |
|
6 * Copyright (C) 2006-2007 Dan Fuhry |
|
7 * constants.php - important defines used Enano-wide |
|
8 * |
|
9 * This program is Free Software; you can redistribute and/or modify it under the terms of the GNU General Public License |
|
10 * as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. |
|
11 * |
|
12 * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied |
|
13 * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for details. |
|
14 */ |
|
15 |
|
16 // Ban types |
|
17 |
|
18 define('BAN_IP', 1); |
|
19 define('BAN_USER', 2); |
|
20 define('BAN_EMAIL', 3); |
|
21 |
|
22 // ACL permission types |
|
23 define('AUTH_ALLOW', 4); |
|
24 define('AUTH_WIKIMODE', 3); // User can do this if wiki mode is enabled |
|
25 define('AUTH_DISALLOW', 2); |
|
26 define('AUTH_DENY', 1); // A Deny setting overrides *everything* |
|
27 |
|
28 define('ACL_TYPE_GROUP', 1); |
|
29 define('ACL_TYPE_USER', 2); |
|
30 define('ACL_TYPE_PRESET', 3); |
|
31 |
|
32 // System groups |
|
33 define('GROUP_ID_ADMIN', 2); |
|
34 define('GROUP_ID_MOD', 3); |
|
35 |
|
36 // |
|
37 // User types - don't touch these |
|
38 // |
|
39 |
|
40 // User can do absolutely everything |
|
41 define('USER_LEVEL_ADMIN', 9); |
|
42 |
|
43 // User can edit/[un]approve comments and do some basic administration |
|
44 define('USER_LEVEL_MOD', 5); |
|
45 |
|
46 // Default for members. When authed at this level, the user can change his/her password. |
|
47 define('USER_LEVEL_CHPREF', 3); |
|
48 |
|
49 // The level that you will be running at most of the time |
|
50 define('USER_LEVEL_MEMBER', 2); |
|
51 |
|
52 // Special level for guests |
|
53 define('USER_LEVEL_GUEST', 1); |
|
54 |
|
55 // Group status |
|
56 |
|
57 define('GROUP_CLOSED', 1); |
|
58 define('GROUP_REQUEST', 2); |
|
59 define('GROUP_HIDDEN', 3); |
|
60 define('GROUP_OPEN', 4); |
|
61 |
|
62 // Other stuff |
|
63 |
|
64 define('MAX_PMS_PER_BATCH', 7); // The maximum number of users that users can send PMs to in one go; restriction does not apply to users with mod_misc rights |
|
65 define('SEARCH_RESULTS_PER_PAGE', 10); |
|
66 define('MYSQL_MAX_PACKET_SIZE', 1048576); // 1MB; this is the default in MySQL 4.x I think |
|
67 define('SEARCH_MODE', 'FULLTEXT'); // Can be FULLTEXT or BUILTIN |
|
68 |
|
69 // Sidebar |
|
70 |
|
71 define('BLOCK_WIKIFORMAT', 0); |
|
72 define('BLOCK_TEMPLATEFORMAT', 1); |
|
73 define('BLOCK_HTML', 2); |
|
74 define('BLOCK_PHP', 3); |
|
75 define('BLOCK_PLUGIN', 4); |
|
76 define('SIDEBAR_LEFT', 1); |
|
77 define('SIDEBAR_RIGHT', 2); |
|
78 |
|
79 define('GENERAL_ERROR', 'General error'); |
|
80 define('GENERAL_NOTICE', 'Information'); |
|
81 define('CRITICAL_ERROR', 'Critical error'); |
|
82 |
|
83 // You can un-comment the next line to require database backups to be encrypted using the site's unique key. |
|
84 // This keeps the file safe in transit, but also prevents any type of editing to the file. This is NOT |
|
85 // recommended except for tiny sites because encrypting an average of 2MB of data will take a while. |
|
86 // define('SQL_BACKUP_CRYPT', ''); |
|
87 |
|
88 // Security |
|
89 |
|
90 define('AES_BITS', 192); // AES cipher strength - defaults to 192 and cannot be changed after installation |
|
91 |
|
92 // Define this to enable Mcrypt support which makes encryption work faster. This is only triggered if Mcrypt support is detected. |
|
93 // THIS IS DISABLED BECAUSE MCRYPT DOES NOT SEEM TO SUPPORT THE AES BLOCK SIZES THAT ENANO USES. |
|
94 //define('MCRYPT_ACCEL', ''); |
|
95 |
|
96 //if(defined('MCRYPT_RIJNDAEL_' . AES_BITS)) |
|
97 //{ |
|
98 // eval('$bs = MCRYPT_RIJNDAEL_' . AES_BITS . ';'); |
|
99 // $bs = mcrypt_module_get_algo_block_size($bs); |
|
100 // $bs = $bs * 8; |
|
101 // define('AES_BLOCKSIZE', $bs); |
|
102 //} |
|
103 // else |
|
104 // { |
|
105 // define('AES_BLOCKSIZE', AES_BITS); |
|
106 // } |
|
107 |
|
108 define('AES_BLOCKSIZE', 128); |
|
109 |
|
110 /* |
|
111 * MIMETYPES |
|
112 * |
|
113 * This array defines the 166 known MIME types used by the Enano file-extension filter. Whether extensions are allowed or not is |
|
114 * determined by a bitfield in the config table. |
|
115 */ |
|
116 |
|
117 global $mime_types, $mimetype_exps, $mimetype_extlist; |
|
118 |
|
119 // IMPORTANT: this array can NEVER have items removed from it or key indexes changed |
|
120 $mime_types = Array ( |
|
121 'ai' => 'application/postscript', |
|
122 'aif' => 'audio/x-aiff', |
|
123 'aifc' => 'audio/x-aiff', |
|
124 'aiff' => 'audio/x-aiff', |
|
125 'au' => 'audio/basic', |
|
126 'avi' => 'video/x-msvideo', |
|
127 'bcpio' => 'application/x-bcpio', |
|
128 'bin' => 'application/octet-stream', |
|
129 'bmp' => 'image/bmp', |
|
130 'bz2' => 'application/x-bzip', |
|
131 'cdf' => 'application/x-netcdf', |
|
132 'cgm' => 'image/cgm', |
|
133 'class' => 'application/octet-stream', |
|
134 'cpio' => 'application/x-cpio', |
|
135 'cpt' => 'application/mac-compactpro', |
|
136 'csh' => 'application/x-csh', |
|
137 'css' => 'text/css', |
|
138 'dcr' => 'application/x-director', |
|
139 'dir' => 'application/x-director', |
|
140 'djv' => 'image/vnd.djvu', |
|
141 'djvu' => 'image/vnd.djvu', |
|
142 'dll' => 'application/octet-stream', |
|
143 'dms' => 'application/octet-stream', |
|
144 'doc' => 'application/msword', |
|
145 'dtd' => 'application/xml-dtd', |
|
146 'dvi' => 'application/x-dvi', |
|
147 'dxr' => 'application/x-director', |
|
148 'eps' => 'application/postscript', |
|
149 'etx' => 'text/x-setext', |
|
150 'exe' => 'application/octet-stream', |
|
151 'ez' => 'application/andrew-inset', |
|
152 'gif' => 'image/gif', |
|
153 'gram' => 'application/srgs', |
|
154 'grxml' => 'application/srgs+xml', |
|
155 'gtar' => 'application/x-gtar', |
|
156 'gz' => 'application/x-gzip', |
|
157 'hdf' => 'application/x-hdf', |
|
158 'hqx' => 'application/mac-binhex40', |
|
159 'htm' => 'text/html', |
|
160 'html' => 'text/html', |
|
161 'ice' => 'x-conference/x-cooltalk', |
|
162 'ico' => 'image/x-icon', |
|
163 'ics' => 'text/calendar', |
|
164 'ief' => 'image/ief', |
|
165 'ifb' => 'text/calendar', |
|
166 'iges' => 'model/iges', |
|
167 'igs' => 'model/iges', |
|
168 'jar' => 'application/zip', |
|
169 'jpe' => 'image/jpeg', |
|
170 'jpeg' => 'image/jpeg', |
|
171 'jpg' => 'image/jpeg', |
|
172 'js' => 'application/x-javascript', |
|
173 'kar' => 'audio/midi', |
|
174 'latex' => 'application/x-latex', |
|
175 'lha' => 'application/octet-stream', |
|
176 'lzh' => 'application/octet-stream', |
|
177 'm3u' => 'audio/x-mpegurl', |
|
178 'man' => 'application/x-troff-man', |
|
179 'mathml' => 'application/mathml+xml', |
|
180 'me' => 'application/x-troff-me', |
|
181 'mesh' => 'model/mesh', |
|
182 'mid' => 'audio/midi', |
|
183 'midi' => 'audio/midi', |
|
184 'mif' => 'application/vnd.mif', |
|
185 'mov' => 'video/quicktime', |
|
186 'movie' => 'video/x-sgi-movie', |
|
187 'mp2' => 'audio/mpeg', |
|
188 'mp3' => 'audio/mpeg', |
|
189 'mpe' => 'video/mpeg', |
|
190 'mpeg' => 'video/mpeg', |
|
191 'mpg' => 'video/mpeg', |
|
192 'mpga' => 'audio/mpeg', |
|
193 'ms' => 'application/x-troff-ms', |
|
194 'msh' => 'model/mesh', |
|
195 'mxu' => 'video/vnd.mpegurl', |
|
196 'nc' => 'application/x-netcdf', |
|
197 'oda' => 'application/oda', |
|
198 'ogg' => 'application/ogg', |
|
199 'ogm' => 'application/ogg', |
|
200 'pbm' => 'image/x-portable-bitmap', |
|
201 'pdb' => 'chemical/x-pdb', |
|
202 'pdf' => 'application/pdf', |
|
203 'pgm' => 'image/x-portable-graymap', |
|
204 'pgn' => 'application/x-chess-pgn', |
|
205 'png' => 'image/png', |
|
206 'pnm' => 'image/x-portable-anymap', |
|
207 'ppm' => 'image/x-portable-pixmap', |
|
208 'ppt' => 'application/vnd.ms-powerpoint', |
|
209 'ps' => 'application/postscript', |
|
210 'psd' => 'image/x-photoshop', |
|
211 'qt' => 'video/quicktime', |
|
212 'ra' => 'audio/x-realaudio', |
|
213 'ram' => 'audio/x-pn-realaudio', |
|
214 'ras' => 'image/x-cmu-raster', |
|
215 'rdf' => 'text/xml', |
|
216 'rgb' => 'image/x-rgb', |
|
217 'rm' => 'audio/x-pn-realaudio', |
|
218 'roff' => 'application/x-troff', |
|
219 'rpm' => 'audio/x-pn-realaudio-plugin', |
|
220 'rss' => 'text/xml', |
|
221 'rtf' => 'text/rtf', |
|
222 'rtx' => 'text/richtext', |
|
223 'sgm' => 'text/sgml', |
|
224 'sgml' => 'text/sgml', |
|
225 'sh' => 'application/x-sh', |
|
226 'shar' => 'application/x-shar', |
|
227 'silo' => 'model/mesh', |
|
228 'sit' => 'application/x-stuffit', |
|
229 'skd' => 'application/x-koan', |
|
230 'skm' => 'application/x-koan', |
|
231 'skp' => 'application/x-koan', |
|
232 'skt' => 'application/x-koan', |
|
233 'smi' => 'application/smil', |
|
234 'smil' => 'application/smil', |
|
235 'snd' => 'audio/basic', |
|
236 'so' => 'application/octet-stream', |
|
237 'spl' => 'application/x-futuresplash', |
|
238 'src' => 'application/x-wais-source', |
|
239 'stc' => 'application/zip', |
|
240 'std' => 'application/zip', |
|
241 'sti' => 'application/zip', |
|
242 'stm' => 'application/zip', |
|
243 'stw' => 'application/zip', |
|
244 'sv4cpio' => 'application/x-sv4cpio', |
|
245 'sv4crc' => 'application/x-sv4crc', |
|
246 'svg' => 'image/svg+xml', |
|
247 'swf' => 'application/x-shockwave-flash', |
|
248 'sxc' => 'application/zip', |
|
249 'sxd' => 'application/zip', |
|
250 'sxi' => 'application/zip', |
|
251 'sxm' => 'application/zip', |
|
252 'sxw' => 'application/zip', |
|
253 't' => 'application/x-troff', |
|
254 'tar' => 'application/x-tar', |
|
255 'tcl' => 'application/x-tcl', |
|
256 'tex' => 'application/x-tex', |
|
257 'texi' => 'application/x-texinfo', |
|
258 'texinfo' => 'application/x-texinfo', |
|
259 'tif' => 'image/tiff', |
|
260 'tiff' => 'image/tiff', |
|
261 'tr' => 'application/x-troff', |
|
262 'tsv' => 'text/tab-separated-values', |
|
263 'txt' => 'text/plain', |
|
264 'ustar' => 'application/x-ustar', |
|
265 'vcd' => 'application/x-cdlink', |
|
266 'vrml' => 'model/vrml', |
|
267 'vxml' => 'application/voicexml+xml', |
|
268 'wav' => 'audio/x-wav', |
|
269 'wbmp' => 'image/vnd.wap.wbmp', |
|
270 'wbxml' => 'application/vnd.wap.wbxml', |
|
271 'wml' => 'text/vnd.wap.wml', |
|
272 'wmlc' => 'application/vnd.wap.wmlc', |
|
273 'wmls' => 'text/vnd.wap.wmlscript', |
|
274 'wmlsc' => 'application/vnd.wap.wmlscriptc', |
|
275 'wrl' => 'model/vrml', |
|
276 'xbm' => 'image/x-xbitmap', |
|
277 'xcf' => 'image/xcf', |
|
278 'xht' => 'application/xhtml+xml', |
|
279 'xhtml' => 'application/xhtml+xml', |
|
280 'xls' => 'application/vnd.ms-excel', |
|
281 'xml' => 'text/xml', |
|
282 'xpi' => 'application/zip', |
|
283 'xpm' => 'image/x-xpixmap', |
|
284 'xsl' => 'text/xml', |
|
285 'xslt' => 'text/xml', |
|
286 'xwd' => 'image/x-xwindowdump', |
|
287 'xyz' => 'chemical/x-xyz', |
|
288 'zip' => 'application/zip', |
|
289 ); |
|
290 |
|
291 $mimetype_extlist = Array( |
|
292 'application/andrew-inset'=>'ez', |
|
293 'application/mac-binhex40'=>'hqx', |
|
294 'application/mac-compactpro'=>'cpt', |
|
295 'application/mathml+xml'=>'mathml', |
|
296 'application/msword'=>'doc', |
|
297 'application/octet-stream'=>'bin dms lha lzh exe class so dll', |
|
298 'application/oda'=>'oda', |
|
299 'application/ogg'=>'ogg ogm', |
|
300 'application/pdf'=>'pdf', |
|
301 'application/postscript'=>'ai eps ps', |
|
302 'application/rdf+xml'=>'rdf', |
|
303 'application/smil'=>'smi smil', |
|
304 'application/srgs'=>'gram', |
|
305 'application/srgs+xml'=>'grxml', |
|
306 'application/vnd.mif'=>'mif', |
|
307 'application/vnd.ms-excel'=>'xls', |
|
308 'application/vnd.ms-powerpoint'=>'ppt', |
|
309 'application/vnd.wap.wbxml'=>'wbxml', |
|
310 'application/vnd.wap.wmlc'=>'wmlc', |
|
311 'application/vnd.wap.wmlscriptc'=>'wmlsc', |
|
312 'application/voicexml+xml'=>'vxml', |
|
313 'application/x-bcpio'=>'bcpio', |
|
314 'application/x-bzip'=>'gz bz2', |
|
315 'application/x-cdlink'=>'vcd', |
|
316 'application/x-chess-pgn'=>'pgn', |
|
317 'application/x-cpio'=>'cpio', |
|
318 'application/x-csh'=>'csh', |
|
319 'application/x-director'=>'dcr dir dxr', |
|
320 'application/x-dvi'=>'dvi', |
|
321 'application/x-futuresplash'=>'spl', |
|
322 'application/x-gtar'=>'gtar tar', |
|
323 'application/x-gzip'=>'gz', |
|
324 'application/x-hdf'=>'hdf', |
|
325 'application/x-jar'=>'jar', |
|
326 'application/x-javascript'=>'js', |
|
327 'application/x-koan'=>'skp skd skt skm', |
|
328 'application/x-latex'=>'latex', |
|
329 'application/x-netcdf'=>'nc cdf', |
|
330 'application/x-sh'=>'sh', |
|
331 'application/x-shar'=>'shar', |
|
332 'application/x-shockwave-flash'=>'swf', |
|
333 'application/x-stuffit'=>'sit', |
|
334 'application/x-sv4cpio'=>'sv4cpio', |
|
335 'application/x-sv4crc'=>'sv4crc', |
|
336 'application/x-tar'=>'tar', |
|
337 'application/x-tcl'=>'tcl', |
|
338 'application/x-tex'=>'tex', |
|
339 'application/x-texinfo'=>'texinfo texi', |
|
340 'application/x-troff'=>'t tr roff', |
|
341 'application/x-troff-man'=>'man', |
|
342 'application/x-troff-me'=>'me', |
|
343 'application/x-troff-ms'=>'ms', |
|
344 'application/x-ustar'=>'ustar', |
|
345 'application/x-wais-source'=>'src', |
|
346 'application/x-xpinstall'=>'xpi', |
|
347 'application/xhtml+xml'=>'xhtml xht', |
|
348 'application/xslt+xml'=>'xslt', |
|
349 'application/xml'=>'xml xsl', |
|
350 'application/xml-dtd'=>'dtd', |
|
351 'application/zip'=>'zip jar xpi sxc stc sxd std sxi sti sxm stm sxw stw ', |
|
352 'audio/basic'=>'au snd', |
|
353 'audio/midi'=>'mid midi kar', |
|
354 'audio/mpeg'=>'mpga mp2 mp3', |
|
355 'audio/ogg'=>'ogg ', |
|
356 'audio/x-aiff'=>'aif aiff aifc', |
|
357 'audio/x-mpegurl'=>'m3u', |
|
358 'audio/x-ogg'=>'ogg ', |
|
359 'audio/x-pn-realaudio'=>'ram rm', |
|
360 'audio/x-pn-realaudio-plugin'=>'rpm', |
|
361 'audio/x-realaudio'=>'ra', |
|
362 'audio/x-wav'=>'wav', |
|
363 'chemical/x-pdb'=>'pdb', |
|
364 'chemical/x-xyz'=>'xyz', |
|
365 'image/bmp'=>'bmp', |
|
366 'image/cgm'=>'cgm', |
|
367 'image/gif'=>'gif', |
|
368 'image/ief'=>'ief', |
|
369 'image/jpeg'=>'jpeg jpg jpe', |
|
370 'image/png'=>'png', |
|
371 'image/svg+xml'=>'svg', |
|
372 'image/tiff'=>'tiff tif', |
|
373 'image/vnd.djvu'=>'djvu djv', |
|
374 'image/vnd.wap.wbmp'=>'wbmp', |
|
375 'image/x-cmu-raster'=>'ras', |
|
376 'image/x-icon'=>'ico', |
|
377 'image/x-portable-anymap'=>'pnm', |
|
378 'image/x-portable-bitmap'=>'pbm', |
|
379 'image/x-portable-graymap'=>'pgm', |
|
380 'image/x-portable-pixmap'=>'ppm', |
|
381 'image/x-rgb'=>'rgb', |
|
382 'image/x-photoshop'=>'psd', |
|
383 'image/x-xbitmap'=>'xbm', |
|
384 'image/x-xpixmap'=>'xpm', |
|
385 'image/x-xwindowdump'=>'xwd', |
|
386 'model/iges'=>'igs iges', |
|
387 'model/mesh'=>'msh mesh silo', |
|
388 'model/vrml'=>'wrl vrml', |
|
389 'text/calendar'=>'ics ifb', |
|
390 'text/css'=>'css', |
|
391 'text/html'=>'html htm', |
|
392 'text/plain'=>'txt', |
|
393 'text/richtext'=>'rtx', |
|
394 'text/rtf'=>'rtf', |
|
395 'text/sgml'=>'sgml sgm', |
|
396 'text/tab-separated-values'=>'tsv', |
|
397 'text/vnd.wap.wml'=>'wml', |
|
398 'text/vnd.wap.wmlscript'=>'wmls', |
|
399 'text/xml'=>'xml xsl xslt rss rdf', |
|
400 'text/x-setext'=>'etx', |
|
401 'video/mpeg'=>'mpeg mpg mpe', |
|
402 'video/ogg'=>'ogm ogg', |
|
403 'video/quicktime'=>'qt mov', |
|
404 'video/vnd.mpegurl'=>'mxu', |
|
405 'video/x-msvideo'=>'avi', |
|
406 'video/x-ogg'=>'ogm ogg', |
|
407 'video/x-sgi-movie'=>'movie', |
|
408 'x-conference/x-cooltalk'=>'ice', |
|
409 // Added for Enano |
|
410 'image/xcf' => 'xcf xcfbz2 xcf.bz2', |
|
411 ); |
|
412 |
|
413 $k = array_keys($mime_types); |
|
414 $mimetype_exps = Array(); |
|
415 foreach($k as $s => $x) |
|
416 { |
|
417 $mimetype_exps[$x] = pow(2, $s); |
|
418 } |
|
419 |
|
420 unset($k, $s, $x); |