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/export/entity/reference/

Upload File :
current_dir [ Writeable] document_root [ Writeable]

 

Command :


[ Back ]     

Current File : /home/bitrix/ext_www/cvetdv.ru/bitrix/modules/yandex.market/lib/export/entity/reference/source.php
<?php

namespace Yandex\Market\Export\Entity\Reference;

use Yandex\Market;
use Bitrix\Main;

Main\Localization\Loc::loadMessages(__FILE__);

abstract class Source
{
	protected $type;

	public function setType($type)
	{
		$this->type = $type;
	}

	public function getType()
	{
		return $this->type;
	}

	/**
	 * ��� �������
	 *
	 * @param array $context
	 *
	 * @return array
	 */
	abstract public function getFields(array $context = []);

    /**
     * ���� �������
     *
     * @param $fieldId
     * @param array $context
     *
     * @return array|null
     */
    public function getField($fieldId, array $context = [])
    {
        $fields = $this->getFields($context);
        $result = null;

        if (!empty($fields))
        {
            foreach ($fields as $field)
            {
                if ($field['ID'] === $fieldId)
                {
                    $result = $field;
                    break;
                }
            }
        }

        return $result;
    }

	/**
	 * ����� ��� �� �������
	 *
	 * @param string $query
	 * @param array $context
	 *
	 * @return array
	 */
	public function suggestFields($query, array $context = [])
	{
		$result = [];
		$fields = $this->getFields($context);

		if (!is_array($fields)) { return $result; }

		foreach ($fields as $field)
		{
			if (
				Market\Data\TextString::getPositionCaseInsensitive($field['VALUE'], $query) !== false
				|| Market\Data\TextString::getPositionCaseInsensitive($field['ID'], $query) !== false
			)
			{
				$result[] = $field;
			}
		}

		return $result;
	}

	/**
	 * ������� ������� �������
	 *
	 * @param       $field
	 * @param array $context
	 *
	 * @return array|null
	 */
	public function getFieldEnum($field, array $context = [])
	{
		$result = null;

		if (!empty($field['TYPE']))
		{
			switch ($field['TYPE'])
			{
				case Market\Export\Entity\Data::TYPE_BOOLEAN:

					$result = [
						[
							'ID' => 'Y',
							'VALUE' => Market\Config::getLang('EXPORT_ENTITY_SOURCE_BOOLEAN_TYPE_ENUM_Y')
						],
						[
							'ID' => 'N',
							'VALUE' => Market\Config::getLang('EXPORT_ENTITY_SOURCE_BOOLEAN_TYPE_ENUM_N')
						]
					];

				break;

				case Market\Export\Entity\Data::TYPE_FILE:

					$result = [
						[
							'ID' => Market\Export\Entity\Data::SPECIAL_VALUE_EMPTY,
							'VALUE' => Market\Config::getLang('EXPORT_ENTITY_SOURCE_FILE_TYPE_ENUM_EMPTY')
						]
					];

				break;

				case Market\Export\Entity\Data::TYPE_DATE:
				case Market\Export\Entity\Data::TYPE_DATETIME:

					$result = [];
					$variants = [
						'HOUR' => 'PT1H',
						'DAY' => 'P1D',
						'WEEK' => 'P1W',
						'MONTH' => 'P1M',
						'QUARTER' => 'P3M',
						'YEAR' => 'P1Y',
					];

					foreach ($variants as $type => $interval)
					{
						$intervalTitle = Market\Config::getLang('EXPORT_ENTITY_SOURCE_DATE_TYPE_ENUM_PERIOD_' . Market\Data\TextString::toUpper($type), null, $type);

						$result[] = [
							'ID' => '-' . $interval,
							'VALUE' => Market\Config::getLang('EXPORT_ENTITY_SOURCE_DATE_TYPE_ENUM_BEFORE_PERIOD', [ '#PERIOD#' => $intervalTitle ]),
						];

						$result[] = [
							'ID' => $interval,
							'VALUE' => Market\Config::getLang('EXPORT_ENTITY_SOURCE_DATE_TYPE_ENUM_AFTER_PERIOD', [ '#PERIOD#' => $intervalTitle ]),
						];
					}

				break;
			}
		}

		return $result;
	}

    /**
     * ������������ �� ���
     *
     * @param array $field
     * @param string $query
     * @param array $context
     *
     * @return array|null
     */
    public function getFieldAutocomplete($field, $query, array $context = [])
    {
        return null;
    }

    /**
     * ������ ������� �� ���������� ����������
     *
     * @param array $field
     * @param array $valueList
     * @param array $context
     *
     * @return array|null
     */
    public function getFieldDisplayValue($field, $valueList, array $context = [])
    {
        return null;
    }

	/**
	 * �������� �������
	 *
	 * @return string
	 */
	public function getTitle()
	{
		$langPrefix = $this->getLangPrefix();

		return Market\Config::getLang($langPrefix . 'TITLE');
	}

	/**
	 * ������ ���������� �������
	 *
	 * @return bool
	 */
	public function isInternal()
	{
		return false;
	}

	/**
	 * ���� ���������: �� ����� ���������� �����, ����� �������� ���� �������
	 *
	 * @return bool
	 */
	public function isVariable()
	{
		return $this->getControl() === Market\Export\Entity\Manager::CONTROL_TEXT;
	}

	/**
	 * ������ �� ��������
	 *
	 * @return bool
	 */
	public function isTemplate()
	{
		return $this->getControl() === Market\Export\Entity\Manager::CONTROL_TEMPLATE;
	}

	/**
	 * ��� ��� �����
	 *
	 * @return string
	 */
	public function getControl()
	{
		return Market\Export\Entity\Manager::CONTROL_SELECT;
	}

	/**
	 * ����� ��������� � ������
	 *
	 * @return bool
	 */
	public function isSelectable()
	{
		return true;
	}

	/**
	 * ��� select �� ������� CIBlockElement::GetList
	 *
	 * @param $select
	 *
	 * @return array
	 */
	public function getQuerySelect($select)
	{
		return [];
	}

	/**
	 * ����� �� ����������� ����� �� CIBlockElement::GetList
	 *
	 * @return bool
	 */
	public function isFilterable()
	{
		return false;
	}

	/**
	 * ����� �� ������� CIBlockElement::GetList
	 *
	 * @param $filter
	 * @param $select
	 *
	 * @return array
	 */
	public function getQueryFilter($filter, $select)
	{
		return [];
	}

	protected function pushQueryFilter(&$filter, $compare, $field, $value)
    {
        $queryKey = $compare . $field;

        if (!isset($filter[$queryKey]))
        {
            $filter[$queryKey] = $value;
        }
        else
        {
            $newValue = (array)$filter[$queryKey];

            if (is_array($value))
            {
                $newValue = array_merge($newValue, $value);
            }
            else
            {
                $newValue[] = $value;
            }

            $filter[$queryKey] = $newValue;
        }
    }

	/**
	 * ������ �������� ��� ��������� ���������
	 *
	 * @return int
	 * */
	public function getOrder()
	{
		return 500;
	}

	public function initializeQueryContext($select, &$queryContext, &$sourceSelect)
	{
		// nothing by default
	}

	public function releaseQueryContext($select, $queryContext, $sourceSelect)
	{
		// nothing by default
	}

	public function initializeFilterContext($filter, &$queryContext, &$sourceFilter)
	{
		// nothing by default
	}

	public function releaseFilterContext($filter, $queryContext, $sourceFilter)
	{
		// nothing by default
	}

	/**
	 * ������ ������� ����� �� ���������� ������� CIBlockElement::GetList
	 *
	 * @param $elementList
	 * @param $parentList
	 * @param $selectFields
	 * @param $queryContext
	 * @param $sourceValues
	 *
	 * @return array
	 */
	public function getElementListValues($elementList, $parentList, $selectFields, $queryContext, $sourceValues)
	{
		return [];
	}

	/**
	 * ������������� ����� �� �������� ������� ����� �������
	 *
	 * @param $fieldList
	 *
	 * @return array
	 */
	protected function buildFieldsDescription($fieldList)
	{
		$result = [];
		$langPrefix = $this->getLangPrefix();

		foreach ($fieldList as $fieldId => $field)
		{
			$field['ID'] = $fieldId;

			if (!isset($field['VALUE']))
			{
				$field['VALUE'] = Market\Config::getLang($langPrefix . 'FIELD_' . $fieldId, null, $fieldId);
			}

			if (!isset($field['FILTERABLE']))
			{
				$field['FILTERABLE'] = true;
			}

			if (!isset($field['SELECTABLE']))
			{
				$field['SELECTABLE'] = true;
			}

			if (!isset($field['AUTOCOMPLETE']))
			{
				$field['AUTOCOMPLETE'] = false;
			}

			$result[] = $field;
		}

		return $result;
	}

	/**
	 * ������� �� ����� ���� ������
	 *
	 * @return string
	 */
	abstract protected function getLangPrefix();
}

Youez - 2016 - github.com/yon3zu
LinuXploit