首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >未保存Vtiger自定义模块

未保存Vtiger自定义模块
EN

Stack Overflow用户
提问于 2014-09-29 09:25:08
回答 1查看 1.8K关注 0票数 0

我正在vtiger中创建一个自定义模块,这是Vehicles.php文件在Modules/Vehicles

代码语言:javascript
复制
<?php

include_once 'modules/Vtiger/CRMEntity.php';

class Vehicles extends Vtiger_CRMEntity {
    var $table_name = 'vtiger_vehicles';
    var $table_index= 'vehiclesid';

    var $customFieldTable = Array('vtiger_vehiclescf', 'vehiclesid');

    var $tab_name = Array('vtiger_crmentity', 'vtiger_vehicles', 'vtiger_vehiclescf');

    var $tab_name_index = Array(
            'vtiger_crmentity' => 'crmid',
            'vtiger_vehicles' => 'vehiclesid',
            'vtiger_vehiclescf'=>'vehiclesid');

    var $list_fields = Array (
            /* Format: Field Label => Array(tablename, columnname) */
            // tablename should not have prefix 'vtiger_'
            'Reg No' => Array('vehicles', 'reg_no'),
            'Assigned To' => Array('crmentity','smownerid')
    );
    var $list_fields_name = Array (
            /* Format: Field Label => fieldname */
            'Reg No' => 'reg_no',
            'Assigned To' => 'assigned_user_id',
    );

    // Make the field link to detail view
    var $list_link_field = 'reg_no';

    // For Popup listview and UI type support
    var $search_fields = Array(
            /* Format: Field Label => Array(tablename, columnname) */
            // tablename should not have prefix 'vtiger_'
            'Reg No' => Array('vehicles', 'reg_no'),
            'Assigned To' => Array('vtiger_crmentity','assigned_user_id'),
    );
    var $search_fields_name = Array (
            /* Format: Field Label => fieldname */
            'Reg No' => 'reg_no',
            'Assigned To' => 'assigned_user_id',
    );

    // For Popup window record selection
    var $popup_fields = Array ('reg_no');

    // For Alphabetical search
    var $def_basicsearch_col = 'reg_no';

    // Column value to use on detail view record text display
    var $def_detailview_recname = 'reg_no';

    // Used when enabling/disabling the mandatory fields for the module.
    // Refers to vtiger_field.fieldname values.
    var $mandatory_fields = Array('reg_no','assigned_user_id');

    var $default_order_by = 'reg_no';
    var $default_sort_order='ASC';
    /**
 * Invoked when special actions are performed on the module.
* @param String Module name
* @param String Event Type
*/
function vtlib_handler($moduleName, $eventType) {
    global $adb;
    if($eventType == 'module.postinstall') {
        // TODO Handle actions after this module is installed.
    } else if($eventType == 'module.disabled') {
        // TODO Handle actions before this module is being uninstalled.
    } else if($eventType == 'module.preuninstall') {
        // TODO Handle actions when this module is about to be deleted.
    } else if($eventType == 'module.preupdate') {
        // TODO Handle actions before this module is updated.
    } else if($eventType == 'module.postupdate') {
        // TODO Handle actions after this module is updated.
    }
}
}

用于创建模块的文件是:

代码语言:javascript
复制
<?php
include_once('vtlib/Vtiger/Module.php');

/**
*Init instance
*/
$Vtiger_Utils_Log = true;

$MODULENAME = 'Vehicles';

$moduleInstance = Vtiger_Module::getInstance($MODULENAME);
if ($moduleInstance || file_exists('modules/'.$MODULENAME)) {
    $moduleInstance->delete();
} else {
    $moduleInstance = new Vtiger_Module();
    $moduleInstance->name = $MODULENAME;
    $moduleInstance->parent= 'Inventory';
    $moduleInstance->save();

    // Schema Setup
    $moduleInstance->initTables();

    //Bring on the blocks
    $block = new Vtiger_Block();
    $block->label = 'LBL_'. strtoupper($moduleInstance->name) . '_INFORMATION';
    $table = "vtiger_".strtolower($moduleInstance->name);
    $moduleInstance->addBlock($block);

    $blockcf = new Vtiger_Block();
    $blockcf->label = 'LBL_CUSTOM_INFORMATION';
    $moduleInstance->addBlock($blockcf);

    $field1  = new Vtiger_Field();
    $field1->name = 'reg_no';
    $field1->label= 'Registration Number';
    $field1->uitype= 2;
    $field1->table = $table;
    $field1->column = $field1->name;
    $field1->columntype = 'VARCHAR(255)';
    $field1->typeofdata = 'V~M';
    $block->addField($field1);
    $moduleInstance->setEntityIdentifier($field1);

    $field2  = new Vtiger_Field();
    $field2->name = 'chas_no';
    $field2->label= 'Chassis Number';
    $field2->uitype= 2;
    $field2->column = $field1->name;
    $field2->columntype = 'VARCHAR(255)';
    $field2->typeofdata = 'V~O';
    $field2->table = $table;
    $block->addField($field2);

    $field3 = new Vtiger_Field();
    $field3->name= 'cust_name';
    $field3->label = 'Customer';
    $field3->uitype = 10;
    $field3->column = $field3->name;
    $field3->columntype ='VARCHAR(255)';
    $field3->typeofdata ='V~M';
    $field3->table = $table;
    $block->addField($field3);
    $field3->setRelatedModules(Array('Contacts'));

    // Recommended common fields every Entity module should have (linked to core table)
    $mfield1 = new Vtiger_Field();
    $mfield1->name = 'assigned_user_id';
    $mfield1->label = 'Assigned To';
    $mfield1->table = 'vtiger_crmentity';
    $mfield1->column = 'smownerid';
    $mfield1->uitype = 53;
    $mfield1->typeofdata = 'V~M';
    $block->addField($mfield1);

    $mfield2 = new Vtiger_Field();
    $mfield2->name = 'CreatedTime';
    $mfield2->label= 'Created Time';
    $mfield2->table = 'vtiger_crmentity';
    $mfield2->column = 'createdtime';
    $mfield2->uitype = 70;
    $mfield2->typeofdata = 'T~O';
    $mfield2->displaytype= 2;
    $block->addField($mfield2);

    $mfield3 = new Vtiger_Field();
    $mfield3->name = 'ModifiedTime';
    $mfield3->label= 'Modified Time';
    $mfield3->table = 'vtiger_crmentity';
    $mfield3->column = 'modifiedtime';
    $mfield3->uitype = 70;
    $mfield3->typeofdata = 'T~O';
    $mfield3->displaytype= 2;
    $block->addField($mfield3);

    // Filter Setup
    $filter1 = new Vtiger_Filter();
    $filter1->name = 'All';
    $filter1->isdefault = true;
    $moduleInstance->addFilter($filter1);
    $filter1->addField($field1)->addField($field2, 1)->addField($field3, 2)->addField($mfield1, 3);

    // Sharing Access Setup
    $moduleInstance->setDefaultSharing();

    // Webservice Setup
    $moduleInstance->initWebservice();
    }

一切运转良好:

制造模块车..。已启动

初始化模块权限..。完成

更新表格文件..。完成

设置共享访问选项..。完成

添加到菜单目录..。完成

更新parent_tabdata文件..。已启动

更新parent_tabdata文件..。完成

制造模块车..。完成

创建块LBL_VEHICLES_INFORMATION ..。完成

LBL_VEHICLES_INFORMATION的模块语言条目..。检查

创建块LBL_CUSTOM_INFORMATION ..。完成

LBL_CUSTOM_INFORMATION的模块语言条目..。检查

创建字段reg_no ..。完成

注册号的模块语言映射..。检查

设置实体标识符。完成

创建字段chas_no ..。完成

底盘号的模块语言映射..。检查

创建字段cust_name ..。完成

面向客户的模块语言映射。检查

设置cust_name关系与联系人。完成

创建字段assigned_user_id ..。完成

分配给.的模块语言映射。检查

创建字段CreatedTime ..。完成

创建时间的模块语言映射..。检查

创建字段ModifiedTime ..。完成

修改时间的模块语言映射..。检查

创建过滤器所有..。完成

将过滤器全部设置为状态..。完成

添加reg_no到所有过滤器..。完成

添加chas_no到所有过滤器..。完成

添加cust_name到所有过滤器..。完成

添加assigned_user_id到所有过滤器..。完成

重新计算分享规则。完成

初始化支持...DONE的webservices

模块运行良好,但无法添加记录,但保存后显示如下:

我遗漏了什么,如何修复错误?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-09-29 11:17:50

错误就在$field2->column = $field1->name;线上,

应该是$field2->column = $field2->name;

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26096567

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档