/** * Function to get instance * @param <String/Integer> $value * @param <String> $module * @param <String> $type * @return <Settings_MappedFields_Field_Model> field model */ public static function getInstance($value, $module, $type = '') { switch ($type) { case 'SELF': $fieldModel = parent::getInstance($value, $module); if (!$fieldModel) { $fields = Settings_MappedFields_Module_Model::getSpecialFields(); $fieldModel = $fields[$value]; } break; case 'INVENTORY': $inventoryFieldModel = Vtiger_InventoryField_Model::getInstance($module->getName()); $inventoryFields = $inventoryFieldModel->getFields(); return self::getInstanceFromInventoryFieldObject($inventoryFields[$value]); default: $fieldModel = parent::getInstance($value, $module); break; } if ($fieldModel) { $objectProperties = get_object_vars($fieldModel); $fieldModel = new self(); foreach ($objectProperties as $properName => $propertyValue) { $fieldModel->{$properName} = $propertyValue; } } return $fieldModel; }