一覧 検索 最終更新 改名 | ヘルプ | 最終更新のRSS |

memo/PukiWiki with PATH_INFO のバックアップソース(No.2)

*PukiWiki with PATH_INFO

要は pukiwiki で path_info を見るようにする改造。適当。
PHP の知識はあるものとします。

**スクリプトの変更部分

***init.php
-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

-先頭に以下を追加
 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 == '') ? '' : '&amp;refer='.rawurlencode($refer);
はそのまま。

***html.php
-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
-img タグ等の src を絶対パス指定に変更。
(ex.  src="./image/new.png" → src="/image/new.png" )
-$script?$r_page となっている部分を $script/$r_page に置換。

**あとpluginからも適当に探し出して置換。
-attachとかrefとか。
-recent も。

(HTML conversion costs 0.003 sec.)