**[[続・質問箱/256]] [#o940ce72] #author("2018-03-11T13:48:26+09:00;2009-05-06T18:12:37+09:00","","") **[[質問箱/2256]] [#o940ce72] |RIGHT:70|LEFT:410|c |~カテゴリ|| |~サマリ|CGIの掲示板のカキコミ状況を表示する。| |~バージョン|1.4.3| |~投稿者|[[初心者A]]| |~状態|完了| |~投稿日|&new{2004-07-15 (THU) 00:52:48};| ***質問 [#a4777da4] この度、PukiWikiを使ってサイトを再構築させていただきました。 いままで、同一サイト内に設置しているCGIの掲示板のカキコミ状況を表示するため、「カキコチェッカ」というCGIをSSIで呼び出していました。しかし、PukiWikiを使うようになってから、SSIが使えなくなってしまいました。 PukiWikiで掲示板のログファイルの最終更新日をしらべるなど、カキコミ状況を調べることができますか?なにかいい方法があればご教授おねがいします。 ***回答 [#w74bd3a2] -[[三浦克介]] &new{2004-07-15 (THU) 09:44:34}; ~passthru(), system(), popen() 等の関数によりCGIを呼び出す簡単なプラグインを作るというのが、常套手段だと思います。 -[[ARAI]] &new{2004-07-15 (THU) 18:18:52}; ~同一サイト内とのことなので、cgiを呼び出すまでもなくfilectime()では?プログラムの実行関数が利用できるとも限りませんし。 <? function plugin_filectime_inline() { list( $file, $str) = func_get_args(); if ( !$str ) { $str = basename( $file); } $str = htmlspecialchars($str); if ( !($ctime = filectime($file))) { $str .= ' not found.'; } else { $str .= date(' r', $ctime); } return "<span>{$str}</span>"; } ?> 最低限度のプラグインはこんな感じになるかと思います。 &filectime(パスを含んだログファイル名[,掲示板の名称]); という風に使います。 -[[初心者A]] &new{2004-07-16 (FRI) 02:08:51}; ~三浦克介さん、ARAIさん、ご回答ありがとうございます。なるほど、プラグインを使って実現すればよいのですね!まだ、プラグインを作ったことがないので、PHPから勉強して、ARAIさんが載せてくれたソースをもとに、付加機能を追加できるように頑張ります。(更新時間が指定時間内なら赤で表示、日本語形式での表示とか。) 他に必要としてる人がいるかわかりませんが、完成したらここに載せますね。ありがとうございました。 -[[ARAI]] &new{2004-07-16 (FRI) 21:23:11}; ~え~と、「ログファイルのタイムスタンプ~」に気を取られて忘れていたのですが、外部のアンテナを取りこむプラグインを使うという手もあります。[[はてなアンテナ:http://a.hatena.ne.jp]]を使うものをここで公開中です。 → [[hadigestプラグイン:http://m-arai.s41.xrea.com/closet/25.html]] ~現在使用しているカキコチェッカ用にこれを改造しても良いでしょう。ローカルマシンとはいえ、HTTP経由で起動したcgiの結果を取りこむよりは、filectimeで書いた方が遥かに軽いと思いますが。 ~思えば、そのカキコチェッカも''同一サイト内で、ファイルのタイムスタンプを直接参照出来るもの限定の''アンテナのようなものですね。 //#comment