エクスポートするデータの日本語化

出典: 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している場合は、もう一工夫必要になるが、モジュールのテーブルの内容だけなら、上記の変更で十分。


最終更新 13:18, 2009年2月27日 (金)。   このページは 2,106 回アクセスされました。