ここの情報は古いです。ご理解頂いた上でお取り扱いください。

Changeset 10782


Ignore:
Timestamp:
Feb 17, 2009, 4:36:38 PM (11 years ago)
Author:
ShogoKawahara
Message:

#1163:絞り込み条件を絞る際のリクエストパラメータを、プロフィールとそれ以外で分けるようにした(2.12)

Location:
OpenPNE/branches/stable-2.12.x/webapp/modules/admin
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • OpenPNE/branches/stable-2.12.x/webapp/modules/admin/lib/db_admin.php

    r10765 r10782  
    661661    // $orderの例:id_1 , id_2
    662662    // 「-」の前が項目名であとが1なら昇順 2なら降順
     663    // プロフィール識別子であれば除外
    663664    $is_order = false;
    664     if (!empty($type)) {
     665    if (!empty($type) && !(isset($type[2]) && !$type[2] == 'p')) {
    665666        $is_order = true;
    666667
     
    823824            }
    824825
    825             if($value['name'] == $type[0]) {
     826            if($value['name'] == $type[0] && isset($type[2]) && $type[2] == 'p') {
    826827                $sql = 'SELECT c_member_id FROM c_member_profile WHERE c_profile_id = ?';
    827828
     
    876877 * メンバーIDリスト取得(絞り込み対応)
    877878 */
    878 function _db_admin_c_member_id_list($cond_list, $order = '')
     879function _db_admin_c_member_id_list($cond_list, $profile_cond_list, $order = '')
    879880{
    880881    $type = explode('-', $order);
     
    897898
    898899    // プロフィール項目で絞り込み
    899     $ids = db_admin_c_member_id_list4cond_c_profile($ids, $cond_list, $type);
     900    $ids = db_admin_c_member_id_list4cond_c_profile($ids, $profile_cond_list, $type);
    900901
    901902    return $ids;
     
    906907 * 誕生年+プロフィール(select,radioのみ)
    907908 */
    908 function _db_admin_c_member_list($page, $page_size, &$pager, $cond_list, $order)
    909 {
    910     $ids = _db_admin_c_member_id_list($cond_list, $order);
     909function _db_admin_c_member_list($page, $page_size, &$pager, $cond_list, $profile_cond_list,$order)
     910{
     911    $ids = _db_admin_c_member_id_list($cond_list, $profile_cond_list, $order);
    911912    $total_num = count($ids);
    912913    $ids = array_slice($ids, ($page - 1) * $page_size, $page_size);
     
    946947        $cond_list['e_year'] = intval($requests['e_year']);
    947948    }
     949
     950    // 最終ログイン時間
     951    if (!empty($requests['last_login'])) {
     952        $cond_list['last_login'] = intval($requests['last_login']);
     953    }
     954
     955    //PCメールアドレスの有無
     956    if (!empty($requests['is_pc_address'])) {
     957        $cond_list['is_pc_address'] = intval($requests['is_pc_address']);
     958    }
     959    //携帯メールアドレスの有無
     960    if (!empty($requests['is_ktai_address'])) {
     961        $cond_list['is_ktai_address'] = intval($requests['is_ktai_address']);
     962    }
     963
     964    //ポイント
     965    if (isset($requests['s_rank']) && $requests['s_rank'] !== '') {
     966        $cond_list['s_rank'] = intval($requests['s_rank']);
     967    }
     968    if (isset($requests['e_rank']) && $requests['e_rank'] !== '') {
     969        $cond_list['e_rank'] = intval($requests['e_rank']);
     970    }
     971
     972    return $cond_list;
     973}
     974
     975/**
     976 * メンバー絞り込みパラメータ取得(プロフィール)
     977 */
     978function validate_profile_cond($requests)
     979{
     980    $cond_list = array();
     981
    948982    //プロフィール
    949983    $profile_list = db_member_c_profile_list();
     
    954988        }
    955989    }
    956 
    957     // 最終ログイン時間
    958     if (!empty($requests['last_login'])) {
    959         $cond_list['last_login'] = intval($requests['last_login']);
    960     }
    961 
    962     //PCメールアドレスの有無
    963     if (!empty($requests['is_pc_address'])) {
    964         $cond_list['is_pc_address'] = intval($requests['is_pc_address']);
    965     }
    966     //携帯メールアドレスの有無
    967     if (!empty($requests['is_ktai_address'])) {
    968         $cond_list['is_ktai_address'] = intval($requests['is_ktai_address']);
    969     }
    970 
    971     //ポイント
    972     if (isset($requests['s_rank']) && $requests['s_rank'] !== '') {
    973         $cond_list['s_rank'] = intval($requests['s_rank']);
    974     }
    975     if (isset($requests['e_rank']) && $requests['e_rank'] !== '') {
    976         $cond_list['e_rank'] = intval($requests['e_rank']);
    977     }
    978 
    979990    return $cond_list;
    980991}
  • OpenPNE/branches/stable-2.12.x/webapp/modules/admin/page/list_c_member.php

    r10615 r10782  
    2222        foreach ($cond_list as $key => $value) {
    2323            $cond .= '&cond['.$key.']='.$value;
     24        }
     25
     26        $profile_cond_list = validate_profile_cond((array)$_REQUEST['profile']);
     27        $v['profile_cond_list'] = $profile_cond_list;
     28
     29        foreach ($profile_cond_list as $key => $value) {
     30            $cond .= '&profile['.$key.']='.$value;
    2431        }
    2532
     
    6168            }
    6269        } else {
    63             $v['c_member_list'] = _db_admin_c_member_list($requests['page'], $requests['page_size'], $pager, $cond_list, $order);
     70            $v['c_member_list'] = _db_admin_c_member_list($requests['page'], $requests['page_size'], $pager, $cond_list, $profile_cond_list, $order);
    6471        }
    6572        foreach ($v['c_member_list'] as $key => $value) {
  • OpenPNE/branches/stable-2.12.x/webapp/modules/admin/templates/list_c_member.tpl

    r10615 r10782  
    4242({foreach from=$cond_list key=key item=item})
    4343<input type="hidden" name="cond[({$key})]" value="({$item})" />
     44({/foreach})
     45({foreach from=$profile_cond_list key=key item=item})
     46<input type="hidden" name="profile[({$key})]" value="({$item})" />
    4447({/foreach})
    4548<strong>表示件数</strong>:
     
    9699                        ({foreach from=$c_profile_list item=prof})
    97100                        ({if $prof.name !== 'PNE_POINT'})
    98                         <th rowspan="2"><a href="?m=({$module_name})&amp;a=page_({$hash_tbl->hash('list_c_member')})&amp;page_size=({$pager.page_size})&amp;order=({$prof.name})-1({$cond})">▲</a>({$prof.caption})<a href="?m=({$module_name})&amp;a=page_({$hash_tbl->hash('list_c_member')})&amp;page_size=({$pager.page_size})&amp;order=({$prof.name})-2({$cond})">▼</a></th>
     101                        <th rowspan="2"><a href="?m=({$module_name})&amp;a=page_({$hash_tbl->hash('list_c_member')})&amp;page_size=({$pager.page_size})&amp;order=({$prof.name})-1-p({$cond})">▲</a>({$prof.caption})<a href="?m=({$module_name})&amp;a=page_({$hash_tbl->hash('list_c_member')})&amp;page_size=({$pager.page_size})&amp;order=({$prof.name})-2-p({$cond})">▼</a></th>
    99102                        ({/if})
    100103                        ({/foreach})
     
    158161                        <th>
    159162                        ({if $prof.form_type == 'radio' || $prof.form_type == 'select'})
    160                         <select class="basic" onChange="Link('?m=({$module_name})&amp;a=page_({$hash_tbl->hash('list_c_member')})&amp;page_size=({$pager.page_size})&amp;order=({$requests.order})({$cond})&amp;cond[({$prof.name})]='+this.options[this.selectedIndex].value);">
     163                        <select class="basic" onChange="Link('?m=({$module_name})&amp;a=page_({$hash_tbl->hash('list_c_member')})&amp;page_size=({$pager.page_size})&amp;order=({$requests.order})({$cond})&amp;profile[({$prof.name})]='+this.options[this.selectedIndex].value);">
    161164                        <option value="">▼選択</option>
    162165                        ({foreach item=item from=$prof.options})
    163                         <option ({if $cond_list[$prof.name]==$item.c_profile_option_id})selected({/if}) value="({$item.c_profile_option_id})"({if $c_member.profile[$profile.name].value == $item.value}) selected="selected"({/if})>({$item.value|default:"--"})</option>
     166                        <option ({if $profile_cond_list[$prof.name]==$item.c_profile_option_id})selected({/if}) value="({$item.c_profile_option_id})"({if $c_member.profile[$profile.name].value == $item.value}) selected="selected"({/if})>({$item.value|default:"--"})</option>
    164167                        ({/foreach})
    165168                        </select>
Note: See TracChangeset for help on using the changeset viewer.