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

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

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

2008-01-21 15:23:28 | SugarCRM

 もう、5.0が出るって言う時代にいまさら感があるけど、実際に出ている、実践!オープンソースCRMアプリケーション入門SugarCRM Developer's Manualにおけるカスタマイズの違いについて記述しているものが見当たらない気がするし(あるのかな?)、さらに、SugarCRM Developer's Manualでも、記述がぜんぜん足らない部分があるので、何回かに分けて、まとめてみようかと思います。




■SugarCRMは、モジュールという概念が基本で、これが2つにわかれてる

 SugarCRMには、モジュールという概念があります。
 このモジュールとは、機能やエンティティなどのまとまりです。
 このうち、エンティティのように
   ・1つのモノ・出来事などに相当し、
   ・1つのテーブルをもち(永続性があるので保存しないといけない)
   ・それに対して、CRUDがある
 ようなものは、「SugarBeanを継承したモジュール」になります。
 そうでない、グラフ表示(ダッシュボード)などは、「SugarBeanを継承”しない”モジュール」となります。つまり、モジュールは、SugarBeanを継承するかどうかに分かれます。

 どちらも、Sugarのホームの下にあるModulesフォルダ(ディレクトリ)の下に置かれます。




■それぞれのモジュールの作成方法の相違点と共通点

 これらのモジュールを作成する(=カスタマイズのため追加する)場合、以下のファイル等が必要になります。ここで、Mytestsというモジュールをつくるとすると・・

(1)タブ部分を定義する言語ファイル(ja.lang.phpとen_us.lang.php)
(2)モジュールを登録するところ
(3)モジュールフォルダ(Mytests)
    index.php
    Forms.php
    languageフォルダ (モジュールの言語のフォルダ)
     ja.lang.php
     en_us.lang.php

必要最小限のファイルとフォルダは、上記のとおりです。なお、モジュールフォルダ内のindex.phpとForms.phpはとりあえず、ファイルを作るだけで、何も書かなくても動きます。この場合、languageフォルダ内にある、ja.lang.phpとen_us.lang.phpも何も書かなくてOKです。

 で、これだけそろえると、SugarBeanを継承”しない”最小限のモジュールが作れます。継承する場合は、このほかにまだまだファイルが必要ですが、とりあえず、継承しないほうを作成してしまいましょう。




■作成の仕方で、さらに2とおりにわかれる。

 さらに、作成の仕方で、2とおりに分かれます。

 1つは、「SugarCRM Developer's Manual」に出ているように、インストーラーを作”らず”、直接、修正してしまう方法です。もうひとつは、「実践!オープンソースCRMアプリケーション入門」にあるように、インストーラーを作る方法です。この違いで、上記、(1)、(2)の作り方が違います。
 今回は、簡単な「SugarCRM Developer's Manual」に出ている、インストーラー作成しない方法を説明します。なお、このインストーラーを作らない方法は、SugarCRMを継承する場合、継承しない場合、どちらでもありえるのですが、継承する場合、作業工程が増えます。今回は継承”しない”場合を説明します。




■作る手順
 「SugarCRM Developer's Manual」198ページ上にあるとおりなのですが、ちょっと説明します。

●まず、「(3)モジュールフォルダ(Mytests)」を作成する
 (あ)モジュール名のフォルダー(Mytests)を Sugarのホーム/modules/の下に作成します
 (い)Sugarのホーム/modules/Mytestsが出来たと思いますので、そこに
       index.php
       Forms.php
    ファイルを作ってください(中身空で結構です)。
 (う)Sugarのホーム/modules/Mytestsの下に、languageフォルダを作る
 (え)Sugarのホーム/modules/Mytests/languageフォルダの下に、  
     ja.lang.php
     en_us.lang.php
    ファイルを作ってください(中身空で結構です)。

●つぎに「(2)モジュールを登録」をします
 (お)SugarCRMのフォルダ/include/modules.phpを開いてください
    (注意:modulesじゃないですよ、includeの下!)
      $moduleList[] = 'モジュール名';
    が並んでいると思うので、そこに、
      $moduleList[] = 'Mytests';
    も追加してあげてください。
 ※参考:インストーラーを使った場合は、ここではないところに追加され、そのファイルを、
  このmodules.phpの最後あたりの行で、インクルードしています。

●そしたら「(1)タブ部分を定義する言語ファイル」をいれます。
  (か)SugarCRMのフォルダ/custom/include/languageフォルダを開きます。
     なければ、作ってください。
    (注意:modulesでも、ただのincludeでもないですよ、custom/includeの下のlanguage!)
  (き)そしたら、そのSugarCRMのフォルダ/custom/include/languageフォルダの下に
     en_us.lang.phpファイルを作成します
  (く)SugarCRMのフォルダ/custom/include/language/en_us.lang.phpを開いて
<?php
$app_list_strings['moduleList']['Mytests']='mytest';
?>

      (上記<>は本当は半角)
      を追加します(=の右辺の'mytest'は好きなタブにしてくださいね)
  (け)同様に、SugarCRMのフォルダ/custom/include/languageフォルダの下に
     今度は、 ja.lang.phpファイルを作成します
  (こ)SugarCRMのフォルダ/custom/include/language/ja.lang.phpを開いて
<?php
$app_list_strings['moduleList']['Mytests']='mytestj';
?>

      (上記<>は本当は半角)
      を追加します(=の右辺の'mytestj'は好きなタブにしてくださいね)

 ※参考:インストーラーを使った場合は、ここではない、奇想天外なところに追加されます。

●開きます
  (さ)SugarをAdmin権限ある人が立ち上げてください(Adminでなくても大丈夫かなあ??)
    →この時点では、タブはみえません。
  (し)上の「管理」をクリックしてください。
  (す)そしたら「スタジオ」の「タブを設定」
  (せ)非表示タブに(こ)で設定した名前が出ています。それを表示タブのほうに持ってきて保存
  (そ)ログオフして再度ログオンすると、ちゃんとできてます。
     タブをクリックすると・・・なにも表示されません(^^;)




ってことで、次回は、ここに表示させる方法、DBアクセス、ユーザー情報、メニューについてなどです。



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

「データをすべてファイル名扱いにして高速検索」の話。

2008-01-21 11:33:05 | Weblog

ここのスラッシュドットの記事
データをすべてファイル名扱いにして高速検索を実現?
http://slashdot.jp/articles/08/01/20/2052246.shtml

(以下斜体は上記サイトより引用)

ITproに、「既存のDB技術と一線を画し、高速検索を実現する」というふれこみのデータ検索技術が紹介されている。 HOWSという企業が開発した「ISSEI」というVisualBasicで開発されたシステムらしい


って、これ、ウィリアムのいたずら、去年の11月に、すでに
1兆件のデータ検索が4秒って言う話
http://blog.goo.ne.jp/xmldtp/e/7ab725457d09029bdc73d157833edf20

っていうので、取り上げているんだけど・・・(^^;)
ちょっと、古い話では・・

スラッシュドットでは、ぼろくそにたたかれてたけど、
まあ、早くて、それでお客さんも納得しているなら、それはそれで、いいと思う。
その手法がどんなもんであっても・・

ただ、
元の記事
http://itpro.nikkeibp.co.jp/article/COLUMN/20080104/290425/

に(以下斜体は上記ITProからの引用)

ISSEI専用チップをメーカーと開発するのが目標

(-_-;)文章が矛盾してるんじゃない・・・・

上で、従来のRDBは、

「ファイルの入出力にかかる時間がボトルネックで、検索速度が上がらないとの問題を抱えていた」


といっているのだから、もしそれが本当ならば(言っていることが本当に正しいかどうかは別として、仮に正しいとすると)チップを作るまでもなく、検索対象をオンメモリで置いて検索してしまえば、そっちのほうが、早いんでないかい??


コクヨや日立製作所もISSEIに注目し、活用を検討している。

まじっすか・・(-_-;)

P.S 一般的に、以前に書いたように、インデックスなどにファイル名を使ってしまうのは、インデックスのB木を実現するのがめんどっちいときに、やっちゃうんだけどね。そー積極的に言われると。。



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