OSDN Git Service

BugTrack/622: Notice: Undefined index: [pagename] lib/func.php on line 308 (Commented...
[pukiwiki/pukiwiki.git] / pukiwiki.ini.php
index 66fc40d..275d424 100644 (file)
 <?php
-/////////////////////////////////////////////////
-// PukiWiki - Yet another WikiWikiWeb clone.
-//
-// $Id: pukiwiki.ini.php,v 1.31 2003/03/07 08:25:33 panda Exp $
+// PukiWiki - Yet another WikiWikiWeb clone
+// $Id: pukiwiki.ini.php,v 1.109 2005/01/25 14:17:53 henoheno Exp $
 //
-// PukiWiki setting file
+// PukiWiki main setting file
 
 /////////////////////////////////////////////////
-// ¥Ç¥£¥ì¥¯¥È¥ê»ØÄ꠺Ǹå¤Ë / ¤¬É¬Íנ°À­¤Ï 777
+// Functionality settings
+
+// PKWK_OPTIMISE - Ignore verbose but understandable checking and warning
+//   If you end testing this PukiWiki, set '1'.
+//   If you feel in trouble about this PukiWiki, set '0'.
+if (! defined('PKWK_OPTIMISE'))
+       define('PKWK_OPTIMISE', 0);
+
 /////////////////////////////////////////////////
-// ¥Ç¡¼¥¿¤Î³ÊǼ¥Ç¥£¥ì¥¯¥È¥ê
-define('DATA_DIR','./wiki/');
+// Security settings
+
+// PKWK_READONLY - Prohibits editing and maintain via WWW
+//   NOTE: Counter-related functions will work now (counter, attach count, etc)
+if (! defined('PKWK_READONLY'))
+       define('PKWK_READONLY', 0); // 0 or 1
+
+// PKWK_SAFE_MODE - Prohibits some unsafe(but compatible) functions 
+if (! defined('PKWK_SAFE_MODE'))
+       define('PKWK_SAFE_MODE', 0);
+
+// PKWK_QUERY_STRING_MAX
+//   Max length of GET method, prohibits some worm attack ASAP
+//   NOTE: Keep (page-name + attach-file-name) <= PKWK_QUERY_STRING_MAX
+define('PKWK_QUERY_STRING_MAX', 640);
+
 /////////////////////////////////////////////////
-// º¹Ê¬¥Õ¥¡¥¤¥ë¤Î³ÊǼ¥Ç¥£¥ì¥¯¥È¥ê
-define('DIFF_DIR','./diff/');
+// Language / Encoding settings
+
+// LANG - Internal content encoding ('en', 'ja', or ...)
+define('LANG', 'ja');
+
+// UI_LANG - Content Language for buttons, menus,  etc
+define('UI_LANG', LANG); // 'en' for Internationalized wikisite
+
 /////////////////////////////////////////////////
-// ¥Ð¥Ã¥¯¥¢¥Ã¥×¥Õ¥¡¥¤¥ë³ÊǼÀè¥Ç¥£¥ì¥¯¥È¥ê
-define('BACKUP_DIR','./backup/');
+// Directory settings I (ended with '/', permission '777')
+
+// You may hide these directories (from web browsers)
+// by setting DATA_HOME at index.php.
+
+define('DATA_DIR',      DATA_HOME . 'wiki/'     ); // Latest wiki texts
+define('DIFF_DIR',      DATA_HOME . 'diff/'     ); // Latest diffs
+define('BACKUP_DIR',    DATA_HOME . 'backup/'   ); // Backups
+define('CACHE_DIR',     DATA_HOME . 'cache/'    ); // Some sort of caches
+define('UPLOAD_DIR',    DATA_HOME . 'attach/'   ); // Attached files and logs
+define('COUNTER_DIR',   DATA_HOME . 'counter/'  ); // Counter plugin's counts
+define('TRACKBACK_DIR', DATA_HOME . 'trackback/'); // TrackBack logs
+define('PLUGIN_DIR',    DATA_HOME . 'plugin/'   ); // Plugin directory
+
 /////////////////////////////////////////////////
-// ¥×¥é¥°¥¤¥ó¥Õ¥¡¥¤¥ë³ÊǼÀè¥Ç¥£¥ì¥¯¥È¥ê
-define('PLUGIN_DIR','./plugin/');
+// Directory settings II (ended with '/')
+
+// Skins / Stylesheets
+define('SKIN_DIR', 'skin/');
+// Skin files (SKIN_DIR/*.skin.php) are needed at
+// ./DATAHOME/SKIN_DIR from index.php, but
+// CSSs(*.css) and JavaScripts(*.js) are needed at
+// ./SKIN_DIR from index.php.
+
+// Static image files
+define('IMAGE_DIR', 'image/');
+// Keep this directory shown via web browsers like
+// ./IMAGE_DIR from index.php.
+
 /////////////////////////////////////////////////
-// ¥­¥ã¥Ã¥·¥å¥Õ¥¡¥¤¥ë³ÊǼ¥Ç¥£¥ì¥¯¥È¥ê
-define('CACHE_DIR','./cache/');
+// Local time setting
+
+switch (LANG) { // or specifiy one
+case 'ja':
+       define('ZONE', 'JST');
+       define('ZONETIME', 9 * 3600); // JST = GMT + 9
+       break;
+default  :
+       define('ZONE', 'GMT');
+       define('ZONETIME', 0);
+       break;
+}
 
 /////////////////////////////////////////////////
-// ´ØÏ¢¤¹¤ë¥Ú¡¼¥¸¤Î¥­¥ã¥Ã¥·¥å
-// ¥Õ¥¡¥¤¥ë¥Ù¡¼¥¹¤Î¤È¤­¤Ïdefine('LINK_DB',...)¤ò¥³¥á¥ó¥È¥¢¥¦¥È
-// MySQL
-//define('LINK_DB','mysql');
-// PostgreSQL
-//define('LINK_DB','pgsql');
-//define('PG_CONNECT_STRING','dbname=pukiwiki host=gateway user=apache');
+// Title of your Wikisite (Define this)
+// and also RSS feed's channel name
+$page_title = 'PukiWiki';
+
+// Specify PukiWiki URL (default: auto)
+//$script = 'http://example.com/pukiwiki/';
+
+// Shorten $script: Cut its file name (default: not cut)
+//$script_directory_index = 'index.php';
+
+// Site admin's name (CHANGE THIS)
+$modifier = 'anonymous';
+
+// Site admin's Web page (CHANGE THIS)
+$modifierlink = 'http://pukiwiki.example.com/';
+
+// Defautl page name
+$defaultpage  = 'FrontPage';     // Top / Default page
+$whatsnew     = 'RecentChanges'; // Modified page list
+$whatsdeleted = 'RecentDeleted'; // Removeed page list
+$interwiki    = 'InterWikiName'; // Set InterWiki definition here
+$menubar      = 'MenuBar';       // Menu
 
 /////////////////////////////////////////////////
-// ¥í¡¼¥«¥ë»þ´Ö
-define('ZONE','JST');
-define('ZONETIME',9 * 3600); // JST = GMT+9
+// Change default Document Type Definition
+
+// Some web browser's bug, and / or Java apprets may needs not-Strict DTD.
+// Some plugin (e.g. paint) set this PKWK_DTD_XHTML_1_0_TRANSITIONAL.
+
+//$pkwk_dtd = PKWK_DTD_XHTML_1_1; // Default
+//$pkwk_dtd = PKWK_DTD_XHTML_1_0_STRICT;
+//$pkwk_dtd = PKWK_DTD_XHTML_1_0_TRANSITIONAL;
+//$pkwk_dtd = PKWK_DTD_HTML_4_01_STRICT;
+//$pkwk_dtd = PKWK_DTD_HTML_4_01_TRANSITIONAL;
+
 /////////////////////////////////////////////////
-// index.php ¤Ê¤É¤ËÊѹ¹¤·¤¿¾ì¹ç¤Î¥¹¥¯¥ê¥×¥È̾¤ÎÀßÄê
-// ¤È¤¯¤ËÀßÄꤷ¤Ê¤¯¤Æ¤âÌäÂê¤Ê¤·
-//$script = 'http://hogehoge/pukiwiki/';
+
+// PKWK_ALLOW_JAVASCRIPT - Allow using JavaScript
+define('PKWK_ALLOW_JAVASCRIPT', 0);
 
 /////////////////////////////////////////////////
-// ¥È¥Ã¥×¥Ú¡¼¥¸¤Î̾Á°
-$defaultpage = 'FrontPage';
+// TrackBack feature
+
+// Enable Trackback
+$trackback = 0;
+
+// Show trackbacks with an another window
+$trackback_javascript = 0;
+
 /////////////////////////////////////////////////
-// ¹¹¿·ÍúÎò¥Ú¡¼¥¸¤Î̾Á°
-$whatsnew = 'RecentChanges';
+// Referer list feature
+$referer = 0;
+
 /////////////////////////////////////////////////
-// InterWikiName¥Ú¡¼¥¸¤Î̾Á°
-$interwiki = 'InterWikiName';
+// _Disable_ WikiName auto-linking
+$nowikiname = 0;
+
 /////////////////////////////////////////////////
-// ÊÔ½¸¼Ô¤Î̾Á°(¼«Í³¤ËÊѤ¨¤Æ¤¯¤À¤µ¤¤)
-$modifier = 'me';
+// AutoLink feature
+
+// AutoLink minimum bytes (0 = Disable)
+$autolink = 8;
+
 /////////////////////////////////////////////////
-// ÊÔ½¸¼Ô¤Î¥Û¡¼¥à¥Ú¡¼¥¸(¼«Í³¤ËÊѤ¨¤Æ¤¯¤À¤µ¤¤)
-$modifierlink = 'http://change me!/';
+// Enable Freeze / Unfreeze feature
+$function_freeze = 1;
 
 /////////////////////////////////////////////////
-// ¥Û¡¼¥à¥Ú¡¼¥¸¤Î¥¿¥¤¥È¥ë(¼«Í³¤ËÊѤ¨¤Æ¤¯¤À¤µ¤¤)
-// RSS ¤Ë½ÐÎϤ¹¤ë¥Á¥ã¥ó¥Í¥ë̾
-$page_title = 'PukiWiki';
+// Wikisite admin password
+
+// CHANGE THIS
+$adminpass = '1a1dc91c907325c69271ddf0c944bc72'; // md5('pass')
 
 /////////////////////////////////////////////////
-// WikiName¤ò*̵¸ú¤Ë*¤¹¤ë
-$nowikiname = 0;
+// Page-reading feature settings
+// (Automatically creating pronounce datas, for Kanji-included page names,
+//  to show sorted page-list correctly)
+
+// Enable page-reading feature by calling ChaSen or KAKASHI command (0:Enable, 1:Disable)
+$pagereading_enable = 0;
+
+// Specify converter as ChaSen('chasen') or KAKASI('kakasi') or None('none')
+$pagereading_kanji2kana_converter = 'none';
+
+// Specify Kanji encoding to pass data between PukiWiki and the converter
+$pagereading_kanji2kana_encoding = 'EUC'; // Default for Unix
+//$pagereading_kanji2kana_encoding = 'SJIS'; // Default for Windows
+
+// Absolute path of the converter (ChaSen)
+$pagereading_chasen_path = '/usr/local/bin/chasen';
+//$pagereading_chasen_path = 'c:\progra~1\chasen21\chasen.exe';
+
+// Absolute path of the converter (KAKASI)
+$pagereading_kakasi_path = '/usr/local/bin/kakasi';
+//$pagereading_kakasi_path = 'c:\kakasi\bin\kakasi.exe';
+
+// Page name contains pronounce data (written by the converter)
+$pagereading_config_page = ':config/PageReading';
+
+// Page name of default pronouncing dictionary, used when converter = 'none'
+$pagereading_config_dict = ':config/PageReading/dict';
 
 /////////////////////////////////////////////////
-// AutoLink¤òÍ­¸ú¤Ë¤¹¤ë¾ì¹ç¤Ï¡¢AutoLinkÂоݤȤʤë
-// ¥Ú¡¼¥¸Ì¾¤ÎºÇû¥Ð¥¤¥È¿ô¤ò»ØÄê
-// AutoLink¤ò̵¸ú¤Ë¤¹¤ë¾ì¹ç¤Ï0
-$autolink = 0;
+// User definition
+$auth_users = array(
+       'foo'   => 'foo_passwd',
+       'bar'   => 'bar_passwd',
+       'hoge'  => 'hoge_passwd',
+);
 
 /////////////////////////////////////////////////
-// Åà·ëµ¡Ç½¤òÍ­¸ú¤Ë¤¹¤ë
-$function_freeze = 1;
+// Authentication method
+
+// 'pagename' : by Page name
+// 'contents' : by Page contents
+$auth_method_type = 'contents';
+
 /////////////////////////////////////////////////
-// Åà·ë²ò½üÍѤδÉÍý¼Ô¥Ñ¥¹¥ï¡¼¥É(MD5)
-// pukiwiki.php?md5=pass ¤Î¤è¤¦¤ËURL¤ËÆþÎϤ·
-// MD5¤Ë¤·¤Æ¤«¤é¤É¤¦¤¾¡£ÌÌÅݤʤé°Ê²¼¤Î¤è¤¦¤Ë¡£
-// $adminpass = md5("pass");
-// °Ê²¼¤Ï pass ¤ÎMD5¥Ñ¥¹¥ï¡¼¥É¤Ë¤Ê¤Ã¤Æ¤Þ¤¹¡£
-$adminpass = '1a1dc91c907325c69271ddf0c944bc72';
+// Read auth (0:Disable, 1:Enable)
+$read_auth = 0;
+
+// Read auth regex
+$read_auth_pages = array(
+       '#¤Ò¤­¤³¤â¤ë¤Û¤²#'      => 'hoge',
+       '#(¥Í¥¿¥Ð¥ì|¤Í¤¿¤Ð¤ì)#' => 'foo,bar,hoge',
+);
 
 /////////////////////////////////////////////////
-// ÊÔ½¸»þ¤Ëǧ¾Ú¤¬É¬Í×
+// Edit auth (0:Disable, 1:Enable)
 $edit_auth = 0;
 
-/////////////////////////////////////////////////
-// ÊÔ½¸»þǧ¾Ú¤Î¥¢¥«¥¦¥ó¥È¤È¥Ñ¥¹¥ï¡¼¥É
-// ¥æ¡¼¥¶Ì¾¤È¥Ñ¥¹¥ï¡¼¥É¤òµ­Æþ¡£
-$edit_auth_users = array(
'' => '',
+// Edit auth regex
+$edit_auth_pages = array(
+       '#Bar¤Î¸ø³«Æüµ­#'       => 'bar',
+       '#¤Ò¤­¤³¤â¤ë¤Û¤²#'      => 'hoge',
      '#(¥Í¥¿¥Ð¥ì|¤Í¤¿¤Ð¤ì)#' => 'foo',
 );
+
+/////////////////////////////////////////////////
+// Search auth
+// 0: Disabled (Search read-prohibited page contents)
+// 1: Enabled  (Search only permitted pages for the user)
+$search_auth = 0;
+
 /////////////////////////////////////////////////
-// ¹¹¿·ÍúÎò¤òɽ¼¨¤¹¤ë¤È¤­¤ÎºÇÂç·ï¿ô
-$maxshow = 80;
+// $whatsnew: Max number of RecentChanges
+$maxshow = 60;
+
+// $whatsdeleted: Max number of RecentDeleted
+// (0 = Disabled)
+$maxshow_deleted = 60;
+
 /////////////////////////////////////////////////
-// ÊÔ½¸¤¹¤ë¤³¤È¤Î¤Ç¤­¤Ê¤¤¥Ú¡¼¥¸¤Î̾Á° , ¤Ç¶èÀÚ¤ë
-$cantedit = array( $whatsnew, );
+// Page names can't be edit via PukiWiki
+$cantedit = array( $whatsnew, $whatsdeleted );
 
 /////////////////////////////////////////////////
-// Last-Modified ¥Ø¥Ã¥À¤ò½ÐÎϤ¹¤ë
+// HTTP: Send Last-Modified header
 $lastmod = 0;
 
 /////////////////////////////////////////////////
-// ÆüÉÕ¥Õ¥©¡¼¥Þ¥Ã¥È
+// Date format
 $date_format = 'Y-m-d';
-/////////////////////////////////////////////////
-// »þ¹ï¥Õ¥©¡¼¥Þ¥Ã¥È
+
+// Time format
 $time_format = 'H:i:s';
-/////////////////////////////////////////////////
-// ÍËÆüÇÛÎó
-$weeklabels = $_msg_week;
 
 /////////////////////////////////////////////////
-// RSS ¤Ë½ÐÎϤ¹¤ë¥Ú¡¼¥¸¿ô
+// Max number of RSS feed
 $rss_max = 15;
 
 /////////////////////////////////////////////////
-// ¥Ð¥Ã¥¯¥¢¥Ã¥×¤ò¹Ô¤¦
+// Backup related settings
+
+// Enable backup
 $do_backup = 1;
-/////////////////////////////////////////////////
-// ¥Ú¡¼¥¸¤òºï½ü¤·¤¿ºÝ¤Ë¥Ð¥Ã¥¯¥¢¥Ã¥×¤â¤¹¤Ù¤Æºï½ü¤¹¤ë
+
+// When a page had been removed, remove its backup too?
 $del_backup = 0;
+
+// Bacukp interval and generation
+$cycle  = 3;    // Wait N hours between backup (0 = no wait)
+$maxage = 120; // Stock latest N backups
+
+// NOTE: $cycle x $maxage / 24 = Minimum days to lost your data
+//          3   x   120   / 24 = 15
+
+// Spilitter of backup data (NOTE: Too dangerous to change)
+define('PKWK_SPLITTER', '>>>>>>>>>>');
+
 /////////////////////////////////////////////////
-// Äê´ü¥Ð¥Ã¥¯¥¢¥Ã¥×¤Î´Ö³Ö¤ò»þ´Ö(hour)¤Ç»ØÄꤷ¤Þ¤¹(0¤Ç¹¹¿·Ëè)
-$cycle = 6;
-/////////////////////////////////////////////////
-// ¥Ð¥Ã¥¯¥¢¥Ã¥×¤ÎºÇÂçÀ¤Âå¿ô
-$maxage = 20;
-/////////////////////////////////////////////////
-// ¥Ð¥Ã¥¯¥¢¥Ã¥×¤ÎÀ¤Âå¤ò¶èÀÚ¤ëʸ»úÎó
-// (Ä̾ï¤Ï¤³¤Î¤Þ¤Þ¤ÇÎɤ¤¤¬¡¢Ê¸¾ÏÃæ¤Ç»È¤ï¤ì¤ë²ÄǽÀ­
-// ¤¬¤¢¤ì¤Ð¡¢»È¤ï¤ì¤½¤¦¤Ë¤Ê¤¤Ê¸»ú¤òÀßÄꤹ¤ë)
-$splitter = ">>>>>>>>>>";
-/////////////////////////////////////////////////
-// ¥Ú¡¼¥¸¤Î¹¹¿·»þ¤Ë¥Ð¥Ã¥¯¥°¥é¥ó¥É¤Ç¼Â¹Ô¤µ¤ì¤ë¥³¥Þ¥ó¥É(mknmz¤Ê¤É)
+// Command executed per update
 $update_exec = '';
 //$update_exec = '/usr/bin/mknmz --media-type=text/pukiwiki -O /var/lib/namazu/index/ -L ja -c -K /var/www/wiki/';
 
 /////////////////////////////////////////////////
-// °ìÍ÷¡¦¹¹¿·°ìÍ÷¤Ë´Þ¤á¤Ê¤¤¥Ú¡¼¥¸Ì¾(Àµµ¬É½¸½¤Ç)
-$non_list = '^\:';
+// Proxy setting (for TrackBack etc)
+
+// Use HTTP proxy server to get remote data
+$use_proxy = 0;
+
+$proxy_host = 'proxy.example.com';
+$proxy_port = 8080;
+
+// Do Basic authentication
+$need_proxy_auth = 0;
+$proxy_auth_user = 'username';
+$proxy_auth_pass = 'password';
+
+// Hosts that proxy server will not be needed
+$no_proxy = array(
+       'localhost',    // localhost
+       '127.0.0.0/8',  // loopback
+//     '10.0.0.0/8'    // private class A
+//     '172.16.0.0/12' // private class B
+//     '192.168.0.0/16'        // private class C
+//     'no-proxy.com',
+);
+
+////////////////////////////////////////////////
+// Mail related settings
+
+// Send mail per update of pages
+$notify = 0;
+
+// Send diff only
+$notify_diff_only = 1;
+
+// SMTP server (Windows only. Usually specified at php.ini)
+$smtp_server = 'localhost';
+
+$notify_to   = 'to@example.com';       // To:
+$notify_from = 'from@example.com';     // From:
+
+// Subject: ($page = Page name wll be replaced)
+$notify_subject = '[PukiWiki] $page';
+
+// Mail header
+$notify_header = "From: $notify_from\r\n" .
+       'X-Mailer: PukiWiki/' .  S_VERSION . ' PHP/' . phpversion();
+
+/////////////////////////////////////////////////
+// Mail: POP / APOP Before SMTP
+
+// Do POP/APOP authentication before send mail
+$smtp_auth = 0;
+
+$pop_server = 'localhost';
+$pop_port   = 110;
+$pop_userid = '';
+$pop_passwd = '';
+
+// Use APOP instead of POP (If server uses)
+//   Default = Auto (Use APOP if possible)
+//   1       = Always use APOP
+//   0       = Always use POP
+// $pop_auth_use_apop = 1;
 
 /////////////////////////////////////////////////
-// $non_list¤òʸ»úÎ󸡺÷¤ÎÂоݥڡ¼¥¸¤È¤¹¤ë¤«
-// 0¤Ë¤¹¤ë¤È¡¢¾åµ­¥Ú¡¼¥¸Ì¾¤¬Ã±¸ì¸¡º÷¤«¤é¤â½ü³°¤µ¤ì¤Þ¤¹¡£
+// Ignore list
+
+// Regex of ignore pages
+$non_list = '^\:';
+
+// Search ignored pages
 $search_non_list = 1;
 
 /////////////////////////////////////////////////
-// ¥Ú¡¼¥¸Ì¾¤Ë½¾¤Ã¤Æ¼«Æ°¤Ç¡¢¿÷·Á¤È¤¹¤ë¥Ú¡¼¥¸¤ÎÆɤ߹þ¤ß
+// Template setting
+
 $auto_template_func = 1;
 $auto_template_rules = array(
-'((.+)\/([^\/]+))' => '\2/template'
+       '((.+)\/([^\/]+))' => '\2/template'
 );
 
 /////////////////////////////////////////////////
-// ¥æ¡¼¥¶¡¼¥¨¡¼¥¸¥§¥ó¥ÈÂбþÀßÄê
-// ¥Ç¥Õ¥©¥ë¥È
-$user_agent = array('name'=>'default');
-// ·ÈÂÓüËö
-$agents = array(
-       array('name'=>'jphone','pattern'=>'#^J-PHONE.+(Profile/)#'),
-       array('name'=>'jphone','pattern'=>'#^J-PHONE#'),
-       array('name'=>'i_mode','pattern'=>'#DoCoMo/(1\.0)/(?:[^/]+/c([0-9]+))?#'),
-       array('name'=>'i_mode','pattern'=>'#DoCoMo/(2\.0) [^(]+\(c([0-9]+)#'),
-);
+// Automatically add fixed heading anchor
+$fixed_heading_anchor = 1;
 
 /////////////////////////////////////////////////
-// ¥æ¡¼¥¶ÄêµÁ¥ë¡¼¥ë
-//
-//  Àµµ¬É½¸½¤Çµ­½Ò¤·¤Æ¤¯¤À¤µ¤¤¡£?(){}-*./+\$^|¤Ê¤É
-//  ¤Ï \? ¤Î¤è¤¦¤Ë¥¯¥©¡¼¥È¤·¤Æ¤¯¤À¤µ¤¤¡£
-//  Á°¸å¤Ëɬ¤º / ¤ò´Þ¤á¤Æ¤¯¤À¤µ¤¤¡£¹ÔƬ»ØÄê¤Ï ^ ¤òƬ¤Ë¡£
-//  ¹ÔËö»ØÄê¤Ï $ ¤ò¸å¤í¤Ë¡£
-//
+// Remove the first spaces from Preformatted text
+$preformat_ltrim = 1;
+
 /////////////////////////////////////////////////
-// ¥æ¡¼¥¶ÄêµÁ¥ë¡¼¥ë(ľÀÜ¥½¡¼¥¹¤òÃÖ´¹)
-$str_rules = array(
-       'now\?' => format_date(UTIME),
-       'date\?' => get_date($date_format),
-       'time\?' => get_date($time_format),
-//     '&now;' => format_date(UTIME),
-//     '&date;' => get_date($date_format),
-//     '&time;' => get_date($time_format),
-);
+// Convert linebreaks into <br/>
+$line_break = 0;
 
 /////////////////////////////////////////////////
-// ¥Õ¥§¥¤¥¹¥Þ¡¼¥¯ÄêµÁ¥ë¡¼¥ë(¥³¥ó¥Ð¡¼¥È»þ¤ËÃÖ´¹)
-// $usefacemark = 1¤Ê¤é¥Õ¥§¥¤¥¹¥Þ¡¼¥¯¤¬ÃÖ´¹¤µ¤ì¤Þ¤¹
-// Ê¸¾ÏÆâ¤ËXD¤Ê¤É¤¬Æþ¤Ã¤¿¾ì¹ç¤Ëfacemark¤ËÃÖ´¹¤µ¤ì¤Æ¤·¤Þ¤¦¤Î¤Ç
-// É¬ÍפΤʤ¤Êý¤Ï $usefacemark¤ò0¤Ë¤·¤Æ¤¯¤À¤µ¤¤¡£
-$facemark_rules = array(
-'\s(\:\))' => ' <img src="./face/smile.png" alt="$1" />',
-'\s(\:D)' => ' <img src="./face/bigsmile.png" alt="$1" />',
-'\s(\:p)' => ' <img src="./face/huh.png" alt="$1" />',
-'\s(\:d)' => ' <img src="./face/huh.png" alt="$1" />',
-'\s(XD)' => ' <img src="./face/oh.png" alt="$1" />',
-'\s(X\()' => ' <img src="./face/oh.png" alt="$1" />',
-'\s(;\))' => ' <img src="./face/wink.png" alt="$1" />',
-'\s(;\()' => ' <img src="./face/sad.png" alt="$1" />',
-'\s(\:\()' => ' <img src="./face/sad.png" alt="$1" />',
-'&(smile);' => ' <img src="./face/smile.png" alt="$1" />',
-'&(bigsmile);' => ' <img src="./face/bigsmile.png" alt="$1" />',
-'&(huh);' => ' <img src="./face/huh.png" alt="$1" />',
-'&(oh);' => ' <img src="./face/oh.png" alt="$1" />',
-'&(wink);' => ' <img src="./face/wink.png" alt="$1" />',
-'&(sad);' => ' <img src="./face/sad.png" alt="$1" />',
-'&(heart);' => '<img src="./face/heart.png" alt="$1" />',
-);
+// User-Agent settings
+//
+// If you want to ignore embedded browsers for rich-content-wikisite,
+// remove (or comment-out) all 'keitai' settings.
+//
+// If you want to to ignore desktop-PC browsers for simple wikisite,
+// copy keitai.ini.php to default.ini.php and customize it.
+
+$agents = array(
+// pattern: A regular-expression that matches device(browser)'s name and version
+// profile: A group of browsers
+
+    // Embedded browsers (Rich-clients for PukiWiki)
+
+       // Windows CE (Microsoft(R) Internet Explorer 5.5 for Windows(R) CE)
+       // Sample: "Mozilla/4.0 (compatible; MSIE 5.5; Windows CE; sigmarion3)" (sigmarion, Hand-held PC)
+       array('pattern'=>'#\b(?:MSIE [5-9]).*\b(Windows CE)\b#', 'profile'=>'default'),
+
+       // ACCESS "NetFront" / "Compact NetFront" and thier OEM, expects to be "Mozilla/4.0"
+       // Sample: "Mozilla/4.0 (PS2; PlayStation BB Navigator 1.0) NetFront/3.0" (PlayStation BB Navigator, for SONY PlayStation 2)
+       // Sample: "Mozilla/4.0 (PDA; PalmOS/sony/model crdb/Revision:1.1.19) NetFront/3.0" (SONY Clie series)
+       // Sample: "Mozilla/4.0 (PDA; SL-A300/1.0,Embedix/Qtopia/1.1.0) NetFront/3.0" (SHARP Zaurus)
+       array('pattern'=>'#^(?:Mozilla/4).*\b(NetFront)/([0-9\.]+)#',   'profile'=>'default'),
+
+    // Embedded browsers (Non-rich)
+
+       // Windows CE (the others)
+       // Sample: "Mozilla/2.0 (compatible; MSIE 3.02; Windows CE; 240x320 )" (GFORT, NTT DoCoMo)
+       array('pattern'=>'#\b(Windows CE)\b#', 'profile'=>'keitai'),
+
+       // ACCESS "NetFront" / "Compact NetFront" and thier OEM
+       // Sample: "Mozilla/3.0 (AveFront/2.6)" ("SUNTAC OnlineStation", USB-Modem for PlayStation 2)
+       // Sample: "Mozilla/3.0(DDIPOCKET;JRC/AH-J3001V,AH-J3002V/1.0/0100/c50)CNF/2.0" (DDI Pocket: AirH" Phone by JRC)
+       array('pattern'=>'#\b(NetFront)/([0-9\.]+)#',   'profile'=>'keitai'),
+       array('pattern'=>'#\b(CNF)/([0-9\.]+)#',        'profile'=>'keitai'),
+       array('pattern'=>'#\b(AveFront)/([0-9\.]+)#',   'profile'=>'keitai'),
+       array('pattern'=>'#\b(AVE-Front)/([0-9\.]+)#',  'profile'=>'keitai'), // The same?
+
+       // NTT-DoCoMo, i-mode (embeded Compact NetFront) and FOMA (embedded NetFront) phones
+       // Sample: "DoCoMo/1.0/F501i", "DoCoMo/1.0/N504i/c10/TB/serXXXX" // c°Ê¹ß¤Ï²ÄÊÑ
+       // Sample: "DoCoMo/2.0 MST_v_SH2101V(c100;TB;W22H12;serXXXX;iccxxxx)" // ()¤ÎÃæ¤Ï²ÄÊÑ
+       array('pattern'=>'#^(DoCoMo)/([0-9\.]+)#',      'profile'=>'keitai'),
 
+       // Vodafone's embedded browser
+       // Sample: "J-PHONE/2.0/J-T03"  // 2.0¤Ï"¥Ö¥é¥¦¥¶¤Î"¥Ð¡¼¥¸¥ç¥ó
+       // Sample: "J-PHONE/4.0/J-SH51/SNxxxx SH/0001a Profile/MIDP-1.0 Configuration/CLDC-1.0 Ext-Profile/JSCL-1.1.0"
+       array('pattern'=>'#^(J-PHONE)/([0-9\.]+)#',     'profile'=>'keitai'),
+
+       // Openwave(R) Mobile Browser (EZweb, WAP phone, etc)
+       // Sample: "OPWV-SDK/62K UP.Browser/6.2.0.5.136 (GUI) MMP/2.0"
+       array('pattern'=>'#\b(UP\.Browser)/([0-9\.]+)#',        'profile'=>'keitai'),
+
+       // Opera, dressing up as other embedded browsers
+       // Sample: "Mozilla/3.0(DDIPOCKET;KYOCERA/AH-K3001V/1.4.1.67.000000/0.1/C100) Opera 7.0" (Like CNF at 'keitai'-mode)
+       array('pattern'=>'#\bDDIPOCKET\b.+\b(Opera) ([0-9\.]+)\b#',     'profile'=>'keitai'),
+
+       // Planetweb http://www.planetweb.com/
+       // Sample: "Mozilla/3.0 (Planetweb/v1.07 Build 141; SPS JP)" ("EGBROWSER", Web browser for PlayStation 2)
+       array('pattern'=>'#\b(Planetweb)/v([0-9\.]+)#', 'profile'=>'keitai'),
+
+       // DreamPassport, Web browser for SEGA DreamCast
+       // Sample: "Mozilla/3.0 (DreamPassport/3.0)"
+       array('pattern'=>'#\b(DreamPassport)/([0-9\.]+)#',      'profile'=>'keitai'),
+
+       // Palm "Web Pro" http://www.palmone.com/us/support/accessories/webpro/
+       // Sample: "Mozilla/4.76 [en] (PalmOS; U; WebPro)"
+       array('pattern'=>'#\b(WebPro)\b#',      'profile'=>'keitai'),
+
+       // ilinx "Palmscape" / "Xiino" http://www.ilinx.co.jp/
+       // Sample: "Xiino/2.1SJ [ja] (v. 4.1; 153x130; c16/d)"
+       array('pattern'=>'#^(Palmscape)/([0-9\.]+)#',   'profile'=>'keitai'),
+       array('pattern'=>'#^(Xiino)/([0-9\.]+)#',       'profile'=>'keitai'),
+
+       // SHARP PDA Browser (SHARP Zaurus)
+       // Sample: "sharp pda browser/6.1[ja](MI-E1/1.0) "
+       array('pattern'=>'#^(sharp [a-z]+ browser)/([0-9\.]+)#',        'profile'=>'keitai'),
+
+       // WebTV
+       array('pattern'=>'#^(WebTV)/([0-9\.]+)#',       'profile'=>'keitai'),
+
+    // Desktop-PC browsers
+
+       // Opera (for desktop PC, not embedded) -- See BugTrack/743 for detail
+       // NOTE: Keep this pattern above MSIE and Mozilla
+       // Sample: "Opera/7.0 (OS; U)" (not disguise)
+       // Sample: "Mozilla/4.0 (compatible; MSIE 5.0; OS) Opera 6.0" (disguise)
+       array('pattern'=>'#\b(Opera)[/ ]([0-9\.]+)\b#', 'profile'=>'default'),
+
+       // MSIE: Microsoft Internet Explorer (or something disguised as MSIE)
+       // Sample: "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"
+       array('pattern'=>'#\b(MSIE) ([0-9\.]+)\b#',     'profile'=>'default'),
+
+       // Mozilla Firefox
+       // NOTE: Keep this pattern above Mozilla
+       // Sample: "Mozilla/5.0 (Windows; U; Windows NT 5.0; ja-JP; rv:1.7) Gecko/20040803 Firefox/0.9.3"
+       array('pattern'=>'#\b(Firefox)/([0-9\.]+)\b#',  'profile'=>'default'),
+
+       // Loose default: Including something Mozilla
+       array('pattern'=>'#^([a-zA-z0-9 ]+)/([0-9\.]+)\b#',     'profile'=>'default'),
+
+       array('pattern'=>'#^#', 'profile'=>'default'),  // Sentinel
+);
 ?>