在vtiger 6中创建自定义模块

Hop*_*ope 5 module vtiger

你好,我是vtiger的新手.现在我想知道的是如何在不使用现有模块设计器或其他相同的东西的情况下创建costum模块.例如,我想创建一个自定义模块,用于保存某个人的姓名和姓氏.实际上我在互联网上研究,我没有找到关于如何在vtiger 6中专门创建costum模块的明确教程.你有关于如何在vtiger 6中创建costum模块的任何好的教程或链接.非常感谢您的帮助.

Hop*_*ope 8

我在制作实体模块时发现了一些有趣的教程,这就是链接.http://community.vtiger.com/help/vtigercrm/developers/extensions/examples/entity-module.html它正在运行.


Sha*_*hah 6

首先module name without space在模块中创建一个新文件夹()并将文件从vtlib/ModuleDir/6.0.0文件复制到modules/newmodule中创建的文件夹

更改 ModuleName.php模块名称(没有空格)和另外一个ModuleName.php文件的名称languages\en_us.

打开modulename.php to change the class name, $table_name , $table_indexlanguages\en_us使用您的模块名称.

在根目录下创建具有任何名称的新文件.插入以下代码以添加字段和模块.

<?php
include_once 'vtlib/Vtiger/Module.php';

$Vtiger_Utils_Log = true;

$MODULENAME = 'Persons';

$moduleInstance = Vtiger_Module::getInstance($MODULENAME);
if ($moduleInstance || file_exists('modules/'.$MODULENAME)) {
    echo "Module already present - choose a different name.";
} else {
    $moduleInstance = new Vtiger_Module();
    $moduleInstance->name = $MODULENAME;
    $moduleInstance->parent= 'Tools';
    $moduleInstance->save();

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

    // Field Setup
    $block = new Vtiger_Block();
    $block->label = 'LBL_'. strtoupper($moduleInstance->name) . '_INFORMATION';
    $moduleInstance->addBlock($block);

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

    $field1  = new Vtiger_Field();
    $field1->name = 'lastname';
    $field1->label= 'Last Name';
    $field1->uitype= 2;
    $field1->column = $field1->name;
    $field1->columntype = 'VARCHAR(255)';
    $field1->typeofdata = 'V~M';
    $block->addField($field1);

    $moduleInstance->setEntityIdentifier($field1);

    $field2  = new Vtiger_Field();
    $field2->name = 'firstname';
    $field2->label= 'First Name';
    $field2->uitype= 1;
    $field2->column = $field2->name;
    $field2->columntype = 'VARCHAR(255)';
    $field2->typeofdata = 'V~M';
    $block->addField($field2);

    // 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();

    mkdir('modules/'.$MODULENAME);
    echo "OK\n";
}
?>
Run Code Online (Sandbox Code Playgroud)


T30*_*T30 5

有一个简单的控制台工具,用于创建新的自定义模块:

打开cmd提示符,转到vtlib/tools文件夹并执行Console.php文件:

>cd C:\{$YourPathToVtiger}\apache\htdocs\vtigerCRM\vtlib\tools
>php -f Console.php
Run Code Online (Sandbox Code Playgroud)

键入"1"以创建新模块并设置"模块名称"和"实体字段"(实体字段是当您打开该模块的实例时,将在窗口顶部以粗体显示的字段).

现在,新模块已创建并安装,您可以从vTiger GUI轻松自定义它(添加新字段,工作流等).