*複数ページをインクルードしているページでcommentプラグインが正常に動作しない
*複数ページをインクルードしているページでcommentプラグインが正常に動作しない [#ga5f0b96]

-ページ: BugTrack
-投稿者: [[龍司]]
-優先順位: 重要
-状態: 完了
-カテゴリー: プラグイン
-投稿日: 2003-04-03 (木) 22:36:49
-バージョン: 

**メッセージ
**メッセージ [#mab133da]
例えば、page1に
 #include(page2)
 #include(page3)
と書かれていて、page2、page3の中でそれぞれcommentプラグインを呼び出していると、comment_noがあがり続けるので、page3にコメントをつけようとしても、コメントがつかない。page2に対しては正常に動作する。

calendar_viewerでも複数のページをインクルードするので、同様の事が起きる。

comment.inc.phpの

 static $comment_no = 0;

に続いて、

 static $before_page = "";
 if ($before_page != $vars['page']){
   $comment_no = 0;
 }
 $before_page = $vars['page'];

と書くことで、回避できた。~
これで大丈夫かな?

----
-うちでも確認しました。 -- [[reimy]] SIZE(10){2003-04-03 (木) 23:26:51}
-これだと、#includeの後の#commentが0になってしまうのでは。 -- SIZE(10){2003-04-04 (金) 10:51:55}
 #comment
 #include(page2)
 #comment
 ↑これ

-ページ毎にcomment_noを保持するようにしてみた。~
function plugin_comment_convert()の最初の方を下記のように変更
 //	static $comment_no = 0;
	static $comment_no_list_array = array();
	if (isset($comment_no_list_array[$vars['page']])){
		$comment_no = $comment_no_list_array[$vars['page']];
	}else{
		$comment_no =0;
	}
で、return直前を下記のように
	$comment_no++;
	$comment_no_list_array[$vars['page']] = $comment_no;
これでどうかなぁ--[[龍司]]
-ありがとうございます。cvsに投入しました。 [[cvs:plugin/comment.inc.php]](v1.4:r1.15) -- [[ぱんだ]] SIZE(10){2003-04-08 (火) 19:35:12}
-1.3.x用は…globalをstaticにすれば同じ手が使えますね。
ほかにもarticle,insert,memo,paint,voteが同じことをしてますんで…。 -- [[ぱんだ]] SIZE(10){2003-04-08 (火) 19:37:36}
--連番を発生するクラスかサブルーチンがあればおもしろいんですが :) -- [[ぱんだ]] SIZE(10){2003-04-08 (火) 19:53:48}
--あと、「n番目のプラグイン行を探して、''その前''と''その行''と''その後ろ''を返す」サブルーチンがあれば、上記プラグインのややこしい処理をひとまとめにできる気がします。 -- [[ぱんだ]] SIZE(10){2003-04-08 (火) 19:59:54}
---これは、次のバージョンかな… -- [[ぱんだ]] SIZE(10){2003-04-08 (火) 20:01:16}

#comment
//#comment

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Site admin: PukiWiki Development Team

PukiWiki 1.5.4+ © 2001-2022 PukiWiki Development Team. Powered by PHP 8.2.12. HTML convert time: 0.055 sec.

SourceForge