リロード | 新規新規 編集編集 差分差分 添付添付 バックアップバックアップ | 一覧 検索 最終更新 凍結解除 改名 | ヘルプ | 最終更新のRSS |

 
PukiWiki with PATH_INFO 
http://wiki.nothing.sh/261.html

█ PukiWiki with PATH_INFO

Last-modified: 2007-04-14 (土) 15:22:46 / Short URL: http://wiki.nothing.sh/261.html / add to hatena bookmark 4(4) users / add to livedoor clip - users

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.017 sec.)