public static function GetFieldInputValue($parameterDocumentType, $fieldType, $fieldName, $arRequest, &$arErrors) { list($moduleId, $entity, $documentType) = CBPHelper::ParseDocumentId($parameterDocumentType); if (strlen($moduleId) > 0) { CModule::IncludeModule($moduleId); } if (is_array($fieldType)) { $arFieldType = array("Type" => null, "Multiple" => false, "Required" => false, "Options" => null); foreach ($fieldType as $key => $val) { switch (strtoupper($key)) { case "TYPE": case "0": $arFieldType["Type"] = strval($val); break; case "MULTIPLE": case "1": $arFieldType["Multiple"] = !$val || is_int($val) && $val == 0 || strtoupper($val) == "N" ? false : true; break; case "REQUIRED": case "2": $arFieldType["Required"] = !$val || is_int($val) && $val == 0 || strtoupper($val) == "N" ? false : true; break; case "OPTIONS": case "3": if (is_array($val)) { $arFieldType["Options"] = $val; } break; } } } else { $arFieldType = array("Type" => strval($fieldType), "Multiple" => false, "Required" => false, "Options" => null); } if ((string) $arFieldType["Type"] == "") { return ""; } if (is_array($fieldName)) { $arFieldName = array("Form" => null, "Field" => null); foreach ($fieldName as $key => $val) { switch (strtoupper($key)) { case "FORM": case "0": $arFieldName["Form"] = $val; break; case "FIELD": case "1": $arFieldName["Field"] = $val; break; } } } else { $arFieldName = array("Form" => null, "Field" => $fieldName); } if ((string) $arFieldName["Field"] == "" || preg_match("#[^a-z0-9_]#i", $arFieldName["Field"])) { return ""; } if ((string) $arFieldName["Form"] != "" && preg_match("#[^a-z0-9_]#i", $arFieldName["Form"])) { return ""; } if (class_exists($entity)) { if (method_exists($entity, "GetFieldInputValue")) { return call_user_func_array(array($entity, "GetFieldInputValue"), array($documentType, $arFieldType, $arFieldName, $arRequest, &$arErrors)); } if (method_exists($entity, "SetGUIFieldEdit")) { return call_user_func_array(array($entity, "SetGUIFieldEdit"), array($documentType, $arFieldName["Field"], $arRequest, &$arErrors, $arFieldType)); } } return CBPHelper::GetFieldInputValue($parameterDocumentType, $arFieldType, $arFieldName, $arRequest, $arErrors); }
public function GetFieldInputValue($parameterDocumentType, $fieldType, $fieldName, $arRequest, &$arErrors) { list($moduleId, $entity, $documentType) = CBPHelper::ParseDocumentId($parameterDocumentType); if (strlen($moduleId) > 0) { CModule::IncludeModule($moduleId); } $arFieldType = FieldType::normalizeProperty($fieldType); if ((string) $arFieldType["Type"] == "") { return ""; } if (is_array($fieldName)) { $arFieldName = array("Form" => null, "Field" => null); foreach ($fieldName as $key => $val) { switch (strtoupper($key)) { case "FORM": case "0": $arFieldName["Form"] = $val; break; case "FIELD": case "1": $arFieldName["Field"] = $val; break; } } } else { $arFieldName = array("Form" => null, "Field" => $fieldName); } if ((string) $arFieldName["Field"] == "" || preg_match("#[^a-z0-9_]#i", $arFieldName["Field"])) { return ""; } if ((string) $arFieldName["Form"] != "" && preg_match("#[^a-z0-9_]#i", $arFieldName["Form"])) { return ""; } $fieldTypeObject = $this->getFieldTypeObject($parameterDocumentType, $arFieldType); if ($fieldTypeObject) { return $fieldTypeObject->extractValue($arFieldName, $arRequest, $arErrors); } if (class_exists($entity)) { if (method_exists($entity, "GetFieldInputValue")) { return call_user_func_array(array($entity, "GetFieldInputValue"), array($documentType, $arFieldType, $arFieldName, $arRequest, &$arErrors)); } if (method_exists($entity, "SetGUIFieldEdit")) { return call_user_func_array(array($entity, "SetGUIFieldEdit"), array($documentType, $arFieldName["Field"], $arRequest, &$arErrors, $arFieldType)); } } return CBPHelper::GetFieldInputValue($parameterDocumentType, $arFieldType, $arFieldName, $arRequest, $arErrors); }