Vtiger CRM 动态菜单的定制方法

               Vtiger CRM 的菜单设计为动态的,并且保存在数据库当中,很容易实现权限管理。

下面为在vtiger crm 5.2.1 上实现的菜单自定义的方法:

菜单定义后台数据库表主要为3个:

vtiger_tab  ---所有下拉子菜单信息
vtiger_parenttab ---主菜单列表
vtiger_parenttabrel----主菜单包含的子菜单列表

 

所有主菜单和子菜单尽在其中矣。

CREATE TABLE `vtiger_tab` (
   `tabid` int(19) NOT NULL DEFAULT '0',
   `name` varchar(25) NOT NULL,
   `presence` int(19) NOT NULL DEFAULT '1',
   `tabsequence` int(10) DEFAULT NULL,
   `tablabel` varchar(25) NOT NULL,
   `modifiedby` int(19) DEFAULT NULL,
   `modifiedtime` int(19) DEFAULT NULL,
   `customized` int(19) DEFAULT NULL,
   `ownedby` int(19) DEFAULT NULL,
   `isentitytype` int(11) NOT NULL DEFAULT '1',
   `version` varchar(10) DEFAULT NULL,
   PRIMARY KEY (`tabid`),
   UNIQUE KEY `tab_name_idx` (`name`),
   KEY `tab_modifiedby_idx` (`modifiedby`),
   KEY `tab_tabid_idx` (`tabid`)
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8


CREATE TABLE `vtiger_tab` (
   `tabid` int(19) NOT NULL DEFAULT '0', --------------------菜单ID
   `name` varchar(25) NOT NULL,      ---------菜单名字
   `presence` int(19) NOT NULL DEFAULT '1',1-屏蔽,0-显示,2--暂时未知
   `tabsequence` int(10) DEFAULT NULL,-----------tab 顺序
   `tablabel` varchar(25) NOT NULL,   -----------在界面显示的文字
   `modifiedby` int(19) DEFAULT NULL,
   `modifiedtime` int(19) DEFAULT NULL,
   `customized` int(19) DEFAULT NULL,
   `ownedby` int(19) DEFAULT NULL,
   `isentitytype` int(11) NOT NULL DEFAULT '1',
   `version` varchar(10) DEFAULT NULL,
   PRIMARY KEY (`tabid`),
   UNIQUE KEY `tab_name_idx` (`name`),
   KEY `tab_modifiedby_idx` (`modifiedby`),
   KEY `tab_tabid_idx` (`tabid`)
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8

 

系统登陆后系统为通过下面的sql 语句来获取所有菜单的列表信息的:

select name,tablabel,parenttab_label,vtiger_tab.tabid from vtiger_parenttabrel inner join vtiger_tab on vtiger_parenttabrel.tabid = vtiger_tab.tabid inner join vtiger_parenttab on vtiger_parenttabrel.parenttabid = vtiger_parenttab.parenttabid and vtiger_tab.presence in (0,2) order by vtiger_parenttab.sequence, vtiger_parenttabrel.sequence

以下为以添加一个自定义菜单列为例子:

编辑根目录下的文件:

 parent_tadata.php

 

$parent_tab_info_array=array(1=>'My Home Page',2=>'Customer Info',3=>'Sales',4=>'Support',5=>'Analytics',6=>'Inventory',7=>'Tools',8=>'Settings',10=>'my_add');

$parent_child_tab_rel_array=array(1=>array(3,9,),2=>array(6,4,7,9,),3=>array(7,6,4,9,),4=>array(15,6,4,9,),5=>array(25,1,),6=>array(),7=>array(30,),8=>array(),10=>array(9,));

后面的my_add 为我新添加进去的。

在数据库表vtiger_parenttab,添加一条记录:

11,"my_add",11,0

 

添加一条记录到vtiger_parenttabrel

11,9,11

意思为该菜单下包含一个calander 的菜单列表tabid 为9

可以在表vtiger_tab中看到。

可以执行上面提到的sql 语句检查,可以找到新的定义菜单了。

修改include 下的语言定义文件,否则菜单 会显示为空,不能正常显示:

include/language/en_us.lang.php

'my_add' => 'My Add define',

 

到此,自定义的菜单项目就已经完成了。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值