The Discord

crazy hacker wannabe
  • Archive
  • feeds

Posts match “ bitrix ” tag:

over 6 years ago

Фильтры в Битриксе

Сегодня, после года практики в Битриксе мне открылось поистине тайное знание.

Когда передаёшь в компонент имя переменной-фильтра через 'FILTER_NAME', Битрикс ожидает имя глобально доступной переменной. Там прямо в исходниках любого компонента можно увидеть вызов

<?php
...
global ${$arParams['FILTER_NAME']}

или, во всяком случае, аналог этого кода. А раз используется поиск переменной средствами ключевого слова global, то без шаманства можно забыть о таких интересных вещах, как динамическая генерация фильтра внутри объектов классов или вообще внутри любого lexical scope, отличающегося от глобального.

Сегодня же до меня дошёл смысл этого global. Фильтр надо просто сохранять
как элемент массива $GLOBALS, вместе со всеми остальными глобальными переменными.
Это, по-видимому, самый надёжный способ генерировать фильтр и передавать его
имя в компонент.

Следующие две инструкции могут быть теперь вообще где угодно, как угодно глубоко
внутри иерархии классов и/или стека вызовов:

<?php
...
$GLOBALS['similar_items'] = array(
    '=EXTERNAL_ID' => getSimilarItems($arResult) 
); 
$APPLICATION->IncludeComponent( 
    "bitrix:catalog.section", 
    "", 
    Array( ... 
            "FILTER_NAME" => 'similar_items', 
        ... 
    ) 
); 

Я знаю, вы всегда мечтали хранить временные данные в глобальной области видимости,
не правда ли?

Пиздец.

  • development
  • php
  • bitrix
  • ru
  • December 26, 2011 20:24
  • Permalink
  • Comments
 
over 6 years ago

Как посмотреть список сработавших почтовых событий в Битрикс

В 1С:Битрикс используется относительно удобный способ отправки почтовых сообщений
в ответ на различные события в системе. Фактически, функция CEvent::Send()
заменяет собой встроенный в PHP mail().

Однако, в административной панели нет никакого способа посмотреть список сработавших
событий, что бывает важно, если вы видите, например, что письма явно не доходят,
хотя событие очевидно срабатывает.

Для того, чтобы добраться до этого списка, нужно покопаться напрямую в таблицах
БД Битрикса. В админке в разделе Настройки → Инструменты → SQL-запрос,
нужно выполнить следующий запрос:

select * from b_event where event_name like '%form%' order by date_insert desc 

via: Bitrix FAQ

  • bitrix
  • useful-stuff
  • ru
  • September 05, 2011 13:44
  • Permalink
  • Comments
 

Copyright © 2013 hijarian . Powered by Logdown.
Based on work at subtlepatterns.com.