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/goodde.yandexturboapi/lib/

Upload File :
current_dir [ Writeable] document_root [ Writeable]

 

Command :


[ Back ]     

Current File : /home/bitrix/ext_www/rospirotorg.ru/bitrix/modules/goodde.yandexturboapi/lib/xml_profile.php
<?php
namespace Goodde\Export;

use Bitrix\Main,
	Bitrix\Main\Localization\Loc;
Loc::loadMessages(__FILE__);

/**
 * Class TurboProfileTable
 * 
 * Fields:
 * <ul>
 * <li> ID int mandatory
 * <li> SORT int optional default 500
 * <li> LID string(2) optional
 * <li> CHARSET string(255) optional
 * <li> TIMESTAMP_X datetime mandatory default 'current_timestamp()'
 * <li> MODIFIED_BY int optional
 * <li> DATE_CREATE datetime optional
 * <li> CREATED_BY int optional
 * <li> ACTIVE bool optional default 'Y'
 * <li> NAME string(255) optional
 * <li> LIMIT int optional default 500
 * <li> FILE_PATH string(255) optional
 * <li> SHOP_NAME string(20) optional
 * <li> SHOP_COMPANY string(255) optional
 * <li> SHOP_URL string(255) optional
 * <li> CURRENCY string optional
 * <li> PRICE_CODE string(255) optional
 * <li> OLD_PRICE_CODE string(255) optional
 * <li> STORES string optional
 * <li> COLLECTION_DESCRIPTION string optional
 * <li> DETAIL_URL string(255) optional
 * <li> DELIVERY string optional
 * <li> DIMENSIONS string optional
 * <li> UTM_TAGS string optional
 * <li> USE_CATALOG bool optional default 'Y'
 * <li> USE_SUBSECTIONS bool optional default 'N'
 * <li> IBLOCK_TYPE_ID string optional
 * <li> IBLOCK_ID int mandatory
 * <li> SECTION_ID string optional
 * <li> ELEMENTS_FILTER string optional
 * <li> OFFERS_FILTER string optional
 * <li> ELEMENTS_CONDITION string optional
 * <li> OFFERS_CONDITION string optional
 * <li> TYPE string optional
 * <li> FIELDS string optional
 * <li> LAST_START datetime optional
 * <li> LAST_END datetime optional
 * <li> TOTAL_ITEMS int optional
 * <li> TOTAL_ELEMENTS int optional
 * <li> TOTAL_OFFERS int optional
 * <li> TOTAL_SECTIONS int optional
 * <li> TOTAL_RUN_TIME string(255) optional
 * <li> TOTAL_MEMORY string(255) optional
 * <li> IN_AGENT bool optional default 'N'
 * </ul>
 *
 * @package Goodde\Export
 **/

class TurboProfileTable extends Main\Entity\DataManager
{
	protected static $exportFilePath  = '/upload/yandex_turbo/xml_export_#id#.xml';
	protected static $commaFields     = array(
		 'SECTION_ID',
	);
	protected static $serializeFields = array(
		'ELEMENTS_CONDITION', 'OFFERS_CONDITION', 'FIELDS', 'DELIVERY', 'CURRENCY', 'ELEMENTS_FILTER', 'OFFERS_FILTER', 'UTM_TAGS', 'STORES'
	);
	
	/**
	 * Returns DB table name for entity.
	 *
	 * @return string
	 */
	public static function getTableName()
	{
		return 'goodde_yandex_turbo_profile';
	}

	/**
	 * Returns entity map definition.
	 *
	 * @return array
	 */
	public static function getMap()
	{
		return array(
			new Main\Entity\IntegerField('ID', array(
				'primary' => true,
				'autocomplete' => true,
				'editable' => false,
				'title' => Loc::getMessage('TURBO_PROFILE_ENTITY_ID_FIELD'),
			)),
			new Main\Entity\IntegerField('SORT', array(
				'format' => '/^[0-9]{1,11}$/',
				'default_value' => 500,
				'title' => Loc::getMessage('TURBO_PROFILE_ENTITY_SORT_FIELD'),
			)),
			new Main\Entity\StringField('LID',  array(
				'validation' => array(__CLASS__, 'validateLid'),
				'title' => Loc::getMessage('TURBO_PROFILE_ENTITY_LID_FIELD'),
			)),
			new Main\Entity\StringField('CHARSET',  array(
				'validation' => array(__CLASS__, 'validateCharset'),
				'title' => Loc::getMessage('TURBO_PROFILE_ENTITY_CHARSET_FIELD'),
				'hidden' => true,
			)),
			new Main\Entity\DatetimeField('TIMESTAMP_X',  array(
				'required' => true,
				'default_value' => new Main\Type\DateTime(),
				'editable' => false,
				'title' => Loc::getMessage('TURBO_PROFILE_ENTITY_TIMESTAMP_X_FIELD'),
			)),
			new Main\Entity\IntegerField('MODIFIED_BY',  array(
				'editable' => false,
				'title' => Loc::getMessage('TURBO_PROFILE_ENTITY_MODIFIED_BY_FIELD'),
			)),
			new Main\Entity\DatetimeField('DATE_CREATE',  array(
				'default_value' => new Main\Type\DateTime(),
				'editable' => false,
				'title' => Loc::getMessage('TURBO_PROFILE_ENTITY_DATE_CREATE_FIELD'),
			)),
			new Main\Entity\IntegerField('CREATED_BY',  array(
				'title' => Loc::getMessage('TURBO_PROFILE_ENTITY_CREATED_BY_FIELD'),
			)),
			new Main\Entity\BooleanField('ACTIVE',  array(
				'values' => array('N', 'Y'),
				'default_value' => 'Y',
				'title' => Loc::getMessage('TURBO_PROFILE_ENTITY_ACTIVE_FIELD'),
			)),
			new Main\Entity\StringField('NAME',  array(
				'validation' => array(__CLASS__, 'validateName'),
				'title' => Loc::getMessage('TURBO_PROFILE_ENTITY_NAME_FIELD'),
			)),
			new Main\Entity\IntegerField('LIMIT',  array(
				'hidden' => true,
				'title' => Loc::getMessage('TURBO_PROFILE_ENTITY_LIMIT_FIELD'),
			)),
			new Main\Entity\StringField('FILE_PATH',  array(
				'validation' => array(__CLASS__, 'validateFilePath'),
				'hidden' => true,
				'title' => Loc::getMessage('TURBO_PROFILE_ENTITY_FILE_PATH_FIELD'),
			)),
			new Main\Entity\StringField('SHOP_NAME',  array(
				'validation' => array(__CLASS__, 'validateShopName'),
				'hidden' => true,
				'title' => Loc::getMessage('TURBO_PROFILE_ENTITY_SHOP_NAME_FIELD'),
			)),
			new Main\Entity\StringField('SHOP_COMPANY',  array(
				'validation' => array(__CLASS__, 'validateShopCompany'),
				'hidden' => true,
				'title' => Loc::getMessage('TURBO_PROFILE_ENTITY_SHOP_COMPANY_FIELD'),
			)),
			new Main\Entity\StringField('SHOP_URL',  array(
				'validation' => array(__CLASS__, 'validateShopUrl'),
				'hidden' => true,
				'title' => Loc::getMessage('TURBO_PROFILE_ENTITY_SHOP_URL_FIELD'),
			)),
			new Main\Entity\TextField('CURRENCY',  array(
				'hidden' => true,
				'title' => Loc::getMessage('TURBO_PROFILE_ENTITY_CURRENCY_FIELD'),
			)),
			new Main\Entity\StringField('PRICE_CODE',  array(
				'validation' => array(__CLASS__, 'validatePriceCode'),
				'hidden' => true,
				'title' => Loc::getMessage('TURBO_PROFILE_ENTITY_PRICE_CODE_FIELD'),
			)),
			new Main\Entity\StringField('OLD_PRICE_CODE',  array(
				'validation' => array(__CLASS__, 'validatePriceCode'),
				'hidden' => true,
				'title' => Loc::getMessage('TURBO_PROFILE_ENTITY_OLD_PRICE_CODE_FIELD'),
			)),
			new Main\Entity\TextField('STORES',  array(
				'hidden' => true,
				'title' => Loc::getMessage('TURBO_PROFILE_ENTITY_STORES_FIELD'),
			)),
            new Main\Entity\TextField('COLLECTION_DESCRIPTION',  array(
				'hidden' => true,
				'title' => Loc::getMessage('TURBO_PROFILE_ENTITY_COLLECTION_DESCRIPTION'),
			)),
			new Main\Entity\StringField('DETAIL_URL',  array(
				'validation' => array(__CLASS__, 'validateDetailUrl'),
				'hidden' => true,
				'title' => Loc::getMessage('TURBO_PROFILE_ENTITY_DETAIL_URL_FIELD'),
			)),
			new Main\Entity\TextField('DELIVERY',  array(
				'hidden' => true,
				'title' => Loc::getMessage('TURBO_PROFILE_ENTITY_DELIVERY_FIELD'),
			)),
			new Main\Entity\TextField('DIMENSIONS',  array(
				'hidden' => true,
				'title' => Loc::getMessage('TURBO_PROFILE_ENTITY_DIMENSIONS_FIELD'),
			)),
			new Main\Entity\TextField('UTM_TAGS',  array(
				'hidden' => true,
				'title' => Loc::getMessage('TURBO_PROFILE_ENTITY_UTM_TAGS_FIELD'),
			)),
			new Main\Entity\BooleanField('USE_CATALOG',  array(
				'values' => array('N', 'Y'),
				'default_value' => 'Y',
				'hidden' => true,
				'title' => Loc::getMessage('TURBO_PROFILE_ENTITY_USE_CATALOG_FIELD'),
			)),
			new Main\Entity\BooleanField('USE_SUBSECTIONS',  array(
				'values' => array('N', 'Y'),
				'default_value' => 'N',
				'hidden' => true,
				'title' => Loc::getMessage('TURBO_PROFILE_ENTITY_USE_SUBSECTIONS_FIELD'),
			)),
			new Main\Entity\IntegerField('IBLOCK_TYPE_ID',  array(
				'hidden' => true,
				'title' => Loc::getMessage('TURBO_PROFILE_ENTITY_IBLOCK_TYPE_ID_FIELD'),
			)),
			new Main\Entity\IntegerField('IBLOCK_ID',  array(
				'required' => true,
				'hidden' => true,
				'title' => Loc::getMessage('TURBO_PROFILE_ENTITY_IBLOCK_ID_FIELD'),
			)),
			new Main\Entity\TextField('SECTION_ID',  array(
				'hidden' => true,
				'title' => Loc::getMessage('TURBO_PROFILE_ENTITY_SECTION_ID_FIELD'),
			)),
			new Main\Entity\TextField('ELEMENTS_FILTER',  array(
				'hidden' => true,
				'serialized' => true,
				'title' => Loc::getMessage('TURBO_PROFILE_ENTITY_ELEMENTS_FILTER_FIELD'),
			)),
			new Main\Entity\TextField('OFFERS_FILTER',  array(
				'hidden' => true,
				'title' => Loc::getMessage('TURBO_PROFILE_ENTITY_OFFERS_FILTER_FIELD'),
			)),
			new Main\Entity\TextField('ELEMENTS_CONDITION',  array(
				'hidden' => true,
				'title' => Loc::getMessage('TURBO_PROFILE_ENTITY_ELEMENTS_CONDITION_FIELD'),
			)),
			new Main\Entity\TextField('OFFERS_CONDITION',  array(
				'hidden' => true,
				'title' => Loc::getMessage('TURBO_PROFILE_ENTITY_OFFERS_CONDITION_FIELD'),
			)),
			new Main\Entity\TextField('TYPE',  array(
				'validation' => array(__CLASS__, 'validateType'),
				'hidden' => true,
				'title' => Loc::getMessage('TURBO_PROFILE_ENTITY_TYPE_FIELD'),
			)),
			new Main\Entity\TextField('FIELDS',  array(
				'hidden' => true,
				'title' => Loc::getMessage('TURBO_PROFILE_ENTITY_FIELDS_FIELD'),
			)),
			new Main\Entity\DatetimeField('LAST_START',  array(
				'title' => Loc::getMessage('TURBO_PROFILE_ENTITY_LAST_START_FIELD'),
			)),
			new Main\Entity\DatetimeField('LAST_END',  array(
				'title' => Loc::getMessage('TURBO_PROFILE_ENTITY_LAST_END_FIELD'),
			)),
			new Main\Entity\IntegerField('TOTAL_ITEMS',  array(
				'title' => Loc::getMessage('TURBO_PROFILE_ENTITY_TOTAL_ITEMS_FIELD'),
			)),
			new Main\Entity\IntegerField('TOTAL_ELEMENTS',  array(
				'title' => Loc::getMessage('TURBO_PROFILE_ENTITY_TOTAL_ELEMENTS_FIELD'),
			)),
			new Main\Entity\IntegerField('TOTAL_OFFERS',  array(
				'title' => Loc::getMessage('TURBO_PROFILE_ENTITY_TOTAL_OFFERS_FIELD'),
			)),
			new Main\Entity\IntegerField('TOTAL_SECTIONS',  array(
				'title' => Loc::getMessage('TURBO_PROFILE_ENTITY_TOTAL_SECTIONS_FIELD'),
			)),
			new Main\Entity\StringField('TOTAL_RUN_TIME',  array(
				'validation' => array(__CLASS__, 'validateTotalRunTime'),
				'title' => Loc::getMessage('TURBO_PROFILE_ENTITY_TOTAL_RUN_TIME_FIELD'),
			)),
			new Main\Entity\StringField('TOTAL_MEMORY',  array(
				'validation' => array(__CLASS__, 'validateTotalMemory'),
				'title' => Loc::getMessage('TURBO_PROFILE_ENTITY_TOTAL_MEMORY_FIELD'),
			)),
			new Main\Entity\BooleanField('IN_AGENT',  array(
				'values' => array('N', 'Y'),
				'default_value' => 'N',
				'title' => Loc::getMessage('TURBO_PROFILE_ENTITY_IN_AGENT_FIELD'),
			)),
		);
	}
	
	public static function OnAfterAdd(Main\Entity\Event $event)
	{
		if($id = $event->getParameter('id'))
		{
			static::update($id, array(
				 'FILE_PATH' => str_replace('#id#', $id.'_'.randString(7), static::$exportFilePath),
			));
		}
	}
	
	public static function decodeFields(&$fields)
	{
		if($fields)
		{
			foreach($fields as $key => &$val)
			{
				if(is_string($val))
				{
					if(in_array($key, self::$commaFields))
						$val = ($val <> '' ? explode(',', $val) : '');
					elseif(in_array($key, self::$serializeFields))
						$val = ($val <> '' ? unserialize($val) : array());
					else
						$val = htmlspecialcharsbx($val);
				}
			}
		}
	}

	public static function encodeFields(&$fields)
	{
		if($fields)
		{
			foreach($fields as $key => &$val)
			{
				if(in_array($key, self::$commaFields))
					$val = !empty($val) ? implode(',', $val) : '';

				if(in_array($key, self::$serializeFields))
					$val = !empty($val) ? serialize($val) : '';
			}
		}
	}
	/**
	 * Returns validators for LID field.
	 *
	 * @return array
	 */
	public static function validateLid()
	{
		return array(
			new Main\Entity\Validator\Length(null, 2),
		);
	}
	/**
	 * Returns validators for CHARSET field.
	 *
	 * @return array
	 */
	public static function validateCharset()
	{
		return array(
			new Main\Entity\Validator\Length(null, 255),
		);
	}
	/**
	 * Returns validators for NAME field.
	 *
	 * @return array
	 */
	public static function validateName()
	{
		return array(
			new Main\Entity\Validator\Length(null, 255),
		);
	}
	/**
	 * Returns validators for FILE_PATH field.
	 *
	 * @return array
	 */
	public static function validateFilePath()
	{
		return array(
			new Main\Entity\Validator\Length(null, 255),
		);
	}
	/**
	 * Returns validators for SHOP_NAME field.
	 *
	 * @return array
	 */
	public static function validateShopName()
	{
		return array(
			new Main\Entity\Validator\Length(null, 80),
		);
	}
	/**
	 * Returns validators for SHOP_COMPANY field.
	 *
	 * @return array
	 */
	public static function validateShopCompany()
	{
		return array(
			new Main\Entity\Validator\Length(null, 255),
		);
	}
	/**
	 * Returns validators for SHOP_URL field.
	 *
	 * @return array
	 */
	public static function validateShopUrl()
	{
		return array(
			new Main\Entity\Validator\Length(null, 255),
		);
	}
	/**
	 * Returns validators for PRICE_CODE field.
	 *
	 * @return array
	 */
	public static function validatePriceCode()
	{
		return array(
			new Main\Entity\Validator\Length(null, 255),
		);
	}
	/**
	 * Returns validators for DETAIL_URL field.
	 *
	 * @return array
	 */
	public static function validateDetailUrl()
	{
		return array(
			new Main\Entity\Validator\Length(null, 255),
		);
	}
	/**
	 * Returns validators for TOTAL_RUN_TIME field.
	 *
	 * @return array
	 */
	public static function validateTotalRunTime()
	{
		return array(
			new Main\Entity\Validator\Length(null, 255),
		);
	}
	/**
	 * Returns validators for TOTAL_MEMORY field.
	 *
	 * @return array
	 */
	public static function validateTotalMemory()
	{
		return array(
			new Main\Entity\Validator\Length(null, 255),
		);
	}
	/**
	 * Returns validators for TYPE field.
	 *
	 * @return array
	 */
	public static function validateType()
	{
		return array(
			new Main\Entity\Validator\Length(null, 255),
		);
	}
}
?>

Youez - 2016 - github.com/yon3zu
LinuXploit