d3forum改造の備忘録

作成しているサイトが、会員制ではなくゲストからの投稿を中心とした掲示板を考えている。その際、ただ『ゲスト』と投稿者が出てしまうのではわからないので、ゲストに登録してもらった名前を、トピック一覧に表示させるように改造。

まず、ゲスト名はテーブルに入っている。が、postsのテーブルに入っていて、トピックのテーブルには入っていない。

よって、トピック情報を取得するときに、postsにあるguest_nameを取得するように修正して、とってきたデータをtopic情報の配列に入れればOK。

ここではソースの奇麗さは抜きで、実現方法を残す。

まず編集するファイルは、
 xoops_trust_path/modules/d3forum/include/listtopics.php

この37行目で、topicテーブルから取得したデータを展開開始だから、この後直ぐに、topic_first_post_idをキーにしてpostsを取得。
最後に、取得したデータを、topicのデータに挿入しておしまい。

$sql2 = “SELECT guest_name from “.$db->prefix($mydirname.”_posts”).” where post_id =”.$topic_row[‘topic_first_post_id’];
if( ! $result2 = $db->query( $sql2 ) ) die( _MD_D3FORUM_ERR_SQL.__LINE__ ) ;
while( $posts_result = $db->fetchArray( $result2 ) ) {

〜省略〜
  ’guest_name’ => $posts_result[‘guest_name’] ,
) ;
}

$topic.guest_nameで、希望のデータを取得できました。
*もっと奇麗に変更しましょうね!