diff --git a/modules/Settings/LayoutEditor/actions/Field.php b/modules/Settings/LayoutEditor/actions/Field.php index 7d6b1c5ce630863baf8ce44562e9a264b8a76c40..b8f6b02c650d535f029336486fded2376f5be99f 100644 --- a/modules/Settings/LayoutEditor/actions/Field.php +++ b/modules/Settings/LayoutEditor/actions/Field.php @@ -58,7 +58,10 @@ class Settings_LayoutEditor_Field_Action extends Settings_Vtiger_Index_Action { public function save(Vtiger_Request $request) { $currentUser = Users_Record_Model::getCurrentUserModel(); $fieldId = $request->get('fieldid'); - $fieldInstance = Settings_LayoutEditor_Field_Model::getInstance($fieldId); + $sourceModule = $request->get('sourceModule'); + + $moduleInstance = Vtiger_Module_Model::getInstance($sourceModule); + $fieldInstance = Settings_LayoutEditor_Field_Model::getInstance($fieldId, $moduleInstance); $fieldLabel = $fieldInstance->get('label'); $mandatory = $request->get('mandatory',null); @@ -212,4 +215,4 @@ class Settings_LayoutEditor_Field_Action extends Settings_Vtiger_Index_Action { public function validateRequest(Vtiger_Request $request) { $request->validateWriteAccess(); } -} \ No newline at end of file +} diff --git a/vtlib/Vtiger/Field.php b/vtlib/Vtiger/Field.php index 3995835b9427db98fa766b3dc9e0371415683651..c33b3e296cc58e2b144a195dc21a67850fa94f38 100644 --- a/vtlib/Vtiger/Field.php +++ b/vtlib/Vtiger/Field.php @@ -214,7 +214,17 @@ class Vtiger_Field extends Vtiger_FieldBasic { static function getInstance($value, $moduleInstance=false) { global $adb; $instance = false; - if (!$moduleInstance) return $instance; + if (!$moduleInstance) { + // Derive moduleInstance based on FieldId. + if (is_numeric($value)) { + $fieldInfo = Vtiger_Functions::getModuleFieldInfoWithId($value); + if ($fieldInfo) { + $moduleInstance = Vtiger_Module_Model::getInstance($fieldInfo["tabid"]); + } + } + } + if (!$moduleInstance) return null; + $data = Vtiger_Functions::getModuleFieldInfo($moduleInstance->id, $value); if ($data) { $instance = new self(); @@ -286,4 +296,4 @@ class Vtiger_Field extends Vtiger_FieldBasic { self::log("Deleting fields of the module ... DONE"); } } -?> \ No newline at end of file +?>