第4回 ソースコードまで踏み込んでビューをカスタマイズ
河村 嘉之
オープンソースCRM株式会社
2008/12/18
レイアウトのカスタマイズ
メタデータの構造が分かったところで、このページのレイアウトを編集しましょう。各モジュールのメタデータを直接編集してもレイアウトは変更できますが、最初にお話ししたように、アップグレードやパッチの適用の際に上書きされてしまう可能性があります。そこで、アップグレードセーフの仕組みを利用し、このファイルをcustomディレクトリ以下に配置します。
具体的には、modules/Accounts/metadataディレクトリにあるdetailviewdefs.phpを、custom/modules/Accounts/metadataディレクトリにコピーします。すると、このファイルが元のファイルよりも優先して読み込まれるようになるので、ここにカスタマイズを加えていきます。
このファイルを開いて、「表示されている項目の順番を変えてみる」「不要なフィールドを削る」「templateMeta項目のmaxColumns属性を変更し、3列表示にしてみる」などのカスタマイズを加えてみましょう。カスタマイズを行ったら、このファイルを保存します。
その後、管理画面に行き、「システム管理→リペア(再構築)」を選びます。そこで「テンプレートデータキャッシュのクリア」を選び、そこで対象のモジュールを選び、「リペア(再構築)」ボタンを押します。これが終了すると、カスタマイズした内容が反映されます。取引先モジュールに行き、詳細画面を見て確認しましょう。
ソースへのカスタムコード追加
レイアウトの配置を変える程度のカスタマイズであれば、簡単にできることがご理解いただけたと思います。ただし、この程度のカスタマイズであれば、第2回で説明したスタジオ機能でも十分可能で、ソースコードを編集してまで行うこともありません。そこで、もう少し踏み込んだカスタマイズをしてみましょう。
取引先モジュールは、「証券コード」というフィールドを持っています。デフォルトの詳細画面ではこのフィールドは文字列として表示されるだけですが、Web上で公開されている株価情報のページなどにリンクされると便利です。そこで、このフィールドが表示されるときにそのページへのリンクとして表示されるように変更してみましょう。ここではリンク先として「Yahoo! Japan ファイナンス」の情報を指定してみます。
もともとの「証券コード」フィールドは、以下のように単にフィールド名を記述することによって、デフォルトの設定によりそのラベルと値が表示されるようになっています(ここでは、同じ行に「その他電話」フィールドも表示されているため、その設定が記述されています)。
array( |
これを以下のように変更します。name属性でそのフィールドの名前、label属性でそのラベルなどフィールドに対応する定義情報を連想配列で記述します。
ここで注目したいのは、customCode属性です。この属性には、このフィールドの値を表示する際に生成されるHTMLのテンプレートを記述することができます。ここでは、アンカータグを生成し、そのリンク先としてYahoo! Japanファイナンスを指定しています。
array( |
コードを記述したら、管理画面で「テンプレートデータキャッシュのクリア」を行ってください。そこで取引先の詳細画面を表示すると、証券コードフィールドがリンク付きで表示されます。このようにcustomCode属性を利用することにより、対応するフィールドがどのように表示されるかをカスタマイズできます。
今回のまとめ
今回は、SugarCRMのビューに関して、どのように定義し、どのようにカスタマイズするかについて解説しました。これによって、表示されている画面がどのように定義され、それを変更するためには、どのようにすればよいかご理解いただけたと思います。
次回は、SugarCRMで管理されているフィールドとデータベーステーブルのカラムとの関連付けなど、モデルに関して説明する予定です。
3/3 |
|
||||||
|
Linux Square全記事インデックス |
Linux Squareフォーラム 仮想化技術関連記事 |
連載:実践! Xenで実現するサーバ統合 有力な仮想化技術として注目を集めるようになった「Xen」。このXenを活用してサーバ統合を実践していく手順を具体的に紹介します |
|
特集:サーバの仮想化技術とビジネス展開の可能性 jailからUML/VMwareまで 1台のマシンで複数のサーバを動かす「仮想化技術」。VMwareやUMLの登場により、WebサイトだけでなくOS自体を仮想化できるようになった |
|
特集:仮想化技術のアプローチと実装 VMwareから要注目技術Xenまで 1台のサーバで複数の仮想マシンを実行する仮想化技術は、空間コストを引き下げる可能性を持つ。最新の仮想化技術を概観してみよう |
|
特集:仮想OS「User Mode Linux」活用法 技術解説からカーネルカスタマイズまで Linux上で仮想的なLinuxを動かすUMLの仕組みからインストール/管理方法やIPv6などに対応させるカーネル構築までを徹底解説 |
|
特集:仮想化技術の大本命「Xen」を使ってみよう インストール & Debian環境構築編 高いパフォーマンスで本命の1つとなった仮想マシンモニタ「Xen」。日本語による情報が少ないXenを、実際に動かしてみよう |
|
特集:仮想化技術の大本命「Xen」を使ってみよう Xen対応カスタムカーネル構築編 Xen環境およびその上で動作する仮想マシン用カーネルを自分で構築しよう。これにより、自由にカスタマイズしたカーネルを利用できる |
|
特集:IPv6、UML、セキュリティ機能の統合 全貌を現したLinuxカーネル2.6[第4章] 今回は、これまでに紹介し切れなかった機能を一気に紹介する。これを読めば、カーネル2.6の正式リリースが楽しみになるだろう |
|
Linux Squareプロダクトレビュー VMware Workstation 4 PC/AT互換機エミュレータとして不動の地位を築いたVMware。その新バージョンがリリースされた。新機能を早速試してみよう |
|
古くて新しい「サーバ仮想化技術」の行方 サーバ仮想化を実現するための技術がソフトウェア、ハードウェアの両面で出そろってきた。ハイパーバイザーのさらなる高速化に向けた動きを紹介する |
|
Linux Squareフォーラム全記事インデックス |
- 【 pidof 】コマンド――コマンド名からプロセスIDを探す (2017/7/27)
本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、コマンド名からプロセスIDを探す「pidof」コマンドです。 - Linuxの「ジョブコントロール」をマスターしよう (2017/7/21)
今回は、コマンドライン環境でのジョブコントロールを試してみましょう。X環境を持たないサーバ管理やリモート接続時に役立つ操作です - 【 pidstat 】コマンド――プロセスのリソース使用量を表示する (2017/7/21)
本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、プロセスごとのCPUの使用率やI/Oデバイスの使用状況を表示する「pidstat」コマンドです。 - 【 iostat 】コマンド――I/Oデバイスの使用状況を表示する (2017/7/20)
本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、I/Oデバイスの使用状況を表示する「iostat」コマンドです。
|
|