/**
* Возвращает описание количества товара (остатка) с учётом настроек
*
* @param int|float $maxQuantity - доступное количество
* @param string $measure - единица измерения
* @param bool $storeIsset - есть ли склады
* @param array $arParams - дополнительные параметры (TEXT, QUANTITY_STYLE)
* @return array
*/
public static function getDescQuantity($maxQuantity, $measure = "", $storeIsset = false, $arParams = [])
{
global $PHOENIX_TEMPLATE_ARRAY;
$desc_quantity = [
'TEXT' => '',
'QUANTITY_STYLE' => 'without-quantity',
'QUANTITY' => '',
'QUANTITY_VALUE' => '',
'QUANTITY_WITH_TEXT' => '',
'HTML' => ''
];
$maxQuantity = CPhoenix::fixedNumber($maxQuantity);
if ($maxQuantity < 0) $maxQuantity = 0;
$desc_quantity["QUANTITY_VALUE"] = $maxQuantity;
// Режим "всегда показывать точное количество"
if ($PHOENIX_TEMPLATE_ARRAY["ITEMS"]["CATALOG"]["ITEMS"]["STORE_QUANTITY_VIEW"]["VALUE"] == "visible" && $maxQuantity != 0) {
$desc_quantity["TEXT"] = $PHOENIX_TEMPLATE_ARRAY["ITEMS"]["CATALOG"]["ITEMS"]["STORE_QUANTITY_MANY"]["DESCRIPTION_NOEMPTY"];
$desc_quantity["QUANTITY_STYLE"] = "with-quantity";
$desc_quantity["QUANTITY"] = $maxQuantity;
if (strlen($measure)) {
$desc_quantity["QUANTITY"] .= " " . $measure;
}
$desc_quantity["QUANTITY_FORMATED"] = $desc_quantity["QUANTITY"];
$desc_quantity["QUANTITY_WITH_TEXT"] = $desc_quantity["TEXT"] . ":
" . $desc_quantity["QUANTITY_FORMATED"] . "";
} else {
$quantity = self::getQuantityForManyFew();
if ($maxQuantity == 0) {
$desc_quantity["TEXT"] = $PHOENIX_TEMPLATE_ARRAY["ITEMS"]["CATALOG"]["ITEMS"]["STORE_QUANTITY_MANY"]["DESCRIPTION_EMPTY"];
$desc_quantity["QUANTITY_STYLE"] = " empty-quantity";
if ($PHOENIX_TEMPLATE_ARRAY["ITEMS"]["CATALOG"]["ITEMS"]["STORE_QUANTITY_VIEW"]["VALUE"] == "visible") {
$desc_quantity["QUANTITY_FORMATED"] = $maxQuantity;
if (strlen($measure)) {
$desc_quantity["QUANTITY_FORMATED"] .= " " . $measure;
}
}
} elseif ($maxQuantity > 0) {
if ($maxQuantity >= $quantity["MANY"]) {
$desc_quantity["TEXT"] = $PHOENIX_TEMPLATE_ARRAY["ITEMS"]["CATALOG"]["ITEMS"]["STORE_QUANTITY_MANY"]["DESCRIPTION_2"];
$desc_quantity["QUANTITY_STYLE"] .= " many";
}
if ($maxQuantity <= $quantity["FEW"]) {
$desc_quantity["TEXT"] = $PHOENIX_TEMPLATE_ARRAY["ITEMS"]["CATALOG"]["ITEMS"]["STORE_QUANTITY_FEW"]["DESCRIPTION_2"];
$desc_quantity["QUANTITY_STYLE"] .= " few";
}
if ($maxQuantity > $quantity["FEW"] && $maxQuantity < $quantity["MANY"]) {
$desc_quantity["TEXT"] = $PHOENIX_TEMPLATE_ARRAY["ITEMS"]["CATALOG"]["ITEMS"]["STORE_QUANTITY_MANY"]["DESCRIPTION_NOEMPTY"];
}
}
}
// Всплывающее окно складов
if ($maxQuantity > 0 && $PHOENIX_TEMPLATE_ARRAY["ITEMS"]["CATALOG"]["ITEMS"]["STORE_BLOCK_VIEW"]["VALUE"] == "popup" && $storeIsset) {
$desc_quantity["QUANTITY_STYLE"] .= " show-popup-block-store";
}
// Переопределение текста / стиля через параметры
$quantityHtml = '';
if (isset($arParams["TEXT"]) || isset($arParams["QUANTITY_STYLE"])) {
if (isset($arParams["TEXT"]))
$desc_quantity['TEXT'] = $arParams["TEXT"];
if (isset($arParams["QUANTITY_STYLE"]))
$desc_quantity['QUANTITY_STYLE'] = $arParams["QUANTITY_STYLE"];
} else {
if (strlen($desc_quantity["QUANTITY"])) {
$quantityHtml = ':
' . $desc_quantity["QUANTITY"] . '';
}
}
$desc_quantity["HTML"] = '
' . $desc_quantity["TEXT"] . '' . $quantityHtml . '
';
return $desc_quantity;
}
Не передан обязательный параметр "BUTTON_ID"