Отправка писем в 1С-Битрикс

В 1С-Битрикс письма по умолчанию отправляются с использованием агентов. Агенты работают на хитах. Таким образом, когда например пользователь отправил письмо с формы обратной связи, письмо будет отправлено при следующем перехода на любую из страниц сайта — при следующем хите. Это не удобно, если нужно мгновенно доставить письмо о регистрации, к примеру.

Существуют несколько способов решить проблему.

  1. Отправить письмо методом CEvent::SendImmediate, в этом случае сообщение отправляется немедленно. В отличие от CEvent::Send не возвращает идентификатор созданного сообщения. При отправке сообщения данным методом запись в таблицу b_event не производится.
  2. Настроить выполнение агентов 1C-Bitrix через крон. Об этом детально описано в статье:
    https://dev.1c-bitrix.ru/community/webdev/user/8078/blog/2755/
  3. Воспользоваться обычным стандартным способом PHP — функция mail().

Дополнительно можно вывести и посмотреть журнал отправки писем, которые сохранаются при использовании метода CEvent::Send. Для этого переходим в Настройки — Инструменты — SQL-запрос и выполняем запрос:

По полученной информации также можно определить, почему не доставляются письма из форм в 1С-Битрикс. При этом нужно обратить внимание на поле SUCCESS_EXEC:

  • Если стоит Y: письмо из продукта ушло, дальнейшую его судьбу попросите отследить администратора хостинга;
  • Если стоит N: нужно зайдитм в файл /bitrix/php_interface/dbconn.php и закомментировать константы BX_CRONTAB и BX_CRONTAB_SUPPORT.

Дополнительная информация об этом здесь:
http://dev.1c-bitrix.ru/support/faq/8370/?sphrase_id=46618353#185365

PHP обрезка строки и подсчет кол-ва символов

Чтобы обрезать строку до нужной длинны:

Чтобы подсчитать кол-во символов в строке:

 

Bootstrap колонка слева с выводом в конце страницы

При использовании Bootstrap необходимо реализовать меню сайта или вывести какой-либо блок слева. В этом случае получаем две проблемы:

  1. При адаптивной верстке, контент который мы размещаем слева будет всегда вверху.
  2. Снижается ранжирование сайта в поиске, т.к. основная часть текста будет ниже.

Чтобы решить проблему, воспользуемся следующим простым способом:

Используя класс col-md-push-* наш контент в коде будет снизу, а визуальный вывод будет слева.

Select с поиском и подстановкой (плагин Select2)

Чтобы сделать красивый и удобный выбор в select, я воспользовался плагином Select2. Подключение простое:

В примере шаблон для Bootstrap с корректной работой в адаптивном режиме. Также, не забываем подключить jQuery.

WordPress ошибка cURL error 23 Failed writing body

Вышла новая версия WordPress 4.7.1. При обновлении WordPress появляется ошибка:

«Загрузка не удалась. cURL error 23: Failed writing body (624 != 811)»

Помогло изменение файла:

/wp-includes/Requests/Transport/cURL.php

Нужно найти строку в файле cURL.php:

И заменить еще на:

После этого обновления успешно установились.

1C-Bitrix: вывод имени элемента связанного свойства

Необходимо вывести вместо ID элемента связанного свойства его имя (NAME).

Если это компонент bitrix:news.list

В настройках компонента в параметре Поле (FIELD_CODE) добавить свойство привязанного элемента в формате:

Для вывода в шаблоне использовать конструкцию:

Если класс CIBlockElement::GetList

В фильтре добавить:

Для вывода свойства:

1С-Битрикс: шаблон постраничной навигации Bootstrap

Шаблон для постраничной навигации Bootstrap в 1С-Битрикс.

  1. Скопировать системный шаблон постраничной навигации system.pagenavigation из папки
    /bitrix/components/bitrix/system.pagenavigation/templates/.default
    в папку
    /bitrix/templates/имя_шаблона/components/bitrix/system.pagenavigation/.default
  2. Замените содержимое файла шаблона template.php на следующий ниже код шаблона:

Читать далее →

1С-Битрикс: работа умного фильтра в корневом разделе инфоблока

Если используется умный фильтр и все элементы инфоблока находятся в корневом разделе, некорректно отображается кол-во товара во всплывающих подсказках. Чтобы это исправить, необходимо в настройках умного фильтра добавить параметр:

Данный параметр описан в примечании документации:

В компоненте имеется специальный параметр SHOW_ALL_WO_SECTION, принимающий значения Y|N. Если задано значение Y, то будут отображены все элементы инфоблока, если не указан раздел.