- 履歴一覧
- 差分 を表示
- 現在との差分 を表示
- ソース を表示
- プラグインの変更箇所/alias.inc.php へ行く。
- 1 (2020-01-08 (水) 15:16:40)
- 2 (2020-01-08 (水) 15:30:11)
- 3 (2020-01-09 (木) 15:19:13)
- 4 (2020-01-20 (月) 09:18:54)
- 5 (2020-02-05 (水) 20:33:14)
- 6 (2020-02-05 (水) 20:33:14)
- 7 (2020-02-05 (水) 20:33:14)
- 8 (2020-02-05 (水) 20:33:14)
- 9 (2020-02-05 (水) 20:33:14)
- 10 (2020-02-05 (水) 20:33:14)
- 11 (2020-02-05 (水) 20:33:14)
- 12 (2022-05-22 (日) 15:00:18)
- 13 (2022-05-22 (日) 15:00:18)
目次
[表示]
変更箇所のまとめ
- アンカー (ページ名#アンカー) に対応させる
- URLエンコードの方式を変更
- URLを相対パスにする
- 短縮URLに対応させる
変更の詳細
アンカーに対応させる
ページ名を指定する際にアンカーも指定できたら便利かなーと思ったので追加してみる。
元々Pukiwikiの自作プラグインにアップされてた方にはこの機能があったらしい。
あとついでに1.5.2の仕様に合わせて細部を変更する。
まずは渡された引数をページ名とアンカーで分離する。
$args = func_get_args();
+ // ページ名とアンカーを分離。
+ $args = explode('#',$args[0]);
ページ名と一緒にアンカー名も(一応)エンコード。
// ここまで来たら、alias 許可。現在の 'page' の表示要求は arg[0]に跳ばす。
- $jumpto = rawurlencode($args[0]);
+ $jumpto = urlencode($args[0]);
+ $aname = urlencode($args[1]);
このとき、Pukiwiki 1.5.2の仕様に合わせrawurlencodeからurlencodeに変更。
最後にアンカー指定の有無によって出力するURLを変更する。
// alias のジャンプ処理実体
- header('Location: ' . $script .'?'. $jumpto); // HTTP
+ if($aname) header('Location: ' . get_base_uri() .'?'. $jumpto .'#'. $aname); // HTTP
+ else header('Location: ' . get_base_uri() .'?'. $jumpto); // HTTP
ここでもPukiwiki 1.5.2の仕様に合わせ、$script(絶対パス)を$get_base_uri(相対パス)に変更する。
これでアンカーを指定した場合は、ページ遷移後に指定した位置へと移動してくれるようになる。
移動先のURLを短縮URLにする
Pukiwiki1.5.2向けURL短縮ライブラリの導入が前提。
ページ名をURLエンコードする部分を、以下のように変更する。
// ここまで来たら、alias 許可。現在の 'page' の表示要求は arg[0]に跳ばす。
- $jumpto = urlencode($args[0]);
+ $jumpto = get_short_url_from_pagename($args[0]);
そして、上記関数を使用した場合はURLに既に"?"が含まれた状態になるためecho部分を変更する。
// alias のジャンプ処理実体
- if($aname) header('Location: ' . get_base_uri() .'?'. $jumpto .'#'. $aname); // HTTP
- else header('Location: ' . get_base_uri() .'?'. $jumpto); // HTTP
+ if($aname) header('Location: ' . get_base_uri() . $jumpto .'#'. $aname); // HTTP
+ else header('Location: ' . get_base_uri() . $jumpto); // HTTP
配布元
pukiwikiプラグイン/alias - Tomose's junkyard.
コメント
質問や指摘などあればどうぞ
最新の10件を表示しています。 コメントページを参照