Недавно встала задача сделать так, чтобы в интернет-магазине для новых товаров параметр "НДС включен в цену" по умолчанию был в положительном значении (стояла галочка). Нашлось относительно простое решение.[spoiler]
Для этого придется сделать специальный файл с формой редактирования элемента инфоблока. Надеюсь, что многие знают, как сделать такую форму. Далее, ищем кусок кода:
include($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/catalog/admin/templates/product_edit.php"); |
Этот инклюд втыкает блок с ценой в форму редактирования элемента. До этого инклюда вставляем код:
$default_vat_included = "Y";
if (!$ID AND !$bVarsFromForm AND $default_vat_included=="Y") {
$bVarsFromForm_invert = true;
$bVarsFromForm = true;
$CAT_VAT_INCLUDED = "Y";
} |
И после инклюда:
if ($bVarsFromForm_invert AND $default_vat_included=="Y") $bVarsFromForm = false; |
Суть данной обманки состоит в том, что мы как бы имитируем неправильное сохранение элемента, например, в случае, если заполнены не все обязательные поля. В этом случае данные для всех значений полей берутся с формы, т.е. из переменной $_POST. $_POST разбирается на отдельные переменные, среди них есть $CAT_VAT_INCLUDED, которая как раз и отвечает за нужный нам параметр.