- 追加された行はこの色です。
- 削除された行はこの色です。
*PukiWiki with PATH_INFO
#freeze
*PukiWiki with PATH_INFO [#qd4e785e]
要は pukiwiki で path_info を見るようにする改造。適当。
PHP の知識はあるものとします。
**スクリプトの変更部分
**スクリプトの変更部分 [#ke849072]
***init.php
***init.php [#l9c9ae2d]
-pukiwiki ルートディレクトリ内の php ファイルで
// QUERY_STRINGを取得
if (array_key_exists('QUERY_STRING',$_SERVER) and $_SERVER['QUERY_STRING'] != '') {
$arg = $_SERVER['QUERY_STRING'];
} else if (array_key_exists('argv',$_SERVER) and count($_SERVER['argv']))
else if 以下の部分を下のように変更
} else if (array_key_exists('PATH_INFO',$_SERVER) and $_SERVER['PATH_INFO'] != '') {
$arg = preg_replace("/^\/*(.+)\/*$/","$1",$_SERVER['PATH_INFO']);
} else if (array_key_exists('argv',$_SERVER) and count($_SERVER['argv']))
***make_link.php
***make_link.php [#zff5a9a1]
-先頭に以下を追加
function rurlencode($uri) {
$parts = explode('/', $uri);
for ($i = 0; $i < count($parts); $i++) {
$parts[$i] = rawurlencode($parts[$i]);
}
return implode('/', $parts);
}
-以下を探し出して
$this->url = ($url === FALSE) ?
$script.'?'.rawurlencode('[['.$name.':'.$this->param.']]') :
htmlspecialchars($url);
以下のように変更
$this->url = ($url === FALSE) ?
$script.'/'.rurlencode('[['.$name.':'.$this->param.']]') :
htmlspecialchars($url);
-その他の rawurlencode を rurlencode に置換。
--関数 make_pagelink() 内の
$r_refer = ($refer == '') ? '' : '&refer='.rawurlencode($refer);
はそのまま。
***html.php
***html.php [#n0d1dfa9]
-function catbody 内の以下のパスを変更
$link_top = "$script/".rurlencode($defaultpage);
$link_whatsnew = "$script/".rurlencode($whatsnew);
$link_help = "$script/".rurlencode($help_page);
-上の一連の直後に以下を追加
$r_page = rurlencode($_page);
-その他の関数内の rawurlencode を rurlencode に置換。
--catbody() 内の一連の $link_... 前の rawurlencode はそのまま。
--make_search() 内の rawurlencode はそのまま。
-$script?$r_page となっている部分を $script/$r_page に置換。
***skin/pukiwiki.skin.ja.php
***skin/pukiwiki.skin.ja.php [#aa3a17fa]
-img タグ等の src を絶対パス指定に変更。
(ex. src="./image/new.png" → src="/image/new.png" )
-$script?$r_page となっている部分を $script/$r_page に置換。
**あとpluginからも適当に探し出して置換。
**あとpluginからも適当に探し出して置換。 [#h757b6fe]
-attachとかrefとか。
-recent も。