mirror of
https://github.com/Combodo/iTop.git
synced 2026-02-22 20:04:12 +01:00
Compare commits
1 Commits
develop
...
feature/85
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3d67d17b34 |
@@ -13332,6 +13332,56 @@ class AttributeCustomFields extends AttributeDefinition
|
||||
return $oForm;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param DBObject $oHostObject
|
||||
* @param null $oFormField
|
||||
* @param ObjectFormHandlerHelper $oHelper
|
||||
|
||||
* Override to build the relevant form field
|
||||
*
|
||||
* When called first, $oFormField is null and will be created (eg. Make). Then when the ::parent is called and the
|
||||
* $oFormField is passed, MakeFormField behaves more like a Prepare.
|
||||
*/
|
||||
public function MakeFormFieldForPortal(DBObject $oObject, $oFormField = null, $oHelper = null)
|
||||
{
|
||||
//ici
|
||||
if ($oFormField === null)
|
||||
{
|
||||
$sFormFieldClass = static::GetFormFieldClass();
|
||||
$oFormField = new $sFormFieldClass($this->GetCode());
|
||||
$oFormField->SetForm($this->GetFormForPortal($oObject, null, $oHelper));
|
||||
}
|
||||
parent::MakeFormField($oObject, $oFormField);
|
||||
|
||||
return $oFormField;
|
||||
}
|
||||
/**
|
||||
* @param DBObject $oHostObject
|
||||
* @param null $sFormPrefix
|
||||
* @param ObjectFormHandlerHelper $oHelper
|
||||
*
|
||||
* @return Combodo\iTop\Form\Form
|
||||
* @throws \Exception
|
||||
*/
|
||||
public function GetFormForPortal(DBObject $oHostObject, $sFormPrefix = null, $oHelper =null)
|
||||
{
|
||||
try {
|
||||
$oValue = $oHostObject->Get($this->GetCode());
|
||||
$oHandler = $this->GetHandler($oValue->GetValues());
|
||||
$sFormId = utils::IsNullOrEmptyString($sFormPrefix) ? 'cf_'.$this->GetCode() : $sFormPrefix.'_cf_'.$this->GetCode();
|
||||
$oHandler->BuildForm($oHostObject, $sFormId, $oHelper);
|
||||
$oForm = $oHandler->GetForm();
|
||||
}
|
||||
catch (Exception $e) {
|
||||
$oForm = new Form('');
|
||||
$oField = new LabelField('');
|
||||
$oField->SetLabel('Custom field error: '.$e->getMessage());
|
||||
$oForm->AddField($oField);
|
||||
$oForm->Finalize();
|
||||
}
|
||||
|
||||
return $oForm;
|
||||
}
|
||||
/**
|
||||
* Read the data from where it has been stored. This verb must be implemented as soon as LoadFromClassTables returns false
|
||||
* and LoadInObject returns true
|
||||
|
||||
@@ -377,7 +377,10 @@ class ObjectFormManager extends FormManager
|
||||
|
||||
/** @var Field $oField */
|
||||
$oField = null;
|
||||
if (is_callable([$oAttDef, 'MakeFormField']))
|
||||
if (is_callable([$oAttDef, 'MakeFormFieldForPortal']))
|
||||
{
|
||||
$oField = $oAttDef->MakeFormFieldForPortal($this->oObject, null, $this->oFormHandlerHelper);
|
||||
} elseif (is_callable([$oAttDef, 'MakeFormField']))
|
||||
{
|
||||
$oField = $oAttDef->MakeFormField($this->oObject);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user