OpenPNEで日記コメントにメンバーのプロフィール画像を表示したい時

投稿者: | 2010年10月21日

日記のコメントリストを取得するクラス・ライブラリを修正してメンバーのプロフィール画像も一緒に取得するようにする。

修正するのは以下のファイル
/OpenPNE/webapp/lib/db/diary.php

【修正前】
/**
 * 日記へのコメントリストを取得
 */
function k_p_fh_diary_c_diary_comment_list4c_diary_id($c_diary_id, $page_size, $page, $desc = true)
{
    $sql = ‘SELECT * FROM c_diary_comment WHERE c_diary_id = ? ORDER BY r_datetime’;
    if ($desc) {
        $sql .= ‘ DESC’;
    }
    $params = array(intval($c_diary_id));
    $c_diary_comment_list = db_get_all_page($sql, $page, $page_size, $params);

    foreach ($c_diary_comment_list as $key => $value) {
        $c_member = db_member_c_member4c_member_id_LIGHT($value[‘c_member_id’]);
        $c_diary_comment_list[$key][‘nickname’] = $c_member[‘nickname’];
    }

    $sql = ‘SELECT COUNT(c_diary_comment_id) FROM c_diary_comment WHERE c_diary_id = ?’;
    $params = array(intval($c_diary_id));
    $total_num = db_get_one($sql, $params);

    if ($total_num > 0) {
        $total_page_num =  ceil($total_num / $page_size);
        if ($page >= $total_page_num) {
            $next = false;
        } else {
            $next = true;
        }
        if ($page <= 1) {
            $prev = false;
        } else {
            $prev = true;
        }
    }
    return array($c_diary_comment_list, $prev, $next, $total_num, $total_page_num);
}

【修正後】
/**
 * 日記へのコメントリストを取得
 */
function k_p_fh_diary_c_diary_comment_list4c_diary_id($c_diary_id, $page_size, $page, $desc = true)
{
    $sql = ‘SELECT * FROM c_diary_comment WHERE c_diary_id = ? ORDER BY r_datetime’;
    if ($desc) {
        $sql .= ‘ DESC’;
    }
    $params = array(intval($c_diary_id));
    $c_diary_comment_list = db_get_all_page($sql, $page, $page_size, $params);

    foreach ($c_diary_comment_list as $key => $value) {
        $c_member = db_member_c_member4c_member_id_LIGHT($value[‘c_member_id’]);
        $c_diary_comment_list[$key][‘nickname’] = $c_member[‘nickname’];
        $c_diary_comment_list[$key][‘image_filename’] = $c_member[‘image_filename’];
    }

    $sql = ‘SELECT COUNT(c_diary_comment_id) FROM c_diary_comment WHERE c_diary_id = ?’;
    $params = array(intval($c_diary_id));
    $total_num = db_get_one($sql, $params);

    if ($total_num > 0) {
        $total_page_num =  ceil($total_num / $page_size);
        if ($page >= $total_page_num) {
            $next = false;
        } else {
            $next = true;
        }
        if ($page <= 1) {
            $prev = false;
        } else {
            $prev = true;
        }
    }
    return array($c_diary_comment_list, $prev, $next, $total_num, $total_page_num);
}

これで$item.image_filenameのような形でメイン画像のファイル名が取得出来るようになる。

なお、変更・修正する場合は自己責任で。