/** * アクセスメンバーID・参照メンバーIDから日記を最新順で取得する * * @param int $target_c_member_id 日記を登録したメンバーID * @param int $access_c_member_id アクセスしたメンバーID * @param int $count 取得する日記の件数 * @return array 日記情報 */ function op_diary_get_c_diary($target_c_member_id, $access_c_member_id = 0, $count = 10) { if ($target_c_member_id == $access_c_member_id) { $is_friend = true; $is_own = true; } else { $is_friend = OP::op_friend_is_friend($target_c_member_id, $access_c_member_id); $is_own = false; } $sql = "SELECT c_diary_id, subject, body, r_datetime"; $sql .= " FROM c_diary"; $sql .= " WHERE c_member_id = ?"; $sql .= " AND (public_flag = 'public'"; if ($is_friend) { $sql .= " OR public_flag = 'friend'"; } if ($is_own) { $sql .= " OR public_flag = 'private')"; } else { $sql .= ")"; } $sql .= " ORDER BY r_datetime DESC"; $params = array(intval($target_c_member_id)); $arr = db_get_all_limit($sql, 0, $count, $params); return $arr; }
function xmlrpc_di_001_set_comment($message) { $re_true = array('result' => 0); $re_false = array('result' => 1); $param = $message->getParam(0); if (!XML_RPC_Value::isValue($param)) { return xmlrpc_get_response($re_false); } $params = XML_RPC_decode($param); if (empty($params['mid'])) { //コメント書込メンバID必須 return xmlrpc_get_response($re_false); } if (empty($params['did'])) { //コメント書込日記ID必須 return xmlrpc_get_response($re_false); } if (is_null($params['body']) || $params['body'] === '') { //コメント本文必須(0または'0'を除く) return xmlrpc_get_response($re_false); } if (!is_numeric($params['mid'])) { //コメント書込メンバIDは整数値 return xmlrpc_get_response($re_false); } if (!is_numeric($params['did'])) { //コメント書込日記IDは整数値 return xmlrpc_get_response($re_false); } if (mb_strwidth($params['body']) > 65535) { //コメント本文は65535bytesまで return xmlrpc_get_response($re_false); } $member_id = $params['mid']; $diary_id = $params['did']; $diary_body = rawurldecode($params['body']); $d_member_id = OP::op_diary_get_c_member_id4c_diary_id($diary_id); //日記IDから日記作成メンバIDを取得 if (!OP::op_member_is_active_c_member_id($d_member_id)) { //アクティブメンバーか? return xmlrpc_get_response($re_false); } if ($member_id != $d_member_id) { //日記作成メンバ本人か? if (OP::op_member_is_access_block($member_id, $d_member_id)) { //アクセスブロックされているか? return xmlrpc_get_response($re_false); } $pubflg = OP::op_diary_get_c_member_id4public_flg($diary_id); //日記IDから公開範囲を取得 if ($pubflg != "public") { //公開範囲がpublic以外か? if ($pubflg != "friend") { //公開範囲がfriendか? return xmlrpc_get_response($re_false); } if (!OP::op_friend_is_friend($d_member_id, $member_id)) { //フレンド登録済以外か? return xmlrpc_get_response($re_false); } } } if (!OP::op_diary_insert_c_diary_comment($member_id, $diary_id, $diary_body)) { //コメント書込 return xmlrpc_get_response($re_false); } if (!OP::op_diary_c_diary_is_no_checked($diary_id)) { //未読フラグ書込 return xmlrpc_get_response($re_false); } if ($member_id != $d_member_id) { //日記作成メンバ本人か? OP::op_point_add_point($member_id, OP::op_action_get_point4c_action_id(3)); OP::op_point_add_point($d_member_id, OP::op_action_get_point4c_action_id(2)); } return xmlrpc_get_response($re_true); }