doudonn WEB制作やサーバーの話とかいろいろ

DokuWikiに「最近のコメント」を実装する方法(Discussion Plugin)

doudonn 更新日:
DokuWikiに「最近のコメント」を実装する方法(Discussion Plugin)

DokuWikiはコメント実装が難しい。

Discussion Plugin」を使えばコメント欄はできるのですが、
本当にただそれだけで、デザインもひどく大変です。

というところで、「最近のコメント」を作る方法を説明します。
※サンプルは「東方ダンマクカグラ有志攻略Wiki」を見てください。

1、コメントデータが存在する

「/data/meta/_comments.changes」
このファイルを工夫すれば実現可能です。

CSVデータになっているので、PHPで読み込んで表示すればいい。
かなり数が増えても処理は軽いので問題ありません。
ただ、古いデータは定期的に削除していくことを推奨。

おそらく「Changes Plugin」が作っているファイルだと思います。
もし見当たらなかった場合、そのプラグインをインストールしてみてください。

2、サンプルプログラム1(取得用)

<?php

$csv  = array();
$fp   = fopen('data/meta/_comments.changes', "r");

while (($data = fgetcsv($fp, 0, "\t")) !== FALSE) {
$csv[] = $data;
}

$comeallcount = count($csv);
$comeallcount2 = $comeallcount -1;

$show = 15;

for($i = $comeallcount2; $i > $comeallcount2 -$show; $i--){

$cometype = $csv[$i][2];

if($cometype == "dc"){
$delid[] = $csv[$i][6];
}

if($cometype == "cc"){

$comeid = $csv[$i][6];

if(!empty($delid)){
$delcheck = array_search($comeid, $delid);
if($delcheck !== false ){
$show = $show +1;
continue;
}
}

$comedate = $csv[$i][0];
$comedate2 = date('m/d H:i',$comedate);

$pagename = $csv[$i][3];
$pagename3 = str_replace("index.html", "トップページ", $pagename);
$pagename2 = '<a href="https://danmakuwiki.com/'.$pagename.'#comment_'.$comeid.'">'.$pagename3.'</a>';

$comedateall[] = $comedate2;
$pagenameall[] = $pagename2;

}else{
$show = $show +1;
continue;
}

}

$comecount = count($comedateall);

?>

このサンプルだと、最新15件のコメントを取得します。
一応最後に数えていますが、ここは不要ではある。
もちろん、URL部分等は自分のWikiに合うように変更ください。

まずはこれを「/lib/tpl/dokuwiki/main.php」の上の方で読み込みます。

3、サンプルプログラム2(表示用)

<table>
<tbody>

<?php

for($i = 0;$i < $comecount;$i++){ ?>

<tr>
<td><?php echo $comedateall[$i] ?></td>
<td><?php echo $pagenameall[$i] ?></td>
</tr>

<?php
}
?>

</tbody>
</table>

このファイルを「最近のコメント」として表示したい箇所で読み込みます。
こちらもおおよそ「/lib/tpl/dokuwiki/main.php」の中で良い。
そうすれば「東方ダンマクカグラ有志攻略Wiki」のような感じになります。

4、最後に

投稿者の名前を入れても良いと思う。
自分のWikiは基本匿名なので入れていませんが、
名前必須な環境なら名前があった方が良い。

ページ名が長い場合は省略するのも良いかもしれない。
その場合は文字数省略してから配列に。

やり方は実際にCSVを見ればよくわかると思います。
是非挑戦してみてください。

--

DokuWikiの関連記事

記事一覧はこちら:DokuWiki

管理人について
doudonn
名前:doudonn(どうどん)
ひたすらWEB制作な人。
一応社長です。音ゲー好き

<Twitterはこちら>
ゲーム垢
WEB制作垢
お知らせ

2022年11月30日に全記事削除しました。
まだ再開に向け作りかけ。


無駄にページ表示速度にこだわってます。

役立ちサイト
wiki
© 2022-2023 doudonn All Rights Reserved.