Топ-3 статьи с forwww.com

Далеко не многие знают, но данный блог изначально задумывался больше как записная книжка готовых решений на конкретные задачи. Какие же из опубликованных статей выдержали проверку временем? 🙂

Топ субъективный, и отличается от мнения большинства пользователей.

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
});

Буду рад видеть ваши комментарии, надеюсь данный обзор был полезен 🙂

автор: Dmitriy

З 2011 року займаюся веб-розробкою. Зараз я – PHP Full Stack Developer.
Обговорити ваш проект, а також дізнатися більше про мене ви можете на цьому сайті:
dev.forwww.com

Email: dmitriyribka@gmail.com

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *