在自定义模块中,我想创建称呼和名字字段的组合,就像Leads模块中的字母一样。我正在使用vtlib来创建我的模块。我创建了以下字段:
$field2 = new Vtiger_Field();
$field2->name = 'firstname';
$field2->label= 'Firstname';
**$field2->uitype= 55;**
$field2->column = $field2->name;
$field2->columntype = 'VARCHAR(255)';
$field2->typeofdata = 'V~O'; // Varchar Optional field
$block->addField($field2);
这并没有按预期工作,只创建一个没有称呼字段的文本字段。
在https://wiki.vtiger.com/index.php/UI_Types我们可以阅读uitype = 55:
"这个uitype提供了Salutation和Firstname的组合。 Salutation字段是下拉列表,而Firstname字段是单行文本字段,在选择时更改其颜色。"
所以我想知道我是否必须为称呼创建一个新的选择列表(我们可以重用现有的吗?),以及如何将它们带到一行中,并使用唯一的Firstname标签。
有什么想法吗?
此致
答案 0 :(得分:0)
好的,明白了。在vtlib脚本中,我添加了这样的内容:
$field0 = new Vtiger_Field();
$field0->name = 'salutationtype';
$field0->label= 'Salutation';
// This uitype provides a combination of Salutation and Firstname. The Salutation field is a dropdown w$
$field0->uitype= 55; // A single line textfield. Changes colour when selected.
$field0->column = 'salutation';
$field0->columntype = 'VARCHAR(20)';
$field0->typeofdata = 'V~O'; // Varchar Optional field
$field0->displaytype = 3; // Hide from view
$block->addField($field0);
$field1 = new Vtiger_Field();
$field1->name = 'firstname';
$field1->label= 'First Name';
// This uitype provides a combination of Salutation and Firstname. The Salutation field is a dropdown w$
$field1->uitype= 55; // A single line textfield. Changes colour when selected.
$field1->column = $field1->name;
$field1->columntype = 'VARCHAR(255)';
$field1->typeofdata = 'V~O'; // Varchar Optional field
$block->addField($field1);
然后我创建了以下文件:modules / MyModule / views / Edit.php
class MyModule_Edit_View extends Vtiger_Edit_View {
public function process(Vtiger_Request $request) {
$moduleName = $request->getModule();
$recordId = $request->get('record');
$recordModel = $this->record;
if(!$recordModel){
if (!empty($recordId)) {
$recordModel = Vtiger_Record_Model::getInstanceById($recordId, $moduleName);
} else {
$recordModel = Vtiger_Record_Model::getCleanInstance($moduleName);
}
}
$viewer = $this->getViewer($request);
$salutationFieldModel = Vtiger_Field_Model::getInstance('salutationtype', $recordModel->getModule());
$salutationType = $request->get('salutationtype');
if(!empty($salutationType)){
$salutationFieldModel->set('fieldvalue', $request->get('salutationtype'));
}
else{
$salutationFieldModel->set('fieldvalue', $recordModel->get('salutationtype'));
}
$viewer->assign('SALUTATION_FIELD_MODEL', $salutationFieldModel);
parent::process($request);
}
}
现在它按预期工作。