ウィリアムのいたずらの、まちあるき、たべあるき

ウィリアムのいたずらが、街歩き、食べ物、音楽等の個人的見解を主に書くブログです(たま~にコンピューター関係も)

フリーのデータマイニングソフトについてのメモメモ・・

2008-01-23 17:23:38 | Weblog

フリーのデータマイニングソフトにかんして、RとかWekaとかあるみたいだけど、
それについてのメモメモ

・Rについて、いろいろまとまっているところ

統計処理ソフトウェアRについてのTips
http://phi.med.gunma-u.ac.jp/swtips/R.html


・・Rは、本も売ってますよね。

・Wekaの使い方についてまとまっているところ
データマイニング・WEKA
http://blogs.yahoo.co.jp/pironotakarabako



  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

SugarCRM 4.5のカスタマイズのまとめ(3)。

2008-01-23 13:30:24 | SugarCRM

 シリーズSugarCRM 4.5のカスタマイズのまとめについて、今SugarBeanを継承しないモジュールを作って、メイン画面の表示の仕方は説明したので、左側のメニュー画面に行こうとしています。

 で、その前に、言語ファイルといわれる、日本語と英語の切り替えのためのファイルがあるので、それと、$mod_stringsについて説明します。




■各国語切り替え

 SugarCRMにおいては、各国語を切り替えるのに、言語ファイルを切り替えることによって行います。
 表示部分のことばを、その言語ファイルにいれて、保持しています。

 この言語ファイルには2種類あります。
  1つは、モジュールごとに用意されている言語ファイル
  もう1つは、モジュール共通の言語ファイルです。




■モジュールごとの言語ファイル

 モジュールごとに表示内容について各国語で記述した言語ファイルは、
    Sugarのホーム/modules/モジュール名/language
 の下にあります。
    日本語は、ja.lang.php
    英語は、en_us.lang.php
 です(この2つは空で作ってあります)

内容はどちらも、

$mod_strings = array (
'LBL_MODULE_NAME' => '取引先' ,
'LBL_MODULE_TITLE' => '取引先: ホーム' ,
     :
'LBL_MISC' => 'その他' );
(実際には>は半角)

のように、$mod_stringsを配列で宣言し、そこで、

  項目名=>表示内容

で宣言していきます。表示の項目名はたいていLBL_ではじめ、大文字です。
各モジュール内のPHPファイルでは、$mod_strings['LBL_MODULE_NAME']のような形で利用します。
こうすると、プログラマー側は、今どの言語化を意識しないでプログラムできます。

なお、この$mod_stringsは、モジュールが切り替わるたびに、内容が変わるわけです。




■モジュール共通の言語ファイル

 さてここで、どのモジュールにおいても、モジュールの上にあるタブは同じです。
 このような、モジュール間共通の変数は、$app_list_stringsにはいっていて、
 $app_list_strings['moduleList'][モジュール名]に、表示モジュール名が入っています。

 そして、これを設定するのに、

 Sugarのホーム/custom/include/langage

 の下につくりました。
    日本語は、ja.lang.php
    英語は、en_us.lang.php
 です(この2つは空で作ってあります)。

 そこに
$app_list_strings['moduleList']['Tests']='test';
 のように書きました。

 ただし、インストーラーからインストールする場合は、ここ以外のところに書き出され、読み込まれます(その場合でも、各国語用にファイルは分かれる)。




■日本語ファイルにおける注意

 言語ファイルにおける日本語や、ほかに日本語を含むファイルにおいて、文字コードはUTF-8で保存してください。そして”BOM無し”にしてください。
 メモ帳でUTF-8にして保存すると(メモ帳では見えませんが)BOMがつきます。そうすると、エラーになります。なので、BOMをはずす必要があります。文字コード変換ツール「KanjiTranslator 1.5」等を使うと出来ます。




■メニューの追加

 ということで、具体的にメニューを追加します。

(1)言語ファイルの作成
    Sugarのホーム/modules/Tests/language
 (つまり、Testsモジュールのlanguageフォルダ)の下の、ja.lang.phpを以下のように
<?php
if(!defined('sugarEntry') || !sugarEntry) die('Not A Valid Entry Point');
$mod_strings = array (
  'LBL_GOHOME' => 'ごーほーむ',
);
?>

(上記<>は、本当は半角)

 en_us.lang.phpを以下のように
<?php
if(!defined('sugarEntry') || !sugarEntry) die('Not A Valid Entry Point');
$mod_strings = array (
  'LBL_GOHOME' => 'Go Home',
);
?>

(上記<>は、本当は半角)

 作成します。
 このとき、<?の前、?>の後に不要なスペースなど、入れないでください。
 エラーになります(当然、上記に書いたBOMも、とります)。


(2)メニューファイルの作成

 Sugarのホーム/modules/Tests (つまり、Testモジュールのフォルダ)に
Menu.phpというファイルを作成し、
<?php
if(!defined('sugarEntry') || !sugarEntry) die('Not A Valid Entry Point'); 

global $mod_strings, $app_strings;

$module_menu[]=Array("index.php?module=Home&action=index", $mod_strings['LBL_GOHOME'],"minus");

?>

(上記<>は、本当は半角)

のように記述します。
これで、Testタブをクリックするとメニューが出てきます。




■Menu.phpファイル

 つまり、Menu.phpファイルで、 $module_menu[]に配列を追加していくことで、メニューが追加されます。
$module_menu[]=Array("行き先URL", 表示内容,アイコンの画像);
 の順に指定します。

 アイコンの画像は、
    Sugarのホーム/themes/現在使用中のテーマ/imagesの下にあります。
アイコンの画像.gifファイルがメニューのアイコン(文字の前についている)に表示されます。

なお、今回は、やっていませんが、既存の他のモジュールのMenu.phpではACLController::checkAccessを行って、起動可能なときだけ、表示していると思います。




  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする