+++ /dev/null
-<?php
-// PukiWiki - Yet another WikiWikiWeb clone.
-// $Id: keitai.ini.php 3478 2010-08-14 08:33:30Z fishbone $
-// Copyright (C)
-// 2002-2005 PukiWiki Developers Team
-// 2001-2002 Originally written by yu-ji
-// License: GPL v2 or (at your option) any later version
-//
-// PukiWiki setting file (Cell phones, PDAs and other thin clients)
-
-/////////////////////////////////////////////////
-// 携帯・PDA専用のページを初期ページとして指定する
-
-// $defaultpage = 'm';
-
-/////////////////////////////////////////////////
-// スキンファイルの場所
-//define('SKIN_FILE', DATA_HOME . SKIN_DIR . 'keitai.skin.php');
-
-/////////////////////////////////////////////////
-// 雛形とするページの読み込みを可能にする
-$load_template_func = 0;
-
-/////////////////////////////////////////////////
-// 検索文字列を色分けする
-$search_word_color = 0;
-
-/////////////////////////////////////////////////
-// 一覧ページに頭文字インデックスをつける
-$list_index = 0;
-
-/////////////////////////////////////////////////
-// リスト構造の左マージン
-$_ul_left_margin = 0; // リストと画面左端との間隔(px)
-$_ul_margin = 16; // リストの階層間の間隔(px)
-$_ol_left_margin = 0; // リストと画面左端との間隔(px)
-$_ol_margin = 16; // リストの階層間の間隔(px)
-$_dl_left_margin = 0; // リストと画面左端との間隔(px)
-$_dl_margin = 16; // リストの階層間の間隔(px)
-$_list_pad_str = '';
-
-/////////////////////////////////////////////////
-// 大・小見出しから目次へ戻るリンクの文字
-$top = '';
-
-/////////////////////////////////////////////////
-// 添付ファイルの一覧を常に表示する (負担がかかります)
-// ※keitaiスキンにはこの一覧を表示する機能がありません
-$attach_link = 0;
-
-/////////////////////////////////////////////////
-// 関連するページのリンク一覧を常に表示する(負担がかかります)
-// ※keitaiスキンにはこの一覧を表示する機能がありません
-$related_link = 0;
-
-// リンク一覧の区切り文字
-// ※上同
-$related_str = "\n ";
-
-// (#relatedプラグインが表示する) リンク一覧の区切り文字
-$rule_related_str = "</li>\n<li>";
-
-/////////////////////////////////////////////////
-// 水平線のタグ
-$hr = '<hr>';
-
-/////////////////////////////////////////////////
-// 脚注機能関連
-
-// 脚注のアンカーに埋め込む本文の最大長
-define('PKWK_FOOTNOTE_TITLE_MAX', 0); // Characters
-
-// 脚注のアンカーを相対パスで表示する (0 = 絶対パス)
-// * 相対パスの場合、以前のバージョンのOperaで問題になることがあります
-// * 絶対パスの場合、calendar_viewerなどで問題になることがあります
-// (詳しくは: BugTrack/698)
-define('PKWK_ALLOW_RELATIVE_FOOTNOTE_ANCHOR', 1);
-
-// 文末の注釈の直前に表示するタグ
-$note_hr = '<hr>';
-
-/////////////////////////////////////////////////
-// WikiName,BracketNameに経過時間を付加する
-$show_passage = 0;
-
-/////////////////////////////////////////////////
-// リンク表示をコンパクトにする
-// * ページに対するハイパーリンクからタイトルを外す
-// * Dangling linkのCSSを外す
-$link_compact = 1;
-
-/////////////////////////////////////////////////
-// フェイスマークを絵文字に変換する (※i-mode, Vodafone, EzWebなど携帯電話限定)
-$usefacemark = 1;
-
-/////////////////////////////////////////////////
-// accesskey (SKINで使用)
-$accesskey = 'accesskey';
-
-/////////////////////////////////////////////////
-// $scriptを短縮
-if (preg_match('#([^/]+)$#', $script, $matches)) {
- $script = $matches[1];
-}
-
-/////////////////////////////////////////////////
-// ブラウザ調整前のデフォルト値
-
-// max_size (SKINで使用)
-$max_size = 5; // SKINで使用, KByte
-
-// cols: テキストエリアのカラム数 rows: 行数
-$cols = 22; $rows = 5; // i_mode
-
-
-/////////////////////////////////////////////////
-// ブラウザに合わせた調整
-
-$ua_name = $user_agent['name'];
-$ua_vers = $user_agent['vers'];
-$ua_agent = $user_agent['agent'];
-$matches = array();
-
-// Browser-name only
-switch ($ua_name) {
-
- // NetFront / Compact NetFront
- // DoCoMo Net For MOBILE: iモード対応HTMLの考え方: ユーザエージェント
- // http://www.nttdocomo.co.jp/mc-user/i/tag/imodetag.html
- // DDI POCKET: 機種ラインナップ: AirH"PHONE用ホームページの作成方法
- // http://www.ddipocket.co.jp/p_s/products/airh_phone/homepage.html
- case 'NetFront':
- case 'CNF':
- case 'DoCoMo':
- case 'Opera': // Performing CNF compatible
- if (preg_match('#\b[cC]([0-9]+)\b#', $ua_agent, $matches)) {
- $max_size = $matches[1]; // Cache max size
- }
- $cols = 22; $rows = 5; // i_mode
- break;
-
- // Vodafone (ex. J-PHONE)
- // ボーダフォンライブ!向けウェブコンテンツ開発ガイド [概要編] (Version 1.2.0 P13)
- // http://www.dp.j-phone.com/dp/tool_dl/download.php?docid=110
- // 技術資料: ユーザーエージェントについて
- // http://www.dp.j-phone.com/dp/tool_dl/web/useragent.php
- case 'J-PHONE':
- $matches = array("");
- preg_match('/^([0-9]+)\./', $user_agent['vers'], $matches);
- switch($matches[1]){
- case '3': $max_size = 6; break; // C type: lt 6000bytes
- case '4': $max_size = 12; break; // P type: lt 12Kbytes
- case '5': $max_size = 200; break; // W type: lt 200Kbytes
- }
- $cols = 24; $rows = 20;
- break;
-
- // UP.Browser
- case 'UP.Browser':
- // UP.Browser for KDDI cell phones
- // http://www.au.kddi.com/ezfactory/tec/spec/xhtml.html ('About 9KB max')
- // http://www.au.kddi.com/ezfactory/tec/spec/4_4.html (User-agent strings)
- if (preg_match('#^KDDI#', $ua_agent)) $max_size = 9;
- break;
-}
-
-// Browser-name + version
-switch ("$ua_name/$ua_vers") {
- // Restriction For imode:
- // http://www.nttdocomo.co.jp/mc-user/i/tag/s2.html
- case 'DoCoMo/2.0': $max_size = min($max_size, 30); break;
-}
-
-
-/////////////////////////////////////////////////
-// ユーザ定義ルール
-//
-// 正規表現で記述してください。?(){}-*./+\$^|など
-// は \? のようにクォートしてください。
-// 前後に必ず / を含めてください。行頭指定は ^ を頭に。
-// 行末指定は $ を後ろに。
-
-// ユーザ定義ルール(コンバート時に置換)
-$line_rules = array(
- 'COLOR\(([^\(\)]*)\){([^}]*)}' => '<font color="$1">$2</font>',
- 'SIZE\(([^\(\)]*)\){([^}]*)}' => '$2', // Disabled
- 'COLOR\(([^\(\)]*)\):((?:(?!COLOR\([^\)]+\)\:).)*)' => '<font color="$1">$2</font>',
- 'SIZE\(([^\(\)]*)\):((?:(?!SIZE\([^\)]+\)\:).)*)' => '$2', // Disabled
- '%%%(?!%)((?:(?!%%%).)*)%%%' => '<ins>$1</ins>',
- '%%(?!%)((?:(?!%%).)*)%%' => '<del>$1</del>',
- "'''(?!')((?:(?!''').)*)'''" => '<em>$1</em>',
- "''(?!')((?:(?!'').)*)''" => '<strong>$1</strong>',
-);
-
-
-/////////////////////////////////////////////////
-// 携帯電話にあわせたフェイスマーク
-
-// $usefacemark = 1ならフェイスマークが置換されます
-// 文章内に' XD'などがあった場合にfacemarkに置換されてしまうため、
-// 必要のない方は $usefacemarkを0にしてください。
-
-// Browser-name only
-$facemark_rules = array();
-switch ($ua_name) {
-
- // Graphic icons for imode HTML 4.0, with Shift-JIS text output
- // http://www.nttdocomo.co.jp/mc-user/i/tag/emoji/e1.html
- // http://www.nttdocomo.co.jp/mc-user/i/tag/emoji/list.html
- case 'DoCoMo':
-
- $facemark_rules = array(
- // Face marks
- '\s(\:\))' => '秊', // smile
- '\s(\:D)' => '秊', // bigsmile
- '\s(\:p)' => '', // huh
- '\s(\:d)' => '', // huh
- '\s(XD)' => '聯', // oh
- '\s(X\()' => '聯', // oh
- '\s(;\))' => '', // wink
- '\s(;\()' => '練', // sad
- '\s(\:\()' => '練', // sad
- '&(smile);' => '秊',
- '&(bigsmile);'=> '秊',
- '&(huh);' => '',
- '&(oh);' => '聯',
- '&(wink);' => '',
- '&(sad);' => '練',
- '&(heart);' => '撚',
- '&(worried);'=> '',
-
- // Face marks, Japanese style
- '\s(\(\^\^\))' => '秊', // smile
- '\s(\(\^-\^)' => '秊', // smile
- '\s(\(\.\.;)' => '聯', // oh
- '\s(\(\^_-\))' => '', // wink
- '\s(\(--;)' => '練', // sad
- '\s(\(\^\^;\))' => '', // worried
- '\s(\(\^\^;)' => '', // worried
-
- // Push buttons, 0-9 and sharp
- '&(pb1);' => '驪',
- '&(pb2);' => '麗',
- '&(pb3);' => '黎',
- '&(pb4);' => '力',
- '&(pb5);' => '曆',
- '&(pb6);' => '歷',
- '&(pb7);' => '轢',
- '&(pb8);' => '年',
- '&(pb9);' => '憐',
- '&(pb0);' => '戀',
- '&(pb#);' => '礪',
-
- // Others
- '&(zzz);' => '簾',
- '&(man);' => '凌',
- '&(clock);' => '丹',
- '&(mail);' => '亮',
- '&(mailto);'=> '拾',
- '&(phone);' => '',
- '&(phoneto);'=> '沈',
- '&(faxto);' => '若',
- );
- break;
-
- // Graphic icons for Vodafone (ex. J-PHONE) cell phones
- // http://www.dp.j-phone.com/dp/tool_dl/web/picword_top.php
- case 'J-PHONE':
-
- $facemark_rules = array(
- // Face marks
- '\s(\:\))' => chr(27).'$Gv'.chr(15), // '', // smile
- '\s(\:D)' => chr(27).'$Gv'.chr(15), // '', // bigsmile => smile
- '\s(\:p)' => chr(27).'$E%'.chr(15), // '', // huh
- '\s(\:d)' => chr(27).'$E%'.chr(15), // '', // huh
- '\s(XD)' => chr(27).'$Gx'.chr(15), // '', // oh
- '\s(X\()' => chr(27).'$Gx'.chr(15), // '', // oh
- '\s(;\))' => chr(27).'$E&'.chr(15), // '', // winkじゃないけどね(^^; (※目がハート)
- '\s(;\()' => chr(27).'$E&'.chr(15), // '', // sad
- '\s(\:\()' => chr(27).'$Gy'.chr(15), // '', // sad
- '&(smile);' => chr(27).'$Gv'.chr(15), // '',
- '&(bigsmile);'=> chr(27).'$Gw'.chr(15), // '',
- '&(huh);' => chr(27).'$E%'.chr(15), // '',
- '&(oh);' => chr(27).'$Gx'.chr(15), // '',
- '&(wink);' => chr(27).'$E&'.chr(15), // '', // winkじゃないけどね(^^; (※目がハート)
- '&(sad);' => chr(27).'$Gy'.chr(15), // '',
- '&(heart);' => chr(27).'$GB'.chr(15), // '',
- '&(worried);'=> chr(27).'$E('.chr(15), // '',
-
- // Face marks, Japanese style
- '\s(\(\^\^\))' => chr(27).'$Gv'.chr(15), // smile
- '\s(\(\^-\^)' => chr(27).'$Gv'.chr(15), // smile
- '\s(\(\.\.;)' => chr(27).'$Gx'.chr(15), // oh
- '\s(\(\^_-\))' => chr(27).'$E&'.chr(15), // winkじゃないけどね(^^; (※目がハート)
- '\s(\(--;)' => chr(27).'$E&'.chr(15), // sad
- '\s(\(\^\^;\))' => chr(27).'$E('.chr(15), // worried
- '\s(\(\^\^;)' => chr(27).'$E('.chr(15), // worried
-
- // Push buttons, 0-9 and sharp
- '&(pb1);' => chr(27).'$F<'.chr(15), // '',
- '&(pb2);' => chr(27).'$F='.chr(15), // '',
- '&(pb3);' => chr(27).'$F>'.chr(15), // '',
- '&(pb4);' => chr(27).'$F?'.chr(15), // '',
- '&(pb5);' => chr(27).'$F@'.chr(15), // '',
- '&(pb6);' => chr(27).'$FA'.chr(15), // '',
- '&(pb7);' => chr(27).'$FB'.chr(15), // '',
- '&(pb8);' => chr(27).'$FC'.chr(15), // '',
- '&(pb9);' => chr(27).'$FD'.chr(15), // '',
- '&(pb0);' => chr(27).'$FE'.chr(15), // '',
-
- // Others
- '&(zzz);' => chr(27).'$E\\'.chr(15),
- '&(man);' => chr(27).'$G!'.chr(15),
- '&(clock);' => chr(27).'$GF'.chr(15), // '',
- '&(mail);' => chr(27).'$Fv'.chr(15),
- '&(mailto);'=> chr(27).'$E#'.chr(15),
- '&(phone);' => chr(27).'$G)'.chr(15),
- '&(phoneto);'=> chr(27).'$E$'.chr(15),
- '&(faxto);' => chr(27).'$G+'.chr(15),
- );
- break;
-
- case 'UP.Browser':
-
- // UP.Browser for KDDI cell phones' built-in icons
- // http://www.au.kddi.com/ezfactory/tec/spec/3.html
- if (preg_match('#^KDDI#', $ua_agent)) {
- $facemark_rules = array(
- // Face marks
- '\s(\:\))' => '<img localsrc="68">', // smile
- '\s(\:D)' => '<img localsrc="257">', // bigsmile
- '\s(\:p)' => '<img localsrc="264">', // huh
- '\s(\:d)' => '<img localsrc="264">', // huh
- '\s(XD)' => '<img localsrc="260">', // oh
- '\s(X\()' => '<img localsrc="260">', // oh
- '\s(;\))' => '<img localsrc="348">', // wink
- '\s(;\()' => '<img localsrc="259">', // sad
- '\s(\:\()' => '<img localsrc="259">', // sad
- '&(smile);' => '<img localsrc="68">',
- '&(bigsmile);'=> '<img localsrc="257">',
- '&(huh);' => '<img localsrc="264">',
- '&(oh);' => '<img localsrc="260">',
- '&(wink);' => '<img localsrc="348">',
- '&(sad);' => '<img localsrc="259">',
- '&(heart);' => '<img localsrc="415">',
- '&(worried);'=> '<img localsrc="351">',
-
- // Face marks, Japanese style
- '\s(\(\^\^\))' => '<img localsrc="68">', // smile
- '\s(\(\^-\^)' => '<img localsrc="68">', // smile
- '\s(\(\.\.;)' => '<img localsrc="260">', // oh
- '\s(\(\^_-\))' => '<img localsrc="348">', // wink
- '\s(\(--;)' => '<img localsrc="259">', // sad
- '\s(\(\^\^;\))' => '<img localsrc="351">', // worried
- '\s(\(\^\^;)' => '<img localsrc="351">', // worried
-
- // Push buttons, 0-9 and sharp
- '&(pb1);' => '<img localsrc="180">',
- '&(pb2);' => '<img localsrc="181">',
- '&(pb3);' => '<img localsrc="182">',
- '&(pb4);' => '<img localsrc="183">',
- '&(pb5);' => '<img localsrc="184">',
- '&(pb6);' => '<img localsrc="185">',
- '&(pb7);' => '<img localsrc="186">',
- '&(pb8);' => '<img localsrc="187">',
- '&(pb9);' => '<img localsrc="188">',
- '&(pb0);' => '<img localsrc="325">',
- '&(pb#);' => '<img localsrc="818">',
-
- // Others
- '&(zzz);' => '<img localsrc="261">',
- '&(man);' => '<img localsrc="80">', // Face of male
- '&(clock);' => '<img localsrc="46">',
- '&(mail);' => '<img localsrc="108">',
- '&(mailto);'=> '<img localsrc="784">',
- '&(phone);' => '<img localsrc="85">',
- '&(phoneto);'=> '<img localsrc="155">', // An ear receiver
- '&(faxto);' => '<img localsrc="166">', // A FAX
- );
- }
- break;
-
-}
-
-unset($matches, $ua_name, $ua_vers, $ua_agent, $special_rules);
-
-?>
global $preformat_ltrim;
global $line_break;
global $usedatetime;
-global $agents;
+//global $agents;
// Special
//define('PKWK_READONLY', 1);
// 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(
+/*$agents = array(
// pattern: A regular-expression that matches device(browser)'s name and version
// profile: A group of browsers
array('pattern'=>'#^#', 'profile'=>'default'), // Sentinel
);
+*/
?>
* @link http://www.magic3.org
*/
require_once($gEnvManager->getCurrentWidgetContainerPath() . '/admin_wiki_mainBaseWidgetContainer.php');
-require_once($gEnvManager->getCurrentWidgetIncludePath() . '/conf/pukiwiki.ini.php');
+//require_once($gEnvManager->getCurrentWidgetIncludePath() . '/conf/pukiwiki.ini.php');
+//require_once($gEnvManager->getCurrentWidgetLibPath() . '/init.php');
+// Magic3追加ファイル
require_once($gEnvManager->getCurrentWidgetLibPath() . '/wikiConfig.php');
require_once($gEnvManager->getCurrentWidgetLibPath() . '/wikiPage.php');
+require_once($gEnvManager->getCurrentWidgetLibPath() . '/wikiParam.php');
+// PukiWikiファイル
require_once($gEnvManager->getCurrentWidgetLibPath() . '/func.php');
require_once($gEnvManager->getCurrentWidgetLibPath() . '/file.php');
require_once($gEnvManager->getCurrentWidgetLibPath() . '/diff.php');
}
if (count($delItems) > 0){
// ### Wikiページライブラリ初期化 ###
- WikiPage::init(self::$_mainDb);
+ WikiConfig::init(self::$_mainDb);
+ WikiPage::init(self::$_mainDb); // Wikiページ管理クラス
+ WikiParam::init(self::$_mainDb); // URLパラメータ管理クラス
+
+ global $gEnvManager;
+ require_once($gEnvManager->getCurrentWidgetLibPath() . '/init.php');
// 指定のWikiページを削除
for ($i = 0; $i < count($delItems); $i++){
// Load *.ini.php files and init PukiWiki
global $gEnvManager;
- require($wikiLibDir . '/init.php');
+ require_once($wikiLibDir . '/init.php');
// Load optional libraries
if ($notify) {
- require($wikiLibDir . '/mail.php'); // Mail notification
+ require_once($wikiLibDir . '/mail.php'); // Mail notification
}
if ($trackback || $referer) {
// Referer functionality uses trackback functions
// without functional reason now
- require($wikiLibDir . '/trackback.php'); // TrackBack
+ require_once($wikiLibDir . '/trackback.php'); // TrackBack
}
// 初期データをインストールしたときは、リンク再構築
if ($init) links_init();
global $_title_invalid_pagename;
global $_msg_invalid_pagename;
-// Encoding hint
-$_LANG['encode_hint']['en'] = '';
-
///////////////////////////////////////
// Page titles
$_title_cannotedit = ' $1 is not editable';
global $_title_invalid_pagename;
global $_msg_invalid_pagename;
-// Encoding hint
-$_LANG['encode_hint']['ja'] = 'ぷ';
-
///////////////////////////////////////
// Page titles
$_title_cannotedit = '$1 は編集できません';
{
global $trackback;
global $notify, $notify_diff_only, $notify_subject;
+ global $whatsdeleted, $maxshow_deleted;
// if (PKWK_READONLY) return; // Do nothing
*
* @package Magic3 Framework
* @author 平田直毅(Naoki Hirata) <naoki@aplo.co.jp>
- * @copyright Copyright 2006-2010 Magic3 Project.
+ * @copyright Copyright 2006-2015 Magic3 Project.
* @license http://www.gnu.org/copyleft/gpl.html GPL License
- * @version SVN: $Id: init.php 3474 2010-08-13 10:36:48Z fishbone $
+ * @version SVN: $Id$
* @link http://www.magic3.org
*/
// Copyright (C)
if (! file_exists(INI_FILE) || ! is_readable(INI_FILE)) {
$die .= 'File is not found. (INI_FILE)' . "\n";
} else {
- require(INI_FILE);
+ require_once(INI_FILE);
}
if ($die) die_message(nl2br("\n\n" . $die));
default: die_message('No such language "' . LANG . '"'); break;
}
-// removed for Magic3 by naoki on 2008/9/22
-//define('PKWK_UTF8_ENABLE', 1);
-//if (defined('PKWK_UTF8_ENABLE')) {
- define('SOURCE_ENCODING', 'UTF-8');
- define('CONTENT_CHARSET', 'UTF-8');
-/*} else {
- switch (LANG){
- case 'en':
- define('SOURCE_ENCODING', 'ASCII');
- define('CONTENT_CHARSET', 'iso-8859-1');
- break;
- case 'ja':
- define('SOURCE_ENCODING', 'EUC-JP');
- define('CONTENT_CHARSET', 'EUC-JP');
- break;
- }
-}
-mb_language(MB_LANGUAGE);
-mb_internal_encoding(SOURCE_ENCODING);
-ini_set('mbstring.http_input', 'pass');
-mb_http_output('pass');
-mb_detect_order('auto');
-*/
+// エンコーディングの設定
+define('SOURCE_ENCODING', 'UTF-8');
+define('CONTENT_CHARSET', 'UTF-8');
/////////////////////////////////////////////////
// INI_FILE: Require LANG_FILE
if ($die) die_message(nl2br("\n\n" . $die));
/////////////////////////////////////////////////
-// LANG_FILE: Init encoding hint
-
-define('PKWK_ENCODING_HINT', isset($_LANG['encode_hint'][LANG]) ? $_LANG['encode_hint'][LANG] : '');
-unset($_LANG['encode_hint']);
-
-/////////////////////////////////////////////////
// LANG_FILE: Init severn days of the week
$weeklabels = $_msg_week;
/////////////////////////////////////////////////
// INI_FILE: $agents: UserAgentの識別
-
+/*
$ua = 'HTTP_USER_AGENT';
$user_agent = $matches = array();
if (! file_exists(UA_INI_FILE) || ! is_readable(UA_INI_FILE)) {
die_message('UA_INI_FILE for "' . UA_PROFILE . '" not found.');
} else {
- require(UA_INI_FILE); // Also manually
+ require_once(UA_INI_FILE); // Also manually
}
define('UA_NAME', isset($user_agent['name']) ? $user_agent['name'] : '');
define('UA_VERS', isset($user_agent['vers']) ? $user_agent['vers'] : '');
unset($user_agent); // Unset after reading UA_INI_FILE
+*/
+require_once($gEnvManager->getCurrentWidgetIncludePath() . '/conf/default.ini.php');
/////////////////////////////////////////////////
// ディレクトリのチェック
/////////////////////////////////////////////////
// 必須のページが存在しなければ、空のファイルを作成する
-//foreach(array($defaultpage, $whatsnew, $interwiki) as $page){
-foreach(array(WikiConfig::getDefaultPage(), $whatsnew, $interwiki) as $page){
- //if (! is_page($page)) touch(get_filename($page));
- // modified for Magic3 by naoki on 2008/9/22
+foreach (array(WikiConfig::getDefaultPage(), $whatsnew, $interwiki) as $page){
if (!WikiPage::isPage($page)){
//WikiPage::getPageFile($page, $data); // ファイルから初期データを読み込む
//$ret = WikiPage::initPage($page, $data);
WikiPage::initPage($page, '');
}
}
-// removed for Magic3 by naoki on 2008/9/22
-/*
-/////////////////////////////////////////////////
-// 外部からくる変数のチェック
-// Prohibit $_GET attack
-foreach (array('msg', 'pass') as $key) {
- if (isset($_GET[$key])) die_message('Sorry, already reserved: ' . $key . '=');
-}
-// Expire risk
-unset($HTTP_GET_VARS, $HTTP_POST_VARS); //, 'SERVER', 'ENV', 'SESSION', ...
-unset($_REQUEST); // Considered harmful
-
-// Remove null character etc.
-$_GET = input_filter($_GET);
-$_POST = input_filter($_POST);
-$_COOKIE = input_filter($_COOKIE);
-
-// 文字コード変換 ($_POST)
-// <form> で送信された文字 (ブラウザがエンコードしたデータ) のコードを変換
-// POST method は常に form 経由なので、必ず変換する
-//
-if (isset($_POST['encode_hint']) && $_POST['encode_hint'] != '') {
- // do_plugin_xxx() の中で、<form> に encode_hint を仕込んでいるので、
- // encode_hint を用いてコード検出する。
- // 全体を見てコード検出すると、機種依存文字や、妙なバイナリ
- // コードが混入した場合に、コード検出に失敗する恐れがある。
- $encode = mb_detect_encoding($_POST['encode_hint']);
- mb_convert_variables(SOURCE_ENCODING, $encode, $_POST);
-
-} else if (isset($_POST['charset']) && $_POST['charset'] != '') {
- // TrackBack Ping で指定されていることがある
- // うまくいかない場合は自動検出に切り替え
- if (mb_convert_variables(SOURCE_ENCODING,
- $_POST['charset'], $_POST) !== $_POST['charset']) {
- mb_convert_variables(SOURCE_ENCODING, 'auto', $_POST);
- }
-
-} else if (! empty($_POST)) {
- // 全部まとめて、自動検出/変換
- mb_convert_variables(SOURCE_ENCODING, 'auto', $_POST);
-}
-
-// 文字コード変換 ($_GET)
-// GET method は form からの場合と、<a href="http://script/?key=value> の場合がある
-// <a href...> の場合は、サーバーが rawurlencode しているので、コード変換は不要
-if (isset($_GET['encode_hint']) && $_GET['encode_hint'] != '')
-{
- // form 経由の場合は、ブラウザがエンコードしているので、コード検出・変換が必要。
- // encode_hint が含まれているはずなので、それを見て、コード検出した後、変換する。
- // 理由は、post と同様
- $encode = mb_detect_encoding($_GET['encode_hint']);
- mb_convert_variables(SOURCE_ENCODING, $encode, $_GET);
-}
-*/
-/////////////////////////////////////////////////
-// QUERY_STRINGを取得
-
-// cmdもpluginも指定されていない場合は、QUERY_STRINGを
-// ページ名かInterWikiNameであるとみなす
-// modified for Magic3 by naoki on 2008/9/26
-/*$arg = '';
-if (isset($_SERVER['QUERY_STRING']) && $_SERVER['QUERY_STRING']) {
- $arg = $_SERVER['QUERY_STRING'];
-} else if (isset($_SERVER['argv']) && ! empty($_SERVER['argv'])) {
- $arg = $_SERVER['argv'][0];
-}
-if (PKWK_QUERY_STRING_MAX && strlen($arg) > PKWK_QUERY_STRING_MAX) {
- // Something nasty attack?
- pkwk_common_headers();
- sleep(1); // Fake processing, and/or process other threads
- echo('Query string too long');
- exit;
-}
-$arg = input_filter($arg); // \0 除去
-
-// unset QUERY_STRINGs
-foreach (array('QUERY_STRING', 'argv', 'argc') as $key) {
- unset(${$key}, $_SERVER[$key], $HTTP_SERVER_VARS[$key]);
-}
-// $_SERVER['REQUEST_URI'] is used at func.php NOW
-unset($REQUEST_URI, $HTTP_SERVER_VARS['REQUEST_URI']);
-
-// mb_convert_variablesのバグ(?)対策: 配列で渡さないと落ちる
-$arg = array($arg);
-mb_convert_variables(SOURCE_ENCODING, 'auto', $arg);
-$arg = $arg[0];
-
-/////////////////////////////////////////////////
-// QUERY_STRINGを分解してコード変換し、$_GET に上書き
-
-// URI を urlencode せずに入力した場合に対処する
-$matches = array();
-foreach (explode('&', $arg) as $key_and_value) {
- if (preg_match('/^([^=]+)=(.+)/', $key_and_value, $matches) &&
- mb_detect_encoding($matches[2]) != 'ASCII') {
- $_GET[$matches[1]] = $matches[2];
- }
-}
-unset($matches);
-/////////////////////////////////////////////////
-// GET, POST, COOKIE
-$get = $_GET;
-$post = $_POST;
-$cookie = $_COOKIE;
-
-// GET + POST = $vars
-if (empty($_POST)) {
- $vars = $_GET; // Major pattern: Read-only access via GET
-} else if (empty($_GET)) {
- $vars = $_POST; // Minor pattern: Write access via POST etc.
-} else {
- $vars = array_merge($_GET, $_POST); // Considered reliable than $_REQUEST
-}
-*/
-// 入力チェック: 'cmd=' and 'plugin=' can't live together
-// modified for Magic3 by naoki on 2008/9/22
-//if (isset($vars['cmd']) && isset($vars['plugin']))
-//die('Using both cmd= and plugin= is not allowed');
+// 入力チェック
if (!WikiParam::checkParam()) die('Using both cmd= and plugin= is not allowed');
-// 入力チェック: cmd, plugin の文字列は英数字以外ありえない
-// removed for Magic3 by naoki on 2008/9/22
-/*foreach(array('cmd', 'plugin') as $var) {
- if (isset($vars[$var]) && ! preg_match('/^[a-zA-Z][a-zA-Z0-9_]*$/', $vars[$var]))
- unset($get[$var], $post[$var], $vars[$var]);
-}*/
-
-// removed for Magic3 by naoki on 2008/9/22
-/*
-// 整形: page, strip_bracket()
-if (isset($vars['page'])) {
- $get['page'] = $post['page'] = $vars['page'] = strip_bracket($vars['page']);
-} else {
- $get['page'] = $post['page'] = $vars['page'] = '';
-}
-
-// 整形: msg, 改行を取り除く
-if (isset($vars['msg'])) {
- $get['msg'] = $post['msg'] = $vars['msg'] = str_replace("\r", '', $vars['msg']);
-}
-
-// 後方互換性 (?md5=...)
-if (isset($get['md5']) && $get['md5'] != '' &&
- ! isset($vars['cmd']) && ! isset($vars['plugin'])) {
- $get['cmd'] = $post['cmd'] = $vars['cmd'] = 'md5';
-}
-*/
// TrackBack Ping
if (isset($vars['tb_id']) && $vars['tb_id'] != '') {
$get['cmd'] = $post['cmd'] = $vars['cmd'] = 'tb';
}
-// cmdもpluginも指定されていない場合は、QUERY_STRINGをページ名かInterWikiNameであるとみなす
-// modified for Magic3 by naoki on 2008/9/22
-//if (! isset($vars['cmd']) && ! isset($vars['plugin'])) {
-/*$cmd = WikiParam::getCmd();
-$plugin = WikiParam::getPlugin();
-if (empty($cmd) && empty($plugin)){
- //$get['cmd'] = $post['cmd'] = $vars['cmd'] = 'read';
- WikiParam::setCmd('read');
-
- $arg = WikiParam::getUnbraketArg();
- if ($arg == '') $arg = $defaultpage;
-
- //$get['page'] = $post['page'] = $vars['page'] = $arg;
- WikiParam::setPage($arg);
- $vars['page'] = $arg;
-} else {
- $vars['page'] = WikiParam::getPage();
-}*/
-
/////////////////////////////////////////////////
// 初期設定($WikiName,$BracketNameなど)
// $WikiName = '[A-Z][a-z]+(?:[A-Z][a-z]+)+';
// 初期設定(ユーザ定義ルール読み込み)
//require(DATA_HOME . 'rules.ini.php');
// modified for Magic3 by naoki on 2008/9/22
-require($gEnvManager->getCurrentWidgetIncludePath() . '/conf/rules.ini.php');
+require_once($gEnvManager->getCurrentWidgetIncludePath() . '/conf/rules.ini.php');
/////////////////////////////////////////////////
// 初期設定(その他のグローバル変数)
// modified for Magic3 by naoki on 2008/10/15
function links_update($page)
{
- if (PKWK_READONLY) return; // Do nothing
+ global $WikiName, $autolink, $nowikiname, $search_non_list;
+// if (PKWK_READONLY) return; // Do nothing
//if (ini_get('safe_mode') == '0') set_time_limit(0);
links_add($page, array_diff($rel_new, $rel_old), $rel_auto);
links_delete($page, array_diff($rel_old, $rel_new));
- global $WikiName, $autolink, $nowikiname, $search_non_list;
-
// $pageが新規作成されたページで、AutoLinkの対象となり得る場合
/*if ($time && ! $rel_file_exist && $autolink
&& (preg_match("/^$WikiName$/", $page) ? $nowikiname : strlen($page) >= $autolink))*/
function links_init()
{
// global $whatsnew;
- if (PKWK_READONLY) return; // Do nothing
+// if (PKWK_READONLY) return; // Do nothing
//if (ini_get('safe_mode') == '0') set_time_limit(0);
+++ /dev/null
-<?php
-// PukiWiki - Yet another WikiWikiWeb clone.
-// $Id: mbstring.php 1038 2008-09-23 07:31:04Z fishbone $
-// Copyright (C) 2003-2005 PukiWiki Developers Team
-// License: GPL v2 or (at your option) any later version
-//
-// mbstring-extension alternate functions
-// (will work with LANG == 'ja' and EUC-JP environment only)
-
-/*
- * mbstring extension がサーバー側に存在しない時の代替関数
- *
- * 注意事項
- *
- * 1. 実際に漢字コード変換を行わせるためには、別途 jcode.php
- * (TOMO作)をインストールする必要があります。
- *
- * http://www.spencernetwork.org/jcode/ よりjcodeを入手し、
- * 以下の様に展開してください。
- *
- * -+--- mbstring.php -r--
- * +-+- jcode_1.34/ dr-x
- * +--- readme.txt -r--
- * +--- jcode.phps -r--
- * +--- jcode_wrapper.php -r--
- * +--- code_table.ucs2jis -r--
- * +--- code_table.jis2ucs -r--
- *
- * 2. EUC-JP専用です。(出力されるデータがEUC-JPである必要があります)
- *
- */
-
-// jcodeの所在
-define('JCODE_DIR', './jcode_1.34/');
-define('JCODE_FILE', JCODE_DIR . 'jcode_wrapper.php');
-
-if (is_readable(JCODE_FILE)) {
- require_once(JCODE_FILE);
-}
-
-// jcodeが存在しない場合、マルチバイト文字や漢字コードを扱えない
-if (! function_exists('jcode_convert_encoding')) {
-
-// die_message('Multibyte functions cannot be used. Please read "mbstring.php" for an additional installation procedure of "jcode".');
-
- function jstrlen($str)
- {
- return strlen($str);
- }
-
- function jsubstr($str, $start, $length)
- {
- return substr($str, $start, $length);
- }
-
- function AutoDetect($str)
- {
- return 0;
- }
-
- function jcode_convert_encoding($str, $to_encoding, $from_encoding)
- {
- return $str;
- }
-}
-
-// mb_convert_encoding -- 文字エンコーディングを変換する
-function mb_convert_encoding($str, $to_encoding, $from_encoding = '')
-{
- // 拡張: 配列を受けられるように
- // mb_convert_variable対策
- if (is_array($str)) {
- foreach ($str as $key=>$value) {
- $str[$key] = mb_convert_encoding($value, $to_encoding, $from_encoding);
- }
- return $str;
- }
- return jcode_convert_encoding($str, $to_encoding, $from_encoding);
-}
-
-// mb_convert_variables -- 変数の文字コードを変換する
-function mb_convert_variables($to_encoding, $from_encoding, &$vars)
-{
- // 注: 可変長引数ではない。init.phpから呼ばれる1引数のパターンのみをサポート
- // 正直に実装するなら、可変引数をリファレンスで受ける方法が必要
- if (is_array($from_encoding) || $from_encoding == '' || $from_encoding == 'auto')
- $from_encoding = mb_detect_encoding(join_array(' ', $vars));
-
- if ($from_encoding != 'ASCII' && $from_encoding != SOURCE_ENCODING)
- $vars = mb_convert_encoding($vars, $to_encoding, $from_encoding);
-
- return $from_encoding;
-}
-
-// 補助関数:配列を再帰的にjoinする
-function join_array($glue, $pieces)
-{
- $arr = array();
- foreach ($pieces as $piece) {
- $arr[] = is_array($piece) ? join_array($glue, $piece) : $piece;
- }
- return join($glue, $arr);
-}
-
-// mb_detect_encoding -- 文字エンコーディングを検出する
-function mb_detect_encoding($str, $encoding_list = '')
-{
- static $codes = array(0=>'ASCII', 1=>'EUC-JP', 2=>'SJIS', 3=>'JIS', 4=>'UTF-8');
-
- // 注: $encoding_listは使用しない。
- $code = AutoDetect($str);
- if (! isset($codes[$code])) $code = 0; // oh ;(
-
- return $codes[$code];
-}
-
-// mb_detect_order -- 文字エンコーディング検出順序の設定/取得
-function mb_detect_order($encoding_list = NULL)
-{
- static $list = array();
-
- // 注: 他の関数に影響を及ぼさない。呼んでも無意味。
- if ($encoding_list === NULL) return $list;
-
- $list = is_array($encoding_list) ? $encoding_list : explode(',', $encoding_list);
- return TRUE;
-}
-
-// mb_encode_mimeheader -- MIMEヘッダの文字列をエンコードする
-function mb_encode_mimeheader($str, $charset = 'ISO-2022-JP', $transfer_encoding = 'B', $linefeed = "\r\n")
-{
- // 注: $transfer_encodingに関わらずbase64エンコードを返す
- $str = mb_convert_encoding($str, $charset, 'auto');
- return '=?' . $charset . '?B?' . $str;
-}
-
-// mb_http_output -- HTTP出力文字エンコーディングの設定/取得
-function mb_http_output($encoding = '')
-{
- return SOURCE_ENCODING; // 注: 何もしない
-}
-
-// mb_internal_encoding -- 内部文字エンコーディングの設定/取得
-function mb_internal_encoding($encoding = '')
-{
- return SOURCE_ENCODING; // 注: 何もしない
-}
-
-// mb_language -- カレントの言語を設定/取得
-function mb_language($language = NULL)
-{
- static $mb_language = FALSE;
-
- if ($language === NULL) return $mb_language;
- $mb_language = $language;
-
- return TRUE; // 注: 常にTRUEを返す
-}
-
-// mb_strimwidth -- 指定した幅で文字列を丸める
-function mb_strimwidth($str, $start, $width, $trimmarker = '', $encoding = '')
-{
- if ($start == 0 && $width <= strlen($str)) return $str;
-
- // 注: EUC-JP専用, $encodingを使用しない
- $chars = unpack('C*', $str);
- $substr = '';
-
- while (! empty($chars) && $start > 0) {
- --$start;
- if (array_shift($chars) >= 0x80)
- array_shift($chars);
- }
- if ($b_trimmarker = (count($chars) > $width)) {
- $width -= strlen($trimmarker);
- }
- while (! empty($chars) && $width-- > 0) {
- $char = array_shift($chars);
- if ($char >= 0x80) {
- if ($width-- == 0) break;
- $substr .= chr($char);
- $char = array_shift($chars);
- }
- $substr .= chr($char);
- }
- if ($b_trimmarker) $substr .= $trimmarker;
-
- return $substr;
-}
-
-// mb_strlen -- 文字列の長さを得る
-function mb_strlen($str, $encoding = '')
-{
- // 注: EUC-JP専用, $encodingを使用しない
- return jstrlen($str);
-}
-
-// mb_substr -- 文字列の一部を得る
-function mb_substr($str, $start, $length = NULL, $encoding = '')
-{
- // 注: EUC-JP専用, $encodingを使用しない
- return jsubstr($str, $start, ($length === NULL) ? jstrlen($str) : $length);
-}
-?>
$retvar = call_user_func('plugin_' . $name . '_action');
- // Insert a hidden field, supports idenrtifying text enconding
- if (PKWK_ENCODING_HINT != '')
- $retvar = preg_replace('/(<form[^>]*>)/', '$1' . "\n" .
- '<div><input type="hidden" name="encode_hint" value="' .
- PKWK_ENCODING_HINT . '" /></div>', $retvar);
-
return $retvar;
}
if ($retvar === FALSE) {
return htmlspecialchars('#' . $name .
($args != '' ? '(' . $args . ')' : ''));
- } else if (PKWK_ENCODING_HINT != '') {
- // Insert a hidden field, supports idenrtifying text enconding
- return preg_replace('/(<form[^>]*>)/', '$1 ' . "\n" .
- '<div><input type="hidden" name="encode_hint" value="' .
- PKWK_ENCODING_HINT . '" /></div>', $retvar);
} else {
return $retvar;
}
$arg = strip_bracket($arg);
// 日本語パラメータにも対応
- /*$arg = array($arg);
- //mb_convert_variables(SOURCE_ENCODING, 'auto', $arg);
- mb_convert_variables(SOURCE_ENCODING, 'UTF-8,SJIS-win,ASCII', $arg);
- $arg = $arg[0];*/
$arg = mb_convert_encoding($arg, SOURCE_ENCODING, 'UTF-8,SJIS-win,ASCII'); // 出力するコードに変換
return $arg;
}