PukiWikiのURLとカスタマイズの情報をまとめるページです。

トップページのURL $script

グローバル変数 $script によって 設置するWikiサイトのトップページのURLを設定します。( 例: 'http:// wiki.example.com/pukiwiki/' )

例:

シンプルな構成の場合、PukiWikiはPHPやApacheなどWebサーバーの設置情報から $script を推測します。

$script の推測に失敗する場合や、URLを固定したい場合、pukiwiki.ini.php で $script を明示するようにしてください。

pukiwiki.ini.php:

$script = 'https:// wiki.example.com/pukiwiki/';

URLの固定: 例えば https:// wiki.example.com/pukiwiki/index.php でもアクセスできるが、URLは https:// wiki.example.com/pukiwiki/ に固定したい場合など。

get_base_uri()

PukiWiki本体コードやプラグインから、PukiWiki本体のURLを取得します。

プラグインの呼び出しのURLはこの get_base_uri() に '?' から始まるクエリ文字列を付与することで生成できます。

用途に応じて、PKWK_URI_RELATIVE, PKWK_URI_ROOT, PKWK_URI_ABSOLUTE のオプションを設定します。

例:

$edit_action_url = get_base_uri() . '?cmd=edit&page=EditTargetPage';

この値は グローバル変数$script から生成されます。

get_page_uri($page)

PukiWiki本体コードやプラグインから、各ページのURLを生成します。

取得した値はそのままページ表示用のURLとして利用し、クエリパラメータ ( ?key=value や &key=value ) を追加しない。URLフラグメント ( #key=value の利用は問題ない )

用途に応じて、PKWK_URI_RELATIVE, PKWK_URI_ROOT, PKWK_URI_ABSOLUTE のオプションを設定します。

この値は グローバル変数$script から生成されます。

絶対パスと相対パス

PukiWiki内のページおよびトップページを指し示すのに3種類のパス指定方法があります。

正しく設定されている限り互換性があり、相対パスが使えるところではROOT相対パスや絶対パスを指定しても問題なく動作する。

相対パスよりも絶対パスでの指定の方が確実ではあるが、基準となるURL (PukiWikiでは $script) を正しく指定していないと動作しないというデメリットがある。 反対に、相対パスベースであれば仮に基準URLを正しく設定していない場合 (基準URLの自動推測に失敗した場合も含む) でも動作する。

PukiWiki は 1.5.2 から、相対パスを積極的に利用する方針に変更している。 BugTrack/2213。 1.5.1 以前はほとんどのケースで絶対パスを使っていた。

pkwk_base_uri_type_stack_push()

pkwk_base_uri_type_stack_push(opt); を呼び出してから pkwk_base_uri_type_stack_pop() を呼び出すまでの間、 get_base_uri() で get_page_uri() での返却地が opt によって影響を受けます。

pkwk_base_uri_type_stack_push() と get_page_uri() の結果を以下のサンプルで表します。

$script = 'http:// wiki.example.com/pukiwiki/';
$link1 = get_page_uri('Abc/Sample); // => './?Abc/Sample'
pkwk_base_uri_type_stack_push(PKWK_URI_ROOT);
$link2 = get_page_uri('Abc/Sample); // => '/pukiwiki/?Abc/Sample'
pkwk_base_uri_type_stack_pop()
$link3 = get_page_uri('Abc/Sample); // => ./?Abc/Sample'
pkwk_base_uri_type_stack_push(PKWK_URI_ABSOLUTE);
$link4 = get_page_uri('Abc/Sample); // => 'http:// wiki.example.com/pukiwiki/?Abc/Sample'
pkwk_base_uri_type_stack_pop();
$link5 = get_page_uri('Abc/Sample); // => './?Abc/Sample'

実際の値

$script = 'http:// wiki.example.com/pukiwiki/';
関数結果(pkwk_base_uri_type_stack_push(PKWK_URI_ROOT); の後)(pkwk_base_uri_type_stack_push(PKWK_URI_ABSOLUTE); の後)
get_base_uri()'./''/pukiwiki/''http:// wiki.example.com/pukiwiki/'
get_base_uri(PKWK_URI_RELATIVE)'./''/pukiwiki/''http:// wiki.example.com/pukiwiki/'
get_base_uri(PKWK_URI_ROOT)'/pukiwiki/''/pukiwiki/''http:// wiki.example.com/pukiwiki/'
get_base_uri(PKWK_URI_ABSOLUTE)'http:// wiki.example.com/pukiwiki/''http:// wiki.example.com/pukiwiki/''http:// wiki.example.com/pukiwiki/'
get_page_uri('Abc/Sample')./?Abc/Sample''/pukiwiki/?Abc/Sample''http:// wiki.example.com/pukiwiki/?Abc/Sample'
get_page_uri('Abc/Sample', PKWK_URI_RELATIVE)./?Abc/Sample''/pukiwiki/?Abc/Sample''http:// wiki.example.com/pukiwiki/?Abc/Sample'
get_page_uri('Abc/Sample', PKWK_URI_ROOT)'/pukiwiki/?Abc/Sample''/pukiwiki/?Abc/Sample''http:// wiki.example.com/pukiwiki/?Abc/Sample'
get_page_uri('Abc/Sample', PKWK_URI_ABSOLUTE)'http:// wiki.example.com/pukiwiki/?Abc/Sample''http:// wiki.example.com/pukiwiki/?Abc/Sample''http:// wiki.example.com/pukiwiki/?Abc/Sample'

get_base_uri(PKWK_URI_ABSOLUTE) の値は常に $script と一致します。 ($script を明示した場合も、 $script が推測によって自動設定された場合も同様)

参照

コメント




トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2021-12-05 (日) 21:50:06
Site admin: PukiWiki Development Team

PukiWiki 1.5.4+ © 2001-2021 PukiWiki Development Team. Powered by PHP 5.6.40-0+deb8u12. HTML convert time: 0.357 sec.

OSDN