- Модуль: bizproc
- Путь к файлу: ~/bitrix/modules/bizproc/classes/general/documentservice.php
- Класс: CBPDocumentService
- Вызов: CBPDocumentService::getFieldInputValue
public function getFieldInputValue($parameterDocumentType, $fieldType, $fieldName, $arRequest, &$arErrors)
{
[$moduleId, $entity, $documentType] = CBPHelper::ParseDocumentId($parameterDocumentType);
if ($moduleId)
{
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(mb_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);
}