Примеры небольших, но часто крайне полезных php сниппетов для Битрикса.


Категории: PHP, Bitrix CMS
Пометки: SEO, метатеги, раздел, название раздела, категория, meta,сео, картина раздела категории, фото, все товары. полезное битрикс

Способ работает, только если есть доступ к файловой системе.


Категории: Bitrix CMS

Допустим, что у нас есть раздел Сервис (IBLOCK_ID = 50) и у него несколько подразделов. Один из них, например, акции (SECTION_ID = 44).

Компонент bitrix:news.list не принимает параметр SECTION_ID. Но есть способ решить эту проблему.


Категории: Bitrix CMS

В какой-то "прекрасный" момент начали поступать жалобы, что письма с сайта не всем приходят. При более детальном рассмотрении, оказалось, что не приходят только на ящики @gmail.com.

В логах по ним было сообщение: Messages missing a valid messageId header are not 550 5.7.1 accepted., оказалось, что с сайта уходят письма без заголовка Message-ID.


Пометки: Для Обычного пхп и для биторкса Messages missing a valid messageId header are not 550 5.7.1 accepted.

Появилась задача сделать копию сайта без персональных данных клиентов, для передачи ее третьим лицам.


Категории: Bitrix CMS
Пометки:

При обновлении Битрикса получил ошибку:

MySQL Query Error: CREATE TABLE b_sale_cashbox_check_correction( ID int(11) unsigned not null auto_increment, CHECK_ID int(11) not null, CORRECTION_TYPE varchar(50) not null, DOCUMENT_NUMBER varchar(35) not null, DOCUMENT_DATE date not null, DESCRIPTION varchar(255) default '', CORRECTION_PAYMENT text default '', CORRECTION_VAT text default '', PRIMARY KEY (ID) ) [[1101] BLOB, TEXT, GEOMETRY or JSON column 'CORRECTION_PAYMENT' can't have a default value]

Решение - нужно создать эту таблицу "руками":

 
CREATE TABLE b_sale_cashbox_check_correction( ID int(11) unsigned not null auto_increment, 
CHECK_ID int(11) not null, CORRECTION_TYPE varchar(50) not null, 
DOCUMENT_NUMBER varchar(35) not null, DOCUMENT_DATE date not null, 
DESCRIPTION varchar(255) default '', CORRECTION_PAYMENT text, 
CORRECTION_VAT text, PRIMARY KEY (ID) ) 


Категории: Bitrix CMS

Частая проблема письма с сайта не доходят и не всегда понятно, проблема в сайте, хостинге, промежуточных сервисах или даже конечном ящике получателя. В данной заметке расскажу как можно проверить, что письма ушли из Битрикса.

Отправка писем, попадет в журнал событий Битрикса. Хранятся все события в таблице b_event, посмотреть значения можно через Настройки - Производительность - Таблицы (/bitrix/admin/perfmon_table.php?lang=ru&table_name=b_event)

pic1

Для событий отправки писем нужно смотреть на поле SUCCESS_EXEC Возможные статусы:

SUCCESS_EXEC = Y — сообщение отправлено.
SUCCESS_EXEC = N — не обработано событие (а значит не отправлено)
SUCCESS_EXEC = 0 — не найден шаблон (указан не верный шаблон)
SUCCESS_EXEC = F — надо смотреть логи отправки сервера или хостинга.

Основное на что стоит обратить внимание, что SUCCESS_EXEC = N не значит, что письмо вообще не оправлено, это текущий статус, и если отправка настроена на cron (по расписанию) или на хиты, то нужно подождать перед тем, как проверять статус!


Категории: Bitrix CMS
Пометки: Как посмотреть статус события Битрикс

Часто бывает нужно вывести в определенном месте содержимое какого-либо файла, require в случаи Битрикса это плохая идея, т.к. такие области нельзя будет редактировать через WYSIWYG-редактор.

Поэтому стоит использовать:

 
<?$APPLICATION->IncludeFile(SITE_DIR . "include/contacts.php", Array(), Array("MODE"=>"html"));?>


Категории: Bitrix CMS
Пометки: Битрикс includearea

Если, при заходе на определенную, например, тестовую страницу, нужно выдавать 404, то нам поможет такой код:

 
<?php

// Header
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");

if (!defined("ERROR_404"))
   define("ERROR_404", "Y");

\CHTTP::setStatus("404 Not Found");
   
if ($APPLICATION->RestartWorkarea()) {
   require(\Bitrix\Main\Application::getDocumentRoot()."/404.php");
   die();
}

Файл 404.php должен быть в корне сайта.


Категории: Bitrix CMS
Пометки: Bitrix отобразить 404, Принудительный вызов 404 ошибки

Довольно обыденная задача - установка демоверсии магазина на Битриксе, например, на VPS. В целом все просто, но есть пара моментов.


Категории: Bitrix CMS
Яндекс.Метрика