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/catalog/mysql/ |
Upload File : |
<?php require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/catalog/general/measure_ratio.php"); class CCatalogMeasureRatio extends CCatalogMeasureRatioAll { /** * @param array $arOrder * @param array $arFilter * @param bool|array $arGroupBy * @param bool|array $arNavStartParams * @param array $arSelectFields * @return bool|CDBResult */ public static function getList($arOrder = array(), $arFilter = array(), $arGroupBy = false, $arNavStartParams = false, $arSelectFields = array()) { global $DB; if (empty($arSelectFields)) $arSelectFields = array("ID", "PRODUCT_ID", "RATIO", "IS_DEFAULT"); $arFields = array( "ID" => array("FIELD" => "MR.ID", "TYPE" => "int"), "PRODUCT_ID" => array("FIELD" => "MR.PRODUCT_ID", "TYPE" => "int"), "RATIO" => array("FIELD" => "MR.RATIO", "TYPE" => "double"), "IS_DEFAULT" => array("FIELD" => "MR.IS_DEFAULT", "TYPE" => "char") ); if (isset($arFilter['IS_DEFAULT']) && $arFilter['IS_DEFAULT'] == '') unset($arFilter['IS_DEFAULT']); elseif (!isset($arFilter['IS_DEFAULT'])) $arFilter['IS_DEFAULT'] = 'Y'; $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"]." from b_catalog_measure_ratio MR ".$arSqls["FROM"]; if (!empty($arSqls["WHERE"])) $strSql .= " where ".$arSqls["WHERE"]; if (!empty($arSqls["GROUPBY"])) $strSql .= " group by ".$arSqls["GROUPBY"]; $dbRes = $DB->Query($strSql); if ($arRes = $dbRes->Fetch()) return $arRes["CNT"]; else return false; } $strSql = "select ".$arSqls["SELECT"]." from b_catalog_measure_ratio MR ".$arSqls["FROM"]; if (!empty($arSqls["WHERE"])) $strSql .= " where ".$arSqls["WHERE"]; if (!empty($arSqls["GROUPBY"])) $strSql .= " group by ".$arSqls["GROUPBY"]; if (!empty($arSqls["ORDERBY"])) $strSql .= " order by ".$arSqls["ORDERBY"]; $intTopCount = 0; $boolNavStartParams = (!empty($arNavStartParams) && is_array($arNavStartParams)); if ($boolNavStartParams && isset($arNavStartParams['nTopCount'])) $intTopCount = (int)$arNavStartParams['nTopCount']; if ($boolNavStartParams && $intTopCount <= 0) { $strSql_tmp = "select COUNT('x') as CNT FROM b_catalog_measure_ratio MR ".$arSqls["FROM"]; if (!empty($arSqls["WHERE"])) $strSql_tmp .= " where ".$arSqls["WHERE"]; if (!empty($arSqls["GROUPBY"])) $strSql_tmp .= " group by ".$arSqls["GROUPBY"]; $dbRes = $DB->Query($strSql_tmp); $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 && $intTopCount > 0) $strSql .= " limit ".$intTopCount; $dbRes = $DB->Query($strSql); } return $dbRes; } }