メニュー

出典: SugarForum.jp

目次

メニューとは?

ショートカットに表示されるアイテムのことです。「新規作成」や「一覧表示」といった機能へのリンクを提供します。テーマやユーザ設定によって、左側あるいは上部に表示されます。

定義する場所

SugarRoot/modules/@モジュール名/Menu.php



書式

通常版

$module_menu[] = array($url, $link_text, $image_name);
$url 
リンク先のURL
$link_text 
表示されるテキストのラベル。参照:言語ファイル
$image_name 
アイコンのイメージ名

ACL対応版

if(ACLController::checkAccess($module_name, $view, true)) $module_menu[] = array($url, $link_text, $image_name);
$module_name 
モジュール名
$view 
ビューの種類 (edit,list,detailなど)



アップグレードセーフな拡張方法

既存モジュール(例えばContacts)のメニューを変更したい場合、

SugarRoot/custom/modules/@モジュール名/Ext/Menus/menu.ext.php

を作成し、上記の書式でメニューを記述する。

ただし、このままだと既存メニューの下に追加される形になる。既存のメニューを隠したい場合は、ファイルの最初で、

$module_menu = array();

として変数を上書きしておくこと。

動的なメニュー構成

書式のACL対応版の項を見ると分かるように、条件によってメニューの表示をコントロールできます。例えば、現在時刻や曜日、IPアドレス、ユーザIDなどさまざまな条件でメニュー構成を変化させてもOKです。

管理ユーザだけに表示するメニュー

管理者用の隠しコマンドや、スキーマ表示など、一般ユーザに表示したくないメニューは、以下のようにしておくと便利です。(メニューから呼び出されるアクション側でも、同様のチェックを入れておきましょう)

global $current_user;
if (is_admin($current_user)) $module_menu[] = array($url, $link_text, $image_name);

最終更新 13:03, 2009年11月17日 (火)。   このページは 3,602 回アクセスされました。