Добавить файл в почтовое событие или письмо формы D7

Добавляем событие в init.php Где: FORM_FILLING_SIMPLE_FORM_5_2019 — ТИП почтового события SIMPLE_QUESTION_851 / resume — символьный код заполняемого поля $eventManager = \Bitrix\Main\EventManager::getInstance(); $eventManager->addEventHandler(‘main’, «OnBeforeEventAdd», function ($event, $lid, &$arFields, $message_id, &$files) { if ($event == «FORM_FILLING_SIMPLE_FORM_5_2019» && $arFields[«RS_RESULT_ID»]) { $rs = CFormResult::GetDataByID($arFields[«RS_RESULT_ID»], array(«SIMPLE_QUESTION_851», «resume»), $arResult, $arAnswers); if ($arAnswers[«SIMPLE_QUESTION_851»]) { $currFile = current($arAnswers[«SIMPLE_QUESTION_851»]); if ($currFile[«USER_FILE_ID»]) { $files[] = $currFile[«USER_FILE_ID»]; } … Подробнее

Проставляем id инфоблоков в административном меню

// проставляем id инфоблоков в административном меню AddEventHandler(«main», «OnBuildGlobalMenu», function (&$aGlobalMenu, &$aModuleMenu) { if (! $GLOBALS[‘USER’]->IsAdmin() || !defined(«ADMIN_SECTION»)) { return; } foreach ($aModuleMenu as $k => $arMenu) { if ($arMenu[‘icon’] != ‘iblock_menu_icon_types’) { continue; } foreach ($arMenu[‘items’] as $i => $item) { $arEx = explode(‘/’, $item[‘items_id’]); $aModuleMenu[$k][‘items’][$i][‘text’] .= ‘ [‘ . $arEx[2] . ‘]’; } … Подробнее

Очищаем настройки формы по-умолчанию для всех админов

AddEventHandler(‘main’, ‘OnEndBufferContent’, function (&$content) { if (count($_POST[‘p’]) <= 0) { return; } global $APPLICATION, $DB, $CACHE_MANAGER; $pCfg = array_shift($_POST[‘p’]); if ($APPLICATION->GetCurPage() != ‘/bitrix/admin/user_options.php’ || $pCfg[‘c’] != ‘form’ || $pCfg[‘d’] != ‘Y’ || !preg_match(‘#^form_((section)|(element))_[0-9]+$#’, $pCfg[‘n’]) ) { return; } $DB->Query(«DELETE FROM b_user_option WHERE CATEGORY = ‘form’ AND NAME = ‘» . $pCfg[‘n’] . «‘ AND COMMON … Подробнее

Получить дерево разделов Bitrix

//region Tree sections $arFilter = array( ‘ACTIVE’ => ‘Y’, ‘IBLOCK_ID’ => 8, ‘GLOBAL_ACTIVE’ => ‘Y’, ); $arSelect = array(‘IBLOCK_ID’, ‘ID’, ‘NAME’, ‘DEPTH_LEVEL’, ‘IBLOCK_SECTION_ID’); $arOrder = array(‘DEPTH_LEVEL’ => ‘ASC’, ‘SORT’ => ‘ASC’); $rsSections = CIBlockSection::GetList($arOrder, $arFilter, false, $arSelect); $sectionLinc = array(); $arResult[‘ROOT’] = array(); $sectionLinc[0] = &$arResult[‘ROOT’]; while ($arSection = $rsSections->GetNext()) { $sectionLinc[(int)$arSection[‘IBLOCK_SECTION_ID’]][‘CHILD’][$arSection[‘ID’]] = $arSection; $sectionLinc[$arSection[‘ID’]] … Подробнее

Bitrix D7

Манипуляции с сущностями или записями в таблицах Битрикс D7 http:// bxit . ru /development/bitrix-coding/razrabotka-na-d7/operatsii-s-sushchnostyami-d7/ Добавление элемента сущности, add(): $result = MynameTalbe::add( array( «field_1» => «val 1», «field_2» => «val 2», «field_3» => «val 3», ) ); if($result->isSuccess()) { $ID = $result->getId(); echo «Добавлен новый элемент: «.$ID; } else { $error = $result->getErrorMessages(); echo «Ошибка добавления … Подробнее

Отправка писем Bitrix

Для отправки писем в bitrix можно использовать не хитрую конструкцию: $arEventFields = array( «AUTHOR» => htmlspecialcharsEx($arLoadProductArray[‘NAME’]), «PHONE» => htmlspecialcharsEx($arLoadProductArray[‘CODE’]), «TEXT» => htmlspecialcharsEx($arLoadProductArray[‘PREVIEW_TEXT’]), «AUTHOR_EMAIL» => htmlspecialcharsEx($arLoadProductArray[‘XML_ID’]), «EMAIL_TO» => COption::GetOptionString(‘main’, ’email_from’), // email из настроек главного модуля ); if (CModule::IncludeModule(«main»)) { if (CEvent::Send(«FEEDBACK_FORM», SITE_ID, $arEventFields)) { /* сохраним в инфоблок отосланные данные формы CModule::IncludeModule(«iblock»); $arLoadProductArray = array( … Подробнее

Огромный кеш меню bitrix:menu

у компонента bitrix:menu есть не документированный параметр: «CACHE_SELECTED_ITEMS»    => «N» , который отключает создание кеша меню на каждую страницу сайта. его эффективно использовать для сквозных меню (в хереде или футере сайта). Вот данные от первых лиц, от разработчиков битрикс: Ryzhonin Nikolay пишет: 2. Если на сайте меню одного типа в подпапках не переопределяется, то можно … Подробнее

Bitrix удалить Get параметры из Url

Нашел интересный класс в bitrix «CHTTP» и в нем функцию urlDeleteParams($sUrl,$arRemove) удаляющую get параметры из строки. Использование: $arResult[«FORM_ACTION»] = ‘/catalog/almaznye-krugi/kern/?SECTION_CODE=almaznye-krugi&BRAND_CODE=kern&%3FSECTION_CODE=almaznye-krugi’; $arResult[«FORM_ACTION»] = CHTTP::urlDeleteParams($arResult[«FORM_ACTION»], array(‘%3FSECTION_CODE’, ‘SECTION_CODE’, ‘BRAND_CODE’), array(«delete_system_params» => true) ); // получим /catalog/almaznye-krugi/kern/

Как в bitrix проверить текущую и корневую директорию

CSite::InDir(‘/about/’) — проверка директории с вложением GetCurDir() — Возвращает каталог текущей страницы относительно корня. Не статический метод. GetCurPage() — Возвращает путь к текущей странице относительно корня. Не статический метод. Если файл текущей страницы явно не определён, то определение индексного файла каталога будет проходить по алгоритму представленному в описании функции GetDirIndex. SITE_DIR — путь к текущей web директории … Подробнее

This site is using the Seo Wizard wordpress plugin by www.seowizard.org.