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

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

SugarCRMのサブパネルの設定方法

2010-10-22 17:10:38 | SugarCRM

SugarCRMのサブパネルの設定方法を、てっきり忘れていたので書いておく

■サブパネルとは

詳細画面や編集画面で表示すると、以下のように、下にタブが付いてきて、
そのデータに関連ある情報(モジュール)が見れる。この下の部分がサブパネル。

これによって、SugarCRMでは、デフォルトで結びつきが無いものを結び付けられたり、
モジュールビルダーで新たに作ったモジュール(たとえば商品を作ったとすると)と、
既存のモジュール(たとえば取引先)を結びつけることができる。
(この場合、その取引先が、かった商品って言う意味)




■設定方法

adminになって、「管理」→「スタジオ」からできる。

 関連付けたいモジュールをクリックすると、以下の画面がでる。

 「関連」をクリック

「関連を追加」をクリック
「関連先」と「関連元」を選ぶ。このとき、タイプをかならず、「多」対「多」にしておくこと。

あとは、保存/配置をクリック。

つぎから、上記のサブパネルに追加されたものが見れる。




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

SugarCRMのOSCの様子(おまけ:SugarCRM+FLASHで全システム作れる?)

2010-03-03 11:57:24 | SugarCRM


まえに、OSC2010 Tokyo/Springまとめを書いて、「あとで、詳しく書く予定」と書いたものについて

まずは、SugarCRM。




■SugarCRMの発表-前半

SugarCRMの発表は、大きく2つ。

・SugerCRMの機能
・SugarCRMをCRMとは関係なく、アプリケーション開発フレームワークとして使う方法について

 で、この発表の資料は、ここのツイートによると、「資料、Googleグループ(sugarforumjp)に上げました!」とあるけど、実際には、GoogleのSugarforum.jpは、メンバーにならないとアクセスできないようなので(一般のhttp://sugarforum.jp/とは違う)、普通の人が見れるものではない(メンバーに、普通の人がなれるのか・・・は、よくしらない??)

 発表のはじめのほうは、機能説明をサイクリックスの人がやっていたけど、OSCのあの限られた時間で、機能の概要を説明しようという暴挙に出たため、当然時間が押してしまった・・・わりによくわかんない(^_^;)
 こーいうときは、ユースケースを絞って、はじめから流す

  リード(潜在顧客)→展示会の宣伝→顧客になる→商談→その状況確認

 など、一連のストーリーを作って説明しないと、たぶん間に合わない。




■SugarCRMの発表-後半

 で、そんなこんなで、はじめに時間を取られてしまったため、あとの肝心の話ができていなかった。

 はじめの話では、SugarCRMとセールスフォースの違いは分からない。

 この違いは、SugarCRMでは、CRMと全く関係ない業務アプリが作れ(たぶん、セールスフォースでもここまではできる)、データをクラウド上でなく、自社にもつため、そのデータをAccessやExcelとODBC接続により、つなげることができるということだ(=つまり、SugerCRMのデータをもとに、Accessから帳票出力できる)。

 そこで、まず、「SugarCRMでは、CRMと全く関係ない業務アプリが作れるよ」ということを説明する必要がある。そこまでは説明できていたけど、そこで止まってしまった。もったいない・・・




■SugarCRMの発表-言えてなかった大事なこと

 説明できていなかったうち、大切なことはは、

「SugarCRMでは、CRMと全く関係ない業務アプリが作れるよ」

なぜ?

モジュールビルダーで、
 ・自分の好きなモジュール(=RDBでいう、テーブルやビューと考えてください)が作れて
 ・その操作画面がある程度カスタマイズして作れる。
  (=Accessのフォームウィザードみたいな感じ)

そして、スタジオを使うと、
 ・SugarCRMのモジュールを全部表示させないで
 ・自分の作ったモジュールだけを表示できる

この2つの操作をやると、結局

 自分の好きなモジュール(=テーブルやビュー)を簡単に作って(プログラム不要)
 そのモジュールの表示画面を作って
 それだけを表示できる

=SugarCRMでは、CRMと全く関係ない業務アプリが作れるよ

ということになる。

 ただ、この場合、画面に制約を受ける(「モジュールの表示画面」は、ノンプログラムで作れるが、その分、制約がある)
ということ、はっきりとは言っていなかった気がする。




■発表より先-カスタマイズの仕方

 で、さらにその先。

 もし、プログラムに手を入れてしまうと、その部分、バージョンアップしたらどうなるんだ?という話が出てくるが、SugarCRMの場合、「ノンプログラム」で、かなりの部分ができてしまう。

 システムは

  ・定型業務
  ・非定型業務
     ・DBマスタ管理
     ・検索等情報収集

 があるけど、DBのテーブル作成、マスタ管理作成は、モジュールビルダーでできる。
 検索等に関しては、SugarCRM自体で、そのような機能を持っているが、ODBC接続することにより、AccessやExcelでグラフ表示、統計処理、帳票出力ができる(Linuxしか使いたくないなら、Pentahoを使えばいいけど、Pentahoだと、うまくいかない部分がある。これは、今度書く)

 つまり、残りの定型業務だ・・・




■ノンプログラム+Flash=デザイナーさんがシステム全部作れる

 この定型業務に関しては、しかし、5.5でRESTに対応するのであれば、
 Flashから、操作できる可能性がある。

 つまり、Flashでプログラムはするけど、プログラマは必要なく、

 デザイナーさんが、

 SugarCRM+Excel&Access+Flash

 で、すべての業務が作れる可能性が出てきたわけだ




■発表の補足

発表中、シート76枚目、「表サイトとSugarの連携方法」で
表(おもて)サイトとSugarと連携させる方法

  パターン1:DBのデータだけ参照
  パターン2:同一サーバーでSugerのビューとして
  パターン3:SOAP/RESTでアクセス

「要件にあわせて、最適なものを選択」とあるけど、どう選択するのかについて、言ってなかったと思うので、そこを「勝手に」補足(発表者の@cognitomさんは、こーいうつもりで言ってないかも??)。

 まず、SugarCRMにデータを追加する場合、システムを通さないと(=パターン2、3でないと)追加した場合のIDの振り方が良く分からないので、追加できません(不自然なIDになってしまう)。
 そこで、パターン1は、追加がない、はっきり言うと、SugarCRMのデータを下に、BI,OLAPを行うような、分析、グラフ表示などに向いています。ODBC経由で、Excel,Accessによって、表示したり、帳票作ったりするのがこれです。

 追加などを行う場合、スタジオとかを駆使して、ノンプログラミングでいけるのであれば、パターン2のビューのほうがいいです。もちろん、追加がなくても、ノンプログラミングでいけるのであれば、パターン2が向いています。

 追加を行い、画面が全く違い、ノンプログラミングが難しいなら、パターン3のほうが向いています。
 SugarCRMに修正を加えることもできますが、SugerCRMのバージョン4から5への大幅変更も考えられます。
 このとき、ノンプログラミングであれば、バージョンアップにも対応できるでしょうが、大きくプログラムを修正して変更を行ってしまうと、このようなメジャーバージョンアップに対応できる保障がなくなりますし、そもそも、Sugar内部を解析しないといけなくなります。

 それなら、SOAPやRESTを使ったほうがいいということになります。

まとめると、こんなかんじ

・ノンプログラミングでいけそう→パターン2を考える
・プログラム必要→追加は、ない→パターン1:DBを参照
            →ODBCを使えば、Access、Excelも
         追加あり→パターン3:SOAP、RESTでの結合

注意:
・昔、無償版には、トランザクション処理が入っていなくて、すべてオートコミットだった
 (たしか、有償版には入っている)。
 トランザクション処理が必要な場合は、ここ注意!




ま、とはいえ、数年前は、OSC開催中に、(もちろん別の場所で)SugarCRMの説明会などがあったくらいなので(そのときは、OSCを途中で切り上げなければならなかった (;_;) それからすれば、OSCにでてきただけで、SugarCRM、オープンソースよりになってきたといえる。

以上、ほうこくおわり



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

SugarCRMのModuleBilderのメモメモ

2008-09-19 14:56:15 | SugarCRM

 SugarCRM5.0から、自分でモジュールを作れるモジュールビルダーが入ったことは、

Sugar4.5と5.0の、カスタマイズ上の変更点(5)-Module Builderを使ってみる
http://blog.goo.ne.jp/xmldtp/e/19d457d96bc94b1ad882c9fa74dff5bd

で書いておいたけど、そのとき、

のところまで書いて、これからさき、どのように項目を追加したり、他のモジュールと関連付けするかについてかいていなかった。
 忘れちゃう前に書いておきましょう。




■項目についての操作(ViewField)
 モジュールの画面で、ViewFieldをクリックすると、以下の画面が現れます。

左側の「Add Field」ボタンをクリックし、右側のフィールド名などを設定して、「Save」ボタンをクリックすると、「Add Field」ボタンの下のほうにある項目名のところに追加されます。

 一方、「EditLabels」をクリックすると、以下の画面が表示されます。

ここで、(表示される)ラベルを変更して、「Save」ボタンをクリックします。




■レイアウトの操作(View Layout)
 モジュールの画面で、ViewLayoutをクリックすると、以下の画面が現れます。

 これで、どれか、画面を変えたいものをクリックすると、以下の画面が現れます。


いらない項目は、ゴミ箱へドラッグ&ドロップ
必要な項目は、下のほうのAvailable Fieldsから、右にある表示したいところへドラッグ&ドロップ
します。

 この図には載っていないけど、この上のほうに「Save & publish」というボタンがあるので、
出来上がったら、そのボタンをクリックします。




■モジュールの関連設定(View Relationships)
 モジュールの画面で、View Relationshipsをクリックすると、以下の画面が現れます。


 関連するモジュールを追加するには「Add Relationship」をクリックして、Relate Toから関連するモジュールを選択して、関連のラベル名を付けます。
 下の2つは、サブパネルに出るときに表示する画面についてです。変えたかったら変えます。
 で、Saveをクリックすると、左側に関連が表示されます。




この後に関して、モジュールのPublishに関しては、前回書いたとおりです。
(モジュールの画面に来るまでも、前回書いたとおり)
なお、今書いた各画面から、モジュールの画面に戻るには、真ん中の操作画面の上のほうに、

Module Builder > パッケージ名 > モジュール名 
(例:Module Builder >Test1>Module1)
がかかれたところがあるので、モジュール名(例だとModule1)をクリックしてください。



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

SugarCRM4.5と5.0のMVCの違い

2008-09-05 20:24:41 | SugarCRM

というのを聞いたのでメモメモ。

SugarCRM4.5の場合、たしかにMVCモデルになっていて、
M(モデル)がモジュールにおける、それぞれのSugarBean、
V(ビュー:画面)がEditView,DetailView,ListViewなど
C(コントロール)が、index.phpで、ここから各チェックがおこなわれ、
 各画面をディスパッチしていた。
 そのため、index.phpのプログラムはかなり大きく、ディスパッチ部分を修正すると
 なると、index.phpに手を入れることになるので、競合しやすかった。

SugarCRM5.0においては、
M(モデル)がモジュールにおける、それぞれのSugarBean、
V(ビュー:画面)がSugarViewで、EditView,DetailView,ListViewなど、
C(コントロール)がSugarControllerクラスで、index.phpから呼ばれる
 なので、すべてindex.phpに入ってくるところは4.5と同じなんだけど、
 5.0のindex.phpは、本当に書いてあることは少なくて、
 起動処理の多くは、SugarControllerに書かれている。

 そして、SugarCRM5.0におけるSaveなどのデフォルトの操作は、このSugarController
に定義されている。この定義以外の動作をさせたい場合は、各モジュール内に
Controller.phpを作成し、そこで、そのモジュールでの動作を記述する(つまり、
オーバーライドする)




 ビューのEditView,DetailView,ListViewに関しては、その項目などに関して、
各モジュールのmetadata内にEditViewdefs,php,DetailViewdefs,php,ListViewdefs,php
などなどあるので、そこの値を修正する・・・としてしまうと、バージョンアップで
競合してしまったりするので、カスタマイズは、customフォルダの下にmodulesがあって、
そこに修正したモジュールがあるので、そこに変更分を記述する。

 これは、スタジオで画面を編集すると、自然とそこにできる(逆に言うとスタジオでの
画面変更は、modules内の内容には影響を与えない)




 だそうな。。話はまだまだ続くが、長くなるのでまた今度


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

Sugar4.5と5.0の、カスタマイズ上の変更点(5)-Module Builderを使ってみる

2008-02-12 17:09:12 | SugarCRM

シリーズSugar4.5と5.0の、カスタマイズ上の変更点です。

 SugarCRMの、カスタマイズ方法については、以下の3つがあります。

(1)項目名などを直すには、Studioを使う
(2)モジュール追加や、大幅変更の場合
   (2-1)SugarBeanを継承しないもの(レポート出力など)
   (2-2)SugarBeanを継承するもの

いままで、ずっと説明してきて、前回(2-2)を説明したわけですけど、
そのとき、SugarBeanを継承するものは、5.0からモジュールビルダーでつくるといい
あるよっていう話をしました。

 今回は、そのモジュールビルダーの使い方の概要を書きます。

 なお、今回の説明はSugar5.0の英語版、それもベータ版で行っている。
 実際のものとは、すこし違うかも?しれません。




■操作手順

admin(管理)画面の中に、module Builderというのがあります。
そこをクリックすると、以下のような画面が出てきます


ここからの手順は、以下のとおりです
(1)パッケージを作成する
(2)モジュールを作成する
(3)値などを設定する
(4)Publishする
(5)インストールする
以下順を追って説明します。




■(1)パッケージを作成する

 上記の画面になったら、NewPackageをクリックします

 そうすると、以下の画面が出ますので、

Nameに適当なパッケージ名(ZIPファイルの名前)を入力して、
「Save」をクリック。

 そうすると、以下の画面になるので、New Moduleをクリックして、
モジュールを作って定義します。





■(2)モジュールを作成する

上記の図で、New Moduleをクリックすると、以下の図になります。

モジュール名、ラベル名をいれます。
タブを出すなら、Navigation Tabには、チェックをいれたまま。
次のTYPEですが、basicだと、ほとんど定義されていません。
それ以外のだと、一般的にcompanyに必要な情報や、personに必要な情報など
が定義してありますので、適当に好きなのをクリックします
(四角く選択されるけど、みにくい)

そしたら、SAVE




■(3)値などを設定する
そうすると、以下のような画面になります。


項目について定義したければ、View Feildsをクリックすると、
項目の追加、削除が出来ます。

同様にリレーションに関しては、View Relation,
画面レイアウト(EditViewとかの)に関しては、View Layoutをクリックして修正します。

それぞれの内容については、書かなくても分かると思います。
終わったら、SAVEします。

そして、Saveなどのタブの上にあるTest1(パッケージ名)をクリックします。




■(4)Publishする

そうすると、以下のような画面になります。

さらに、モジュールを追加したければ、New Moduleをクリックして、
「(2)モジュールを作成する」から、繰り返してください。
もう、モジュールを追加し終えたら、「publish」をクリックします。




■(5)インストールする
 
Publishすると、解凍してくれなくていいのに、解凍しちゃった状態になります。
なので、そのフォルダにあるのをZIPで固めます。
(解凍させない方法もありそうです。よくわかりませんけど)。

固めたZIPを、admin画面にある、モジュールローダーでよみこませると、できあがりです。




ということで、SugarBeanを継承したものも、できました。
めでたしめでたし。

ということで、このシリーズも終わりであります。


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

Sugar4.5と5.0の、カスタマイズ上の変更点(4)-SugarBeanを継承するもの。

2008-02-05 13:43:47 | SugarCRM

シリーズSugar4.5と5.0の、カスタマイズ上の変更点です。
 SugarCRMの、カスタマイズ方法については、以下の3つがあります。

(1)項目名などを直すには、Studioを使う
(2)モジュール追加や、大幅変更の場合
   (2-1)SugarBeanを継承しないもの(レポート出力など)
   (2-2)SugarBeanを継承するもの

(1)については、4.5と同じということで、省略しました。
けど、「でも説明が見たーい!!」という人へ。
以下にStudioの使い方があります。

http://www.sugarforge.org/content/documentation/


Sugar Community Edition Installation and Administration Guide 5.0
の「ドキュメントに振られているページで」76ページ、PDFのページで84ページからの
「Studio」をみてください(ごめんなさい、英語です)。

「(2-1)SugarBeanを継承しないもの」については、前回説明しました。
今回は「(2-2)SugarBeanを継承するもの」です。




■「(2-2)SugarBeanを継承するもの」の構成と動き

 これに関しては、4.5と大きく変わったわけです。
 5.0において、提供されるモジュール内にindex.phpはありません。
 なので、共通のListViewを表示するモジュールが走り、ListViewが表示されるという動きをします。

 この辺の細かいロードモジュールの動きに関しては、まだ解析しきっていないところがあるので、今後書きます。

 そして、各モジュール内にあるmetadataフォルダの下のファイルが定義体となり、ListView画表示されることはもちろん、editview,detailviewも表示されます。このlistview以外にも定義体があることが、4.5との大きな違いです。
 なお、vardefs.phpの一番最後に

require_once('include/SugarObjects/VardefManager.php');
VardefManager::createVardef(以下引数省略

 の2行が追加されています。これがなくてもOKなのかどうかは分かりません(もし、ないとダメなら、4.5はそのままインストールはできないことになる)。
 現在のモジュールは、include/MVCの下を見ているようです。でも、include/ListViewとかも残っています。ということで、前のモジュールも動きそうにも見えなくはないんだけど・・どーだろう??




■「(2-2)SugarBeanを継承するもの」のつくりかた

 というので、4.5とは、動きが大幅に違うので、「(2-2)SugarBeanを継承するもの」を新規に作るときは、Module Builderを使って作ったほうがよさそうです。

 Module Builderについては、

http://www.sugarforge.org/content/documentation/


Sugar Community Edition Installation and Administration Guide 5.0
の「ドキュメントに振られているページで」70ページ、PDFのページで78ページからの
ModuleBuilderに記載されています。

 モジュールの作り方はそこに書かれているのですが、大雑把にいうと

(1)モジュールのインストーラー(=パッケージ)をつくる
(2)各モジュールを作成する
(3)フィールドの作成やテーブル関連付けを行う
(4)モジュール分(2)、(3)をしたらpublishかDeployを行う
    Publish:zipのパッケージを作るので、それを、
         Module Loaderで読み込む
    Deploy:そのまま、そこへ、インストールする。

ということをします。詳しくは、別の回に説明します。




ってことで、今回はおしまい。




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

Sugar4.5と5.0の、カスタマイズ上の変更点(1)-動作

2008-01-31 14:03:15 | SugarCRM

 今まで、SugarCRM 4.5のカスタマイズのまとめをやってきて、決して十分とはいえないけれど、モジュールの作り方について説明してきました。

 で、それをもとにSugar CRM5.0のモジュールカスタマイズについてやりたいと思います。

 とはいえ、SugarCRM4.5と5.0では、外見は似たようなものなのですが、内部は、星飛雄馬のお父さんがちゃぶ台ひっくり返しちゃったくらい、違います。

 具体的にどのくらい違うか(って、「ちゃぶ台ひっくり返しちゃったくらい」って言われても、さっぱり分かりませんよね ^^;)について、今回は書きたいと思います。

 その後、カスタマイズの方法についてかきます。




■ホームのindex.phpが違う。

 まず、SugarCRMはログインするとホームにあるindex.phpが表示されます。
 Sugar5.0のindex.phpは、コメントをはずすと、以下のことしか書いていません。


$startTime = microtime();
require_once('include/entryPoint.php');
ob_start();
require_once('include/MVC/SugarApplication.php');
$app = new SugarApplication();
$app->startSession();
$app->execute();

(上記>は、本当は半角。index.phpより引用)

いままではごちゃごちゃありました。
つまり、権利関係その他を、index.phpで処理していた場合、一切書き直しです。

そして、ここで見られるように、実際の処理を、いままでもincludeの中に書かれていましたが、
5.0からは、それが徹底しています。さらに、include/MVCというのができ、MVCに基づく考え方も
徹底してきました。




■モジュールのindex.phpの意味合いが違う。

そして、index.phpを処理すると、ホーム画面になり、そこのタブをクリックすると、URLが
http://127.0.0.1/Sugarのホーム/index.php?module=モジュール名&action=index
となることまでは同じなのですが、このaction=indexの意味合いが、4.5とは違います。

4.5のときは、必ず、モジュールの下にindex.phpがあり、タブをクリックしたときは、
それが呼び出されました。

ところが、5.0においては、
・SugarBeanを継承しないものは、モジュールの下にindex.phpがあり、これが実行されます。
・SugarBeanを継承するものは、基本的にはindex.phpを書きません。
 そうすると、includeのListViewがいろいろ呼び出され、Modules/metadata内にある定義を元に、
 表示しているようです(まだ追いきれてないのですが)

つまり、index.phpがあればそれを表示し(SugarBeanを継承してないケース)、なければ、SugarBeanを継承したものとしています。




■4.5とはちょっと違う

 じゃあ、いままで(4.5で)SugarBeanを継承したモジュールを使えば、index.phpがあるので、それを実行するからいいじゃん。と思うかもしれません。
 たしかに、4.5はincludeの下に、ListView,DetailView,EditViewのフォルダがあり、それぞれの機能を行ってきました。5.0にも、それはあります。

 でも、vardefs.phpの末尾が、ちょっと違うように、5.0になり違っているところもあるので、簡単に入るかどうかは・・・?




 ということで、

 SugarBeanを継承しているものに関して、5.0は大きくかわりました。

 ま、それについては、おいおい話していくことにして、

 次回から、カスタマイズの方法についてです。


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

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

2008-01-29 15:57:38 | SugarCRM

 シリーズSugarCRM 4.5のカスタマイズのまとめ、6回目の今回は、SugarBeanを継承”する”場合についての、のこりのファイルです。

SugarBeanを継承”する”場合、以下のファイルが必要になります。

(1)SugarBeanを継承しない場合にも必要なファイルたち
(2)データベース操作関連
    モジュール名.php,vardefs.php,Save.php,Delete.phpなど
(3)表示関連
    (3-1)一覧表示(ListView)と、検索
    (3-2)詳細画面
    (3-3)編集画面
(4)他のと関連
    (4-1)サブパネル
    (4-2)ポップアップ
    (4-3)ダッシュレットなど、

 前回までで(3)は説明したので、今回は(4)についてです。
 なお、今回取り上げる多くのドキュメントは
 ここ http://www.sugarforge.org/frs/?group_id=20&release_id=253
 に一覧があります。


■(4-1)サブパネル
 サブパネルについて、これが記載されているドキュメント(PDF)
SugarCRM Edit or Create Subpanels.pdf
http://dl.sugarforge.org/sugardocs/Notes/DeveloperNotes/SugarCRM_Edit_or_Create_Subpanels.pdf

をみると、ほとんど、リレーションの張り方(つまりverdefsのところで説明したような)しか、書いていない・・なぜかというと、実は、サブパネルは、呼ばれるモジュールのsubpanels/default.phpに記載されていて、他のやつを呼び出そうとしなければ、まあ、これが呼ばれる。

 そして、ここでは、$subpanel_layoutを指定するけど、詳しくは、なにかのモジュールを開いて、そのdefault.phpをみてください(list_fieldsは、サブパネルのリストに表示する項目です。それ以外は説明無しでも分かると思います)




■(4-2)ポップアップ

 他のモジュールから選ぶときなど、ポップアップが出てきます。
 このpopupは、popup.phpと、Popup_picker.phpから構成されます。popup.phpは、Popup_picker.phpを呼ぶだけで、実際にはPopup_picker.phpで書き出され、とくにPopup_picker.phpのprocess_page()で実際に記述しています。

 ただ、検索対象をセットするのは、このPopup_picker.phpではなく、ポップアップを出すEditView.phpの$popup_request_dataとかの中の、field_to_name_arrayで設定します。




■(4-3)ダッシュレットなど、

 ホームのページにみえるリストやグラフがダッシュレットです。モジュールのDashletsフォルダに設定するのですが、これについては、
SugarDashletsAndYou v0.9.pdf
http://dl.sugarforge.org/sugardocs/Notes/SugarDashletsDocumentation/SugarDashletsAndYou-v0.9.pdf

とか、SugarCRM Developer's Manualの43ページからを見てください。





■このほか

 モジュールの中のtplsは昔のバージョンでは見てたけど、4.5では見てなかったと思います(思い違いだったらごめん)。
 テーマに関しては、ここではなく、(Modulesでもなく)Sugarのホームの下のthemesの下をなおします。
 テーマに関して詳しくは、
SugarCRM Create New Themes.rtf
http://dl.sugarforge.org/sugardocs/Notes/DeveloperNotes/SugarCRM_Create_New_Themes.rtf

(注意:RTFファイルです)
か、SugarCRM Developer's Manualの21ページからを見てください。




ってことで、次回は、SugarBeanを継承”する”場合のインストーラーを”使わない”場合のインストールについて




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

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

2008-01-28 18:20:21 | SugarCRM

 シリーズSugarCRM 4.5のカスタマイズのまとめ、5回目の今回は、SugarBeanを継承”する”場合についての「表示関連」です。

SugarCRMをカスタマイズするには、まあ、スタジオで、タブを消したり、ラベルの文字を変更したり、項目追加したりすることはできますが、大きく変更する場合は、モジュールの追加ということになります。
 このとき、モジュールには2種類あり、新規テーブルを作成し、追加操作などをしない場合のSugarBeanを継承”しない”場合と、テーブルを作っていろいろ操作するSugarBeanを継承”する”場合があります。
 そして、SugarBeanを継承”する”場合は、
(1)SugarBeanを継承しない場合にも必要なファイルたち
(2)データベース操作関連
    モジュール名.php,vardefs.php,Save.php,Delete.phpなど
(3)表示関連
    (3-1)一覧表示(ListView)と、検索
    (3-2)詳細画面
    (3-3)編集画面
(4)他のと関連
    (4-1)サブパネル
    (4-2)ポップアップ
    (4-3)ダッシュレットなど、


とファイルが必要なのですが、いままでで(2)までやったので、今日は(3)です。




■表示方法に3種類

 SugarBeanを継承した場合、表示方法に3種類あります。
 (3-1)一覧表示(ListView)と、検索
 (3-2)詳細画面
 (3-3)編集画面
です。まず、タブをクリックされると、Sugarの下のindex.phpが呼び出されます。このとき、引数のmoduleはクリックしたモジュール名、actionは、indexだと思います。

 そうすると、メイン画面には、modules/モジュール名/index.phpが表示されるわけですが、このindex.php,継承されないときは、好きに書いてよいのですが、継承する場合は、ここでListView.phpが呼び出され、一覧&検索画面が表示されます(ListView.phpから検索画面のSerachFormを読んでいます)。

 詳細画面、編集画面はそれぞれ、index.phpの引数moduleがモジュール名、actionがDetailView(詳細画面の場合)またはEditView(編集画面の場合)を指定されて呼び出されます。




■一覧表示(ListView)と、検索
 バージョンによって、違うのですが、4.5の場合は、モジュールの下のうち、
    ListView.php
    ListView.html
    metadata/listviewdefs.php
 が関連します。またListView.phpで、モジュール名.php(SugarBeanを継承しているクラス)が呼び出され、さらに検索用として、
    metadata/SearchFields.php
が関係します。SearchFields.phpが検索項目の指定で、listviewdefs.phpが一覧表示項目だった気がします。なお、field_arrays.phpも関係していた気がします。

 そして、上記のファイルから、Sugarのフォルダ/include/ListViewの下にあるPHPプログラムが呼び出されます(ここにあるのは全モジュール共通)とくにそこのListViewData.phpがデータ読み込み口です。

 一方、検索に関しては、Sugarのフォルダ/include/SerchFormフォルダの下の、SearchForm.phpが実行します。generateSearchWhereでwhere句を作ってます。そことSearchFields.phpを見比べてもらうと、SearchFields.phpの書き方が分かります。




■詳細画面、編集画面
  詳細画面は、
    DetailView.php
    DetailView.html
  編集画面は、
    EditView.php
    EditView.html
PHPのほうで、処理して値を作り、htmlのほうで表示する仕組みになっています。
既存のソースを見れば、やり方はわかると思います。




ってなかんじです。次回はそれ以外のモノについて、見ていきます。



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

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

2008-01-25 18:26:22 | SugarCRM

 シリーズSugarCRM 4.5のカスタマイズのまとめ4回目の今回は、SugarBeanを継承”する”場合についてです。

 解消する場合、バージョンによって、いろいろファイル構成が違うのですが、だいたい、こんなふうに分ついできると思います。

(1)SugarBeanを継承しない場合にも必要なファイルたち
(2)データベース操作関連
    モジュール名.php,vardefs.php,Save.php,Delete.phpなど
(3)表示関連
    (3-1)一覧表示(ListView)と、検索
    (3-2)詳細画面
    (3-3)編集画面
(4)他のと関連
    (4-1)サブパネル
    (4-2)ポップアップ
    (4-3)ダッシュレットなど、

(1)については、「SugarBeanを継承しない」場合で説明したので省略します。
今日は(2)について




■データベース操作関連

 データベースを作成し、編集、追加、削除(フラグを上げる)処理をするのは、モジュールのフォルダの中にある以下のファイルです。
    モジュール名.php
    vardefs.php
    Save.php
    Delete.php
 このうち、「モジュール名.php」というのは、モジュールごとにファイル名が違います。
 Callsモジュールでは、Call.phpがそれにあたります。




■モジュール名.php
 このモジュール名.phpファイルは、SugarBeanを継承します(たとえば、

   class Call extends SugarBean {

の形)

 そして、ここでは、モジュールの項目がずーっとかかれます(vardefsでも項目を書きますが、それに対応した項目名がずらっと書かれる)。
 そのあと、プログラムを書くのですが、それは他のクラスを参考に書いてください。




■vardef.php

 DBの項目名、インデックス、他モジュールとの関係が記述されます。

 記述の仕方に関しては、既存のモジュールを参考にするか、または、
Vardefs.pdf
http://www.sugarforge.org/frs/download.php/1283/Vardefs.pdf

を参照のこと。

 ここに記述されたとおりにDBを作成します。

 ただし、リレーションに関しては、1対多のものはここにかかれますが、多対多に関しては、
ここでなく、metadat(モジュールの下にあるメタデータではなく、Modulesと同レベルにあるメタデータ)の
下にかかれます。




■save.php,Delete.pho

 追加や保存、削除のときに使われます。
 saveでは、save,Deleteではmark_deletedを行えばいいので、どっかほかのモジュールから、ぱちってきても、いいかもしれません。




 と、DB周りに関してはこんな感じ。
 次回は問題の画面です。


  • 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でシェアする

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でシェアする

SugarCRMにおける、モジュール間の関連(&カーディナリティ)について

2008-01-18 11:31:03 | SugarCRM

メモメモ(確かめていない)

SugarCRMにおいて、モジュール同士の関係っていうのは、テーブル同様、1対多と多対多がある。
どちらのケースでも、まず、vardef.phpに項目は書かれる。
こんなかんじ
  'modified_user_link' =>
  array (
        'name' => 'modified_user_link',
    'type' => 'link',
    'relationship' => 'cases_modified_user',
    'vname' => 'LBL_MODIFIED_BY_USER',
    'link_type' => 'one',
    'module'=>'Users',
    'bean_name'=>'User',
    'source'=>'non-db',
  ),

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

しかし、このあと、1対多と多対多で違う。




■1対多の場合

そのvardefの中(下のほう)に'relationships'の指定があり、そので、上記の'relationship'で指定された関係が記述されている。上記の場合は、'cases_modified_user'ということになるが、それは、vardefの下のほうの'relationships'の中に以下のように指定されている。

   ,'cases_modified_user' =>
   array('lhs_module'=> 'Users', 'lhs_table'=> 'users', 'lhs_key' => 'id',
   'rhs_module'=> 'Cases', 'rhs_table'=> 'cases', 'rhs_key' => 'modified_user_id',
   'relationship_type'=>'one-to-many')

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

ちなみに、vardefは、項目の内容、indicesで示されるインデックス、'relationships'で示される1対多の関係が記述されている。




■多対多の場合

 一方、多対多の場合は、metadataに作られる。たとえば、cases_bugsにおいて、vardef.phpでは、

  'bugs' =>
  array (
  	'name' => 'bugs',
    'type' => 'link',
    'relationship' => 'cases_bugs',
    'source'=>'non-db',
		'vname'=>'LBL_BUGS',
  ),

(上記 >は、本当は半角)
と記述されている。このcases_bugsは、下にあるのではなく、Sugarのホームのしたのmetadata(=modulesと同じレベル)のところに、cases_bugsMetaData.phpというファイルを作成し、そこにテーブル名とテーブル内容、インデックス、'relationships'を記述する。

 これを作成した場合、関係のテーブルを作り直すため、管理者機能でリペアを行うか、インストーラーから行う場合、実践!オープンソースCRMアプリケーション入門の131ページ下側のmanifestファイルの例にあるようなrelationshipsを記述して、インストールする。


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

Webサイトから(ソフトフォンで)電話をかける話でSugarCRMを利用する場合

2007-11-20 15:55:32 | SugarCRM

今、Trixbox実践ガイドブックをみていて、思ったんだけど、

要するに、Webサイトから、クリックして(外線・内線)電話をかけるばあい、

●クライアント側
・ソフトフォンを入れる
・(ソフトフォンがエイジフォンの場合)
 ブラウザで表示しているHTMLに、Aタグで、HREF="callto:電話番号"があれば、
 そこをクリックされると、その電話番号に電話をかける。
  →サーバーのAsteriskと通信して、サーバーに電話をかけさせる

●サーバー側
・フリーのPBXソフトAsteriskを入れる
 →CentOSつきのTrixBoxを、上記の本では入れている
・サーバー側に、外線に電話をかけるFXOボード(TDM400Pなど)を入れる
・そーすると、クライアントからソフトフォンから電話かけろ!と来ると、
 サーバーのAsteriskが動いて、外線のFXOボードを操作して電話をかける。
 以降、ボード、Asterisk,ソフトフォンががんばって、通話できるようにする

ってことだとおもう。本にはさらに、ISDNの場合、ひかりの場合ものっている(FXOボードの部分が変わる)。




で、そこまではいいのよ。

P126からAsteriskの連携として、Asterisk VoiceRD Integrationの話がかいてあるけど、本当に上記の設定で通話できるなら、あとは、好きなモジュールのListView,EditView,DetailViewのテキトー(というか適切)なところに、上記のAタグでcalltoすればいいんでないの??

 モジュールを入れて、なにか設定する??

 ほかに、何の設定が必要なんでしょう???

 うーん、なにか、読み飛ばしちゃってるのかなあ??

 そもそも、たった2500円+税でTrixBoxを理解しようとするのが、まちがってる??

P.S え、すなおに
Asterisk VoiceRD Integration
http://www.sugarforge.org/frs/?group_id=204

落としてくればいいだろって・・
うん、そーなんだけどお。。

SugarCRMやTrixBox入れるパソコンもないのよ(^^;)
(1台しか私用パソコンない。それにいれて、こわれちゃったら (>_<!)
 なので、怖くて入れられない)


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

SugarCRM Developer's Manualが来たんだけど。。。

2007-10-12 15:19:03 | SugarCRM

 やっとAmazonで買った、SugarCRM Developer's Manual(ISBN 978-1-847192-06-6)が来ましたよ。。

 で、いま、ぺらぺら。。って見ただけなんだけど。。。

 うん?思っているイメージと、違うぞ??

 普通、デベロッパーズマニュアルというと、システムを作る人用なので、ソースコードの書き方、Sugarでいうと、PHPファイルや設定ファイルの書き方のイメージだけど、その部分についての突っ込んだ話というよりは、ユーザーカスタマイズ、画面上でできるカスタマイズの話が中心で、ソースをいじる部分は、さらっとしか書いてない。

 たとえば、検索項目や編集項目にある、ドロップダウンメニューについてで言うと、
 ドロップダウンメニュー(コンボボックスのこと)の説明は、
 Using Studio to Create Drop-down Box ( P51) とManually Adding a Drop-down Box(P53)に書いてあるんだけど、ここで言っていることは、app_list_stringsにdomを追加することしか書いていない(これ自体は、全体共通の言語用ファイル、ja.lang.php,en_us.lang.phpに定義する)。

 たしかに、ここで定義することは必要なんだけど、手作業で編集するには、編集画面で出すために、EditView.phpとEditView.htmlの修正が必要で、その際、ある関数を知らないと、たいへんというか、うまく出ない。

 また、表示するときには、DetailView.htmlのテンプレートで、値をセットする。

 さらに、これ、編集をドロップダウンにしたら、検索もドロップダウンにしないといけない。
 そのためには最低2箇所の修正が必要で(サーチフィールドと、サーチフォーム)さらに、vardefs.phpの定義をenumにしないと、検索画面で、その値で出ない。

 。。。というようなことは、書いていないような気が。。。




 そして、Sugarの場合は、ドロップダウン、ポップアップ、サブパネルの3種類で、手入力でなく、値を選ぶ形で入力できるんだけど、それらについては、(上記のものが、言語ファイルで定義していて、DBでないところから気づくように)おおまかなスタイルガイドがある気がするけど、それについて書いていない。

 このスタイルガイドに違反したプログラムもかけるけど、ちょっと大変になってくる。




 さらに、サブパネルの定義に関する部分がない、チャートの話(ダッシュボードのカスタマイズ)はあ??と、開発上知りたい情報がない。。

 もちろん、サーチフォームのオプション設定によって、サブクエリーを隠しでやるとか、そーいうTIPSは載ってないしい。。

 はっきりいって、がっくし(-_-;)

 まー、このへんは、ウィリアムのいたずらが、このブログで書くしかないんですかねえ。。。
 (連載検討中)




 と、悪口ばかり書いたけど、カスタマイズで済む人にはいいかもしれない。
 また、SugarのER図が94ページからあるなど、有意義なデータもある

 。。。けど、DESCコマンドをたたけばわかる、
 106ページからのDBの中身はいらないよ(-_-;)

P.S 上記の内容はバージョン4.5の人のみです。
ほかのバージョンでは、違うファイルになっているんじゃないかなと予想されます。
その理由も、いつか、機会があったら書きますね。




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