lie2
@lie2

Как работает isset?

Добрый день.
Нормальный битрикс разработчик знает что делает следующий фрагмент кода:
"ROOT_MENU_TYPE" => isset($arParams["ROOT_MENU_TYPE"]) ? $arParams["ROOT_MENU_TYPE"] : "left",
у меня вопрос: можно ли в isset обратиться к параметру товара/торгового предложения?

К чему спрашиваю: на форуме есть мой пост по поводу пункта "ожидает доставки", я кое-как кодом через if сделал так, чтобы значение менялось, однако это меняется только в детальном отображении карточки товара, а нужно, чтобы и в каталоге и пр. местах работало.
Рассматривал разные варианты и нашел в коде вызов элемента и проверкой на IN_STOCK/NOT_IN_STOCK (это типа есть/нет в наличии), и думал при вызове NOT_IN_STOCK через isset проверить какой-либо параметр на да/нет и присвоить другую фразу.

Или что-то подобное... хотя м.б. есть варик сделать проверку на отрицательное значение наличия товара и присваивать такому другую фразу и < i > эллемент
  • Вопрос задан
  • 53 просмотра
Пригласить эксперта
Ответы на вопрос 1
Tomio
@Tomio
backend developer (python, php)
Запутанный у вас вопрос, если честно)
isset в php вернёт false в нескольких ситуациях:
1. Проверяемой переменной не существует
2. Проверяемой переменной присвоено значение Null
3. Проверяемого ключа массива не существует
4. Проверяемому ключу массива присвоено значение Null

В остальных случаях вернется true.

На ваш вопрос "можно ли в isset обратиться к параметру товара/торгового предложения?" можно ответить, что можно.
Если вам нужна универсальная функция проверки для разных компонентов, для разных шаблонов, тогда лучше ее реализовать в файле init.php, а затем выполнять эту функцию в нужных местах.
Ну, то есть, в init.php создаете функцию, например, isProductInStock($productId), и реализуете там логику, возвращающую true или false. Затем эту функцию уже используете где вам нужно, передавая в нее в качестве параметра ID товара.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы