]> CyberLeo.Net >> Repos - SourceForge/phpwiki.git/blob - index.php
exp. Session auth for already authenticated users from another app
[SourceForge/phpwiki.git] / index.php
1 <?php // -*-php-*-
2 // iso-8859-1
3
4 // IMPORTANT NOTE: Use of the ***configurator.php*** to generate an
5 // index.php is depreciated, because it is out of date and a new
6 // configuration system is in the works (see the config directory, not
7 // finished yet though). DO compare or diff the configurator's output
8 // against this file if you feel you must use it to generate an
9 // index.php!
10
11 /*
12 Copyright 1999,2000,2001,2002,2003,2004 $ThePhpWikiProgrammingTeam 
13 = array(
14 "Steve Wainstead", "Clifford A. Adams", "Lawrence Akka", 
15 "Scott R. Anderson", "Jon Åslund", "Neil Brown", "Jeff Dairiki",
16 "Stéphane Gourichon", "Jan Hidders", "Arno Hollosi", "John Jorgensen",
17 "Antti Kaihola", "Jeremie Kass", "Carsten Klapp", "Marco Milanesi",
18 "Grant Morgan", "Jan Nieuwenhuizen", "Aredridel Niothke", 
19 "Pablo Roca Rozas", "Sandino Araico Sánchez", "Joel Uckelman", 
20 "Reini Urban", "Tim Voght", "Jochen Kalmbach");
21
22 This file is part of PhpWiki.
23
24 PhpWiki is free software; you can redistribute it and/or modify
25 it under the terms of the GNU General Public License as published by
26 the Free Software Foundation; either version 2 of the License, or
27 (at your option) any later version.
28
29 PhpWiki is distributed in the hope that it will be useful,
30 but WITHOUT ANY WARRANTY; without even the implied warranty of
31 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
32 GNU General Public License for more details.
33
34 You should have received a copy of the GNU General Public License
35 along with PhpWiki; if not, write to the Free Software
36 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
37 */
38
39
40 /////////////////////////////////////////////////////////////////////
41 /*
42   This is the starting file for PhpWiki. All this file does is set
43   configuration options, and at the end of the file it includes() the
44   file lib/main.php, where the real action begins.
45
46   This file is divided into seven parts: Parts Zero, One, Two, Three,
47   Four, Five and Six. Each one has different configuration settings you can
48   change; in all cases the default should work on your system,
49   however, we recommend you tailor things to your particular setting.
50 */
51
52 /////////////////////////////////////////////////////////////////////
53 // Part Zero: If PHP needs help in finding where you installed the
54 //   rest of the PhpWiki code, you can set the include_path here.
55
56 // Define PHP's include path so that it can find the PHP source code
57 // for this PhpWiki.
58 // 
59 // You shouldn't need to do this unless you've moved index.php out
60 // of the PhpWiki install directory.
61 //
62 // Note that on Windows-based servers, you should use ; rather than :
63 // as the path separator.
64 //ini_set('include_path', '.:/usr/local/httpd/phpwiki');
65
66 // Set DEBUG to 1 to view the XHTML and CSS validator icons, page
67 // processing timer, and possibly other debugging messages at the
68 // bottom of each page.
69 if (!defined('DEBUG')) define ('DEBUG', 0);
70 define('ENABLE_USER_NEW',true);    // this will disappear with 1.4.0
71
72 /////////////////////////////////////////////////////////////////////
73 // Part Null: Don't touch this!
74
75 define ('PHPWIKI_VERSION', '1.3.10pre');
76 require "lib/prepend.php";
77 rcs_id('$Id: index.php,v 1.140 2004-04-12 18:29:12 rurban Exp $');
78
79 /////////////////////////////////////////////////////////////////////
80 //
81 // Part One:
82 // Authentication and security settings. See Part Three for more.
83 // 
84 /////////////////////////////////////////////////////////////////////
85
86 // The name of your wiki.
87 //
88 // This is used to generate a keywords meta tag in the HTML templates,
89 // in bookmark titles for any bookmarks made to pages in your wiki,
90 // and during RSS generation for the <title> of the RSS channel.
91 //
92 // To use your own logo and signature files, name them PhpWikiLogo.png
93 // and PhpWikiSignature.png and put them into themes/default/images
94 // (substituting "PhpWiki" in the filename with the name you define
95 // here).
96 //
97 // It is recommended this be a relatively short WikiWord like the
98 // InterWiki monikers found in the InterWikiMap. (For examples, see
99 // lib/interwiki.map).
100 if (!defined('WIKI_NAME')) define('WIKI_NAME', 'PhpWiki');
101
102 // Visitor Hostname Lookup
103 //
104 // If set, reverse dns lookups will be performed to attempt to convert
105 // the user's IP number into a host name, in the case where the http
106 // server does not do this.
107 if (!defined('ENABLE_REVERSE_DNS')) define('ENABLE_REVERSE_DNS', true);
108
109 // Username and password of administrator.
110 //
111 // Set these to your preferences. For heaven's sake pick a good
112 // password and use the passencrypt.php tool. See:
113 // http://wolfram.org/writing/howto/password.html
114 // 
115 // Log into the wiki with the admin user and password to lock, unlock,
116 // or remove pages and to perform other PhpWikiAdministration
117 // functions. On all other occasions you should simply log in with
118 // your regular WikiName.
119 if (!defined('ADMIN_USER')) define('ADMIN_USER', "");
120 if (!defined('ADMIN_PASSWD')) define('ADMIN_PASSWD', "");
121 // It is recommended to use the passencrypt.php utility to encode the
122 // admin password, in the unlikely event someone gains ftp or ssh
123 // access to the server and directory containing phpwiki. Once you
124 // have pasted the encrypted password into ADMIN_PASSWD, uncomment
125 // this next line.
126 //if (!defined('ENCRYPTED_PASSWD')) define('ENCRYPTED_PASSWD', true);
127
128 // Private ZIP Dumps of All Wiki Pages
129 //
130 // If true, only the admin user can make zip dumps. Otherwise anyone
131 // may download all wiki pages as a single zip archive.
132 if (!defined('ZIPDUMP_AUTH')) define('ZIPDUMP_AUTH', false);
133
134 // Define to false to disable the RawHtml plugin.
135 //if (!defined('ENABLE_RAW_HTML')) define('ENABLE_RAW_HTML', false);
136
137 // If you define this to true, (MIME-type) page-dumps (either zip dumps,
138 // or "dumps to directory" will be encoded using the quoted-printable
139 // encoding.  If you're actually thinking of mailing the raw page dumps,
140 // then this might be useful, since (among other things,) it ensures
141 // that all lines in the message body are under 80 characters in length.
142 //
143 // Also, setting this will cause a few additional mail headers
144 // to be generated, so that the resulting dumps are valid
145 // RFC 2822 e-mail messages.
146 //
147 // Probably you can just leave this set to false, in which case you get
148 // raw ('binary' content-encoding) page dumps.
149 if (!defined('STRICT_MAILABLE_PAGEDUMPS')) define('STRICT_MAILABLE_PAGEDUMPS', false);
150
151 // Here you can change the filename suffix used for XHTML page dumps.
152 // If you don't want any suffix just comment this out.
153 $HTML_DUMP_SUFFIX = '.html';
154
155 // The maximum file upload size.
156 if (!defined('MAX_UPLOAD_SIZE')) define('MAX_UPLOAD_SIZE', 16 * 1024 * 1024);
157
158 // If the last edit is older than MINOR_EDIT_TIMEOUT seconds, the
159 // default state for the "minor edit" checkbox on the edit page form
160 // will be off.
161 if (!defined('MINOR_EDIT_TIMEOUT')) define("MINOR_EDIT_TIMEOUT", 7 * 24 * 3600);
162
163 // Actions listed in this array will not be allowed. The complete list
164 // of actions can be found in lib/main.php within the function
165 // getActionDescription.
166 //$DisabledActions = array('dumpserial', 'loadfile');
167
168 // PhpWiki can generate an access_log (in "NCSA combined log" format)
169 // for you. If you want one, define this to the name of the log
170 // file. The server must have write access to the directory specified.
171 //define('ACCESS_LOG', '/var/tmp/wiki_access_log');
172
173
174 // By default PhpWiki will try to have PHP compress its output
175 // before sending it to the browser (if you have a recent enough
176 // version of PHP and the browser supports it.)
177 // Define COMPRESS_OUTPUT to false to prevent output compression.
178 // Define COMPRESS_OUTPUT to true to force output compression,
179 // even if we think your version of PHP does this in a buggy
180 // fashion.
181 // Leave it undefined to leave the choice up to PhpWiki.
182 //define('COMPRESS_OUTPUT', false);
183
184
185 // HTTP CACHE_CONTROL
186 //
187 // This controls how PhpWiki sets the HTTP cache control
188 // headers (Expires: and Cache-Control:) 
189 //
190 // Choose one of:
191 //
192 // NONE: This is roughly the old (pre 1.3.4) behavior.  PhpWiki will
193 //       instruct proxies and browsers never to cache PhpWiki output.
194 //
195 // STRICT: Cached pages will be invalidated whenever the database global
196 //       timestamp changes.  This should behave just like NONE (modulo
197 //       bugs in PhpWiki and your proxies and browsers), except that
198 //       things will be slightly more efficient.
199 //
200 // LOOSE: Cached pages will be invalidated whenever they are edited,
201 //       or, if the pages include plugins, when the plugin output could
202 //       concievably have changed.
203 //
204 //       Behavior should be much like STRICT, except that sometimes
205 //       wikilinks will show up as undefined (with the question mark)
206 //       when in fact they refer to (recently) created pages.
207 //       (Hitting your browsers reload or perhaps shift-reload button
208 //       should fix the problem.)
209 //
210 // ALLOW_STALE: Proxies and browsers will be allowed to used stale pages.
211 //       (The timeout for stale pages is controlled by CACHE_CONTROL_MAX_AGE.)
212 //
213 //       This setting will result in quirky behavior.  When you edit a
214 //       page your changes may not show up until you shift-reload the
215 //       page, etc...
216 //
217 //       This setting is generally not advisable, however it may be useful
218 //       in certain cases (e.g. if your wiki gets lots of page views,
219 //       and few edits by knowledgable people who won't freak over the quirks.)
220 //
221 // The default is currently LOOSE.
222 //
223 if (!defined('CACHE_CONTROL')) define('CACHE_CONTROL', 'LOOSE');
224
225 // Maximum page staleness, in seconds.
226 //
227 // This only has effect if CACHE_CONTROL is set to ALLOW_STALE.
228 if (!defined('CACHE_CONTROL_MAX_AGE')) define('CACHE_CONTROL_MAX_AGE', 600);
229
230
231 // MARKUP CACHING
232 //
233 // PhpWiki normally caches a preparsed version (i.e. mostly
234 // converted to HTML) of the most recent version of each page.
235 // (Parsing the wiki-markup takes a fair amount of CPU.)
236 //
237 // Define WIKIDB_NOCACHE_MARKUP to true to disable the
238 // caching of marked-up page content.
239 //
240 // Note that you can also disable markup caching on a per-page
241 // temporary basis by addinging a query arg of '?nocache=1'
242 // to the URL to the page.  (Use '?nocache=purge' to completely
243 // discard the cached version of the page.)
244 //
245 // You can also purge the cached markup globally by using the
246 // "Purge Markup Cache" button on the PhpWikiAdministration page.
247 //if (!defined('WIKIDB_NOCACHE_MARKUP')) define ('WIKIDB_NOCACHE_MARKUP', true);
248
249 /////////////////////////////////////////////////////////////////////
250 //
251 // Part Two:
252 // Database Selection
253 //
254 /////////////////////////////////////////////////////////////////////
255
256 //
257 // This array holds the parameters which select the database to use.
258 //
259 // Not all of these parameters are used by any particular DB backend.
260 //
261 $DBParams = array(
262    // Select the database type:
263    //
264    // Choose ADODB or SQL to use an SQL database with ADODB or PEAR
265    // respectively (both ADODB and PEAR libraries are already included
266    // with PhpWiki).
267    // Choose dba to use one of the standard UNIX dbm libraries.
268    // Choose file to use a flat file database.
269    //'dbtype' => 'ADODB',
270    //'dbtype' => 'SQL',
271    'dbtype'   => 'dba',
272    //'dbtype' => 'file',
273    //'dbtype' => 'cvs',
274    
275    // For SQL based backends, specify the database as a DSN
276    // The most general form of a DSN looks like:
277    //
278    //   phptype(dbsyntax)://username:password@protocol+hostspec/database
279    //
280    // For a MySQL database, the following should work:
281    //
282    //   mysql://user:password@host/databasename
283    //
284    // To connect over a unix socket, use something like
285    //
286    //   mysql://user:password@unix(/path/to/socket)/databasename
287    //
288    //'dsn' => 'mysql://guest@unix(/var/lib/mysql/mysql.sock)/test',
289    //'dsn' => 'mysql://guest:pass@localhost/test',
290    //'dsn' => 'pgsql://localhost/test',
291
292    // The common table prefix (see below) is added if defined.
293    // Undefine this if you use dbtype = "cvs" or "file"
294    'db_session_table'   => 'session',
295    
296    // Used by all DB types:
297
298    // prefix for filenames or table names
299    /* 
300     * currently you MUST EDIT THE SQL file too (in the schemas/
301     * directory because we aren't doing on the fly sql generation
302     * during the installation.
303    */
304    //'prefix' => 'phpwiki_',
305    
306    // Used by either 'dba' or 'file' and must be writable by the web
307    // server If you leave this as '/tmp' you will probably lose all
308    // your files eventually
309    'directory'     => "/tmp",
310
311    // choose the type of DB database file to use; most GNU systems have gdbm
312    'dba_handler'   => 'gdbm',   // Either of 'gdbm' or 'db2' work great for me.
313    //'dba_handler' => 'db2',
314    //'dba_handler' => 'db3',    // Works fine on Windows, but not on every linux.
315    //'dba_handler' => 'dbm',    // On sf.net redhat there's dbm and gdbm.
316                                 // dbm suffers from limits on size of data items?
317
318    'timeout'   => 20,
319    //'timeout' => 5
320 );
321
322 /////////////////////////////////////////////////////////////////////
323 // PHP Session settings:
324 //
325
326 // Tested for dbtype: 'SQL', 'ADODB' and 'dba'. See schemas/mysql.sql, 
327 // schemas/sqlite.sql or schemas/psql.sql. 
328 // $DBParams['db_session_table'] must be defined.
329 if (!defined('USE_DB_SESSION') and 
330     !empty($DBParams['db_session_table']))
331   define('USE_DB_SESSION',true);
332
333 // If your php was compiled with --enable-trans-sid it tries to
334 // add a PHPSESSID query argument to all URL strings when cookie
335 // support isn't detected in the client browser.  For reasons
336 // which aren't entirely clear (PHP bug) this screws up the URLs
337 // generated by PhpWiki.  Therefore, transparent session ids
338 // should be disabled.  This next line does that.
339 //
340 // (At the present time, you will not be able to log-in to PhpWiki,
341 // unless your browser supports cookies.)
342 @ini_set('session.use_trans_sid', 0);
343
344 // The login code now uses PHP's session support. Usually, the default
345 // configuration of PHP is to store the session state information in
346 // /tmp. That probably will work fine, but fails e.g. on clustered
347 // servers where each server has their own distinct /tmp (this is the
348 // case on SourceForge's project web server.) You can specify an
349 // alternate directory in which to store state information like so
350 // (whatever user your httpd runs as must have read/write permission
351 // in this directory):
352
353 //ini_set('session.save_path', 'some_other_directory');
354
355 /////////////////////////////////////////////////////////////////////
356 //
357 // The next section controls how many old revisions of each page are
358 // kept in the database.
359 //
360 // There are two basic classes of revisions: major and minor. Which
361 // class a revision belongs in is determined by whether the author
362 // checked the "this is a minor revision" checkbox when they saved the
363 // page.
364 // 
365 // There is, additionally, a third class of revisions: author
366 // revisions. The most recent non-mergable revision from each distinct
367 // author is and author revision.
368 //
369 // The expiry parameters for each of those three classes of revisions
370 // can be adjusted seperately. For each class there are five
371 // parameters (usually, only two or three of the five are actually
372 // set) which control how long those revisions are kept in the
373 // database.
374 //
375 //   max_keep: If set, this specifies an absolute maximum for the
376 //             number of archived revisions of that class. This is
377 //             meant to be used as a safety cap when a non-zero
378 //             min_age is specified. It should be set relatively high,
379 //             and it's purpose is to prevent malicious or accidental
380 //             database overflow due to someone causing an
381 //             unreasonable number of edits in a short period of time.
382 //
383 //   min_age:  Revisions younger than this (based upon the supplanted
384 //             date) will be kept unless max_keep is exceeded. The age
385 //             should be specified in days. It should be a
386 //             non-negative, real number,
387 //
388 //   min_keep: At least this many revisions will be kept.
389 //
390 //   keep:     No more than this many revisions will be kept.
391 //
392 //   max_age:  No revision older than this age will be kept.
393 //
394 // Supplanted date: Revisions are timestamped at the instant that they
395 // cease being the current revision. Revision age is computed using
396 // this timestamp, not the edit time of the page.
397 //
398 // Merging: When a minor revision is deleted, if the preceding
399 // revision is by the same author, the minor revision is merged with
400 // the preceding revision before it is deleted. Essentially: this
401 // replaces the content (and supplanted timestamp) of the previous
402 // revision with the content after the merged minor edit, the rest of
403 // the page metadata for the preceding version (summary, mtime, ...)
404 // is not changed.
405 //
406 // Keep up to 8 major edits, but keep them no longer than a month.
407 $ExpireParams['major'] = array('max_age' => 32,
408                                'keep'    => 8);
409 // Keep up to 4 minor edits, but keep them no longer than a week.
410 $ExpireParams['minor'] = array('max_age' => 7,
411                                'keep'    => 4);
412 // Keep the latest contributions of the last 8 authors up to a year.
413 // Additionally, (in the case of a particularly active page) try to
414 // keep the latest contributions of all authors in the last week (even
415 // if there are more than eight of them,) but in no case keep more
416 // than twenty unique author revisions.
417 $ExpireParams['author'] = array('max_age'  => 365,
418                                 'keep'     => 8,
419                                 'min_age'  => 7,
420                                 'max_keep' => 20);
421
422 /////////////////////////////////////////////////////////////////////
423 //
424 // Part Three: (optional)
425 // User Authentication
426 //
427 /////////////////////////////////////////////////////////////////////
428 // 
429 // New user authentication configuration:
430 // We support three basic authentication methods and a stacked array 
431 // of advanced auth methods to get and check the passwords:
432 //
433 // ALLOW_ANON_USER         default true
434 // ALLOW_ANON_EDIT         default true
435 // ALLOW_BOGO_LOGIN        default true
436 // ALLOW_USER_PASSWORDS    default true
437
438 // allow anon users to view pages! (not edit)
439 if (!defined('ALLOW_ANON_USER')) define('ALLOW_ANON_USER', true); 
440 // allow anon users to edit pages
441 if (!defined('ALLOW_ANON_EDIT')) define('ALLOW_ANON_EDIT', true); 
442
443 // This was replaced by ALLOW_ANON_EDIT
444 if (!defined('REQUIRE_SIGNIN_BEFORE_EDIT')) define('REQUIRE_SIGNIN_BEFORE_EDIT', ! ALLOW_ANON_EDIT);
445
446 // If ALLOW_BOGO_LOGIN is true, users are allowed to login (with
447 // any/no password) using any userid which: 
448 //  1) is not the ADMIN_USER, and
449 //  2) is a valid WikiWord (matches $WikiNameRegexp.)
450 // If true, users may be created by themselves. Otherwise we need seperate auth. 
451 // If such a user will create a so called HomePage with his userid, he will 
452 // be able to store his preferences and password there.
453 if (!defined('ALLOW_BOGO_LOGIN')) define('ALLOW_BOGO_LOGIN', true);
454
455 // True User Authentication:
456 // To require user passwords:
457 //   ALLOW_ANON_USER = false
458 //   ALLOW_ANON_EDIT = false
459 //   ALLOW_BOGO_LOGIN = false,
460 //   ALLOW_USER_PASSWORDS = true.
461 // Otherwise any anon or bogo user might login without any or a wrong password.
462 if (!defined('ALLOW_USER_PASSWORDS')) define('ALLOW_USER_PASSWORDS', true);
463
464 // Below we define which methods exists and in which order 
465 // they are used:
466 //   BogoLogin:     WikiWord enough, but with PASSWORD_LENGTH_MINIMUM
467 //   PersonalPage:  Store passwords in the users homepage metadata (simple)
468 //   Db:            Use $DBAuthParams[] (see below) with the PearDB or 
469 //                  ADODB only.
470 //   LDAP:          Authenticate against LDAP_AUTH_HOST with LDAP_BASE_DN
471 //   IMAP:          Authenticate against IMAP_AUTH_HOST (email account)
472 //   POP3:          Authenticate against POP3_AUTH_HOST (email account)
473 //   File:          Store username:crypted-passwords in .htaccess like files. 
474 //                  Use Apache's htpasswd to manage this file.
475 //   HttpAuth:      Use the protection by the webserver (.htaccess) or 
476 //                  enforce it
477 //   Session:       Re-use an existing user-session. AUTH_SESS_USER and AUTH_SESS_LEVEL 
478
479 if (defined('ALLOW_USER_PASSWORDS')) {
480
481     // use the following order of authentication methods:
482     if (!isset($USER_AUTH_ORDER))
483         $USER_AUTH_ORDER = 
484             array(
485 //                "BogoLogin",
486                   "PersonalPage",
487 //                "HttpAuth",
488                   "Db",
489 //                "LDAP",    // define LDAP_AUTH_HOST and LDAP_BASE_DN
490 //                "IMAP",    // define IMAP_AUTH_HOST
491 //                "POP3",    // define POP3_AUTH_HOST
492 //                "File",    // define AUTH_USER_FILE and opt. AUTH_USER_FILE_STORABLE
493 //                "Session", // define AUTH_SESS_USER and AUTH_SESS_LEVEL
494                   ) ;
495
496     if (!defined('PASSWORD_LENGTH_MINIMUM')) define('PASSWORD_LENGTH_MINIMUM', 2);
497     
498     if (!defined('USER_AUTH_POLICY'))
499         //We support the following auth policies:
500         // first-only: use only the first method in USER_AUTH_ORDER
501         // old:        ignore USER_AUTH_ORDER and try to use all available 
502         //             methods as in the previous PhpWiki releases (slow)
503         // strict:     check if the user exists for all methods: 
504         //             on the first existing user, try the password. 
505         //             dont try the other methods on failure then
506         // stacked:    check the given user - password combination for all methods 
507         //             and return true on the first success.
508
509         //define('USER_AUTH_POLICY','first-only');
510         define('USER_AUTH_POLICY','old');
511         //define('USER_AUTH_POLICY','strict');
512         //define('USER_AUTH_POLICY','stacked');
513 }
514
515 // LDAP Auth:
516 if (!defined('LDAP_AUTH_HOST'))   define('LDAP_AUTH_HOST', "ldap://localhost:389");
517 //                                                      or "ldaps://server:636"
518 // The organizational or domain BASE DN: e.g. "dc=mydomain,dc=com" to restrict the search
519 // Note: ou=Users and ou=Groups are used for GroupLdap Membership
520 if (!defined('LDAP_BASE_DN')) define('LDAP_BASE_DN', "ou=Users,o=Development,dc=mycompany.com");
521 // LDAP Auth Optional:
522 // Some LDAP servers disallow anonymous binds, and need some more options,
523 // such as for the Windows Active Directory Server:
524 // $LDAP_SET_OPTION = array('LDAP_OPT_PROTOCOL_VERSION' => 3,
525 //                          'LDAP_OPT_REFERRALS' => 0);
526 // define(LDAP_AUTH_USER, "CN=ldapuser,CN=Users,DC=uai,DC=int");
527 // define(LDAP_AUTH_PASSWORD, '');
528 // define(LDAP_SEARCH_FIELD, 'sAMAccountName'); // might be different from uid, 
529 //                                                 here's its a Windows/Samba account
530
531 // IMAP auth: 
532 //   check userid/passwords from a imap server, defaults to localhost
533 if (!defined('IMAP_AUTH_HOST'))   define('IMAP_AUTH_HOST', 'localhost:143/imap/notls');
534 // Some IMAP_AUTH_HOST samples:
535 //   "localhost", "localhost:143/imap/notls", 
536 //   "localhost:993/imap/ssl/novalidate-cert" (SuSE refuses non-SSL conections)
537
538 // POP3 auth:
539 //if (!defined('POP3_AUTH_HOST'))   define('POP3_AUTH_HOST', 'localhost');
540 //if (!defined('POP3_AUTH_PORT'))   define('POP3_AUTH_PORT', '110');
541
542 // File auth:
543 //if (!defined('AUTH_USER_FILE')) define('AUTH_USER_FILE', '/etc/shadow'); // or '/etc/httpd/.htpasswd'
544 // set this to true if the user may change his password into this file.
545 //if (!defined('AUTH_USER_FILE_STORABLE')) define('AUTH_USER_FILE_STORABLE',false);
546
547 // Session auth:
548 // Name of the session variable, which holds the already authenticated username.
549 //if (!defined('AUTH_SESS_USER')) define('AUTH_SESS_USER', 'userid');
550 // Which level will be the user? 1=Bogo or 2=Pass
551 //if (!defined('AUTH_SESS_LEVEL')) define('AUTH_SESS_LEVEL', 2);
552
553 // Group membership:
554 //if (!defined('GROUP_METHOD')) define('GROUP_METHOD', "NONE");
555 if (!defined('GROUP_METHOD')) define('GROUP_METHOD', "WIKIPAGE");
556 //if (!defined('GROUP_METHOD')) define('GROUP_METHOD', "DB");
557 //if (!defined('GROUP_METHOD')) define('GROUP_METHOD', "FILE");
558 //if (!defined('GROUP_METHOD')) define('GROUP_METHOD', "LDAP");
559 //if (!defined('AUTH_GROUP_FILE')) define('AUTH_GROUP_FILE', '/etc/groups'); // or '/etc/httpd/.htgroup'
560
561 // Seperate DB User Authentication.
562 //   Can be external, like radius, phpnuke, courier authmysql,
563 //   apache auth_mysql or something else.
564 // The default is to store the data as metadata in the users PersonalPage.
565 // The most likely dsn option is the same dsn as the wikipages.
566 // 
567 // Note: Order of variables important!
568 $DBAuthParams = array (
569    // if not defined use $DBParams['dsn'] i.e. the phpwiki database
570    //'auth_dsn'         => 'mysql://localhost/phpwiki',
571
572    // USER => PASSWORD
573    // plaintext passwords:
574    //  'auth_check'  => 'SELECT IF(passwd="$password",1,0) as ok FROM user WHERE userid="$userid"',
575    // database (md5) passwords (more secure):
576    'auth_check'  => 'SELECT IF(passwd=PASSWORD("$password"),1,0) as ok FROM user WHERE userid="$userid"',
577    // crypt passwords:
578    //'auth_check'  => 'SELECT password as password FROM user WHERE userid="$userid"',
579    // this is only needed with auth_crypt_method plain:
580    'auth_user_exists'  => 'SELECT userid FROM user WHERE userid="$userid"',
581
582    //'auth_crypt_method'  => 'crypt',     // 'crypt' (unix)
583    'auth_crypt_method'  => 'plain',       // plain or secure mysql PASSWORD()
584
585    // If 'auth_update' is not defined but 'auth_check' is defined, the user cannot 
586    // change his password.
587    // $password is processed  by the 'auth_crypt_method'
588    //'auth_update'  => 'UPDATE user SET passwd="$password" WHERE userid="$userid"',
589    // for mysql md5 use 'auth_crypt_method'  => 'plain'
590    'auth_update'  => 'UPDATE user SET passwd=PASSWORD("$password") WHERE userid="$userid"',
591
592    // Let a user create himself. Generally in external databases not wanted.
593    // Not yet tested!
594    //'auth_create'  => 'INSERT INTO user SET passwd=PASSWORD("$password"),userid="$userid"',
595
596    // USER => PREFERENCES
597    //   This can be optionally defined in the phpwiki db.
598    //   The default is to store it the users homepage.
599    // If you choose the user table, only registered user get their prefs from the DB,
600    // self-created users not. Better use the special pref table.
601    //'pref_select' => 'SELECT prefs FROM user WHERE userid="$userid"',
602    'pref_select' => 'SELECT prefs FROM pref WHERE userid="$userid"',
603    //Don't use replace with user or all other fields here get erased! (passwords e.g.)
604    //'pref_update' => 'UPDATE user SET prefs="$pref_blob" WHERE userid="$userid"',
605    // The special prefs table is safe to erase. All users can store their prefs here.
606    'pref_update' => 'REPLACE INTO pref SET prefs="$pref_blob",userid="$userid"',
607
608    // USERS <=> GROUPS
609    //   DB methods for lib/WikiGroup.php, see also AUTH_GROUP_FILE above.
610    // You can define 1:n or n:m user<=>group relations, as you wish.
611    // Sample configurations
612    //   only one group per user (1:n):
613    //'is_member' => 'SELECT user FROM user WHERE user="$userid" AND group="$groupname"',
614    //'group_members' => 'SELECT user FROM user WHERE group="$groupname"',
615    //'user_groups' => 'SELECT group FROM user WHERE user="$userid"',
616    //   or multiple groups per user (n:m):
617    'is_member' => 'SELECT userid FROM member WHERE userid="$userid" AND groupname="$groupname"',
618    'group_members' => 'SELECT DISTINCT userid FROM member WHERE groupname="$groupname"',
619    'user_groups' => 'SELECT groupname FROM member WHERE userid="$userid"',
620
621    'dummy' => false,
622 );
623
624 // Old settings, only needed for ENABLE_USER_NEW = false
625 //
626 // The wiki can be protected by HTTP Auth. Use the username and password 
627 // from there, but this is not sufficient. Try the other methods also.
628 if (!defined('ALLOW_HTTP_AUTH_LOGIN')) define('ALLOW_HTTP_AUTH_LOGIN', false);
629 // If ALLOW_USER_LOGIN is true, any defined internal and external
630 // authentication method is tried. If not, we don't care about
631 // passwords, but listen to the next two constants. Note that external
632 // authentication is not supported at this time, you will likely have
633 // to patch code yourself to get PhpWiki to recognise userids and
634 // passwords from an external source.
635 if (!defined('ALLOW_USER_LOGIN')) define('ALLOW_USER_LOGIN', false);
636 // also only if ENABLE_USER_NEW = false:
637 //if (!defined('ALLOW_LDAP_LOGIN')) define('ALLOW_LDAP_LOGIN', true and function_exists('ldap_connect'));
638 //if (!defined('ALLOW_IMAP_LOGIN')) define('ALLOW_IMAP_LOGIN', true and function_exists('imap_open'));
639
640 // A interim page which gets displayed on every edit attempt
641 //if (!defined('EDITING_POLICY')) define('EDITING_POLICY', "EditingPolicy");
642
643
644 /////////////////////////////////////////////////////////////////////
645 //
646 // Part Four:
647 // Page appearance and layout
648 //
649 /////////////////////////////////////////////////////////////////////
650
651 /* THEME
652  *
653  * Most of the page appearance is controlled by files in the theme
654  * subdirectory.
655  *
656  * There are a number of pre-defined themes shipped with PhpWiki.
657  * Or you may create your own (e.g. by copying and then modifying one of
658  * stock themes.)
659  *
660  * Pick one.
661  */
662 if (!defined('THEME')) {
663 define('THEME', 'default');
664 //define('THEME', 'MacOSX');
665 //define('THEME', 'smaller');
666 //define('THEME', 'Wordpress');
667 //define('THEME', 'Portland');
668 //define('THEME', 'Hawaiian');
669 //define('THEME', 'Sidebar');
670 //define('THEME', 'SpaceWiki');
671 //define('THEME', 'wikilens');
672 }
673
674 // Select a valid charset name to be inserted into the xml/html pages,
675 // and to reference links to the stylesheets (css). For more info see:
676 // <http://www.iana.org/assignments/character-sets>. Note that PhpWiki
677 // has been extensively tested only with the latin1 (iso-8859-1)
678 // character set.
679 //
680 // If you change the default from iso-8859-1 PhpWiki may not work
681 // properly and will require code modifications, at the very least you
682 // will have to convert the files in pgsrc or locale/xx/pgsrc to
683 // match!
684 //
685 // Character sets similar to iso-8859-1 may work with little or no
686 // modification depending on your setup. The database must also
687 // support the same charset, and of course the same is true for the
688 // web browser. (Some work is in progress hopefully to allow more
689 // flexibility in this area in the future).
690 // Note: For $GLOBALS['LANG']="ja" CHARSET "utf-8" must be defined.
691 if (!defined('CHARSET')) define("CHARSET", "iso-8859-1");
692
693 // Select your language/locale - default language is "en" for English.
694 // Other languages available:
695 // English "en"  (English    - HomePage)
696 // Dutch   "nl" (Nederlands - ThuisPagina)
697 // Spanish "es" (Español    - PáginaPrincipal)
698 // French  "fr" (Français   - Accueil)
699 // German  "de" (Deutsch    - StartSeite)
700 // Swedish "sv" (Svenska    - Framsida)
701 // Italian "it" (Italiano   - PaginaPrincipale)
702 // Japanese "ja" (Japanese   - ¥Û¡¼¥à¥Ú¡¼¥¸)
703 //
704 // If you set DEFAULT_LANGUAGE to the empty string, your system's
705 // default language (as determined by the applicable environment
706 // variables) will be used.
707 // Note: The users language will be defined in $GLOBALS['LANG'], 
708 // which overrides the DEFAULT_LANGUAGE. See wiki.
709 //
710 // Note: User-specified languages will set $GLOBALS['LANG'], this is just 
711 // the system default.
712 if (!defined('DEFAULT_LANGUAGE')) define('DEFAULT_LANGUAGE', 'en');
713
714 /* WIKI_PGSRC -- specifies the source for the initial page contents of
715  * the Wiki. The setting of WIKI_PGSRC only has effect when the wiki is
716  * accessed for the first time (or after clearing the database.)
717  * WIKI_PGSRC can either name a directory or a zip file. In either case
718  * WIKI_PGSRC is scanned for files -- one file per page.
719  */
720 if (!defined('WIKI_PGSRC')) define('WIKI_PGSRC', "pgsrc"); // Default (old) behavior.
721 //define('WIKI_PGSRC', 'wiki.zip'); // New style.
722 //define('WIKI_PGSRC', '../../../Logs/Hamwiki/hamwiki-20010830.zip'); // New style.
723
724 /*
725  * DEFAULT_WIKI_PGSRC is only used when the language is *not* the
726  * default (English) and when reading from a directory: in that case
727  * some English pages are inserted into the wiki as well.
728  * DEFAULT_WIKI_PGSRC defines where the English pages reside.
729  */
730 // FIXME: is this really needed?  Can't we just copy these pages into
731 // the localized pgsrc?
732 define('DEFAULT_WIKI_PGSRC', "pgsrc");
733 // These are the pages which will get loaded from DEFAULT_WIKI_PGSRC.   
734 $GenericPages = array("ReleaseNotes", "SteveWainstead", "TestPage");
735
736 /////////////////////////////////////////////////////////////////////
737 //
738 // Part Five:
739 // Mark-up options.
740 // 
741 /////////////////////////////////////////////////////////////////////
742
743 // allowed protocols for links - be careful not to allow "javascript:"
744 // URL of these types will be automatically linked.
745 // within a named link [name|uri] one more protocol is defined: phpwiki
746 $AllowedProtocols = "http|https|mailto|ftp|news|nntp|ssh|gopher";
747
748 // URLs ending with the following extension should be inlined as images
749 $InlineImages = "png|jpg|gif";
750
751 // Perl regexp for WikiNames ("bumpy words")
752 // (?<!..) & (?!...) used instead of '\b' because \b matches '_' as well
753 $WikiNameRegexp = "(?<![[:alnum:]])(?:[[:upper:]][[:lower:]]+){2,}(?![[:alnum:]])";
754
755 // Defaults to '/', but '.' was also used.
756 if (!defined('SUBPAGE_SEPARATOR')) define('SUBPAGE_SEPARATOR', '/');
757
758 // InterWiki linking -- wiki-style links to other wikis on the web
759 //
760 // The map will be taken from a page name InterWikiMap.
761 // If that page is not found (or is not locked), or map
762 // data can not be found in it, then the file specified
763 // by INTERWIKI_MAP_FILE (if any) will be used.
764 define('INTERWIKI_MAP_FILE', "lib/interwiki.map");
765
766 // Display a warning if the internal lib/interwiki.map is used, and 
767 // not the public InterWikiMap page. This file is not readable from outside.
768 //define('WARN_NONPUBLIC_INTERWIKIMAP', false);
769
770 // Regexp used for automatic keyword extraction.
771 //
772 // Any links on a page to pages whose names match this regexp will
773 // be used keywords in the keywords meta tag.  (This is an aid to
774 // classification by search engines.)  The value of the match is
775 // used as the keyword.
776 //
777 // The default behavior is to match Category* and Topic* links.
778 $keywords = array("Category", "Topic");
779 $KeywordLinkRegexp = '(?<=^'. join('|^', $keywords) . ')[[:upper:]].*$';
780
781 // Author and Copyright Site Navigation Links
782 //
783 // These will be inserted as <link rel> tags in the html header of
784 // every page, for search engines and for browsers like Mozilla which
785 // take advantage of link rel site navigation.
786 //
787 // If you have your own copyright and contact information pages change
788 // these as appropriate.
789 if (!defined('COPYRIGHTPAGE_TITLE')) define('COPYRIGHTPAGE_TITLE',
790     "GNU General Public License");
791 if (!defined('COPYRIGHTPAGE_URL')) define('COPYRIGHTPAGE_URL',
792     'http://www.gnu.org/copyleft/gpl.html#SEC1');
793 if (!defined('AUTHORPAGE_TITLE')) define('AUTHORPAGE_TITLE',
794     "The PhpWiki Programming Team");
795 if (!defined('AUTHORPAGE_URL')) define('AUTHORPAGE_URL',
796     'http://phpwiki.sourceforge.net/phpwiki/ThePhpWikiProgrammingTeam');
797
798
799 /////////////////////////////////////////////////////////////////////
800 //
801 // Part Six:
802 // URL options -- you can probably skip this section.
803 //
804 /////////////////////////////////////////////////////////////////////
805 /******************************************************************
806  *
807  * The following section contains settings which you can use to tailor
808  * the URLs which PhpWiki generates.
809  *
810  * Any of these parameters which are left undefined will be deduced
811  * automatically. You need only set them explicitly if the
812  * auto-detected values prove to be incorrect.
813  *
814  * In most cases the auto-detected values should work fine, so
815  * hopefully you don't need to mess with this section.
816  *
817  * In case of local overrides of short placeholders, which themselves 
818  * include index.php, we check for most constants. See '/wiki'.
819  * We can override DATA_PATH and PHPWIKI_DIR to support multiple phpwiki 
820  * versions (for development), but most likely other values like 
821  * THEME, $LANG and $DbParams for a WikiFarm.
822  *
823  ******************************************************************/
824
825 /*
826  * Canonical name and httpd port of the server on which this PhpWiki
827  * resides.
828  */
829 //if (!defined('SERVER_NAME')) define('SERVER_NAME', 'some.host.com');
830 //define('SERVER_PORT', 80);
831
832 /*
833  * Relative URL (from the server root) of the PhpWiki
834  * script.
835  */
836 //if (!defined('SCRIPT_NAME')) define('SCRIPT_NAME', '/some/where/index.php');
837
838 /*
839  * URL of the PhpWiki install directory.  (You only need to set this
840  * if you've moved index.php out of the install directory.)  This can
841  * be either a relative URL (from the directory where the top-level
842  * PhpWiki script is) or an absolute one.
843  */
844 //if (!defined('DATA_PATH')) define('DATA_PATH', '/home/user/phpwiki');
845
846 /*
847  * Path to the PhpWiki install directory.  This is the local
848  * filesystem counterpart to DATA_PATH.  (If you have to set
849  * DATA_PATH, your probably have to set this as well.)  This can be
850  * either an absolute path, or a relative path interpreted from the
851  * directory where the top-level PhpWiki script (normally index.php)
852  * resides.
853  */
854 //if (!defined('PHPWIKI_DIR')) define('PHPWIKI_DIR', 'C:/Apache/phpwiki');
855 //if (!defined('PHPWIKI_DIR')) define('PHPWIKI_DIR', '/home/user/public_html/phpwiki');
856
857 /*
858  * PhpWiki will try to use short urls to pages, eg 
859  * http://www.example.com/index.php/HomePage
860  * If you want to use urls like 
861  * http://www.example.com/index.php?pagename=HomePage
862  * then define 'USE_PATH_INFO' as false by uncommenting the line below.
863  * NB:  If you are using Apache >= 2.0.30, then you may need to to use
864  * the directive "AcceptPathInfo On" in your Apache configuration file
865  * (or in an appropriate <.htaccess> file) for the short urls to work:  
866  * See http://httpd.apache.org/docs-2.0/mod/core.html#acceptpathinfo
867  * 
868  * See also http://phpwiki.sourceforge.net/phpwiki/PrettyWiki for more ideas
869  * on prettifying your urls.
870  *
871  * Default: PhpWiki will try to divine whether use of PATH_INFO
872  * is supported in by your webserver/PHP configuration, and will
873  * use PATH_INFO if it thinks that is possible.
874  */
875 //if (!defined('USE_PATH_INFO')) define('USE_PATH_INFO', false);
876
877 /*
878  * VIRTUAL_PATH is the canonical URL path under which your your wiki
879  * appears. Normally this is the same as dirname(SCRIPT_NAME), however
880  * using, e.g. apaches mod_actions (or mod_rewrite), you can make it
881  * something different.
882  *
883  * If you do this, you should set VIRTUAL_PATH here.
884  *
885  * E.g. your phpwiki might be installed at at /scripts/phpwiki/index.php,
886  * but  * you've made it accessible through eg. /wiki/HomePage.
887  *
888  * One way to do this is to create a directory named 'wiki' in your
889  * server root. The directory contains only one file: an .htaccess
890  * file which reads something like:
891  *
892  *    Action x-phpwiki-page /scripts/phpwiki/index.php
893  *    SetHandler x-phpwiki-page
894  *    DirectoryIndex /scripts/phpwiki/index.php
895  *
896  * In that case you should set VIRTUAL_PATH to '/wiki'.
897  *
898  * (VIRTUAL_PATH is only used if USE_PATH_INFO is true.)
899  */
900 //if (!defined('VIRTUAL_PATH')) define('VIRTUAL_PATH', '/SomeWiki');
901
902 /////////////////////////////////////////////////////////////////////
903 //
904 // Part Seven:
905 // Miscellaneous settings
906 //
907 /////////////////////////////////////////////////////////////////////
908
909 /*
910  * Disable HTTP redirects.
911  *
912  * (You probably don't need to touch this.)
913  *
914  * PhpWiki uses HTTP redirects for some of it's functionality.
915  * (e.g. after saving changes, PhpWiki redirects your browser to
916  * view the page you just saved.)
917  *
918  * Some web service providers (notably free European Lycos) don't seem to
919  * allow these redirects.  (On Lycos the result in an "Internal Server Error"
920  * report.)  In that case you can set DISABLE_HTTP_REDIRECT to true.
921  * (In which case, PhpWiki will revert to sneakier tricks to try to
922  * redirect the browser...)
923  */
924 //if (!defined('DISABLE_HTTP_REDIRECT')) define ('DISABLE_HTTP_REDIRECT', true);
925
926 //if (defined('WIKI_SOAP') and WIKI_SOAP) return;
927
928 ////////////////////////////////////////////////////////////////
929 // PrettyWiki
930 // Check if we were included by some other wiki version 
931 // (getimg.php, en, de, wiki, ...) or not. 
932 // If the server requested this index.php fire up the code by loading lib/main.php.
933 // Parallel wiki scripts can now simply include /index.php for the 
934 // main configuration, extend or redefine some settings and 
935 // load lib/main.php by themselves. See the file 'wiki'.
936 // This overcomes the IndexAsConfigProblem.
937 // Generally a simple 
938 //   define('VIRTUAL_PATH', $_SERVER['SCRIPT_NAME']);
939 // is enough in the wiki file, plus the action definition in a .htaccess file
940 ////////////////////////////////////////////////////////////////
941
942 // If your lib/main.php is not loaded, comment that out, and  
943 // uncomment the include "lib/main.php" line below.
944 if (defined('VIRTUAL_PATH') and defined('USE_PATH_INFO')) {
945     if ($HTTP_SERVER_VARS['SCRIPT_NAME'] != VIRTUAL_PATH) {
946         include "lib/main.php";
947     }
948     elseif (defined('SCRIPT_NAME') and 
949             ($HTTP_SERVER_VARS['SCRIPT_NAME'] != SCRIPT_NAME)) {
950         include "lib/main.php";
951     }
952 } else {
953     if (defined('SCRIPT_NAME') and 
954         ($HTTP_SERVER_VARS['SCRIPT_NAME'] == SCRIPT_NAME)) {
955         include "lib/main.php";
956     } elseif (strstr($HTTP_SERVER_VARS['PHP_SELF'],'index.php')) {
957         include "lib/main.php";
958     }
959 }
960 //include "lib/main.php";
961
962 // $Log: not supported by cvs2svn $
963 // Revision 1.139  2004/04/12 16:24:28  rurban
964 // 1.3.10pre, JS_SEARCHREPLACE => pref option
965 //
966 // Revision 1.138  2004/04/12 12:27:07  rurban
967 // more notes and themes
968 //
969 // Revision 1.137  2004/04/11 10:42:02  rurban
970 // pgsrc/CreatePagePlugin
971 //
972 // Revision 1.136  2004/04/10 04:14:13  rurban
973 // sf.net 906436 Suggestion
974 //
975 // Revision 1.135  2004/04/10 03:33:03  rurban
976 // Oops revert
977 //
978 // Revision 1.134  2004/04/10 02:55:48  rurban
979 // fixed old WikiUser
980 //
981 // Revision 1.133  2004/04/08 01:22:53  rurban
982 // fixed PageChange Notification
983 //
984 // Revision 1.132  2004/04/01 15:57:10  rurban
985 // simplified Sidebar theme: table, not absolute css positioning
986 // added the new box methods.
987 // remaining problems: large left margin, how to override _autosplitWikiWords in Template only
988 //
989 // Revision 1.131  2004/03/14 16:24:35  rurban
990 // authenti(fi)cation spelling
991 //
992 // Revision 1.130  2004/03/09 17:16:43  rurban
993 // fixed $LDAP_SET_OPTION
994 //
995 // Revision 1.129  2004/02/29 04:10:55  rurban
996 // new POP3 auth (thanks to BiloBilo: pentothal at despammed dot com)
997 // fixed syntax error in index.php
998 //
999 // Revision 1.128  2004/02/29 02:06:05  rurban
1000 // And this is the SOAP server. Just a view methods for now. (page content)
1001 // I would like to see common-wiki soap wdsl.
1002 //
1003 // "SOAP is a bloated, over engineered mess of a perfectly trivial concept. Sigh."
1004 //   -- http://www.wlug.org.nz/SOAP
1005 //
1006 // Revision 1.127  2004/02/28 21:18:29  rurban
1007 // new SQL auth_create, don't ever use REPLACE sql calls!
1008 // moved HttpAuth to the end of the chain
1009 // PrettyWiki enabled again
1010 //
1011 // Revision 1.126  2004/02/27 16:27:48  rurban
1012 // REPLACE is a dirty hack, and erases passwd btw.
1013 //
1014 // Revision 1.125  2004/02/24 02:51:57  rurban
1015 // release 1.3.8 ready
1016 //
1017 // Revision 1.124  2004/02/16 00:20:30  rurban
1018 // new Japanses language
1019 //
1020 // Revision 1.123  2004/02/09 03:58:07  rurban
1021 // for now default DB_SESSION to false
1022 // PagePerm:
1023 //   * not existing perms will now query the parent, and not
1024 //     return the default perm
1025 //   * added pagePermissions func which returns the object per page
1026 //   * added getAccessDescription
1027 // WikiUserNew:
1028 //   * added global ->prepare (not yet used) with smart user/pref/member table prefixing.
1029 //   * force init of authdbh in the 2 db classes
1030 // main:
1031 //   * fixed session handling (not triple auth request anymore)
1032 //   * don't store cookie prefs with sessions
1033 // stdlib: global obj2hash helper from _AuthInfo, also needed for PagePerm
1034 //
1035 // Revision 1.122  2004/02/07 14:20:18  rurban
1036 // consistent mysql schema with index.php (userid)
1037 //
1038 // Revision 1.121  2004/02/07 10:41:25  rurban
1039 // fixed auth from session (still double code but works)
1040 // fixed GroupDB
1041 // fixed DbPassUser upgrade and policy=old
1042 // added GroupLdap
1043 //
1044 // Revision 1.120  2004/02/03 09:45:39  rurban
1045 // LDAP cleanup, start of new Pref classes
1046 //
1047 // Revision 1.119  2004/02/01 09:14:10  rurban
1048 // Started with Group_Ldap (not yet ready)
1049 // added new _AuthInfo plugin to help in auth problems (warning: may display passwords)
1050 // fixed some configurator vars
1051 // renamed LDAP_AUTH_SEARCH to LDAP_BASE_DN
1052 // changed PHPWIKI_VERSION from 1.3.8a to 1.3.8pre
1053 // USE_DB_SESSION defaults to true on SQL
1054 // changed GROUP_METHOD definition to string, not constants
1055 // changed sample user DBAuthParams from UPDATE to REPLACE to be able to
1056 //   create users. (Not to be used with external databases generally, but
1057 //   with the default internal user table)
1058 //
1059 // fixed the IndexAsConfigProblem logic. this was flawed:
1060 //   scripts which are the same virtual path defined their own lib/main call
1061 //   (hmm, have to test this better, phpwiki.sf.net/demo works again)
1062 //
1063 // Revision 1.118  2004/01/28 14:34:13  rurban
1064 // session table takes the common prefix
1065 // + various minor stuff
1066 // reallow password changing
1067 //
1068 // Revision 1.117  2004/01/27 23:25:50  rurban
1069 // added new tables to mysql schema
1070 // fixed default DBAUthParam samples to match these
1071 // added group constants (look terrible, I'd prefer strings instead of constants)
1072 //
1073 // Revision 1.116  2004/01/25 04:21:02  rurban
1074 // WikiUserNew support (temp. ENABLE_USER_NEW constant)
1075 //
1076 // Revision 1.115  2003/12/22 04:58:11  carstenklapp
1077 // Incremented release version.
1078 //
1079 // Revision 1.114  2003/12/05 16:00:42  carstenklapp
1080 // ACK! gettext is not available at this point in index.php.
1081 //
1082 // Revision 1.113  2003/12/05 15:51:37  carstenklapp
1083 // Added note that use of the configurator is depreciated.
1084 //
1085 // Enable localization/gettextification of $KeywordLinkRegexp. (Also, now
1086 // users not familiar with regex can more easily just edit the $keywords
1087 // array).
1088 //
1089 // Added four new constants to define author and copyright link rel~s
1090 // used in html head. This makes it easier to run multiple wikis off of
1091 // one set of code.
1092 //
1093 // Eliminated RECENT_CHANGES constant for RSS auto discovery because it's
1094 // another step to watch out for when running a non-english wiki. Now
1095 // simply defined as _("RecentChanges") in head.tmpl itself. Non-standard
1096 // wikis where the RecentChanges page has been named to something else
1097 // will have to modify this in head.tmpl (along with all other places the
1098 // word RecentChanges appears in the code, something that already would
1099 // have had to be done on such a wiki anyway).
1100 //
1101 // Added a little more info and instructions to flesh out:
1102 // DEBUG, WIKI_NAME, ADMIN_USER, $DisabledActions, $DBParams, CHARSET.
1103 //
1104 // A few typos and spelling mistakes corrected, and some text rewrapped.
1105 //
1106 // Revision 1.112  2003/11/17 15:49:21  carstenklapp
1107 // Updated version number to 1.3.7pre (beyond current release
1108 // 1.3.6). Disabled DEBUG output by default (hide DebugInfo, XHTML &
1109 // CSS validator buttons). Note the DebugInfo button remains visible
1110 // for the Admin, and can be accessed by anyone else by adding
1111 // "?action=DebugInfo" to the URL for the occasional use.
1112 //
1113 // Revision 1.111  2003/03/18 21:40:04  dairiki
1114 // Copy Lawrence's memo on USE_PATH_INFO/AcceptPathInfo to configurator.php
1115 // (as promised).
1116 //
1117 // Plus slight clarification of default (auto-detect) behavior.
1118 //
1119 // Revision 1.110  2003/03/18 20:51:10  lakka
1120 // Revised comments on use of USE_PATH_INFO with Apache 2
1121 //
1122 // Revision 1.109  2003/03/17 21:24:50  dairiki
1123 // Fix security bugs in the RawHtml plugin.
1124 //
1125 // Change the default configuration to allow use of plugin, since
1126 // I believe the plugin is now safe for general use. (Raw HTML will only
1127 // work on locked pages.)
1128 //
1129 // Revision 1.108  2003/03/07 22:47:01  dairiki
1130 // A few more if(!defined(...))'s
1131 //
1132 // Revision 1.107  2003/03/07 20:51:54  dairiki
1133 // New feature: Automatic extraction of keywords (for the meta keywords tag)
1134 // from Category* and Topic* links on each page.
1135 //
1136 // Revision 1.106  2003/03/07 02:48:23  dairiki
1137 // Add option to prevent HTTP redirect.
1138 //
1139 // Revision 1.105  2003/03/04 02:08:08  dairiki
1140 // Fix and document the WIKIDB_NOCACHE_MARKUP config define.
1141 //
1142 // Revision 1.104  2003/02/26 02:55:52  dairiki
1143 // New config settings in index.php to control cache control strictness.
1144 //
1145 // Revision 1.103  2003/02/22 19:43:50  dairiki
1146 // Fix comment regarding connecting to SQL server over a unix socket.
1147 //
1148 // Revision 1.102  2003/02/22 18:53:38  dairiki
1149 // Renamed method Request::compress_output to Request::buffer_output.
1150 //
1151 // Added config option to disable compression.
1152 //
1153 // Revision 1.101  2003/02/21 19:29:30  dairiki
1154 // Update PHPWIKI_VERSION to 1.3.5pre.
1155 //
1156 // Revision 1.100  2003/01/04 03:36:58  wainstead
1157 // Added 'file' as a database type alongside 'dbm'; added cvs log tag
1158 //
1159
1160 // (c-file-style: "gnu")
1161 // Local Variables:
1162 // mode: php
1163 // tab-width: 8
1164 // c-basic-offset: 4
1165 // c-hanging-comment-ender-p: nil
1166 // indent-tabs-mode: nil
1167 // End:   
1168 ?>