Beispiel #1
0
/**
 * メンバー情報を取得する
 *
 * @param int $c_member_id
 * @param bool $is_secure `c_member_secure`の項目を取得するかどうか(OPENPNE_AUTH_MODEがemail以外の場合はc_usernameも取得する)
 * @param bool $with_profile `c_member_profile`の項目を取得するかどうか
 * @param string $public_flag プロフィール項目を取得する場合の公開設定(public, friend, private)
 * @return array メンバー情報
 */
function db_member_c_member4c_member_id($c_member_id, $is_secure = false, $with_profile = false, $public_flag = 'public')
{
    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;
    }
    if ($GLOBALS['_OPENPNE_DSN_LIST']['main']['dsn']['phptype'] == 'pgsql') {
        $sql = "SELECT *,case when access_date = '0001-01-01 00:00:00 BC' THEN '0000-00-00 00:00:00' ELSE to_char(access_date,'YYYY-MM-DD HH24:MI:SS') END as access_date" . " FROM c_member WHERE c_member_id = ?";
    } else {
        $sql = 'SELECT * FROM c_member WHERE c_member_id = ?';
    }
    $params = array(intval($c_member_id));
    if (!($c_member = db_get_row($sql, $params))) {
        return array();
    }
    if ($is_secure) {
        $c_member['secure'] = db_member_c_member_secure4c_member_id($c_member_id);
    }
    if ($with_profile) {
        $c_member['profile'] = db_member_c_member_profile_list4c_member_id($c_member_id, $public_flag);
    }
    // public_flag_birth_year, public_flag_birth_month_day
    switch ($public_flag) {
        case 'public':
            if ($c_member['public_flag_birth_year'] !== 'public') {
                unset($c_member['birth_year']);
            }
            if ($c_member['public_flag_birth_month_day'] !== 'public') {
                unset($c_member['birth_month']);
                unset($c_member['birth_day']);
            }
            break;
        case 'friend':
            if ($c_member['public_flag_birth_year'] === 'private') {
                unset($c_member['birth_year']);
            }
            if ($c_member['public_flag_birth_month_day'] === 'private') {
                unset($c_member['birth_month']);
                unset($c_member['birth_day']);
            }
            break;
    }
    if (OPENPNE_AUTH_MODE != 'email' && $is_secure) {
        $c_member['username'] = db_member_username4c_member_id($c_member_id);
    }
    return $c_member;
}
Beispiel #2
0
 function execute($requests)
 {
     if (!OPENPNE_USE_POINT_RANK || !OPENPNE_IS_POINT_ADMIN && $requests['target_c_member_id'] == 1) {
         admin_client_redirect('top', '指定されたページにはアクセスできません');
     }
     $lite = db_member_c_member4c_member_id_LIGHT($requests['target_c_member_id']);
     $prof = db_member_c_member_profile_list4c_member_id($requests['target_c_member_id'], "private");
     $point = intval($prof['PNE_POINT']['value']);
     $item = array("c_member_id" => $requests['target_c_member_id'], "nickname" => $lite['nickname'], "point" => $point);
     $v = array();
     $v['point'] = $point;
     $v['item'] = $item;
     $this->set($v);
     return 'success';
 }
Beispiel #3
0
/**
 * @copyright 2005-2008 OpenPNE Project
 * @license   http://www.php.net/license/3_01.txt PHP License 3.01
 */
function db_bookmark_list($c_member_id, $page, $page_size)
{
    $sql = 'SELECT c_member_id, nickname, image_filename, access_date' . ' FROM c_bookmark INNER JOIN c_member' . ' ON c_bookmark.c_member_id_to = c_member.c_member_id' . ' WHERE c_bookmark.c_member_id_from = ?' . ' ORDER BY c_bookmark.r_datetime DESC';
    $params = array(intval($c_member_id));
    $lst = db_get_all_page($sql, $page, $page_size, $params);
    foreach ($lst as $key => $value) {
        $lst[$key]['profile'] = db_member_c_member_profile_list4c_member_id($value['c_member_id']);
        $lst[$key]['last_login'] = p_f_home_last_login4access_date($value['access_date']);
    }
    $sql = 'SELECT COUNT(*) FROM c_bookmark INNER JOIN c_member' . ' ON c_bookmark.c_member_id_to = c_member.c_member_id' . ' WHERE c_bookmark.c_member_id_from = ?';
    $total_num = db_get_one($sql, $params);
    if ($total_num === 0) {
        $prev = $next = false;
    } else {
        $total_page_num = ceil($total_num / $page_size);
        $next = $page < $total_page_num ? true : false;
        $prev = $page > 1 ? true : false;
    }
    return array($lst, $prev, $next, $total_num);
}
function db_common_c_member_profile_list4c_member_id($c_member_id, $public_flag = 'public')
{
    return db_member_c_member_profile_list4c_member_id($c_member_id, $public_flag);
}