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

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

メッセージ

例えば、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 2003-04-03 (木) 23:26:51
  • これだと、#includeの後の#commentが0になってしまうのでは。 -- 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) -- ぱんだ 2003-04-08 (火) 19:35:12
  • 1.3.x用は…globalをstaticにすれば同じ手が使えますね。 ほかにもarticle,insert,memo,paint,voteが同じことをしてますんで…。 -- ぱんだ 2003-04-08 (火) 19:37:36
    • 連番を発生するクラスかサブルーチンがあればおもしろいんですが :) -- ぱんだ 2003-04-08 (火) 19:53:48
    • あと、「n番目のプラグイン行を探して、その前その行その後ろを返す」サブルーチンがあれば、上記プラグインのややこしい処理をひとまとめにできる気がします。 -- ぱんだ 2003-04-08 (火) 19:59:54
      • これは、次のバージョンかな… -- ぱんだ 2003-04-08 (火) 20:01:16

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2003-04-08 (火) 20:01:17
Site admin: PukiWiki Development Team

PukiWiki 1.5.2+ © 2001-2019 PukiWiki Development Team. Powered by PHP 5.6.40-0+deb8u7. HTML convert time: 0.182 sec.

OSDN