%PDF- %PDF- 403WebShell
403Webshell
Server IP : 37.220.80.31  /  Your IP : 3.148.107.193
Web Server : Apache/2.4.52 (Ubuntu)
System : Linux 3051455-guretool.twc1.net 5.15.0-107-generic #117-Ubuntu SMP Fri Apr 26 12:26:49 UTC 2024 x86_64
User : www-root ( 1010)
PHP Version : 7.4.33
Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,
MySQL : OFF  |  cURL : ON  |  WGET : OFF  |  Perl : OFF  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /var/www/www-root/data/www/dev.artlot24.ru/bitrix/modules/catalog/mysql/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /var/www/www-root/data/www/dev.artlot24.ru/bitrix/modules/catalog/mysql/store.php
<?php
use Bitrix\Catalog;

require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/catalog/general/store.php");

class CCatalogStore extends CAllCatalogStore
{
	/** Add new store in table b_catalog_store,
	 * @static
	 * @param $arFields
	 * @return bool|int
	 */
	public static function Add($arFields)
	{
		/** @global CDataBase $DB */

		global $DB;

		foreach (GetModuleEvents("catalog", "OnBeforeCatalogStoreAdd", true) as $arEvent)
		{
			if(ExecuteModuleEventEx($arEvent, array(&$arFields)) === false)
				return false;
		}

		if(array_key_exists('DATE_CREATE', $arFields))
			unset($arFields['DATE_CREATE']);
		if(array_key_exists('DATE_MODIFY', $arFields))
			unset($arFields['DATE_MODIFY']);

		$arFields['~DATE_MODIFY'] = $DB->GetNowFunction();
		$arFields['~DATE_CREATE'] = $DB->GetNowFunction();

		if(!self::CheckFields('ADD',$arFields))
			return false;

		$arInsert = $DB->PrepareInsert("b_catalog_store", $arFields);

		$strSql = "INSERT INTO b_catalog_store (".$arInsert[0].") VALUES(".$arInsert[1].")";

		$res = $DB->Query($strSql, False, "File: ".__FILE__."<br>Line: ".__LINE__);
		if(!$res)
			return false;
		$lastId = intval($DB->LastID());

		Catalog\StoreTable::getEntity()->cleanCache();

		foreach(GetModuleEvents("catalog", "OnCatalogStoreAdd", true) as $arEvent)
			ExecuteModuleEventEx($arEvent, array($lastId, $arFields));

		return $lastId;
	}

	public static function GetList($arOrder = array(), $arFilter = array(), $arGroupBy = false, $arNavStartParams = false, $arSelectFields = array())
	{
		global $DB;

		if (empty($arSelectFields))
			$arSelectFields = array(
				"ID",
				"ACTIVE",
				"TITLE",
				"PHONE",
				"SCHEDULE",
				"ADDRESS",
				"DESCRIPTION",
				"GPS_N",
				"GPS_S",
				"IMAGE_ID",
				"DATE_CREATE",
				"DATE_MODIFY",
				"USER_ID",
				"XML_ID",
				"SORT",
				"EMAIL",
				"ISSUING_CENTER",
				"SHIPPING_CENTER",
				"SITE_ID",
				"CODE"
			);

		$keyForDelete = array_search("PRODUCT_AMOUNT", $arSelectFields);

		if (!isset($arFilter["PRODUCT_ID"]) && $keyForDelete !== false)
			unset($arSelectFields[$keyForDelete]);

		if ($keyForDelete == false)
		{
			$keyForDelete = array_search("ELEMENT_ID", $arSelectFields);
			if($keyForDelete !== false)
				unset($arSelectFields[$keyForDelete]);
		}
		$productID = '(';

		if (is_array($arFilter["PRODUCT_ID"]))
		{
			foreach($arFilter["PRODUCT_ID"] as $id)
				$productID .= intval($id).',';
			$productID = rtrim($productID, ',').')';
		}
		else
		{
			$productID .= intval($arFilter["PRODUCT_ID"]) . ')';
		}

		$arFields = array(
			"ID" => array("FIELD" => "CS.ID", "TYPE" => "int"),
			"ACTIVE" => array("FIELD" => "CS.ACTIVE", "TYPE" => "string"),
			"TITLE" => array("FIELD" => "CS.TITLE", "TYPE" => "string"),
			"PHONE" => array("FIELD" => "CS.PHONE", "TYPE" => "string"),
			"SCHEDULE" => array("FIELD" => "CS.SCHEDULE", "TYPE" => "string"),
			"ADDRESS" => array("FIELD" => "CS.ADDRESS", "TYPE" => "string"),
			"DESCRIPTION" => array("FIELD" => "CS.DESCRIPTION", "TYPE" => "string"),
			"GPS_N" => array("FIELD" => "CS.GPS_N", "TYPE" => "string"),
			"GPS_S" => array("FIELD" => "CS.GPS_S", "TYPE" => "string"),
			"IMAGE_ID" => array("FIELD" => "CS.IMAGE_ID", "TYPE" => "int"),
			"LOCATION_ID" => array("FIELD" => "CS.LOCATION_ID", "TYPE" => "int"),
			"DATE_CREATE" => array("FIELD" => "CS.DATE_CREATE", "TYPE" => "datetime"),
			"DATE_MODIFY" => array("FIELD" => "CS.DATE_MODIFY", "TYPE" => "datetime"),
			"USER_ID" => array("FIELD" => "CS.USER_ID", "TYPE" => "int"),
			"MODIFIED_BY" => array("FIELD" => "CS.MODIFIED_BY", "TYPE" => "int"),
			"XML_ID" => array("FIELD" => "CS.XML_ID", "TYPE" => "string"),
			"SORT" => array("FIELD" => "CS.SORT", "TYPE" => "int"),
			"EMAIL" => array("FIELD" => "CS.EMAIL", "TYPE" => "string"),
			"ISSUING_CENTER" => array("FIELD" => "CS.ISSUING_CENTER", "TYPE" => "char"),
			"SHIPPING_CENTER" => array("FIELD" => "CS.SHIPPING_CENTER", "TYPE" => "char"),
			"SITE_ID" => array("FIELD" => "CS.SITE_ID", "TYPE" => "string"),
			"CODE" => array("FIELD" => "CS.CODE", "TYPE" => "string"),
			"PRODUCT_AMOUNT" => array("FIELD" => "CP.AMOUNT", "TYPE" => "double", "FROM" => "LEFT JOIN b_catalog_store_product CP ON (CS.ID = CP.STORE_ID AND CP.PRODUCT_ID IN ".$productID.")"),
			"ELEMENT_ID" => array("FIELD" => "CP.PRODUCT_ID", "TYPE" => "int")
		);

		if (!is_array($arOrder))
		{
			$arOrder = [];
		}
		if (!empty($arOrder))
		{
			$arOrder = array_change_key_case($arOrder, CASE_UPPER);
			foreach (array_keys($arOrder) as $field)
			{
				$arOrder[$field] = strtoupper($arOrder[$field]);
				if ($arOrder[$field] !== 'DESC')
				{
					$arOrder[$field] = 'ASC';
				}
			}
		}

		$userField = new CUserTypeSQL();
		$userField->SetEntity("CAT_STORE", "CS.ID");
		$userField->SetSelect($arSelectFields);
		$userField->SetFilter($arFilter);
		$userField->SetOrder($arOrder);

		$strUfFilter = $userField->GetFilter();
		$strSqlUfFilter = ($strUfFilter <> '') ? " (".$strUfFilter.") " : "";


		$strSqlUfOrder = "";
		foreach ($arOrder as $field => $by)
		{
			$field = $userField->GetOrder($field);
			if (empty($field))
				continue;

			if ($strSqlUfOrder <> '')
				$strSqlUfOrder .= ', ';
			$strSqlUfOrder .= $field." ".$by;
		}

		$arSqls = CCatalog::PrepareSql($arFields, $arOrder, $arFilter, $arGroupBy, $arSelectFields);
		$arSqls["SELECT"] = str_replace("%%_DISTINCT_%%", "", $arSqls["SELECT"]);

		if (empty($arGroupBy) && is_array($arGroupBy))
		{
			$strSql = "SELECT ".$arSqls["SELECT"]." ".$userField->GetSelect()." FROM b_catalog_store CS ".$arSqls["FROM"]. " ".$userField->GetJoin("CS.ID");
			if (!empty($arSqls["WHERE"]))
				$strSql .= " WHERE ".$arSqls["WHERE"]." ";

			if ($arSqls["WHERE"] <> '' && $strSqlUfFilter <> '')
				$strSql .= " AND ".$strSqlUfFilter." ";
			elseif ($arSqls["WHERE"] == '' && $strSqlUfFilter <> '')
				$strSql .= " WHERE ".$strSqlUfFilter." ";

			if (!empty($arSqls["GROUPBY"]))
				$strSql .= " GROUP BY ".$arSqls["GROUPBY"];

			$dbRes = $DB->Query($strSql, false, "File: ".__FILE__."<br>Line: ".__LINE__);
			if ($arRes = $dbRes->Fetch())
				return $arRes["CNT"];
			else
				return false;
		}
		$strSql = "SELECT ".$arSqls["SELECT"]." ".$userField->GetSelect()." FROM b_catalog_store CS ".$arSqls["FROM"]." ".$userField->GetJoin("CS.ID");
		if (!empty($arSqls["WHERE"]))
			$strSql .= " WHERE ".$arSqls["WHERE"]." ";

		if ($arSqls["WHERE"] <> '' && $strSqlUfFilter <> '')
			$strSql .= " AND ".$strSqlUfFilter." ";
		elseif ($arSqls["WHERE"] == '' && $strSqlUfFilter <> '')
			$strSql .= " WHERE ".$strSqlUfFilter." ";

		if (!empty($arSqls["GROUPBY"]))
			$strSql .= " GROUP BY ".$arSqls["GROUPBY"];

		if (!empty($arSqls["ORDERBY"]))
			$strSql .= " ORDER BY ".$arSqls["ORDERBY"];
		elseif ($arSqls["ORDERBY"] == '' && $strSqlUfOrder <> '')
			$strSql .= " ORDER BY ".$strSqlUfOrder;

		$intTopCount = 0;
		$boolNavStartParams = (!empty($arNavStartParams) && is_array($arNavStartParams));
		if ($boolNavStartParams && array_key_exists('nTopCount', $arNavStartParams))
			$intTopCount = intval($arNavStartParams["nTopCount"]);

		if ($boolNavStartParams && 0 >= $intTopCount)
		{
			$strSql_tmp = "SELECT COUNT('x') as CNT FROM b_catalog_store CS ".$arSqls["FROM"]. " ".$userField->GetJoin("CS.ID");
			if (!empty($arSqls["WHERE"]))
				$strSql_tmp .= " WHERE ".$arSqls["WHERE"];

			if ($arSqls["WHERE"] <> '' && $strSqlUfFilter <> '')
				$strSql_tmp .= " AND ".$strSqlUfFilter." ";
			elseif ($arSqls["WHERE"] == '' && $strSqlUfFilter <> '')
				$strSql_tmp .= " WHERE ".$strSqlUfFilter." ";

			if (!empty($arSqls["GROUPBY"]))
				$strSql_tmp .= " GROUP BY ".$arSqls["GROUPBY"];

			$dbRes = $DB->Query($strSql_tmp, false, "File: ".__FILE__."<br>Line: ".__LINE__);

			$cnt = 0;
			if (empty($arSqls["GROUPBY"]))
				if ($arRes = $dbRes->Fetch())
					$cnt = $arRes["CNT"];
			else
				$cnt = $dbRes->SelectedRowsCount();

			$dbRes = new CDBResult();

			$dbRes->NavQuery($strSql, $cnt, $arNavStartParams);
		}
		else
		{
			if($boolNavStartParams && 0 < $intTopCount)
				$strSql .= " LIMIT ".$intTopCount;

			$dbRes = $DB->Query($strSql, false, "File: ".__FILE__."<br>Line: ".__LINE__);
		}

		return $dbRes;
	}
}

Youez - 2016 - github.com/yon3zu
LinuXploit