こんにちは。
表題の件、今までに話題になったことはありますでしょうか。
リッチテキストエディタからイメージ挿入、ファイルアップロードの時に出てくるリソースブラウザでのファイルのソート順がメチャクチャなのが気になってはいたのですが、ブラウザの検索機能で目標にたどり着けるので「仕様です」と逃げていたのですが、今日もクライアントから質問が出たのでちょっと改造してみました。
まずは、 /manager/browser/mcpuk/connectors/php/Commands/GetFolders.php の42行目あたり
while (($filename=readdir($dh))!==false) {
if (($filename!=".")&&($filename!="..")) {
if (is_dir($this->real_cwd."/$filename")) {
を
//sort fix start
$tmpfiles=array();
while (false !== ($filename = readdir($dh))) {
$filestmp[] = $filename; //先に一覧を取得して
}
natcasesort($filestmp); //わかりやい形に配列ソート
// while (($filename=readdir($dh))!==false) {
foreach($filestmp as $filename) { //保持していたものを取り出す。
//end
if (($filename!=".")&&($filename!="..")) {
if (is_dir($this->real_cwd."/$filename")) {
とすると左のツリー一覧が見やすくなり、次に /manager/browser/mcpuk/connectors/php/Commands/GetFoldersAndFiles.php の 67行目あたり
$files=array();
if ($dh=opendir($this->real_cwd)) {
while (($filename=readdir($dh))!==false) {
if (($filename!=".")&&($filename!="..")) {
を
$files=array();
if ($dh=opendir($this->real_cwd)) {
//sort fix start
$tmpfiles=array();
while (false !== ($filename = readdir($dh))) {
$tmpfiles[] = $filename;
}
natcasesort($tmpfiles); //フォルダに関してはこの下のルーチンで中身を取り出しちゃうので先にソート
//while (($filename=readdir($dh))!==false) {
foreach($tmpfiles as $filename) {
//end
if (($filename!=".")&&($filename!="..")) {
とすると右側の一覧が見やすくなります。なお、厳密なテストはしてません。
それでは。