Далеко не многие знают, но данный блог изначально задумывался больше как записная книжка готовых решений на конкретные задачи. Какие же из опубликованных статей выдержали проверку временем? 🙂
Топ субъективный, и отличается от мнения большинства пользователей.
1. Список разделов и элементов в Битриксе
Битрикс: как узнать список разделов и элементов – очень часто открываю и просто копирую данный код из API. Давайте немного улучшим версию для элемента:
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php"); if (CModule::IncludeModule("iblock")): $arParams['IBLOCK_ID'] = 1; $res = CIBlockElement::GetList ( ["ID" => "ASC"], ["IBLOCK_ID" => $arParams['IBLOCK_ID'], "ACTIVE" => "Y"], false, false, ['ID', 'NAME', 'DETAIL_PAGE_URL'] ); while ($arItem = $res->GetNext()) { print_r($arItem); } endif;
Теперь в ней всё чётко по отступам, а массивы заменены на квадратные скобки, что значительно экономит кол-во вводимых символов :).
При помощи цикла мы можем начать собирать данные из базы, они же элементы инфоблока, писать сортировку, фильтровать, выбирать какие поля отображать – в общем штука очень полезная, рекомендую изучить максимально, в работе точно пригодится.
Ссылка на документацию:
https://dev.1c-bitrix.ru/api_help/iblock/classes/ciblockelement/getlist.php
2. Путь к изображению и ресайз в Битриксе
Как получить путь к изображению в 1C-Битрикс – используется также очень часто, но краткий вариант можно записать в таком виде:
// получить путь к изображению CFile::GetPath($arItem["PREVIEW_PICTURE"]); CFile::GetPath($arItem["DETAIL_PICTURE"]); // выполнить ресайз CFile::ResizeImageGet( $arItem["PREVIEW_PICTURE"], array('width'=>'250', 'height'=>'250'), BX_RESIZE_IMAGE_PROPORTIONAL );
Получаете путь к картинке, вместо её ID (именно айди изображения чаще всего и хранится в Битриксе), и, при необходимости, делаете ресайз “на лету”.
Ресайз на лету – означает что файлы попадут в папку /upload/resize_cache/iblock, и уменьшенная копия будет создаваться из оригинала (который ID фото).
Будет ли создаваться ресайз копия каждый раз? Нет, перед ресайзом функция сама проверяет есть ли уменьшенная копия в папке, и если её нет – создает.
Очень не хватает функционала, который бы удалял неактуальные данные, т.к. на больших проектах эта папка раздувается до невероятных размеров 🙂 Надеюсь разработчики Битрикс поправят это дело, и не придется удалять всю папку вручную.
3. jQuery – выполнить AJAX запрос
jQuery Ajax отправка формы. Основной код, который просто копируется и частично меняется выглядит так:
let $form = $(this).closest('form'); $.ajax({ url: $form.attr('action'), type: 'post', cache: false, data: $form.serialize(), }).done(function(data){ //console.log(data); }).error(function(){ console.log('There was an error'); });
Получив все необходимые данные из заполненной формы, передав правильный url скрипта обработчика, отправляем запрос. Повесить данный код можно на клик кнопки:
$(document).on('click', '.js-btn', function(){ // code });
Буду рад видеть ваши комментарии, надеюсь данный обзор был полезен 🙂