1
|
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);
|