Json_encode для кириллицы (windows-1251)

Как известно, стандартная функция php json_encode() работает только с строками в кодировке utf-8. В новом ядре 1с-Битрикс появилась замечательная обертка, позволяющая не думать о текущей кодировке сайта:

// encode
$enc_value = \Bitrix\Main\Web\Json::encode($data, $options = null);
// decode
$dec_value = \Bitrix\Main\Web\Json::decode($data);

Параметры $data и $options совпадают с параметрами json_encode().

Если во время преобразования возникла ошибка, генерируется исключение \Bitrix\Main\ArgumentException.

Битрикс не индексирует статические страницы

На одном из проектов часть статических страниц не индексировалась стандартным модулем поиска. Функция CSearch::ReIndexFile() для них всегда возвращала 0, хотя для аналогичного файла из соседнего раздела отрабатывала корректно.

Для корректной индексации файлов необходимо наличие заголовка, установленного функцией $APPLICATION->SetTitle(). Вызов этой функции обязательно должен находиться в первом php-блоке кода страницы.

Такая страница будет доступна для поиска:

<?
require($_SERVER["DOCUMENT_ROOT"] . "/bitrix/header.php");
$APPLICATION->SetPageProperty("keywords", "keywords");
$APPLICATION->SetPageProperty("description", "description");
$APPLICATION->SetTitle("Title");
?>

А такая нет:

<?require($_SERVER["DOCUMENT_ROOT"] . "/bitrix/header.php");?>
<?$APPLICATION->SetPageProperty("keywords", "keywords");?>
<?$APPLICATION->SetPageProperty("description", "description");?>
<?$APPLICATION->SetTitle("Title");?>

ORM в D7 1c-bitrix. Первый подход к снаряду

Реализация ORM в ядре D7 — очередная интересная, перспективная, но как обычно плохо документированная разработка от 1с-Битрикс :) Призвана она абстрагировать разработчика от механики работы с таблицами на уровне запросов к БД, введя понятие сущности и поля сущности. На зимней партнерской конференции Алексей Кирсанов провел мастер-класс по созданию модуля с применением ORM для выборки данных из своей таблицы. После чего я решил провести небольшое исследование на предмет возможности построения более сложных, чем в примере, запросов. Читать дальше…

Письма, файлы и картинки

В модуле «Подписка, рассылки» есть очень замечательная возможность — прикладывать к письму произвольные файлы и автоматически заменять ссылки на изображения, собственно, самими картинками. И этого очень не хватает в стандартной почтовой системе битрикса. Читать дальше…

Обновление свойств инфоблока

В процессе разработки довольно часто приходится программно обновлять значения свойств элементов инфоблока. Под катом небольшая шпаргалка по api-функциям для решения этой задачи и форматам передаваемых в них данных. Читать дальше…

Тестируем технологию CDN от 1с-Битрикс

Одной из «киллер-фич» 12й версии Битрикса была объявлена возможность отдавать статические файлы из CDN, тем самым увеличивая скорость работы сайта. Попробуем оценить практический выигрыш от использования этого модуля, произведя серию замеров времени загрузки одной из страниц конкретного сайта. Читать дальше…

Что должен знать битрикс-программист?

Некоторое время назад мне довелось пройти больше десятка собеседований на позицию php-программиста (битрикс). К удивлению, требования в различных организациях отличаются совсем незначительно и есть возможность сформировать некий единый список необходимых знаний для успешного трудоустройства. Так что же должен уметь битрикс-программист с точки зрения работодателя? Читать дальше…

Как я кастомизировал портал

Представим узкую, но возможную на реальном проекте задачу — в стандартном шаблоне копроративного портала 1с-Битрикс изменить страницу, которая отвечает за вывод универсального списка в группе. По опыту работы с БУС и общим принципам устройства шаблонов компонентов сразу видится план:
— скопировать шаблон комплексного компонента;
— удалить из него все кроме нужной страницы, чтобы не терять обновления (почему так читаем тут);
— отредактировать нужную страницу.
Читать дальше…

Битрикс путает шаблоны сайтов

Дано: многосайтовость на разных доменах (2й способ), разные шаблоны для сайтов.

Проблема: периодически показывается контент нужного сайта в шаблоне другого. Преимущественно при первом заходе.

Решение: выключить html-кэширование. Периодически владельцы сайтов сами его включают, думая что так будет лучше.