2 // PukiWiki - Yet another WikiWikiWeb clone
3 // $Id: pukiwiki.ini.php,v 1.108 2005/01/23 13:55:22 henoheno Exp $
5 // PukiWiki setting file
7 /////////////////////////////////////////////////
8 // Functionality settings
10 // PKWK_READONLY - Prohibit editing (Not work yet)
11 if (! defined('PKWK_READONLY'))
12 define('PKWK_READONLY', 0); // 0 or 1
14 // PKWK_OPTIMISE - Ignore verbose but understandable checking and warning
15 // If you end testing this PukiWiki, set '1'.
16 // If you feel in trouble about this PukiWiki, set '0'.
17 if (! defined('PKWK_OPTIMISE'))
18 define('PKWK_OPTIMISE', 0);
20 /////////////////////////////////////////////////
23 // PKWK_SAFE_MODE - prohibits some unsafe(but compatible) functions
24 if (! defined('PKWK_SAFE_MODE'))
25 define('PKWK_SAFE_MODE', 0);
27 // PKWK_QUERY_STRING_MAX
28 // Max length of GET method, prohibits some worm attack ASAP
29 // NOTE: Keep (page-name + attach-file-name) <= PKWK_QUERY_STRING_MAX
30 define('PKWK_QUERY_STRING_MAX', 640);
32 /////////////////////////////////////////////////
33 // Language / Encoding settings
35 // LANG - Internal content encoding ('en', 'ja', or ...)
38 // UI_LANG - Content Language for buttons, menus, etc
39 define('UI_LANG', LANG); // 'en' for Internationalized wikisite
41 /////////////////////////////////////////////////
42 // Directory settings I (ended with '/', permission '777')
44 // You may hide these directories (from web browsers)
45 // by setting DATA_HOME at index.php.
47 define('DATA_DIR', DATA_HOME . 'wiki/' ); // Latest wiki texts
48 define('DIFF_DIR', DATA_HOME . 'diff/' ); // Latest diffs
49 define('BACKUP_DIR', DATA_HOME . 'backup/' ); // Backups
50 define('CACHE_DIR', DATA_HOME . 'cache/' ); // Some sort of caches
51 define('UPLOAD_DIR', DATA_HOME . 'attach/' ); // Attached files and logs
52 define('COUNTER_DIR', DATA_HOME . 'counter/' ); // Counter plugin's counts
53 define('TRACKBACK_DIR', DATA_HOME . 'trackback/'); // TrackBack logs
54 define('PLUGIN_DIR', DATA_HOME . 'plugin/' ); // Plugin directory
56 /////////////////////////////////////////////////
57 // Directory settings II (ended with '/')
59 // Skins / Stylesheets
60 define('SKIN_DIR', 'skin/');
61 // Skin files (SKIN_DIR/*.skin.php) are needed at
62 // ./DATAHOME/SKIN_DIR from index.php, but
63 // CSSs(*.css) and JavaScripts(*.js) are needed at
64 // ./SKIN_DIR from index.php.
67 define('IMAGE_DIR', 'image/');
68 // Keep this directory shown via web browsers like
69 // ./IMAGE_DIR from index.php.
71 /////////////////////////////////////////////////
74 switch (LANG) { // or specifiy one
76 define('ZONE', 'JST');
77 define('ZONETIME', 9 * 3600); // JST = GMT + 9
80 define('ZONE', 'GMT');
81 define('ZONETIME', 0);
85 /////////////////////////////////////////////////
86 // Title of your Wikisite (Define this)
87 // and also RSS feed's channel name
88 $page_title = 'PukiWiki';
90 // Specify PukiWiki URL (default: auto)
91 //$script = 'http://example.com/pukiwiki/';
93 // Shorten $script: Cut its file name (default: not cut)
94 //$script_directory_index = 'index.php';
96 // Site admin's name (Change this)
97 $modifier = 'anonymous';
99 // Site admin's Web page (Change this)
100 $modifierlink = 'http://pukiwiki.example.com/';
103 $defaultpage = 'FrontPage'; // Top / Default page
104 $whatsnew = 'RecentChanges'; // Modified page list
105 $whatsdeleted = 'RecentDeleted'; // Removeed page list
106 $interwiki = 'InterWikiName'; // Set InterWiki definition here
107 $menubar = 'MenuBar'; // Menu
109 /////////////////////////////////////////////////
110 // Change default Document Type Definition
112 // Some web browser's bug, and / or Java apprets may needs not-Strict DTD.
113 // Some plugin (e.g. paint) set this PKWK_DTD_XHTML_1_0_TRANSITIONAL.
115 //$pkwk_dtd = PKWK_DTD_XHTML_1_1; // Default
116 //$pkwk_dtd = PKWK_DTD_XHTML_1_0_STRICT;
117 //$pkwk_dtd = PKWK_DTD_XHTML_1_0_TRANSITIONAL;
118 //$pkwk_dtd = PKWK_DTD_HTML_4_01_STRICT;
119 //$pkwk_dtd = PKWK_DTD_HTML_4_01_TRANSITIONAL;
121 /////////////////////////////////////////////////
123 // PKWK_ALLOW_JAVASCRIPT - Allow using JavaScript
124 define('PKWK_ALLOW_JAVASCRIPT', 0);
126 /////////////////////////////////////////////////
132 // Show trackbacks with an another window
133 $trackback_javascript = 0;
135 /////////////////////////////////////////////////
136 // Referer list feature
139 /////////////////////////////////////////////////
140 // _Disable_ WikiName auto-linking
143 /////////////////////////////////////////////////
146 // AutoLink minimum bytes (0 = Disable)
149 /////////////////////////////////////////////////
150 // Enable Freeze / Unfreeze feature
151 $function_freeze = 1;
153 /////////////////////////////////////////////////
154 // Wikisite admin password
157 $adminpass = '1a1dc91c907325c69271ddf0c944bc72'; // md5('pass')
159 /////////////////////////////////////////////////
160 // ChaSen, KAKASI ¤Ë¤è¤ë¡¢¥Ú¡¼¥¸Ì¾¤ÎÆɤߤμèÆÀ (0:̵¸ú,1:͸ú)
161 $pagereading_enable = 0;
163 // ChaSen('chasen') or KAKASI('kakasi') or None('none')
164 $pagereading_kanji2kana_converter = 'none';
166 // ChaSen/KAKASI ¤È¤Î¼õ¤±ÅϤ·¤Ë»È¤¦´Á»ú¥³¡¼¥É (UNIX·Ï¤Ï EUC¡¢Win·Ï¤Ï SJIS ¤¬´ðËÜ)
167 $pagereading_kanji2kana_encoding = 'EUC';
168 //$pagereading_kanji2kana_encoding = 'SJIS';
170 // ChaSen/KAKASI ¤Î¼Â¹Ô¥Õ¥¡¥¤¥ë (³Æ¼«¤Î´Ä¶¤Ë¹ç¤ï¤»¤ÆÀßÄê)
171 $pagereading_chasen_path = '/usr/local/bin/chasen';
172 //$pagereading_chasen_path = 'c:\progra~1\chasen21\chasen.exe';
174 $pagereading_kakasi_path = '/usr/local/bin/kakasi';
175 //$pagereading_kakasi_path = 'c:\kakasi\bin\kakasi.exe';
177 // ¥Ú¡¼¥¸Ì¾Æɤߤò³ÊǼ¤·¤¿¥Ú¡¼¥¸¤Î̾Á°
178 $pagereading_config_page = ':config/PageReading';
180 // converter ='none' ¤Î¾ì¹ç¤ÎÆɤ߲¾Ì¾¼½ñ
181 $pagereading_config_dict = ':config/PageReading/dict';
183 /////////////////////////////////////////////////
186 'foo' => 'foo_passwd',
187 'bar' => 'bar_passwd',
188 'hoge' => 'hoge_passwd',
191 /////////////////////////////////////////////////
192 // Authentication method
194 // 'pagename' : by Page name
195 // 'contents' : by Page contents
196 $auth_method_type = 'contents';
198 /////////////////////////////////////////////////
199 // Read auth (0:Disable, 1:Enable)
203 $read_auth_pages = array(
204 '#¤Ò¤¤³¤â¤ë¤Û¤²#' => 'hoge',
205 '#(¥Í¥¿¥Ð¥ì|¤Í¤¿¤Ð¤ì)#' => 'foo,bar,hoge',
208 /////////////////////////////////////////////////
209 // Edit auth (0:Disable, 1:Enable)
213 $edit_auth_pages = array(
214 '#Bar¤Î¸ø³«Æüµ#' => 'bar',
215 '#¤Ò¤¤³¤â¤ë¤Û¤²#' => 'hoge',
216 '#(¥Í¥¿¥Ð¥ì|¤Í¤¿¤Ð¤ì)#' => 'foo',
219 /////////////////////////////////////////////////
221 // 0: Disabled (Search read-prohibited page contents)
222 // 1: Enabled (Search only permitted pages for the user)
225 /////////////////////////////////////////////////
226 // $whatsnew: Max number of RecentChanges
229 // $whatsdeleted: Max number of RecentDeleted
231 $maxshow_deleted = 60;
233 /////////////////////////////////////////////////
234 // Page names can't be edit via PukiWiki
235 $cantedit = array( $whatsnew, $whatsdeleted );
237 /////////////////////////////////////////////////
238 // HTTP: Send Last-Modified header
241 /////////////////////////////////////////////////
243 $date_format = 'Y-m-d';
246 $time_format = 'H:i:s';
248 /////////////////////////////////////////////////
249 // Max number of RSS feed
252 /////////////////////////////////////////////////
253 // Backup related settings
258 // When a page had been removed, remove its backup too?
261 // Bacukp interval and generation
262 $cycle = 3; // Wait N hours between backup (0 = no wait)
263 $maxage = 120; // Stock latest N backups
265 // NOTE: $cycle x $maxage / 24 = Minimum days to lost your data
268 // Spilitter of backup data (NOTE: Too dangerous to change)
269 define('PKWK_SPLITTER', '>>>>>>>>>>');
271 /////////////////////////////////////////////////
272 // Command executed per update
274 //$update_exec = '/usr/bin/mknmz --media-type=text/pukiwiki -O /var/lib/namazu/index/ -L ja -c -K /var/www/wiki/';
276 /////////////////////////////////////////////////
277 // Proxy setting (for TrackBack etc)
279 // Use HTTP proxy server to get remote data
282 $proxy_host = 'proxy.example.com';
285 // Do Basic authentication
286 $need_proxy_auth = 0;
287 $proxy_auth_user = 'username';
288 $proxy_auth_pass = 'password';
290 // Hosts that proxy server will not be needed
292 'localhost', // localhost
293 '127.0.0.0/8', // loopback
294 // '10.0.0.0/8' // private class A
295 // '172.16.0.0/12' // private class B
296 // '192.168.0.0/16' // private class C
300 ////////////////////////////////////////////////
301 // Mail related settings
303 // Send mail per update of pages
307 $notify_diff_only = 1;
309 // SMTP server (Windows only. Usually specified at php.ini)
310 $smtp_server = 'localhost';
312 $notify_to = 'to@example.com'; // To:
313 $notify_from = 'from@example.com'; // From:
315 // Subject: ($page = Page name wll be replaced)
316 $notify_subject = '[PukiWiki] $page';
319 $notify_header = "From: $notify_from\r\n" .
320 'X-Mailer: PukiWiki/' . S_VERSION . ' PHP/' . phpversion();
322 /////////////////////////////////////////////////
323 // Mail: POP / APOP Before SMTP
325 // Do POP/APOP authentication before send mail
328 $pop_server = 'localhost';
333 // Use APOP instead of POP (If server uses)
334 // Default = Auto (Use APOP if possible)
335 // 1 = Always use APOP
336 // 0 = Always use POP
337 // $pop_auth_use_apop = 1;
339 /////////////////////////////////////////////////
342 // Regex of ignore pages
345 // Search ignored pages
346 $search_non_list = 1;
348 /////////////////////////////////////////////////
351 $auto_template_func = 1;
352 $auto_template_rules = array(
353 '((.+)\/([^\/]+))' => '\2/template'
356 /////////////////////////////////////////////////
357 // Automatically add fixed heading anchor
358 $fixed_heading_anchor = 1;
360 /////////////////////////////////////////////////
361 // Remove the first spaces from Preformatted text
362 $preformat_ltrim = 1;
364 /////////////////////////////////////////////////
365 // Convert linebreaks into <br/>
368 /////////////////////////////////////////////////
369 // User-Agent settings
371 // ¥ê¥Ã¥Á¥¯¥é¥¤¥¢¥ó¥È¤òÁ°Äó¤È¤·¤¿¥µ¥¤¥È¤ò¹½ÃÛ¤¹¤ë
372 // ¤¿¤á¤Ë¡¢·ÈÂÓÅÅÏäʤɤ˰տÞŪ¤ËÈóÂбþ¤È¤·¤¿¤¤¾ì¹ç¡¢
373 // ºÇ¸å¤Î¥Ç¥Õ¥©¥ë¥ÈÀßÄê°Ê³°¤Î¹Ô¤òÁ´¤Æºï½ü¤¢¤ë¤¤¤Ï
374 // ¥³¥á¥ó¥È¥¢¥¦¥È¤·¤Æ²¼¤µ¤¤¡£
376 // ¥Ç¥¶¥¤¥ó¤ä¥¹¥¿¥¤¥ë¤ò´ÊÁǤÊkeitai¥×¥í¥Õ¥¡¥¤¥ë¤Ë
377 // Åý°ì¤·¤¿¤¤»þ¤Ï¡¢¥Ç¥Õ¥©¥ë¥ÈÀßÄê°Ê³°¤Î¹Ô¤òÁ´¤Æºï½ü
378 // ¤¢¤ë¤¤¤Ï¥³¥á¥ó¥È¥¢¥¦¥È¤·¤¿¸å¤Ë¡¢¥Ç¥Õ¥©¥ë¥ÈÀßÄê¤ò
379 // 'profile'=>'keitai' ¤È½¤Àµ¤·¤Æ²¼¤µ¤¤¡£
382 // pattern: A regular-expression that matches device(browser)'s name and version
383 // profile: A group of browsers
385 // Embedded browsers (Rich-clients for PukiWiki)
387 // Windows CE (Microsoft(R) Internet Explorer 5.5 for Windows(R) CE)
388 // Sample: "Mozilla/4.0 (compatible; MSIE 5.5; Windows CE; sigmarion3)" (sigmarion, Hand-held PC)
389 array('pattern'=>'#\b(?:MSIE [5-9]).*\b(Windows CE)\b#', 'profile'=>'default'),
391 // ACCESS "NetFront" / "Compact NetFront" and thier OEM, expects to be "Mozilla/4.0"
392 // Sample: "Mozilla/4.0 (PS2; PlayStation BB Navigator 1.0) NetFront/3.0" (PlayStation BB Navigator, for SONY PlayStation 2)
393 // Sample: "Mozilla/4.0 (PDA; PalmOS/sony/model crdb/Revision:1.1.19) NetFront/3.0" (SONY Clie series)
394 // Sample: "Mozilla/4.0 (PDA; SL-A300/1.0,Embedix/Qtopia/1.1.0) NetFront/3.0" (SHARP Zaurus)
395 array('pattern'=>'#^(?:Mozilla/4).*\b(NetFront)/([0-9\.]+)#', 'profile'=>'default'),
397 // Embedded browsers (Non-rich)
399 // Windows CE (the others)
400 // Sample: "Mozilla/2.0 (compatible; MSIE 3.02; Windows CE; 240x320 )" (GFORT, NTT DoCoMo)
401 array('pattern'=>'#\b(Windows CE)\b#', 'profile'=>'keitai'),
403 // ACCESS "NetFront" / "Compact NetFront" and thier OEM
404 // Sample: "Mozilla/3.0 (AveFront/2.6)" ("SUNTAC OnlineStation", USB-Modem for PlayStation 2)
405 // Sample: "Mozilla/3.0(DDIPOCKET;JRC/AH-J3001V,AH-J3002V/1.0/0100/c50)CNF/2.0" (DDI Pocket: AirH" Phone by JRC)
406 array('pattern'=>'#\b(NetFront)/([0-9\.]+)#', 'profile'=>'keitai'),
407 array('pattern'=>'#\b(CNF)/([0-9\.]+)#', 'profile'=>'keitai'),
408 array('pattern'=>'#\b(AveFront)/([0-9\.]+)#', 'profile'=>'keitai'),
409 array('pattern'=>'#\b(AVE-Front)/([0-9\.]+)#', 'profile'=>'keitai'), // The same?
411 // NTT-DoCoMo, i-mode (embeded Compact NetFront) and FOMA (embedded NetFront) phones
412 // Sample: "DoCoMo/1.0/F501i", "DoCoMo/1.0/N504i/c10/TB/serXXXX" // c°Ê¹ß¤Ï²ÄÊÑ
413 // Sample: "DoCoMo/2.0 MST_v_SH2101V(c100;TB;W22H12;serXXXX;iccxxxx)" // ()¤ÎÃæ¤Ï²ÄÊÑ
414 array('pattern'=>'#^(DoCoMo)/([0-9\.]+)#', 'profile'=>'keitai'),
416 // Vodafone's embedded browser
417 // Sample: "J-PHONE/2.0/J-T03" // 2.0¤Ï"¥Ö¥é¥¦¥¶¤Î"¥Ð¡¼¥¸¥ç¥ó
418 // Sample: "J-PHONE/4.0/J-SH51/SNxxxx SH/0001a Profile/MIDP-1.0 Configuration/CLDC-1.0 Ext-Profile/JSCL-1.1.0"
419 array('pattern'=>'#^(J-PHONE)/([0-9\.]+)#', 'profile'=>'keitai'),
421 // Openwave(R) Mobile Browser (EZweb, WAP phone, etc)
422 // Sample: "OPWV-SDK/62K UP.Browser/6.2.0.5.136 (GUI) MMP/2.0"
423 array('pattern'=>'#\b(UP\.Browser)/([0-9\.]+)#', 'profile'=>'keitai'),
425 // Opera, dressing up as other embedded browsers
426 // Sample: "Mozilla/3.0(DDIPOCKET;KYOCERA/AH-K3001V/1.4.1.67.000000/0.1/C100) Opera 7.0" (Like CNF at 'keitai'-mode)
427 array('pattern'=>'#\bDDIPOCKET\b.+\b(Opera) ([0-9\.]+)\b#', 'profile'=>'keitai'),
429 // Planetweb http://www.planetweb.com/
430 // Sample: "Mozilla/3.0 (Planetweb/v1.07 Build 141; SPS JP)" ("EGBROWSER", Web browser for PlayStation 2)
431 array('pattern'=>'#\b(Planetweb)/v([0-9\.]+)#', 'profile'=>'keitai'),
433 // DreamPassport, Web browser for SEGA DreamCast
434 // Sample: "Mozilla/3.0 (DreamPassport/3.0)"
435 array('pattern'=>'#\b(DreamPassport)/([0-9\.]+)#', 'profile'=>'keitai'),
437 // Palm "Web Pro" http://www.palmone.com/us/support/accessories/webpro/
438 // Sample: "Mozilla/4.76 [en] (PalmOS; U; WebPro)"
439 array('pattern'=>'#\b(WebPro)\b#', 'profile'=>'keitai'),
441 // ilinx "Palmscape" / "Xiino" http://www.ilinx.co.jp/
442 // Sample: "Xiino/2.1SJ [ja] (v. 4.1; 153x130; c16/d)"
443 array('pattern'=>'#^(Palmscape)/([0-9\.]+)#', 'profile'=>'keitai'),
444 array('pattern'=>'#^(Xiino)/([0-9\.]+)#', 'profile'=>'keitai'),
446 // SHARP PDA Browser (SHARP Zaurus)
447 // Sample: "sharp pda browser/6.1[ja](MI-E1/1.0) "
448 array('pattern'=>'#^(sharp [a-z]+ browser)/([0-9\.]+)#', 'profile'=>'keitai'),
451 array('pattern'=>'#^(WebTV)/([0-9\.]+)#', 'profile'=>'keitai'),
453 // Desktop-PC browsers
455 // Opera (for desktop PC, not embedded) -- See BugTrack/743 for detail
456 // NOTE: Keep this pattern above MSIE and Mozilla
457 // Sample: "Opera/7.0 (OS; U)" (not disguise)
458 // Sample: "Mozilla/4.0 (compatible; MSIE 5.0; OS) Opera 6.0" (disguise)
459 array('pattern'=>'#\b(Opera)[/ ]([0-9\.]+)\b#', 'profile'=>'default'),
461 // MSIE: Microsoft Internet Explorer (or something disguised as MSIE)
462 // Sample: "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"
463 array('pattern'=>'#\b(MSIE) ([0-9\.]+)\b#', 'profile'=>'default'),
466 // NOTE: Keep this pattern above Mozilla
467 // Sample: "Mozilla/5.0 (Windows; U; Windows NT 5.0; ja-JP; rv:1.7) Gecko/20040803 Firefox/0.9.3"
468 array('pattern'=>'#\b(Firefox)/([0-9\.]+)\b#', 'profile'=>'default'),
470 // Loose default: Including something Mozilla
471 array('pattern'=>'#^([a-zA-z0-9 ]+)/([0-9\.]+)\b#', 'profile'=>'default'),
473 array('pattern'=>'#^#', 'profile'=>'default'), // Sentinel