カテゴリ | |
---|---|
サマリ | 親階層に移動するリンクをつけるには |
バージョン | 1.4.7 |
投稿者 | ラム |
状態 | 完了 |
投稿日 | 2007-05-15 (火) 05:52:33 |
今いるページから親階層のページへ移動するリンクを直接親ページの名前を指定せずに設置することは可能ですか?
テキスト整形のルールのページでは
行中で 及び と書くと、編集中のページ名に置換されます。ページ名が階層化されたページで「hogehoge/hoge」となっている場合、&page;は「hoge」に、&fpage;は「hogehoge/hoge」に置換されます。階層化されていないページでは、&page;も&fpage;も同じになります。
とあります。
上の例でhogeを見ているときにhogehogeに移動したいわけです。
ところがももhogehogeには対応していません。
どうすれば出来ますか?
掲示板もだいぶ探しましたが、まだ初心者なのでわかりません。
// BracketNames class Link_bracketname extends Link { (中略) function set($arr, $page) { global $WikiName; list(, $alias, , $name, $this->anchor) = $this->splice($arr); if ($name == '' && $this->anchor == '') return FALSE; if ($name == '' || ! preg_match('/^' . $WikiName . '$/', $name)) { if ($alias == '') $alias = $name . $this->anchor; if ($name != '') { - $name = get_fullname($name, $page); + if (($alias === $name . $this->anchor) && preg_match('#^[.]{1,2}\/#', $name)){ + $name = get_fullname($name, $page); + $alias = $name . $this->anchor; + } else{ + $name = get_fullname($name, $page); + } if (! is_pagename($name)) return FALSE; } } return parent::setParam($page, $name, '', 'pagename', $alias); }この改造をすれば、「../../」のように重ねて書いても、本文はそのままでジャンプ先のページ名が表示されるようになります。
if ($name == '' || ! preg_match('/^' . $WikiName . '$/', $name)) { - if ($alias == '') $alias = $name . $this->anchor; if ($name != '') { $name = get_fullname($name, $page); if (! is_pagename($name)) return FALSE; } + if ($alias == '') $alias = $name . $this->anchor; }エイリアスの処理をページ名の処理の後ろに、持っていくだけ。PHP 4 でしか、まだ動作確認してませんが。 -- 2007-06-23 (土) 11:30:33