Пример #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;
}
Пример #2
0
/**
 * inc_navi.tpl の出力を返す
 *
 * $type が f または c の場合には、$target_id を指定する必要があります。
 *
 * @param   enum('h', 'f', 'c')  $type : ナビゲーションのタイプ
 * @param  int  $target_id : 友達のメンバーID もしくは コミュニティID
 * @return html
 */
function fetch_inc_navi($type, $target_id = null)
{
    // $type が h の場合のみ function cache
    if ($type == 'h') {
        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_LONG, __FUNCTION__, $funcargs);
            $is_recurred = false;
            return $result;
        }
    }
    $inc_smarty = new OpenPNE_Smarty($GLOBALS['SMARTY']);
    $inc_smarty->templates_dir = 'pc/templates';
    $inc_smarty->assign('PHPSESSID', md5(session_id()));
    switch ($type) {
        case 'h':
        default:
            $type = 'h';
            break;
        case 'f':
            $inc_smarty->assign('INC_NAVI_c_member_id_friend', $target_id);
            break;
        case 'c':
            $inc_smarty->assign('INC_NAVI_c_commu_id', $target_id);
            break;
    }
    $inc_smarty->assign('INC_NAVI_type', $type);
    $inc_smarty->assign('navi', util_get_c_navi($type));
    return $inc_smarty->ext_fetch('inc_navi.tpl');
}
Пример #3
0
/**
 * 未読メッセージの数を数える
 *
 * @return  num_message_not_is_read
 */
function db_message_count_c_message_not_is_read4c_member_to_id($c_member_id_to)
{
    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;
    }
    $sql = 'SELECT COUNT(*) FROM c_message WHERE c_member_id_to = ?' . ' AND is_read = 0 AND is_send = 1';
    $params = array(intval($c_member_id_to));
    return db_get_one($sql, $params);
}
Пример #4
0
/**
 * フレンドのランダムなリストを得る
 */
function db_friend_c_friend_list_random4c_member_id($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_LONG, __FUNCTION__, $funcargs);
        $is_recurred = false;
        return $result;
    }
    $sql = "SELECT cf.* , cm.nickname";
    $sql .= " FROM c_friend AS cf, c_member AS cm";
    $sql .= " WHERE cf.c_member_id_from = ?" . " AND cm.c_member_id=cf.c_member_id_to";
    $sql .= db_order_by_rand();
    $params = array(intval($c_member_id));
    $c_friend_list = db_get_all_limit($sql, 0, $limit, $params);
    foreach ($c_friend_list as $key => $value) {
        $c_friend_list[$key]['count_friend'] = db_friend_count_friends($value['c_member_id_to']);
    }
    return $c_friend_list;
}
Пример #5
0
/**
 * 日記コメント記入履歴取得
 *
 * @param   int $c_member_id
 * @param   int $limit
 * @return  array_of_array  (c_diary.*, nickname)
 */
function p_h_home_c_diary_my_comment_list4c_member_id($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;
    }
    $sql = 'SELECT cdcl.c_diary_id, cdcl.r_datetime AS maxdate, cd.*' . ' FROM c_diary_comment_log AS cdcl INNER JOIN c_diary AS cd USING (c_diary_id) ' . ' 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) {
        $sql .= ' OR (cd.public_flag = \'friend\' AND cd.c_member_id IN (' . $friend_ids . '))';
    }
    $sql .= ') ORDER BY maxdate DESC';
    $params = array(intval($c_member_id));
    $list = db_get_all_limit($sql, 0, $limit, $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']);
    }
    return $list;
}
Пример #6
0
/**
 * お気に入りメンバーリスト
 */
function db_bookmark_member_list($c_member_id, $limit = 0)
{
    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_LONG, __FUNCTION__, $funcargs);
        $is_recurred = false;
        return $result;
    }
    $sql = 'SELECT c_member_id_to AS c_member_id FROM c_bookmark' . ' WHERE c_member_id_from = ?' . db_order_by_rand();
    $params = array(intval($c_member_id));
    if ($limit) {
        $result = db_get_all_limit($sql, 0, intval($limit), $params);
    } else {
        $result = db_get_all($sql, $params);
    }
    foreach ($result as $key => $value) {
        $result[$key] = db_member_c_member4c_member_id_LIGHT($value['c_member_id']);
        $result[$key]['friend_count'] = db_friend_count_friends($value['c_member_id']);
    }
    return $result;
}
Пример #7
0
/**
 * 指定ユーザの登録画像の合計サイズを取得する
 * パラメータ省略された場合、全体の合計サイズを取得する
 * 
 * @param int $u
 * @param string $category
 * @return int 登録画像合計サイズ
 */
function db_image_get_image_filesize($u = 0, $category = '')
{
    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;
    }
    $sql = "SELECT SUM(filesize) FROM c_image_size ";
    $where = array();
    $params = array();
    if ($u) {
        $where[] = "(c_member_id = ?)";
        $params[] = $u;
    }
    if ($category) {
        if ($category != 'other') {
            $where[] = "(image_category = ?)";
        } else {
            $where[] = "((image_category = ?)";
        }
        $params[] = $category;
    }
    if ($where) {
        $sql .= " WHERE " . implode(' AND ', $where);
    }
    $other = array();
    if ($category == 'other') {
        if (!OPENPNE_ALBUM_LIMIT) {
            $sql .= " OR (image_category = ?)";
            $params[] = 'album';
        }
        if (!OPENPNE_IMAGE_DIARY_LIMIT) {
            $sql .= " OR (image_category = ?)";
            $params[] = 'diary';
        }
        if (!OPENPNE_IMAGE_COMMU_LIMIT) {
            $sql .= " OR (image_category = ?)";
            $params[] = 'commu';
        }
        $sql .= ")";
    }
    return db_get_one($sql, $params);
}
Пример #8
0
function db_portal_public_c_commmu_list($limit = 5)
{
    static $is_recurred = false;
    //再帰処理中かどうかの判定フラグ
    if (!$is_recurred) {
        //function cacheのために再帰処理を行う
        $is_recurred = true;
        $funcargs = func_get_args();
        $result = pne_cache_recursive_call(7200, __FUNCTION__, $funcargs);
        $is_recurred = false;
        return $result;
    }
    $select = "SELECT ct.*, c.name as commu_name, c.image_filename as image_filename";
    $from = " FROM c_commu_topic as ct" . " LEFT JOIN c_commu as c ON c.c_commu_id = ct.c_commu_id";
    $where = " WHERE c.is_open <> 'member'";
    $order = " ORDER BY ct.u_datetime DESC";
    $sql = $select . $from . $where . $order;
    $list = db_get_all_limit($sql, 0, $limit);
    foreach ($list as $key => $value) {
        $list[$key]['count_comments'] = db_portal_db_count_c_commu_topic_comments4c_commu_topic_id($value['c_commu_topic_id']);
    }
    return $list;
}
Пример #9
0
function db_member_c_profile_list()
{
    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;
    }
    $list = db_member_c_profile_list4null();
    $profile_list = array();
    foreach ($list as $value) {
        $profile_list[$value['name']] = $value;
        $profile_list[$value['name']]['options'] = db_member_c_profile_option_list4c_profile_id($value['c_profile_id']);
    }
    return $profile_list;
}