Your IP : 3.138.124.40


Current Path : /home/bitrix/ext_www/shuft.com.ua/bitrix/components/bitrix/system.field.edit/
Upload File :
Current File : //home/bitrix/ext_www/shuft.com.ua/bitrix/components/bitrix/system.field.edit/component.php

<?php
/**
 * Bitrix Framework
 * @package bitrix
 * @subpackage main
 * @copyright 2001-2013 Bitrix
 */

if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();

/**
 * Bitrix vars
 *
 * @var array $arParams
 * @var array $arResult
 * @var CBitrixComponent $this
 * @global CMain $APPLICATION
 * @global CUser $USER
 */

$arParams["bVarsFromForm"] = ($arParams["bVarsFromForm"] ? true:false);
$arResult["VALUE"] = false;
$arUserField = &$arParams["arUserField"];

if($arUserField["USER_TYPE"])
{
	if(!is_array($arUserField["SETTINGS"]))
		$arUserField["SETTINGS"] = array();
	if(!is_array($arUserField["USER_TYPE"]))
		$arUserField["USER_TYPE"] = array();

	if(!$arParams["bVarsFromForm"])
	{
		if(
			$arUserField["ENTITY_VALUE_ID"] <= 0
			&& !is_array($arUserField["SETTINGS"]["DEFAULT_VALUE"])
			&& strlen($arUserField["SETTINGS"]["DEFAULT_VALUE"]) > 0
		)
		{
			$arResult["VALUE"] = $arParams["~arUserField"]["SETTINGS"]["DEFAULT_VALUE"];
		}
		else
		{
			$arResult["VALUE"] = $arParams["~arUserField"]["VALUE"];
		}
	}
	else
	{
		if($arUserField["USER_TYPE"]["BASE_TYPE"]=="file")
			$arResult["VALUE"] = $GLOBALS[$arUserField["FIELD_NAME"]."_old_id"];
		else
			$arResult["VALUE"] = $_REQUEST[$arUserField["FIELD_NAME"]];
	}

	if (!is_array($arResult["VALUE"]))
	{
		$arResult["VALUE"] = array($arResult["VALUE"]);
	}
	if (empty($arResult["VALUE"]))
	{
		$arResult["VALUE"] = array(null);
	}

	foreach ($arResult["VALUE"] as $key => $res)
	{
		switch ($arUserField["USER_TYPE"]["BASE_TYPE"])
		{
			case "double":
				if (strlen($res)>0)
					$res = round(doubleval($res), $arUserField["SETTINGS"]["PRECISION"]);
				break;
			case "int":
				$res = intval($res);
				break;
			default:
				$res = htmlspecialcharsbx($res);
				break;
		}
		$arResult["VALUE"][$key] = $res;
	}

	$arUserField["~FIELD_NAME"] = $arUserField["FIELD_NAME"];
	if ($arUserField["MULTIPLE"]=="Y")
	{
		$arUserField["FIELD_NAME"] .= "[]";

		if (!empty($arResult["VALUE"]) && (!empty($arResult["VALUE"][count($arResult["VALUE"])-1])))
		{
			$arResult["VALUE"][] = null;
		}
	}

	if (is_callable(array($arUserField["USER_TYPE"]['CLASS_NAME'], 'getlist')))
	{
		$enum = array();

		$showNoValue = $arUserField["MANDATORY"] != "Y"
			|| (isset($arParams["SHOW_NO_VALUE"]) && $arParams["SHOW_NO_VALUE"] == true);

		if($showNoValue
			&& ($arUserField["SETTINGS"]["DISPLAY"] != "CHECKBOX" || $arUserField["MULTIPLE"] <> "Y")
		)
		{
			$enum = array(null => ($arUserField["SETTINGS"]["CAPTION_NO_VALUE"] <> ''? $arUserField["SETTINGS"]["CAPTION_NO_VALUE"] : GetMessage("MAIN_NO")));
		}

		$rsEnum = call_user_func_array(
			array($arParams['arUserField']["USER_TYPE"]["CLASS_NAME"], "getlist"),
			array(
				$arParams['arUserField'],
			)
		);

		if(!$arParams["bVarsFromForm"] && ($arUserField["ENTITY_VALUE_ID"] <= 0))
			$arResult["VALUE"] = array();

		while($arEnum = $rsEnum->GetNext())
		{
			$enum[$arEnum["ID"]] = $arEnum["VALUE"];
			if(!$arParams["bVarsFromForm"] && ($arUserField["ENTITY_VALUE_ID"] <= 0))
			{
				if($arEnum["DEF"] == "Y")
					$arResult["VALUE"][] = $arEnum["ID"];
			}
		}
		$arUserField["USER_TYPE"]["FIELDS"] = $enum;
	}

	$arParams["form_name"] = !empty($arParams["form_name"]) ? $arParams["form_name"] : "form1";

	$arResult["RANDOM"] = $this->randString();

	$APPLICATION->AddHeadScript($this->getPath()."/script.js");

	$this->IncludeComponentTemplate();
}