hypweb.net
XOOPSマニア  最新情報のRSS(サイト全体)
[ 自宅サーバーWebRing |ID=54 前後5表示乱移動サイト一覧 ]

19年6月18日(Tue) 1時33分
TOP » フォーラム » XOOPS » xpWiki » autolinkが正常に動作していない

autolinkが正常に動作していない


Posts tree


Previous post - Next post | Parent - Children.1 | Posted on 2007-7-11 18:41
Yumii  常連さん   Posts: 13

先日3.0.5にバージョンアップさせたところ、autolink機能が正常に動作しなくなりました。

調べてみたところ、どうやらget_autolink_pattern()に原因がありそうです。

3.0.5までの間に以下の箇所が変更されています。

1
2
3
4
5
6
foreach ($pages as $page)
	if (preg_match('/^' . $this->root->WikiName . '$/', $page) ?
-	    $this->root->nowikiname : strlen($page) >= $min_len)
+	    $this->root->nowikiname : strlen($page) >= $min_len) {
			$auto_pages[] = $page;
+	}

この変更により、今まで実行されていた $auto_pages[] = $page; が実行されなくなっています。

つまり、今までの動作もバグだったのですが、それでたまたまうまく動いているように見えていた、ということのようで。。。

恐らくやりたいことは以下のようなことなんだと思いますが、合ってますでしょうか?

1
2
3
4
5
6
7
8
9
$check_wikiname = (!$this->root->nowikiname && !empty($this->root->WikiName));
foreach ($pages as $page) {
	if ($check_wikiname && preg_match('/^' . $this->root->WikiName . '$/', $page)) {
		/* XpWikiLink_wikiname でリンクになるので除外 */
		continue;
	}
	if (strlen($page) >= $min_len) 
		$auto_pages[] = $page;
}

とりあえず、私のところではこの修正で仮対処しておきました。

Votes:0 Average:0.00
Reply
Previous post - Next post | Parent - Children.1 | Posted on 2007-7-11 22:48
nao-pon  Webmaster From: 愛知県  Posts: 5799

Yumii さん、こんにちは。レポートありがとうございます。

1
2
3
4
5
6
foreach ($pages as $page)
	if (preg_match('/^' . $this->root->WikiName . '$/', $page) ?
-	    $this->root->nowikiname : strlen($page) >= $min_len)
+	    $this->root->nowikiname : strlen($page) >= $min_len) {
			$auto_pages[] = $page;
+	}

これ、デバグ用コード書いてテストしていた時に、付け加えて戻すのを忘れてました。

1
2
3
4
foreach ($pages as $page)
    if (preg_match('/^' . $this->root->WikiName . '$/', $page) ?
        $this->root->nowikiname : strlen($page) >= $min_len)
            $auto_pages[] = $page;

これで、コードとしては正常に動作します。{} をつけるならこう書くべきでした。
ちょっとは、分かりやすいでしょうか。

1
2
3
4
5
6
foreach ($pages as $page) {
    if (preg_match('/^' . $this->root->WikiName . '$/', $page) ?
            $this->root->nowikiname : strlen($page) >= $min_len) {
        $auto_pages[] = $page;
    }
}

ただ、今回は次の様に修正しようと思っています。

1
2
3
4
5
foreach ($pages as $page) {
    if (strlen($page) >= $min_len) {
        $auto_pages[] = $page;
    }
}

xpWiki は、PukiWiki とは違い、オートリンクの処理を InlineConverter ではなく、最後に一括処理する方法なので、nowikiname の設定に関わらず、処理できるのでこのようにしました。

何はともあれ、ありがとうございました。 :thumb_up:

Votes:0 Average:0.00
Reply
Previous post - Next post | Parent - Children.1 | Posted on 2007-7-11 23:07
Yumii  常連さん   Posts: 13

いつもの事ながら、すばやい対応ですね :thumb_up:

引用:
ただ、今回は次の様に修正しようと思っています。

なるほどー、了解です。 :-)

Votes:0 Average:0.00
Reply
Previous post - Next post | Parent - No child | Posted on 2007-7-12 8:28
nao-pon  Webmaster From: 愛知県  Posts: 5799

Ver 3.07 にて修正が完了しました。

ありがとうございました。これからもよろしくお願いします。 :ok:

Votes:0 Average:0.00
Reply

Post into this topic

Subject
guestname
Body

  Advanced search

このページのTopへ
ログイン
ユーザ名:

パスワード:

オートログイン

Basic 認証 | SSLログイン

Register now! | Lost Password?



メインメニュー
ブックマーク
Please log in to use it.
[Login]
サイト内 Wiki
☆ 検索 ☆



高度な検索(サイト内)
FireFox検索プラグイン
オンライン状況
合計 49 人がオンライン中 :-)
(フォーラム : 1 人)

登録ユーザ: 0 & ゲスト: 49

もっと...
サイト情報
管理人

nao-pon
 

登録ユーザ数: 4604


Web Services by Yahoo! JAPAN
楽天ウェブサービスセンター
Amazon.co.jpアソシエイト
現在ページのQRコード
現在ページのQRコード
[携帯対応]
参照元情報
No trackback