OnBeforeEventSend - замена данных для макроса в почтовом шаблоне
Что то я долго искал решение, а как оказалось проблема была в том что входные переменные нужно передавать по ссылке!
Если нужно подставить свое значение в макрос (к примеру #AUTHOR#) почтового шаблона, например компонента обратной связи bitrix:main.feedback то делается это так:
AddEventHandler('main', 'OnBeforeEventSend', "OnBeforeEventSendHandler"); function OnBeforeEventSendHandler(&$arFields, &$arTemplate) { global $USER;
if($USER->IsAuthorized()) { $arFields["AUTHOR"] = 'Юзер залогинен: '.$USER->GetID().' ('.$USER->GetLogin().') '.$USER->GetFullName().', поле формы: '.$arFields["AUTHOR"]; }else{ $arFields["AUTHOR"] = 'Юзер не залогинен, поле формы: '.$arFields["AUTHOR"]; } }
Сегодня заметил что сайт клиента в Google chrome Версия 79.0.3945.130 (Официальная сборка), (64 бит) работает не адекватно - пункты меню не нажимаются - формы не отправляются при клике на кнопку submit - js события onchange для select не отрабатывают
в консоли ошибок нет, но было вот такое предупреждение:
A cookie associated with a cross-site resource at http://cloudflare.com/ was set without the `SameSite` attribute.
A future release of Chrome will only deliver cookies with cross-site requests if they are set with `SameSite=None` and `Secure`.
You can review cookies in developer tools under Application>Storage>Cookies and see more details at https://www.chromestatus.com/feature/5088147346030592
and https://www.chromestatus.com/feature/5633521622188032.
Если у кого то такие же проблемы, то нужно зайти в настройки забив такой URL chrome://flags/ и поставить опцию
Сортировка товаров по наличию при вкл. опции "Разрешить покупку при отсутствии товара (включая разрешение отрицательного количества товара)"
ПРОБЛЕМА: При установке в настройках модуля торгового каталога, флага "Разрешить покупку при отсутствии товара (включая разрешение отрицательного количества товара)", перестает работать настройка компонента каталога "Источник данных"-Товары, которых нет на складах: "показывать в конце" и "не отображать".
Поиски решения: Поиски решения были начаты с самого компонента bitrix.catalog который собственно и выводить товары. По логике я ожидал найти в нем ту часть кода которая отвечала бы за выборку (какой то GetList допустим), и которую можно было бы изменить, полностью кастомизировав компонент вынеся его в пространство имен. Но не тут то было... Опять пресловутая "гибкость" сделала свое дело...
Ответ ТП Битрикс: ID 2669755 Выборка происходит в \Bitrix\Iblock\Component\Base::getSeparateList. Что касается сортировки в целом, то при включении настройки Разрешить покупку при отсутствии товара (включая разрешение отрицательного количества товара), недоступных товаров нет в принципе и стандартная сортировка по доступности работать не будет.
РЕШЕНИЕ: 1) добавляем в ИБ товара св-во SORTAVAIL тип число, в него будет записываться сумма "CATALOG_QUANTITY" всех его ТП или в случае если их нет то значение из этого же поля товара (простой товар). 2) Пишем обработчик, на событие обновления элемента каталога "OnProductUpdate" (событие "OnAfterIBlockElementUpdate" не подходит!). Который после изменения параметров товара\его тп, получает товар и все его ТП, и в цикле суммирует все значения "CATALOG_QUANTITY" его ТП. Если товар простой и у него нет ТП то берет его значение "CATALOG_QUANTITY" и также записывает в св-во SORTAVAIL товара
ТП был задан вопрос для чего нас лишили такой необходимой возможности (в крайнем случае, а этот случай именно такой...) изменять выборку так как нужно клиенту, с просьбой создать обращение в отдел разработки.
Как добавить платежную систему в Bitrix D7 При разработке решения, может понадобится что бы мастер, добавил платежную систему для ИМ, но на данный момент документация не полная. Добавить платежную систему PAY SYSTEM в Битрикс D7 можно следующим образом:
Тестирование решения Bitrix для Marketplace перед сдачей на модерацию
Тестирование модераторами решения хоть и нудная, но необходимая вещь. У Bitrix нет инструкции, о том как правильно самостоятельно протестировать свое решение, дабы упростить жизнь себе и модераторам. Составил основной перечень действий, для тестирования решения под marketplace на bitrixlabs.ru
1) создаем сайт на https://bitrixlabs.ru/ 2) в настройках главного модуля прописываем ключ NFR (на котором можно ставить альфа обновления) и снимаем галку "Загружать только стабильные обновления:" 3) создаем купон решения https://partners.1c-bitrix.ru/personal...n_edit.php 4) активируем купон на странице /bitrix/admin/update_system.php 5) переходим на "Установленные решения" /bitrix/admin/update_system.php Купленные решения" и выбираем загрузить "ВАШЕ_РЕШЕНИЕ_НАЗВАНИЕ" 6) после загрузки появится надпись "На ваш сайт были добавлены новые решения:Решение "ВАШЕ_РЕШЕНИЕ_НАЗВАНИЕ" и кнопка "Установить" - нажимаем ее 7) возвращаемся на главную установщика "Установка продукта" и ВАЖНО не выбирая никакого решения жмем "Далее" после чего появится установщик решения 8 ) выбираем установщик решения "ВАШЕ_РЕШЕНИЕ_НАЗВАНИЕ" и выполняем все шаги установки (с галкой "Установить демонстрационные данные..." если таковые имеются)
Обновление множествоенного св-ва секции UF_ тип "Привязка к элементам highload-блоков"
Так как св-во множественное и в него например добавляем или убираем одно или неск. значений, для начала нужно получить все уже установленные в этом св-ве значения.
Так как обновление всех множ. св-ств предполагает передачу всех значений, иначе ранее установленные затрутся.
Группы на сайте создаются не только сотрудниками «1С-Битрикс», но и партнерами компании. Поэтому мнения участников групп могут не совпадать с позицией компании «1С-Битрикс».