DetailViewとEdifViewのボタンをカスタマイズする

出典: SugarForum.jp

DetailViewやEditViewでは、ヘッダ部分に各種ボタンが並ぶ。DetailViewでは「編集」「複製」「削除」など。

目次

定義の場所

SugarRoot/modules/@モジュール名/metadata/detailviewdefs.php
SugarRoot/modules/@モジュール名/metadata/editviewdefs.php
SugarRoot/custom/modules/@モジュール名/metadata/detailviewdefs.php
SugarRoot/custom/modules/@モジュール名/metadata/editviewdefs.php


標準のボタン

標準のボタンは、'EDIT'や'DELETE'などと文字列を指定するだけで配置可能。

$viewdefs = array (
'Contacts' => array (
  'DetailView' => array (
    'templateMeta' => array (
      'form' => array (
        'buttons' => array ('EDIT', 'DUPLICATE', 'DELETE', 'FIND_DUPLICATES'),
      ),
      //その他のテンプレート設定
    )
  'panels' => array (
    //パネルのレイアウト定義
  ),
));

現在用意されているのは、以下の10個。

  • CANCEL
  • DELETE
  • DUPLICATE
  • EDIT
  • FIND_DUPLICATE
  • SAVE
  • SUBPANELSAVE (サブパネル用)
  • SUBPANELCANCEL (サブパネル用)
  • SUBPANELFULLFORM (サブパネル用)
  • AUDIT (監査履歴の表示。ユーザが指定する必要はない)

Smartyプラグインとしてボタンが定義されているので、詳しくは下記コードを参照。

SugarRoot/include/smarty/plugins/function.sugar_button.php


カスタムボタン

標準ボタン用のフォームとして、'module','action','record','return_module',...といった最低限の hidden input は用意されている。足りない場合は'hidden'に配列として指定。

'buttons'に、文字列ではなく配列を指定すると、カスタムコードを自由に設定できる。

例: DetailView

Contactsモジュールに確認欄(kakunin_c)を追加し、DetailViewからチェックを入れられるようにする。

'form' => array (
  'hidden' => array('<input type="hidden" name="kakunin_c" value="{$fields.kakunin_c.value}" />'),
  'buttons' => array (
    'EDIT',
    'DELETE',
    array('customCode'=>'
      {if $fields.kakunin_c.value}
      <input title="確認欄にチェックする" class="button"
        onclick="
          this.form.return_module.value=\'Contacts\';
          this.form.return_id.value=\'{$fields.id.value}\';
          this.form.return_action.value=\'DetailView\';
          this.form.action.value=\'Save\';
          this.form.kakunin_c.value=\'0\';"
        type="submit" value="確認欄にチェックする">
      {/if}'),
  ),
),

※上記、kakunin_c は「未確認」時に1の値をとる想定。「未確認」レコードの検索性を優先するため。

※文字列「確認欄にチェックする」は、'LBL_KAKUNIN_CHECK'といったラベルにして言語ファイルに書く方がベター。(多言語化するつもりが無くても、言語ファイルに書いておけばエンドユーザがカスタマイズできる)


最終更新 08:05, 2008年4月29日 (火)。   このページは 4,185 回アクセスされました。