Remontnouta.ru

ПК Ремонт техники
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Оптимизация сайта на 1С-Битрикс

Оптимизация сайта на 1С-Битрикс

Владимир Сидлецкий

Для того, чтобы грамотно решить проблему с оптимизацией сайта на 1С-Битрикс для начала нужно определить причину появления затруднений в работе. Существует несколько способов оптимизации сайтов. К ним относятся:

Оптимизация количества запросов к БД и количества выбираемых из неё данных,

Работа с кэшированием компонентов, HTML кэшированием (композит),

Создание фасетных индексов для умного фильтра.

Давайте предметно поговорим о некоторых из них и попробуем вместе ускорить работу вашего сайта.

Элемент списка в Битрикс

Доброго времени суток, коллеги! В данной статье будет подробно рассмотрена тема списков (их видов, действий с ними) в системе управления Битрикс, а также элементов списка. Списки являются модулем в Битрикс. Их главная задача заключается в упрощении отображения информации на сайте путем ее структурирования. Особенностью списков в Битрикс является то, что их можно исправлять из общей части сайта, не заходя в панель администратора.

Компонент «Списки» можно найти по пути: «Контент → Универсальные списки → Список», то есть он относится к модулю под названием «Универсальные списки».

Начинается работа со свойствами списков Битрикс с создания типа внутри информационного блока под названием «Списки». Это делается в параметрах компонента. Создаем страницу на сайте и размещаем данный комплексный компонент системы 1С:Битрикс, далее в нём выбираем нужный инфоблок и начинаем заполнение (например, добавление полей «Дата», «Дата активности», «Название» и так далее).

Разберём параметры для списков Битрикс:

· IBLOCK_TYPE_ID – находится в поле «Тип инфоблока» и описывает тип информационного блока для хранения универсальных списков;

· IBLOCK_ID – располагается в поле «Инфоблок», в нём пишется идентификатор для инфоблока;

· SECTION_ID – располагается в поле «Раздел», сообщает код с идентификатором раздела (по умолчанию стоит «=<[H1toH2] REQUEST["section_id"]>»);

Читайте так же:
База данных в контакте

· LISTS_URL – находится в «URL главной страницы списков», здесь можно отметить шаблон для ссылки на главную страницу, вышеуказанных списков;

· LIST_EDIT_URL– в поле «URL настройки списка», здесь указываем шаблон для ссылки на страницу настроек списка;

· LIST_URL – можно найти в поле «URL списка», в нём пишем шаблон ссылки на список;

· LIST_SECTIONS_URL – располагается в поле «URL управления разделами», указываем шаблон для ссылки на страницу с управлением по разделам в списке;

· LIST_EDIT_URL – состоит в поле «URL редактирование элемента», в нем находится шаблон для ссылки на страницу для редактирования элемента;

· BIZPROC_WORKFLOW_START_URL – заключается в поле «URL запуска бизнес-процесса» и аналогично указывает шаблон только для страницы по запуску бизнес-процесса.

Следующим шагом станет настройка кеширования в списках по двум параметрам:

1. CACHE_TYPE – в данном параметре можно выбрать один из типов кеширования:

— «А» – автоматически обновит кеш с компонентами в период заданного времени/при изменениях в данных;

— «Y» – для того чтобы начать кеширование, необходимо определить его время;

— «N» – в любом случае не начинать кеширование;

2. CACHE_TIME – данный параметр предназначен для определения времени кеширования.

Пример вызова списков на основании параметров, которые были описаны выше, будет выглядеть следующим образом:

Пример вызова списков Битрикс

Рис. 1 Пример вызова списков Битрикс

2. Общий универсальный способ вывода списка элементов Битрикс

Большая часть информации в административном разделе в 1С:Битрикс выводится в виде списка элементов Битрикс. В них отображается вся информация об элементах.

Список элементов Битрикс

Рис. 2 Список элементов Битрикс

На странице, где находится список элементов Битрикс, подаётся фильтр, который регулирует сам список с элементами.

3. Получить ID элементов списка

Задача «Получить ID элементов списка, привязанных к CRM сущности» даёт возможность получить ID элемента, который имеет привязку к сущности CRM. Данное действие сопоставляется с процедурой «Чтение элемента списка»:

Читайте так же:
Видеокамера canon legria hf r806 отзывы

Получить ID элементов списка, привязанных к CRM сущности

Рис. 3 Получить ID элементов списка, привязанных к CRM сущности

4. Обновление элемента списка Битрикс

Главная проблема обновления элемента списка в Битрикс на Python3 заключается в том, что при апдейте (перерасчете важных критериев по статистике ранжирования) из списка нужно переделывать абсолютно все поля. Поэтому пред тем как начать это делать, стоит сделать запрос на все поля элемента по ID, сформировать из них массив, и только после этих действий можно начинать «апдейтить». Данная процедура в коде описана на скриншоте ниже:

[/H1toH2]

Как вывести список разделов в 1С Битрикс

Описание почти такое же как и в предыдущим примере, но советую все же глянуть описание полей и возможных вариантов в официальной документации.

Если вы заметили, у нас теперь массив с выбором по порядку четвертый а не пятый и добавился параметр » ACTIVE» => «Y» , который выводит только активные «разделы»(это работает и для CIBlockElement, просто в данном скрипте нашими элеменами являются разделы инфоблока). Принцип работы с CIBlockSection::GetList почти такой же, как и с CIBlockElement. В данном скрипте мы выводим символьный код разделов, предварительно преобразовав в читаемую кириллицу.

автор: Dmitriy

Занимаюсь веб-разработкой с 2011 года. Посмотреть некоторые из моих работ, а также узнать чуть больше обо мне, вы можете на forwww.ru.

Какие услуги предоставляю:
— Создание сайтов, шаблонов и компонентов на 1С-Битрикс;
— Разработка функционала с нуля и доработка кода на уже созданных проектах;
— Адаптивная вёрстка макетов и натяжка на Битрикс;
— Парсинг файлов и выгрузка на сайт (форматы — CSV, XML, XLSX, JSON)
— Интеграции со сторонними сервисами по API;
— Многоязычные версии и многое другое.

Читайте так же:
Видеорегистратор xiaomi smart rearview mirror отзывы

Должна получиться структура из трёх уровней:
сайт/магазины/разделы магазинов/список элементов внутри раздела

в админке это вот так выглядит:

В магазинах будут разделы плиткой, по клику на раздел — список элементов (обычные картинки), всё просто.

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

Возвращает список разделов, отсортированных в порядке arOrder по фильтру arFilter. Нестатический метод.

Параметры вызова

ПараметрОписаниеС версии
arOrderМассив для сортировки, имеющий вид by1=>order1[, by2=>order2 [, ..]], где by1, . — поле сортировки, может принимать значения:
    > Кроме того, сортировка возможна и по пользовательским свойствам UF_XXX.

Значение по умолчанию Array("SORT"=>"ASC") означает, что результат выборки будет отсортирован по возрастанию. Если задать пустой массив Array(), то результат отсортирован не будет.

  • ACTIVE — фильтр по активности (Y|N);
  • GLOBAL_ACTIVE — фильтр по активности, учитывая активность вышележащих разделов (Y|N);
  • NAME — по названию (можно искать по шаблону [%_]);
  • CODE — по символьному коду (по шаблону [%_]);
  • XML_ >TIMESTAMP_X — по времени последнего изменения;
  • DATE_CREATE — по времени создания;
  • MODIFIED_BY — по коду пользователя изменившему раздел;
  • CREATED_BY — по содателю;
  • SOCNET_GROUP_ID — по привязке к группе Социальной сети;
  • MIN_PERMISSION — фильтр по правам доступа, по умолчанию принимает R (уровень доступа Чтение);
  • CHECK_PERMISSIONS — если установлено значение "N", то проверки прав не происходит;
  • PERMISSIONS_BY — фильтрация по правам произвольного пользователя. Значение — ID пользователя или 0 (неавторизованный).
  • PROPERTY по значениям свойств внутрилежащих элементов, PROPERTY — массив вида Array("код свойства"=>"значение", . ).
  • HAS_ELEMENT — по наличию элемента. Используется в компоненте catalog.detail.

Значения фильтра одиночное значение или массив.

Необязательное. По умолчанию записи не фильтруются.

  • ELEMENT_SUBSECTIONS — подсчитывать элементы вложенных подразделов или нет (Y|N). По умолчанию Y;
  • CNT_ALL — подсчитывать еще неопубликованные элементы (Y|N). По умолчанию N. Актуально при установленном модуле документооборота;
  • CNT_ACTIVE — при подсчете учитывать активность элементов (Y|N). По умолчанию N. Учитывается флаг активности элемента ACTIVE и даты начала и окончания активности.

Необязательный параметр, по умолчанию равен false.

Примечание: в случае если в фильтре есть ключ PROPERTY то в количестве элементов вернется то значение, которое попадает под этот фильтр по значению свойств.

голоса
Рейтинг статьи
Ссылка на основную публикацию
Adblock
detector