SugarCRM 7 - Dashletを作成する

#dashlet, #sugarcrm

Sugar7のお勉強。
シンプルなダッシュレットを追加する。

ダッシュレットファイルを追加

今回は全画面共通のダッシュレットを作成するのでcustom/clients/base/views/hello-dashletディレクトリを作り、handlebars、JavaScript、PHPのファイルを作成する。

  • custom/clients/base/views/hello-dashlet/hello-dashlet.js
  • custom/clients/base/views/hello-dashlet/hello-dashlet.php
  • custom/clients/base/views/hello-dashlet/hello-dashlet.hbs

hello-dashlet.js

Backbone.jsのViewにあたる。
Dashletクラスを必ず継承するようにしなければならない。

1
2
3
4
5
({
// Dashlet プラグインをロードする
// 内部的には Dashlet クラスを継承している
plugins: ['Dashlet']
})

hello-dashlet.php

Viewの定義を記述する。labeldescriptionは必須。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
$viewdefs['base']['view']['hello-dashlet'] = array(
'dashlets' => array(
array(
// ヘッダーに表示される
// 大抵 LBL_HOGEHOGE とかにする 
'label' => 'Hello dashlet!',
// ダッシュレットの詳細
'description' => 'Hello Dashlet です。サンプルです。',
// ダッシュレット設定
// 今回はなにも書かない
'config' => array(),
// ダッシュレットのプレビュー設定
'preview' => array(),
// ダッシュレットの表示フィルターを定義する
// レコードビューのみに表示するとか設定可能
'filter' => array(),
),
),
);

hello-dashlet.hbs

ダッシュレットの中身に表示するHTMLを書く。

1
2
3
<p>
Hello Dashlet !
</p>

終わったらリペア

適当なモジュールのリストビューでダッシュレットの編集すると表示されるようになる。


v6.5に引き続きダッシュレットを追加するのは簡単な模様。
リストビューやレコードビューなどView単位にダッシュレットを表示できるようになったのでFavoriteランキングとかGoolge Mapなど活用の幅が広がりそう。

sugar7_dashlets

で、さっそくListViewに表示されているデータをGoogle Mapに表示するDashletを作成した。BackboneベースなのでListViewのページロードのイベントでモデルのやりとりなどがやりやすい。結構いろんなことができそうだなと感じた次第。