エクスポートするデータの日本語化
出典: SugarForum.jp
Sugarクラスのcreate_export_query()メソッドを上書きしても、基本的にはSQLデータベースの内容を表示するだけになるので、日本語化はやりにくい。アップグレードセーフではないが、下記ファイルを書き換えてしまうのが手っ取り早い。
SugarRoot/include/export_utils.php
export()関数が定義されているので、関数の最初に
global $app_list_strings;#CogniTom
を加えておく。続けて、190行目あたり、
$header = implode("\"".getDelimiter()."\"", array_values($fields_array));
とあるところを、
$header_array = array();
foreach (array_values($fields_array) as $h)
$header_array[] = isset($focus->field_name_map[$h]['vname'])
? translate($focus->field_name_map[$h]['vname'], $type)
: $h;
$header = implode("\"".getDelimiter()."\"", $header_array);
に置き換える。これで、ヘッダの文字列が日本語になる。
ENUMのフィールドを日本語化するには、220行目あたりに、
if(isset($focus->field_name_map[$fields_array[$key]]['type'])
&& $focus->field_name_map[$fields_array[$key]]['type'] == 'enum')
$value = $app_list_strings[$focus->field_name_map[$fields_array[$key]]['options']][$value];
を追加。
Sugarクラスのcreate_export_query()メソッドを上書きして、他テーブルとJOINしている場合は、もう一工夫必要になるが、モジュールのテーブルの内容だけなら、上記の変更で十分。