OpenPNE 公開日記モジュール(OpenDiary)の問題点

OpenPNE 公開日記モジュール(OpenDiary)の問題点

公開日記モジュール(OpenDiary)をOpenPNE2.8.x以降で使うと日記を「外部に公開」とすると「最新日記一覧」に反映されない。

手順通りの他に以下の箇所を修正すると「外部に公開」とした日記が最新日記一覧に表示された。

OPENPNE_DIR/webapp/lib/db/diary.php の736行目付近

修正前


//自分の日記だけを対象にする事も出来る
if ($c_member_id) {
$where = ' WHERE c_member_id = ?';
$params[] = intval($c_member_id);
} else {
$where = " WHERE public_flag = 'public'";
}

修正後


//自分の日記だけを対象にする事も出来る
if ($c_member_id) {
$where = ' WHERE c_member_id = ?';
$params[] = intval($c_member_id);
} else {
$where = " WHERE public_flag = 'public' or public_flag = 'open'";
}


or public_flag = 'open'を追加する


さらに外部公開日記にコメントを残すと「日記コメント記入履歴」(?m=pc&a=page_h_diary_comment_list)に反映されない問題も

この問題の修正もOPENPNE_DIR/webapp/lib/db/diary.php の581行目付近と600行目付近の2箇所を修正する事で解決出来る。

修正前


' AND (d.public_flag = \'public\' OR (d.public_flag = \'friend\' AND d.c_member_id IN (' . $friend_ids . ')))' .

修正後


' AND (d.public_flag = \'public\' OR d.public_flag = \'open\' OR (d.public_flag = \'friend\' AND d.c_member_id IN (' . $friend_ids . ')))' .

OR d.public_flag = \'open\'を追加する