首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用我的CRM vtiger 7中的PHP脚本(Vtlib函数)作为包导出和导入自定义模块

如何使用我的CRM vtiger 7中的PHP脚本(Vtlib函数)作为包导出和导入自定义模块
EN

Stack Overflow用户
提问于 2022-07-04 06:38:54
回答 1查看 157关注 0票数 0

我希望你们都做得很好。我已经创建了一个自定义模块,使用了这个script.we,运行了这个脚本,在根folder.All字段中工作得很好,列表视图也很完美。

代码语言:javascript
复制

include_once 'vtlib/Vtiger/Module.php';

include_once 'vtlib/Vtiger/Package.php';

include_once‘包括/main/WebUI.php’;

include_once 'include/Webservices/Utils.php';

$Vtiger_Utils_Log =真;

$MODULENAME =‘膝上型’;

$moduleInstance = Vtiger_Module::getInstance($MODULENAME);

if ($moduleInstance连体/file_exists(‘模块/’.$MODULENAME)){

回显“模块已经出现-选择不同的名称。”

}否则{

$moduleInstance =新的Vtiger_Module();

$moduleInstance->name = $MODULENAME;

$moduleInstance->parent= 'Tools';

$moduleInstance->save();

//架构设置

$moduleInstance->initTables();

//字段设置

$block =新的Vtiger_Block();

$block->label = 'LBL_'.strtoupper($moduleInstance->name)。“_信息”;

$moduleInstance->addBlock($block);

$blockcf =新的Vtiger_Block();

$blockcf->label =‘LBL_定制_INFORMATION’;

$moduleInstance->addBlock($blockcf);

// Text Area1 Item_Name

$itemName =新的Vtiger_Field();

代码语言:javascript
复制
$itemName->name = 'itemname';
代码语言:javascript
复制
$itemName->label= 'Item Name';
代码语言:javascript
复制
$itemName->uitype= 1;
代码语言:javascript
复制
$itemName->column = $itemName->name;
代码语言:javascript
复制
$itemName->columntype = 'VARCHAR(100)';
代码语言:javascript
复制
$itemName->typeofdata = 'V~M';
代码语言:javascript
复制
$block->addField($itemName);
代码语言:javascript
复制
 // Text Area2 Item_Deatils
代码语言:javascript
复制
$itemdeatils  = new Vtiger_Field();
代码语言:javascript
复制
$itemdeatils->name = 'itemdeatils';
代码语言:javascript
复制
$itemdeatils->label= 'Item Deatils';
代码语言:javascript
复制
$itemdeatils->uitype= 1;
代码语言:javascript
复制
$itemdeatils->column = $itemdeatils->name;
代码语言:javascript
复制
$itemdeatils->columntype = 'VARCHAR(100)';
代码语言:javascript
复制
$itemdeatils->typeofdata = 'V~O';
代码语言:javascript
复制
$block->addField($itemdeatils);
代码语言:javascript
复制
$moduleInstance->setEntityIdentifier($itemdeatils);

// Text Area3 Item_Company.

代码语言:javascript
复制
$companyname  = new Vtiger_Field();
代码语言:javascript
复制
$companyname->name = 'companyname';
代码语言:javascript
复制
$companyname->label= 'Company Name.';
代码语言:javascript
复制
$companyname->uitype= 15;
代码语言:javascript
复制
$companyname->column = $companyname->name;
代码语言:javascript
复制
$companyname->columntype = 'VARCHAR(100)';
代码语言:javascript
复制
$companyname->typeofdata = 'V~O';
代码语言:javascript
复制
$block->addField($companyname);  
代码语言:javascript
复制
$companyname->setPicklistValues( Array ('Sumsung','HP','Dell', 'Lenovo','Apple') ); 
代码语言:javascript
复制
$description  = new Vtiger_Field();
代码语言:javascript
复制
$description->name = 'description';
代码语言:javascript
复制
$description->label= 'Description';
代码语言:javascript
复制
$description->uitype= 19;
代码语言:javascript
复制
$description->column = 'description';
代码语言:javascript
复制
$description->table = 'vtiger_crmentity';
代码语言:javascript
复制
$blockcf->addField($description);
代码语言:javascript
复制
// Recommended common fields every Entity module should have (linked to core table)
代码语言:javascript
复制
$mfield1 = new Vtiger_Field();
代码语言:javascript
复制
$mfield1->name = 'assigned_user_id';
代码语言:javascript
复制
$mfield1->label = 'Assigned To';
代码语言:javascript
复制
$mfield1->table = 'vtiger_crmentity';
代码语言:javascript
复制
$mfield1->column = 'smownerid';
代码语言:javascript
复制
$mfield1->uitype = 53;
代码语言:javascript
复制
$mfield1->typeofdata = 'V~M';
代码语言:javascript
复制
$block->addField($mfield1);
代码语言:javascript
复制
$mfield2 = new Vtiger_Field();
代码语言:javascript
复制
$mfield2->name = 'createdtime';
代码语言:javascript
复制
$mfield2->label= 'Created Time';
代码语言:javascript
复制
$mfield2->table = 'vtiger_crmentity';
代码语言:javascript
复制
$mfield2->column = 'createdtime';
代码语言:javascript
复制
$mfield2->uitype = 70;
代码语言:javascript
复制
$mfield2->typeofdata = 'DT~O';
代码语言:javascript
复制
$mfield2->displaytype= 2;
代码语言:javascript
复制
$block->addField($mfield2);
代码语言:javascript
复制
$mfield3 = new Vtiger_Field();
代码语言:javascript
复制
$mfield3->name = 'modifiedtime';
代码语言:javascript
复制
$mfield3->label= 'Modified Time';
代码语言:javascript
复制
$mfield3->table = 'vtiger_crmentity';
代码语言:javascript
复制
$mfield3->column = 'modifiedtime';
代码语言:javascript
复制
$mfield3->uitype = 70;
代码语言:javascript
复制
$mfield3->typeofdata = 'DT~O';
代码语言:javascript
复制
$mfield3->displaytype= 2;
代码语言:javascript
复制
$block->addField($mfield3);
代码语言:javascript
复制
/* NOTE: Vtiger 7.1.0 onwards */
代码语言:javascript
复制
$mfield4 = new Vtiger_Field();
代码语言:javascript
复制
$mfield4->name = 'source';
代码语言:javascript
复制
$mfield4->label = 'Source';
代码语言:javascript
复制
$mfield4->table = 'vtiger_crmentity';
代码语言:javascript
复制
$mfield4->displaytype = 2; // to disable field in Edit View
代码语言:javascript
复制
$mfield4->quickcreate = 3;
代码语言:javascript
复制
$mfield4->masseditable = 0;
代码语言:javascript
复制
$block->addField($mfield4);
代码语言:javascript
复制
$mfield5 = new Vtiger_Field();
代码语言:javascript
复制
$mfield5->name = 'starred';
代码语言:javascript
复制
$mfield5->label = 'starred';
代码语言:javascript
复制
$mfield5->table = 'vtiger_crmentity_user_field';
代码语言:javascript
复制
$mfield5->displaytype = 6;
代码语言:javascript
复制
$mfield5->uitype = 56;
代码语言:javascript
复制
$mfield5->typeofdata = 'C~O';
代码语言:javascript
复制
$mfield5->quickcreate = 3;
代码语言:javascript
复制
$mfield5->masseditable = 0;
代码语言:javascript
复制
$block->addField($mfield5);
代码语言:javascript
复制
$mfield6 = new Vtiger_Field();
代码语言:javascript
复制
$mfield6->name = 'tags';
代码语言:javascript
复制
$mfield6->label = 'tags';
代码语言:javascript
复制
$mfield6->displaytype = 6;
代码语言:javascript
复制
$mfield6->columntype = 'VARCHAR(1)';
代码语言:javascript
复制
$mfield6->quickcreate = 3;
代码语言:javascript
复制
$mfield6->masseditable = 0;
代码语言:javascript
复制
$block->addField($mfield6);
代码语言:javascript
复制
/* End 7.1.0 */
代码语言:javascript
复制
// Filter Setup
代码语言:javascript
复制
$filter1 = new Vtiger_Filter();
代码语言:javascript
复制
$filter1->name = 'All';
代码语言:javascript
复制
$filter1->isdefault = true;
代码语言:javascript
复制
$moduleInstance->addFilter($filter1);
代码语言:javascript
复制
$filter1->addField($itemName);
代码语言:javascript
复制
$filter1->addField($itemdeatils, 1);
代码语言:javascript
复制
$filter1->addField($companyname, 2);
代码语言:javascript
复制
$filter1->addField($mfield1, 3);
代码语言:javascript
复制
// Sharing Access Setup
代码语言:javascript
复制
$moduleInstance->setDefaultSharing('Private');
代码语言:javascript
复制
// Webservice Setup
代码语言:javascript
复制
$moduleInstance->initWebservice();

$targetpath =‘模块/’。$moduleInstance->name;

代码语言:javascript
复制
  if (! is_file($targetpath)) {
代码语言:javascript
复制
  mkdir($targetpath);
代码语言:javascript
复制
$templatepath = 'vtlib/ModuleDir/6.0.0';

$moduleFileContents = file_get_contents($templatepath .)'/ModuleName.php');

代码语言:javascript
复制
$replacevars = array(
代码语言:javascript
复制
'ModuleName' => $moduleInstance->name,
代码语言:javascript
复制
'<modulename>' => strtolower($moduleInstance->name),
代码语言:javascript
复制
'<entityfieldlabel>' => $field1->label,
代码语言:javascript
复制
'<entitycolumn>' => $field1->column,
代码语言:javascript
复制
'<entityfieldname>' => $field1->name
代码语言:javascript
复制
);
代码语言:javascript
复制
    foreach ($replacevars as $key => $value) {
代码语言:javascript
复制
$moduleFileContents = str_replace($key, $value, $moduleFileContents);
代码语言:javascript
复制
   }
代码语言:javascript
复制
  file_put_contents
代码语言:javascript
复制
  ($targetpath . '/' . $moduleInstance->name . '.php',$moduleFileContents);
代码语言:javascript
复制
      }
代码语言:javascript
复制
        if (! file_exists('languages/en_us/ModuleName.php')) {
代码语言:javascript
复制
   $ModuleLanguageContents = file_get_contents
代码语言:javascript
复制
   ($templatepath . '/languages/en_us  /ModuleName.php');
代码语言:javascript
复制
 $replaceparams = array(
代码语言:javascript
复制
'Module Name' => $moduleInstance->name,
代码语言:javascript
复制
'Custom' => $moduleInstance->name,
代码语言:javascript
复制
'ModuleBlock' => $moduleInstance->name,
代码语言:javascript
复制
'ModuleFieldLabel Text' => $field1->label
代码语言:javascript
复制
 );
代码语言:javascript
复制
 foreach ($replaceparams as $key => $value) {
代码语言:javascript
复制
 $ModuleLanguageContents = str_replace($key, $value, $ModuleLanguageContents);

}

$languagePath = 'languages/en_us';

file_put_contents

代码语言:javascript
复制
($languagePath . '/' . $moduleInstance->name . '.php',$ModuleLanguageContents);
代码语言:javascript
复制
  }
代码语言:javascript
复制
    }
代码语言:javascript
复制
Settings_MenuEditor_Module_Model::addModuleToApp
代码语言:javascript
复制
        ($moduleInstance->name, $moduleInstance->parent);
代码语言:javascript
复制
     ?>
代码语言:javascript
复制
 ```
代码语言:javascript
复制

如何使用PHP脚本(Vtlib函数)从我的CRM vtiger 7导出和导入自定义模块作为包,请帮助我。

EN

回答 1

Stack Overflow用户

发布于 2022-07-04 06:44:27

我被困在如何使用VTlib库在Vtiger中创建自定义模块上。您共享的代码非常适合在vtiger中创建自定义模块。

要在vtiger中导出自定义模块,需要运行以下代码-

代码语言:javascript
复制
require_once('vtlib/Vtiger/Package.php');
require_once('vtlib/Vtiger/Module.php');
$package = new Vtiger_Package();
$package->export(
Vtiger_Module::getInstance('Payslip'),
'test/vtlib',
'Payslip-Export.zip',
true
);

不要忘记更改模块名

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

https://stackoverflow.com/questions/72852629

复制
相关文章

相似问题

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