ユーザ一覧のソート項目およびソート順を記憶する改良

ユーザ一覧のソート項目およびソート順を記憶する改良

- Tatsuya Shirai の投稿
返信数: 0

 ユーザ一覧画面のソート項目の選択およびソート順を記憶します.

 現状ですと,特に指定がなければ'name'(名)での昇順ソートです.これを例えば電子メールアドレスや姓,所在地などでソートしたとします.並べ直したユーザの上から順番に編集を行っていこうと考えても,編集が終わって保存し,元のユーザ一覧の画面に戻るとソート項目およびソート順はデフォルトに戻ってしまいます.なお,フィルタは擬似セッション変数($SESSION)を用いて記憶していますので選択からやり直す必要はありません.同様に,ソート項目とソート順も擬似セッション変数を用いて記憶してしまおうという改良です.登録済みの学生のデータを一つ一つ修正していく時などに,とても役立つ改良です.

admin/user.php

(冒頭)

<?php // $Id: user.php,v 1.109.2.4 2008/07/10 08:36:02 skodak Exp $

    require_once('../config.php');
    require_once($CFG->libdir.'/adminlib.php');
    require_once($CFG->dirroot.'/user/filters/lib.php');

    $delete       = optional_param('delete', 0, PARAM_INT);
    $confirm      = optional_param('confirm', '', PARAM_ALPHANUM);   //md5 confirmation hash
    $confirmuser  = optional_param('confirmuser', 0, PARAM_INT);
// (Shirai172): ここからコメントアウト
//
  $sort         = optional_param('sort', 'name', PARAM_ALPHA);
//  $dir          = optional_param('dir', 'ASC', PARAM_ALPHA);
// (Shirai172): ここから追加
    $sort         = optional_param('sort', (empty($SESSION->usersort) ? 'name' : $SESSION->usersort), PARAM_ALPHA);
    $dir          = optional_param('dir',  (empty($SESSION->userdir)  ? 'ASC'  : $SESSION->userdir),  PARAM_ALPHA);
    $SESSION->usersort = $sort;
    $SESSION->userdir  = $dir;
// (Shirai172): ここまで追加
    $page         = optional_param('page', 0, PARAM_INT);
    $perpage      = optional_param('perpage', 30, PARAM_INT);        // how many per page
    $ru           = optional_param('ru', '2', PARAM_INT);            // show remote users
    $lu           = optional_param('lu', '2', PARAM_INT);            // show local users
    $acl          = optional_param('acl', '0', PARAM_INT);           // id of user to tweak mnet ACL (requires $access)

最大評点: お役立ち度: ★★★★★★★ (1)