Php 向SuiteRM添加新模块

Php 向SuiteRM添加新模块,php,module,sugarcrm,suitecrm,Php,Module,Sugarcrm,Suitecrm,我正在尝试实用地创建一个新模块,但是没有调用或显示元数据,我是如何做到的: 在CRM/Modules/中,我在其中添加了Vendors文件夹,我添加了以下文件夹: 元数据,视图文件夹 在视图中=>view.list.php class VendorsViewList extends SugarView { } $listViewDefs['Vendors'] = array( 'NAME' => array( 'width' => '30',

我正在尝试实用地创建一个新模块,但是没有调用或显示
元数据,我是如何做到的:

CRM/Modules/
中,我在其中添加了
Vendors
文件夹,我添加了以下文件夹:

元数据
视图
文件夹

视图中
=>
view.list.php

class VendorsViewList extends SugarView
{

}
$listViewDefs['Vendors'] = array(
    'NAME' => array(
        'width'   => '30',
        'label'   => 'LBL_LIST_OPPORTUNITY_NAME',
        'link'    => true,
        'default' => true),
    'SALES_STAGE' => array(
        'width'   => '10',
        'label'   => 'LBL_LIST_SALES_STAGE',
        'default' => true),
    'AMOUNT_USDOLLAR' => array(
        'width'   => '10',
        'label'   => 'LBL_LIST_AMOUNT_USDOLLAR',
        'align'   => 'right',
        'default' => true,
        'currency_format' => true,
    ),
    'OPPORTUNITY_TYPE' => array(
        'width' => '15',
        'label' => 'LBL_TYPE'),
    'LEAD_SOURCE' => array(
        'width' => '15',
        'label' => 'LBL_LEAD_SOURCE'),
    'NEXT_STEP' => array(
        'width' => '10',
        'label' => 'LBL_NEXT_STEP'),
    'PROBABILITY' => array(
        'width' => '10',
        'label' => 'LBL_PROBABILITY'),
    'DATE_CLOSED' => array(
        'width' => '10',
        'label' => 'LBL_LIST_DATE_CLOSED',
        'default' => true),
    'CREATED_BY_NAME' => array(
        'width' => '10',
        'label' => 'LBL_CREATED'),
    'ASSIGNED_USER_NAME' => array(
        'width' => '5',
        'label' => 'LBL_LIST_ASSIGNED_USER',
        'module' => 'Employees',
        'id' => 'ASSIGNED_USER_ID',
        'default' => true),
    'MODIFIED_BY_NAME' => array(
        'width' => '5',
        'label' => 'LBL_MODIFIED'),
    'DATE_ENTERED' => array(
        'width' => '10',
        'label' => 'LBL_DATE_ENTERED',
        'default' => true)
);
 $metafiles['Vendors'] = array(

    'listviewdefs'    =>    'modules/Vendors/metadata/listviewdefs.php',


 );
而在
元数据中
=>
listviewdefs.php

class VendorsViewList extends SugarView
{

}
$listViewDefs['Vendors'] = array(
    'NAME' => array(
        'width'   => '30',
        'label'   => 'LBL_LIST_OPPORTUNITY_NAME',
        'link'    => true,
        'default' => true),
    'SALES_STAGE' => array(
        'width'   => '10',
        'label'   => 'LBL_LIST_SALES_STAGE',
        'default' => true),
    'AMOUNT_USDOLLAR' => array(
        'width'   => '10',
        'label'   => 'LBL_LIST_AMOUNT_USDOLLAR',
        'align'   => 'right',
        'default' => true,
        'currency_format' => true,
    ),
    'OPPORTUNITY_TYPE' => array(
        'width' => '15',
        'label' => 'LBL_TYPE'),
    'LEAD_SOURCE' => array(
        'width' => '15',
        'label' => 'LBL_LEAD_SOURCE'),
    'NEXT_STEP' => array(
        'width' => '10',
        'label' => 'LBL_NEXT_STEP'),
    'PROBABILITY' => array(
        'width' => '10',
        'label' => 'LBL_PROBABILITY'),
    'DATE_CLOSED' => array(
        'width' => '10',
        'label' => 'LBL_LIST_DATE_CLOSED',
        'default' => true),
    'CREATED_BY_NAME' => array(
        'width' => '10',
        'label' => 'LBL_CREATED'),
    'ASSIGNED_USER_NAME' => array(
        'width' => '5',
        'label' => 'LBL_LIST_ASSIGNED_USER',
        'module' => 'Employees',
        'id' => 'ASSIGNED_USER_ID',
        'default' => true),
    'MODIFIED_BY_NAME' => array(
        'width' => '5',
        'label' => 'LBL_MODIFIED'),
    'DATE_ENTERED' => array(
        'width' => '10',
        'label' => 'LBL_DATE_ENTERED',
        'default' => true)
);
 $metafiles['Vendors'] = array(

    'listviewdefs'    =>    'modules/Vendors/metadata/listviewdefs.php',


 );
metafiles.php中

class VendorsViewList extends SugarView
{

}
$listViewDefs['Vendors'] = array(
    'NAME' => array(
        'width'   => '30',
        'label'   => 'LBL_LIST_OPPORTUNITY_NAME',
        'link'    => true,
        'default' => true),
    'SALES_STAGE' => array(
        'width'   => '10',
        'label'   => 'LBL_LIST_SALES_STAGE',
        'default' => true),
    'AMOUNT_USDOLLAR' => array(
        'width'   => '10',
        'label'   => 'LBL_LIST_AMOUNT_USDOLLAR',
        'align'   => 'right',
        'default' => true,
        'currency_format' => true,
    ),
    'OPPORTUNITY_TYPE' => array(
        'width' => '15',
        'label' => 'LBL_TYPE'),
    'LEAD_SOURCE' => array(
        'width' => '15',
        'label' => 'LBL_LEAD_SOURCE'),
    'NEXT_STEP' => array(
        'width' => '10',
        'label' => 'LBL_NEXT_STEP'),
    'PROBABILITY' => array(
        'width' => '10',
        'label' => 'LBL_PROBABILITY'),
    'DATE_CLOSED' => array(
        'width' => '10',
        'label' => 'LBL_LIST_DATE_CLOSED',
        'default' => true),
    'CREATED_BY_NAME' => array(
        'width' => '10',
        'label' => 'LBL_CREATED'),
    'ASSIGNED_USER_NAME' => array(
        'width' => '5',
        'label' => 'LBL_LIST_ASSIGNED_USER',
        'module' => 'Employees',
        'id' => 'ASSIGNED_USER_ID',
        'default' => true),
    'MODIFIED_BY_NAME' => array(
        'width' => '5',
        'label' => 'LBL_MODIFIED'),
    'DATE_ENTERED' => array(
        'width' => '10',
        'label' => 'LBL_DATE_ENTERED',
        'default' => true)
);
 $metafiles['Vendors'] = array(

    'listviewdefs'    =>    'modules/Vendors/metadata/listviewdefs.php',


 );
在主模块文件夹中,我有控制器:
Vendor.php

class VendorsViewList extends SugarView
{

}
$listViewDefs['Vendors'] = array(
    'NAME' => array(
        'width'   => '30',
        'label'   => 'LBL_LIST_OPPORTUNITY_NAME',
        'link'    => true,
        'default' => true),
    'SALES_STAGE' => array(
        'width'   => '10',
        'label'   => 'LBL_LIST_SALES_STAGE',
        'default' => true),
    'AMOUNT_USDOLLAR' => array(
        'width'   => '10',
        'label'   => 'LBL_LIST_AMOUNT_USDOLLAR',
        'align'   => 'right',
        'default' => true,
        'currency_format' => true,
    ),
    'OPPORTUNITY_TYPE' => array(
        'width' => '15',
        'label' => 'LBL_TYPE'),
    'LEAD_SOURCE' => array(
        'width' => '15',
        'label' => 'LBL_LEAD_SOURCE'),
    'NEXT_STEP' => array(
        'width' => '10',
        'label' => 'LBL_NEXT_STEP'),
    'PROBABILITY' => array(
        'width' => '10',
        'label' => 'LBL_PROBABILITY'),
    'DATE_CLOSED' => array(
        'width' => '10',
        'label' => 'LBL_LIST_DATE_CLOSED',
        'default' => true),
    'CREATED_BY_NAME' => array(
        'width' => '10',
        'label' => 'LBL_CREATED'),
    'ASSIGNED_USER_NAME' => array(
        'width' => '5',
        'label' => 'LBL_LIST_ASSIGNED_USER',
        'module' => 'Employees',
        'id' => 'ASSIGNED_USER_ID',
        'default' => true),
    'MODIFIED_BY_NAME' => array(
        'width' => '5',
        'label' => 'LBL_MODIFIED'),
    'DATE_ENTERED' => array(
        'width' => '10',
        'label' => 'LBL_DATE_ENTERED',
        'default' => true)
);
 $metafiles['Vendors'] = array(

    'listviewdefs'    =>    'modules/Vendors/metadata/listviewdefs.php',


 );
require_once('include/MVC/Controller/SugarController.php')


我看不出这里缺少什么,它调用的是
控制器
视图
,但不是
元数据

,我建议您使用模块生成器创建模块。如果选择“发布”,模块生成器将提供一个zip文件,其中包含启动所需的最低数量

然后,您可以从那里定制模块

模块生成器为您设置了很多。它:

  • 在include/modules.php中注册模块
  • 创建SugarBean(模型)
  • 创建数据库vardefs
  • 创建元数据(视图)
  • 创建语言文件
  • 等等

包的SugarModule中的布局与CRM的布局匹配

如果您正在SuiteRM中编辑模块。请记住,必须运行修复和重建以清除任何缓存文件