開始行: &tag(カスタマイズ,プラグイン改造); #contentsx *変更箇所のまとめ [#y367335b] -アンカー (ページ名#アンカー) に対応させる -URLを相対パスにする -URLカスタマイズに対応させる *変更の詳細 [#uc0730f7] **アンカーに対応させる [#anchor] ページ名を指定する際にアンカーも指定できたら便利かなーと... 元々Pukiwikiの自作プラグインにアップされてた方にはこの機... あとついでに1.5.2以降の仕様に合わせて細部を変更する。 まずは渡された引数をページ名とアンカーで分離する。 #prism(diff-php diff-highlight){{ $args = func_get_args(); + // ページ名とアンカーを分離。 + $args = explode('#',$args[0]); }} ページ名と一緒にアンカー名も(一応)エンコード。 #prism(diff-php diff-highlight){{ // ここまで来たら、alias 許可。現在の 'page' の表示要求... $jumpto = rawurlencode($args[0]); + $aname = rawurlencode($args[1]); }} 最後にアンカー指定の有無によって出力するURLを変更する。 #prism(diff-php diff-highlight){{ // alias のジャンプ処理実体 - header('Location: ' . $script .'?'. $jumpto); // HTTP + if($aname) header('Location: ' . get_base_uri() .'?'. $... + else header('Location: ' . get_base_uri() .'?'. $jumpt... }} ここでもPukiwiki 1.5.2の仕様に合わせ、$script(絶対パス)を... これでアンカーを指定した場合は、ページ遷移後に指定した位... **移動先のURLを短縮URLにする [#url] PukiWiki 1.5.4で追加されたURLカスタマイズ機能に対応させる。 ページ名をURLエンコードする部分を、以下のように変更する。 #prism(diff-php diff-highlight){{ // ここまで来たら、alias 許可。現在の 'page' の表示要求... - $jumpto = urlencode($args[0]); + $jumpto = get_page_uri($args[0]); }} そして、上記関数を使用した場合はURLに既に"?"が含まれた状... #prism(diff-php diff-highlight){{ // alias のジャンプ処理実体 - if($aname) header('Location: ' . get_base_uri() .'?'. $... - else header('Location: ' . get_base_uri() .'?'. $jumpt... + if($aname) header('Location: ' . $jumpto .'#'. $aname);... + else header('Location: ' . $jumpto); // HTTP }} *更新履歴 [#ge2f0e3c] :2022-05-21| 公式のURLカスタマイズ機能に対応。 *配布元 [#k3642538] [[pukiwikiプラグイン/alias - Tomose's junkyard.:https://t... *コメント [#edec4fc1] 質問や指摘などあればどうぞ ---- #pcomment(reply) 終了行: &tag(カスタマイズ,プラグイン改造); #contentsx *変更箇所のまとめ [#y367335b] -アンカー (ページ名#アンカー) に対応させる -URLを相対パスにする -URLカスタマイズに対応させる *変更の詳細 [#uc0730f7] **アンカーに対応させる [#anchor] ページ名を指定する際にアンカーも指定できたら便利かなーと... 元々Pukiwikiの自作プラグインにアップされてた方にはこの機... あとついでに1.5.2以降の仕様に合わせて細部を変更する。 まずは渡された引数をページ名とアンカーで分離する。 #prism(diff-php diff-highlight){{ $args = func_get_args(); + // ページ名とアンカーを分離。 + $args = explode('#',$args[0]); }} ページ名と一緒にアンカー名も(一応)エンコード。 #prism(diff-php diff-highlight){{ // ここまで来たら、alias 許可。現在の 'page' の表示要求... $jumpto = rawurlencode($args[0]); + $aname = rawurlencode($args[1]); }} 最後にアンカー指定の有無によって出力するURLを変更する。 #prism(diff-php diff-highlight){{ // alias のジャンプ処理実体 - header('Location: ' . $script .'?'. $jumpto); // HTTP + if($aname) header('Location: ' . get_base_uri() .'?'. $... + else header('Location: ' . get_base_uri() .'?'. $jumpt... }} ここでもPukiwiki 1.5.2の仕様に合わせ、$script(絶対パス)を... これでアンカーを指定した場合は、ページ遷移後に指定した位... **移動先のURLを短縮URLにする [#url] PukiWiki 1.5.4で追加されたURLカスタマイズ機能に対応させる。 ページ名をURLエンコードする部分を、以下のように変更する。 #prism(diff-php diff-highlight){{ // ここまで来たら、alias 許可。現在の 'page' の表示要求... - $jumpto = urlencode($args[0]); + $jumpto = get_page_uri($args[0]); }} そして、上記関数を使用した場合はURLに既に"?"が含まれた状... #prism(diff-php diff-highlight){{ // alias のジャンプ処理実体 - if($aname) header('Location: ' . get_base_uri() .'?'. $... - else header('Location: ' . get_base_uri() .'?'. $jumpt... + if($aname) header('Location: ' . $jumpto .'#'. $aname);... + else header('Location: ' . $jumpto); // HTTP }} *更新履歴 [#ge2f0e3c] :2022-05-21| 公式のURLカスタマイズ機能に対応。 *配布元 [#k3642538] [[pukiwikiプラグイン/alias - Tomose's junkyard.:https://t... *コメント [#edec4fc1] 質問や指摘などあればどうぞ ---- #pcomment(reply) ページ名: