- 履歴一覧
- 差分 を表示
- 現在との差分 を表示
- ソース を表示
- プラグインの変更箇所/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に対応させる。
Pukiwiki1.5.2向けURL短縮ライブラリの導入が前提。
短縮URLを導入しない場合、get_short_url_from_pagename を urlencode に変更。
echo の $jumpto の前に '?' を追加。
@@ -4,6 +4,12 @@
// alias プラグインがなくなっていたので、独自に作成。
// ついでに、alias 方式の弱点を解消するため、
// alias 実行されたものについて記録を残すようにした。
+// 2019/09/23 kanateko
+// アンカーを使えるように改変。
+// あとUTF-8に変換。
+// 2020/01/08 kanateko
+// $script → get_base_uri()
+// 短縮URLを使用するように改変。
define('ALIAS_DATA_DIR', DATA_HOME . 'alias/');
@@ -11,19 +17,23 @@
{
global $vars;
$args = func_get_args();
+ // ページ名とアンカーを分離。
+ $list = explode('#',$args[0]);
// エラー処理系
// 自分自身への転送は禁止。
- if($vars['page']==$args[0]) return '#alias: Can not set Selfpage.';
+ if($vars['page']==$list[0]) return '#alias: Can not set Selfpage.';
//「ページ」でない指定も禁止。
- if(! is_page($args[0])) return '#alias: Bad parameter.';
+ if(! is_page($list[0])) return '#alias: Bad parameter.';
// すでに alias で指定されているページへの alias 禁止。
// 多重alias による負荷や、最悪「ループする関係」の構築を避けるための処理。
- $filename = ALIAS_DATA_DIR.encode($args[0]).".txt";
+ $filename = ALIAS_DATA_DIR.encode($list[0]).".txt";
if( file_exists($filename)) return '#alias: Can not alias to already aliased page.';
// ここまで来たら、alias 許可。現在の 'page' の表示要求は arg[0]に跳ばす。
- $jumpto = rawurlencode($args[0]);
+ // 短縮URLを使用するように変更。
+ $jumpto = get_short_url_from_pagename($list[0]);
+ $aname = urlencode($list[1]);
$filename = ALIAS_DATA_DIR.encode($vars['page']).".txt";
// alias の記録。記録を残すことで、後で拾いやすくする。
@@ -39,7 +49,8 @@
}
// alias のジャンプ処理実体
- header('Location: ' . $script .'?'. $jumpto); // HTTP
+ if($aname) header('Location: ' . get_base_uri() . $jumpto .'#'. $aname); // HTTP
+ else header('Location: ' . get_base_uri() . $jumpto); // HTTP
exit;
}
最新の10件を表示しています。 コメントページを参照