bitrix умный фильтр переделка урла

Умный фильтр выдает урл вида
site.ru/tovars/filter/property1-is-8e4e6038-474d-11e6-80e5-94de807e86a2/apply/
А нужен вида
site.ru/tovars/?filter[]=property1-is-8e4e6038-474d-11e6-80e5-94de807e86a2
чтобы не индексировался.
Замена в catalog/index.php


		"SEF_URL_TEMPLATES" => Array(
			"smart_filter" => "#SECTION_CODE_PATH#/?filter[]=#SMART_FILTER_PATH#"

не полное решение.
(далее…)

Битрикс набор функций

Наверно, самый популярный метод — список элементов


$res = CIBlockElement::GetList(
  Array("SORT"=>"DESC") , // $arOrder 
  array('IBLOCK_ID'=>55), // $arFilter
  false, // $arGroupBy 
  Array("nTopCount"=>10), // $arNavStartParams
        array('ID' , 'NAME') // arSelectFields
); 
while($ob = $res->GetNext(true, false)){
    print_r($ob );
}

(далее…)

Битрикс кастомизация умного фильтра

часто возникает задача поменять шаблон catalog.smart.filter — например, селект сделать картинками, а на range slider цен навесить свои ползунки. Разобраться в битриксовом винегрете из html, php, js можно в этом посте.
Шаблон условно легко поделить на фильтр по св-вам, к-е указали в админке (Магазин — Основной каталог товаров — Настройки каталога), и фильтр по ценам. Это 2 цикла с пометками //prices //not prices (далее…)

Bitrix google recaptcha для компонентов

Добавим рекапчу от гугл в компоненты


1. blog.post.comment // комментарии в блоге
2. forum.topic.reviews // комментарии к статическим страницам
3. iblock.element.add.form // форма

Как подключать рекапчу писал в статье http://phpjs.ru/2017/07/18/google-captcha-v2/. А также, если не умеете работать с классами и композер, можно проверить капчу 3 строчками кода (см. в конце статьи).
Но это не есть красиво) Вынесем верификацию в ReCaptcha.php


    public function verifyCaptcha()
    {
        if ($_POST["g-recaptcha-response"]) {
            $resp = $rec->verify(
                $_POST["g-recaptcha-response"],
                $_SERVER["REMOTE_ADDR"]
            );
            return $resp->isSuccess();
        }
    }

(далее…)

Битрикс замена путей файлов на постоянные

При импорте, а также просто загрузке файлов битрикс создает каждый раз новый путь до файла.
Выглядит он примерно так: /upload/iblock/0a1/image.png . Я же заменю на /upload/files/1234/image.png где 1234 id элемента.
Я пройдусь по всем файлам и перемещю их в постоянные папки, удалив старые, чтобы не занимали места. Далее подробно в комментах. (далее…)

Битрикс отправка письма с вложением с формы.

Находим форму. Если сделан инфоблоками — это компонент iblock.element.add.form. Кастомизируем. Для этого добавляем пространство имен, копируем компонент и подключаем его уже как namespace:iblock.element.add.form. Или просто копируем в папку local/bitrix/components/
В коде component.php находим строки где идет добавление элемента инфоблока.


	
	// add new element
	$sAction = "ADD";

Там у нас входной массив с данными формы, ошибки, если есть, при проверке этих данных, а также массив вложенных файлов.
Для интереса можем все это логировать.


	

				// file_put_contents($_SERVER['DOCUMENT_ROOT'].'/upload/form.txt', var_export($arUpdateValues, true), FILE_APPEND);
				// file_put_contents($_SERVER['DOCUMENT_ROOT'].'/upload/form.txt', var_export($arResult["ERRORS"], true), FILE_APPEND);
				// file_put_contents($_SERVER['DOCUMENT_ROOT'].'/upload/form.txt', var_export($_FILES, true), FILE_APPEND);

(далее…)

Битрикс метатеги для торговых предложений

Заменим метатеги для тороговых предложений, а также просто для любых элементов каталога.
Перед вызовом компонента элемент каталога («bitrix:catalog.element») сделаю проверку на offer, то бишь торг. предложение.


if(!empty($_GET['offer'])){
	$arParams["SET_TITLE"] = $arParams['SET_META_DESCRIPTION'] = $arParams['SET_META_KEYWORDS'] = $arParams['SET_BROWSER_TITLE'] = 'N';
}

Добавим параметры, если их нет


		"SET_META_DESCRIPTION" => $arParams['SET_META_DESCRIPTION'],
		"SET_META_KEYWORDS" => $arParams['SET_META_KEYWORDS'],
		"SET_BROWSER_TITLE" => $arParams['SET_BROWSER_TITLE'],
"SET_TITLE" => $arParams["SET_TITLE"],

(далее…)

Bitrix формирование урлов многоуровневых разделов

Сайты каталоги в основном имеют структуру многоуровневых разделов. При тестировании могут потребоваться урлы этих разделов. Рекурсивное формирование ссылок и экспорт их в csv будет рассмотрен в этой статье.

329 zamorozhennie-ovoshi/green-goroh Замороженные овощи/Зеленый горошек «Premiko»
330 conserves/cucumber Консервированные овощи/Огурцы
331 v-steklannih-bankah/grib Овощи в стеклянных банках/Грибы
332 v-steklannih-bankah/tomatos Овощи в стеклянных банках/Помидоры
333 zamorozhennie-ovoshi/brokkoli Замороженные овощи/Брокколи
334 conserves/tomate Консервированные овощи/Банка томатов

Скрипт я написал в ООП стиле
Допустим у нас есть массив разделов где присутствует некий текст, напр. кнопка «Купить». (далее…)

Bitrix24 как я переделывал модуль поиска

Стандартный модуль поиска bitrix search вполне хорош, но есть один недостаток, если вы используете его в решении Bitrix24 корпоративный портал. Дело в том что результаты поиска выдают личную переписку!

Итак, я начал копаться в коде этого модуля. Путем метода тыка нашел место запроса. Запрос не цельная строка, а куски динамического кода. Все происходит в методе MakeSQL() класса CSearch скрипта bitrix/modules/search/classes/mysql/search.php
Поля выборки задаются в массиве $arSelect
(далее…)

Bitrix создание модуля




В официальной док-ии есть подробное описание. Наверно в этом его и недостаток, что оно какое то слишком подробное. Сам я учился создавать модуль на примере других модулей, но натыкался на подводные камни, присущие именно bx.

Подводные камни создания модуля: (далее…)