• Модуль: disk
  • Путь к файлу: ~/bitrix/modules/disk/lib/bizprocdocument.php
  • Класс: BitrixDiskBizProcDocument
  • Вызов: BizProcDocument::getFieldInputControlOptions
static function getFieldInputControlOptions($documentType, &$fieldType, $functionNameJs, &$value)
{
	$result = "";

	static $documentFieldTypes = array();
	if (!array_key_exists($documentType, $documentFieldTypes))
		$documentFieldTypes[$documentType] = self::getDocumentFieldTypes($documentType);

	if (!array_key_exists($fieldType["Type"], $documentFieldTypes[$documentType])
		|| !$documentFieldTypes[$documentType][$fieldType["Type"]]["Complex"])
	{
		return "";
	}

	if ($fieldType["Type"] == "E:EList")
	{
		if (is_array($value))
		{
			reset($value);
			$valueTmp = intval(current($value));
		}
		else
		{
			$valueTmp = intval($value);
		}

		$iblockId = 0;
		if ($valueTmp > 0)
		{
			$queryResult = CIBlockElement::getList(array(), array("ID" => $valueTmp), false, false, array("ID", "IBLOCK_ID"));
			if ($fetchResult = $queryResult->fetch())
				$iblockId = $fetchResult["IBLOCK_ID"];
		}
		if ($iblockId <= 0 && intval($fieldType["Options"]) > 0)
			$iblockId = intval($fieldType["Options"]);

		$defaultIBlockId = 0;

		$result .= '';

		$fieldType["Options"] = $defaultIBlockId;
	}
	elseif ($fieldType["Type"] == "select")
	{
		$valueTmp = $fieldType["Options"];
		if (!is_array($valueTmp))
			$valueTmp = array($valueTmp => $valueTmp);

		$str = '';
		foreach ($valueTmp as $k => $v)
		{
			if (is_array($v) && count($v) == 2)
			{
				$v1 = array_values($v);
				$k = $v1[0];
				$v = $v1[1];
			}

			if ($k != $v)
				$str .= '['.$k.']'.$v;
			else
				$str .= $v;

			$str .= "n";
		}
		$result .= '
'; $result .= Loc::getMessage("DISK_IBD_DOCUMENT_XFORMOPTIONS1").'
'; $result .= Loc::getMessage("DISK_IBD_DOCUMENT_XFORMOPTIONS2").'
'; $result .= ''; $result .= ''; } return $result; }