Example #1
0
function db_rss_list_friend_c_rss_cache_list($c_member_id, $limit)
{
    static $is_recurred = false;
    //再帰処理中かどうかの判定フラグ
    if (!$is_recurred) {
        //function cacheのために再帰処理を行う
        $is_recurred = true;
        $funcargs = func_get_args();
        $result = pne_cache_recursive_call(OPENPNE_FUNCTION_CACHE_LIFETIME_FAST, __FUNCTION__, $funcargs);
        $is_recurred = false;
        return $result;
    }
    $friends = db_friend_c_member_id_list($c_member_id, true);
    if (!$friends) {
        return array();
    }
    $ids = implode(',', array_map('intval', $friends));
    $hint = db_mysql_hint('USE INDEX (c_member_id_r_datetime)');
    $sql = 'SELECT * FROM c_rss_cache' . $hint . ' WHERE c_member_id IN (' . $ids . ')' . ' ORDER BY r_datetime DESC';
    $list = db_get_all_limit($sql, 0, $limit);
    foreach ($list as $key => $value) {
        $list[$key]['c_member'] = db_member_c_member4c_member_id_LIGHT($value['c_member_id']);
    }
    return $list;
}
Example #2
0
function db_review_c_friend_review_list_more4c_member_id($c_member_id, $page, $page_size)
{
    $friends = db_friend_c_member_id_list($c_member_id, true);
    if (!$friends) {
        return array();
    }
    $ids = implode(',', array_map('intval', $friends));
    $sql = 'SELECT * FROM c_review INNER JOIN c_review_comment USING (c_review_id)' . ' WHERE c_review_comment.c_member_id IN (' . $ids . ')' . ' ORDER BY c_review_comment.r_datetime DESC';
    $list = db_get_all_page($sql, $page, $page_size, $params);
    foreach ($list as $key => $value) {
        $list[$key] += db_member_c_member4c_member_id_LIGHT($value['c_member_id']);
    }
    $sql = 'SELECT COUNT(*) FROM c_review_comment WHERE c_member_id IN (' . $ids . ')';
    $total_num = db_get_one($sql);
    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;
        }
    }
    $start_num = ($page - 1) * $page_size + 1;
    $end_num = ($page - 1) * $page_size + $page_size > $total_num ? $total_num : ($page - 1) * $page_size + $page_size;
    return array($list, $prev, $next, $total_num, $start_num, $end_num);
}
Example #3
0
function db_schedule_birth4c_member_id($month, $c_member_id)
{
    $ids = db_friend_c_member_id_list($c_member_id);
    $ids[] = $c_member_id;
    $ids = implode(', ', $ids);
    $sql = 'SELECT * FROM c_member' . ' WHERE c_member_id IN (' . $ids . ')' . ' AND birth_month = ?';
    $params = array(intval($month));
    $list = db_get_all($sql, $params);
    $res = array();
    foreach ($list as $item) {
        if ($item['c_member_id'] != $c_member_id && $item['public_flag_birth_month_day'] == 'private') {
            continue;
        }
        $day = intval($item['birth_day']);
        $res[$day][] = $item;
    }
    return $res;
}
Example #4
0
/**
 * 自分のフレンドのうち、対象のメンバーと
 * フレンドリンクしていないフレンドのリストを取得
 */
function db_friend_invite_list4c_member_ids($target_c_member_id, $u)
{
    // 自分の友達リスト
    $my_list = db_friend_c_member_id_list($u);
    // ターゲットの友達リスト
    $target_list = db_friend_c_member_id_list($target_c_member_id);
    $target_list[] = $target_c_member_id;
    // 自分の友達リストからターゲットの友達を引く
    $result = array_diff($my_list, $target_list);
    $list = array();
    foreach ($result as $value) {
        $list[] = db_member_c_member4c_member_id_LIGHT($value);
    }
    return $list;
}
Example #5
0
function p_h_diary_comment_list_c_diary_my_comment_list4c_member_id($c_member_id, $page, $page_size)
{
    $select = 'SELECT cdcl.c_diary_id, cdcl.r_datetime AS maxdate, cd.*';
    $from = ' FROM c_diary_comment_log AS cdcl INNER JOIN c_diary AS cd USING (c_diary_id) ';
    $where = ' WHERE cdcl.c_member_id = ? AND (cd.public_flag = \'public\'';
    $friends = db_friend_c_member_id_list($c_member_id, true);
    $friend_ids = implode(',', array_map('intval', $friends));
    if ($friend_ids) {
        $where .= ' OR (cd.public_flag = \'friend\' AND cd.c_member_id IN (' . $friend_ids . '))';
    }
    $where .= ')';
    $sql = $select . $from . $where . ' ORDER BY maxdate DESC';
    $params = array(intval($c_member_id));
    $list = db_get_all_page($sql, $page, $page_size, $params);
    foreach ($list as $key => $value) {
        $list[$key] += db_member_c_member4c_member_id_LIGHT($value['c_member_id']);
        $list[$key]['r_datetime'] = $value['maxdate'];
        $list[$key]['num_comment'] = db_diary_count_c_diary_comment4c_diary_id($value['c_diary_id']);
    }
    $sql = 'SELECT COUNT(cdcl.c_diary_id)' . $from . $where;
    $params = array(intval($c_member_id));
    $total_num = db_get_one($sql, $params);
    $is_prev = false;
    $is_next = false;
    if ($total_num) {
        $is_prev = (bool) ($page > 1);
        $is_next = (bool) ($page < ceil($total_num / $page_size));
    }
    return array($list, $is_prev, $is_next, $total_num);
}
Example #6
0
/**
 * Myフレンドから指定コミュに参加していない人をランダムに選ぶ
 */
function db_commu_c_friend_list_random4c_member_id4c_commu_id($c_member_id, $c_commu_id, $limit)
{
    //友達リスト
    $friend_list = db_friend_c_member_id_list($c_member_id);
    //参加者リスト
    $sql = "SELECT c_member_id FROM c_commu_member WHERE c_commu_id = ?";
    $params = array(intval($c_commu_id));
    $member_list = db_get_col($sql, $params);
    //友達リストから参加者リストを引く
    $result = array_diff($friend_list, $member_list);
    if (!$result) {
        return array();
    }
    $result = implode(',', array_map('intval', $result));
    $sql = 'SELECT c_member_id, nickname FROM c_member' . ' WHERE c_member_id IN ( ' . $result . ') ' . db_order_by_rand();
    return db_get_all_limit($sql, 0, $limit);
}
Example #7
0
/**
 * フレンド最新アルバムリスト取得
 * アルバム公開範囲を考慮
 *
 * @param   int $c_member_id
 * @param   int $limit
 * @return  array
 */
function p_h_home_c_album_friend_list4c_member_id($c_member_id, $limit)
{
    $friends = db_friend_c_member_id_list($c_member_id, true);
    if (!$friends) {
        return array();
    }
    $ids = implode(',', array_map('intval', $friends));
    $sql = 'SELECT * FROM c_album' . ' WHERE c_member_id IN (' . $ids . ')' . ' AND public_flag <> \'private\'' . ' ORDER BY u_datetime DESC';
    $c_album_friend_list = db_get_all_limit($sql, 0, $limit);
    foreach ($c_album_friend_list as $key => $value) {
        $c_member = db_member_c_member4c_member_id_LIGHT($value['c_member_id']);
        $c_album_friend_list[$key]['nickname'] = $c_member['nickname'];
    }
    return $c_album_friend_list;
}