うだがわです。
利用者よりコース参加者リストで目的のユーザを探すのに手間が掛かり、A-Zで表示されているユーザリストを日本語対応できないかと問い合わせがあり、考えてみた結果以下のような改良案を思いつきました。
ただ、もう少し使いやすく出来ないかと考えあぐねているため、皆様のご意見を頂きたいと考えています。
Moodleのソース書き換えは以下のようになっています。
・画面上部のA-Zのアルファベットをあ-んA-Zに拡張
<?php
$string['alphabet'] = 'ア,イ,ウ,エ,オ,カ,キ,ク,ケ,コ,サ,シ,ス,セ,ソ,タ,チ,ツ,テ,ト,ナ,ニ,ヌ,ネ,ノ,ハ,ヒ,フ,ヘ,ホ,マ,ミ,ム,メ,モ,ヤ,ユ,ヨ,ラ,リ,ル,レ,ロ,ワ,ヲ,ン'
.',ガ,ギ,グ,ゲ,ゴ,ザ,ジ,ズ,ゼ,ゾ,ダ,ヂ,ヅ,デ,ド,バ,ビ,ブ,ベ,ボ,パ,ピ,プ,ペ,ポ'
.',A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z';
・画面上部の文字でフリガナを検索対象に追加する
$ diff lib/tablelib.php.bak lib/tablelib.php
620c620,621
< $conditions[] = $DB->sql_like('firstname', ':ifirstc'.$i, false, false);
---
> $conditionsfirst = array();
> $conditionsfirst[] = $DB->sql_like('firstname', ':ifirstc'.$i, false, false);
621a623,625
> $conditionsfirst[] = $DB->sql_like('firstnamephonetic', ':ifirstpc'.$i, false, false);
> $params['ifirstpc'.$i] = $this->sess->i_first.'%';
> $conditions[] = implode(" OR ", $conditionsfirst);
624c628,629
< $conditions[] = $DB->sql_like('lastname', ':ilastc'.$i, false, false);
---
> $conditionslast = array();
> $conditionslast[] = $DB->sql_like('lastname', ':ilastc'.$i, false, false);
625a631,633
> $conditionslast[] = $DB->sql_like('lastnamephonetic', ':ilastpc'.$i, false, false);
> $params['ilastpc'.$i] = $this->sess->i_last.'%';
> $conditions[] = implode(" OR ", $conditionslast);
・画面下部の検索ボックスでフリガナを検索対象に追加にする
$ diff user/index.php.bak user/index.php
461a462
> $fullnamephonetic = $DB->sql_fullname('u.firstnamephonetic', 'u.lastnamephonetic');
463,464c464,466
< " OR ". $DB->sql_like('email', ':search2', false, false) .
< " OR ". $DB->sql_like('idnumber', ':search3', false, false) .") ";
---
> " OR ". $DB->sql_like($fullnamephonetic, ':search2', false, false) .
> " OR ". $DB->sql_like('email', ':search3', false, false) .
> " OR ". $DB->sql_like('idnumber', ':search4', false, false) .") ";
467a470
> $params['search4'] = "%$search%";