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/cvetdv.ru/bitrix/modules/yandex.market/lib/component/options/

Upload File :
current_dir [ Writeable] document_root [ Writeable]

 

Command :


[ Back ]     

Current File : /home/bitrix/ext_www/cvetdv.ru/bitrix/modules/yandex.market/lib/component/options/editform.php
<?php

namespace Yandex\Market\Component\Options;

use Yandex\Market;
use Bitrix\Main;

class EditForm extends Market\Component\Plain\EditForm
{
	public function load($primary, array $select = [], $isCopy = false)
	{
		$result = [];

		foreach ($this->getFields($select) as $name => $field)
		{
			$value = $this->getOptionValue($name);

			if ($value === null)
			{
				$value = $this->getDefaultValue($field);
			}

			$result[$name] = $this->convertOptionToFieldValue($field, $value);
		}

		return $result;
	}

	public function getFields(array $select = [], array $item = null)
	{
		$result = parent::getFields($select, $item);

		if (in_array('PERMISSIONS', $select, true))
		{
			$result += $this->extendFields([
				'PERMISSIONS' => [
					'TYPE' => 'string',
					'NAME' => 'PERMISSIONS'
				],
			]);
		}

		return $result;
	}

	public function add(array $data)
	{
		throw new Main\NotSupportedException();
	}

	public function update($primary, array $data)
	{
		$this->saveOptions($data);
		$this->savePermissions();

		return new Main\Entity\UpdateResult();
	}

	protected function saveOptions($values)
	{
		$changes = [];

		foreach ($values as $name => $value)
		{
			$field = $this->getField($name);

			if ($field === null) { continue; }

			$currentValue = $this->getOptionValue($name);
			$optionValue = $this->convertFieldToOptionValue($field, $value);
			$optionValueString = (string)$optionValue;

			if ($optionValueString === '' || (string)$this->getDefaultValue($field) === $optionValueString)
			{
				if ($currentValue === null) { continue; }

				Market\Config::removeOption($name);
			}
			else
			{
				if ((string)$currentValue === $optionValueString) { continue; }

				Market\Config::setOption($name, $optionValue);
			}

			$changes[$name] = $optionValue;
		}

		$this->applyOptionsChanges($changes);
	}

	protected function applyOptionsChanges(array $changes)
	{
		foreach ($changes as $name => $value)
		{
			if ($name === 'export_writer_index')
			{
				$this->applyWriterIndexChange($value);
			}
		}
	}

	protected function applyWriterIndexChange($value)
	{
		if ($value === 'Y') { return; }

		Market\Export\Run\Writer\IndexFacade::resetAll();
	}

	/**
	 * @noinspection PhpUnusedLocalVariableInspection
	 * @noinspection PhpIncludeInspection
	 */
	protected function savePermissions()
	{
		global $APPLICATION;
		global $USER;
		global $GROUPS;
		global $RIGHTS;
		global $SITES;
		global $REQUEST_METHOD;

		ob_start();
		$module_id = Market\Config::getModuleName();
		$Update = '1'; // need inside main module
		require $_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/main/admin/group_rights.php';
		echo '</table>';
		ob_end_clean();
	}

	protected function getOptionValue($name)
	{
		$option = (string)Market\Config::getOption($name);
		$result = null;

		if ($option !== '')
		{
			$result = $option;
		}

		return $result;
	}

	protected function getDefaultValue($field)
	{
		$result = null;

		if (isset($field['SETTINGS']['DEFAULT_VALUE']))
		{
			$result = $field['SETTINGS']['DEFAULT_VALUE'];
		}

		return $result;
	}

	/** @return mixed */
	protected function convertFieldToOptionValue($field, $value)
	{
		if ($field['TYPE'] === 'boolean' && (string)$value !== '')
		{
			return ((string)$value === '1' ? 'Y' : 'N');
		}

		return $value;
	}

	protected function convertOptionToFieldValue($field, $value)
	{
		$result = $value;

		if ($value !== null && $field['TYPE'] === 'boolean')
		{
			$result = ($value === 'Y' ? '1' : '0');
		}

		return $result;
	}

	protected function getField($name)
	{
		return isset($this->fields[$name]) ? $this->fields[$name] : null;
	}
}

Youez - 2016 - github.com/yon3zu
LinuXploit