JBRelated Items (auto) — это элемент, который отображает похожие товары на сайте. Посетители смогут увидеть не только основной товар, которым они заинтересовались, но и похожие по каким-либо параметрам. Элемент выбирает их автоматически, а администратору не приходится это делать вручную.
Наглядный пример вы можете увидеть на демо-сайте. Для этого зайдите в один из товаров в продуктовом каталоге.
Чтобы настроить элемент, перейдите во вкладку Шестеренка, нажмите на приложение JBZoo App
и зайдите в настройки типа материала, кликнув на надпись Редактировать поля.
На следующей странице вы увидите Библиотеку. Выберите JBZoo Related items (auto).
Слева у вас появится новый элемент со следующими настройками:
Найдите на странице ваш тип материала. Напротив него, в колонке Вывода шаблона, зайдите в тот, в котором хотите настроить JBZoo Related Items (auto), к примеру Full.
Справа, выберите элемент, который вы добавили ранее. Перетащите его в нужную позицию слева, в зависимости от того, в каком месте он должен находится на сайте.
Нажмите на иконку карандаша и вы увидите следующие настройки:
Опция Доп. настройки помогает ограничить вывод материалов по произвольному критерию, при этом реальные значения полей будут переопределены на те, что указаны в опции.
Например, у нас есть магазин одежды. Под каждым из товаров мы хотим отображать спец. предложения магазина. В дополнительных условиях указываем
_itemtag = Распродажа
Теперь, если мы зайдем на какой-нибудь товар магазина, то будут выбраны все похожие товары и у них обязательно будет присутствовать тег «Распродажа». При этом не важно совпадают ли другие теги, потому что тег дополнительных условий имеет больший приоритет.
Таким образом, можно дополнительно корректировать результат поиска элемента.
Зайдите в редактирование типа материала и нажмите на иконку карандаша. У пользовательских полей он уникальный, поэтому вы не сможете задать для него дополнительные условия. Но элементы ядра (Edit Core Elements), могут совпадать.
Так, например, вы можете поставить условие _itemcategory = имя категории, где «_itemcategory» — ключ, а «имя категории» — значение. Или Element ID=синий. Тогда похожие материалы будут выбираться не по ID, а по значению «синий».
Поиск будет работать далеко не по всем полям. Их список указан в опции Выберите поля. Например, набор полей ядра сильно ограничен, потому что нет большого смысла искать по дате создания. Будут отличаться как минимум секунды.
Помимо простых значений, вроде числа или слова, можно указывать множественные, в виде массива в формате JSON. Например, чтобы сразу указать несколько тегов, напишите следующее:
_itemtag = ["Новость", "Обновление", "Скачать"]
Внимательно используйте двойные кавычки, запятые и скобки!
Поиск будет использовать вместо тегов материала именно эти значения, так, как будто это множественное текстовое поле.
Примечание. К сожалению, на данный момент нет возможности указывать диапазон значений, либо сложные данные вроде «артикул+остаток» в комплексном элементе цены JBPrice. Тем не менее, эти фичи и некоторые другие стоят у нас в планах для будущей версии.
Релевантность — это оценка степени соответствия между материалами по их полям. В данном случае это числовое значение, с помощью которого можно определить, на сколько один из них похож на другой.
Как же она рассчитывается? Допустим, в опции Выберите поля, для продуктов одного типа, установим следующие: Теги (элемент ядра), Текст и Дата (множественные поля). В настройках укажем, что искать нужно с учетом типа, лимит количества равен 2, а лимит релевантности — 6.
На картинке сравниваются похожие товары таким образом, что поиск проходит по отдельности для каждого поля. Рядом с ними, для наглядности, мы подписали каждое совпадение — это одно «очко» релевантности. Суммируя эти «очки», мы получаем релевантность по каждому товару в отдельности.
После этого материалы, релевантность которых от 6 и выше появятся на сайте, а остальные нет. На первом месте будут стоять те, в которых совпало наибольшее количество полей. Далее по убыванию.
При вычислении релевантности принципиальной разницы между пользовательскими элементами и элементами ядра нет.
JBRelatedItems (auto) спроектирован таким образом, чтобы все выборки из базы данных были выполнены в рамках одного SQL-запроса. Практически вся математика и логика вычисления релевантности ложиться на плечи базы данных MySQL.
Таким образом, достигается оптимизация работы всего элемента в целом.
Но не смотря на старания разработчиков ускорить элемент, нужно учитывать множество факторов, сильно влияющих на его производительность.
Элемент имеет собственный алгоритм кэширования, который включается вместе с кэшем Joomla (в основных настройках). Поэтому, рекомендуется его включать для больших сайтов. Таким образом, можно исключить сложные запросы в базу данных.
Универсального решения, как увеличить производительность элемента, нет, т.к. все сайты уникальны и требуют индивидуального подхода. Поэтому, мы рекомендуем вам отнестись к его настройкам предельно внимательно.
Вы можете обратиться на наш специальный форум техподдержки JBZoo. Если у вас нет активного аккаунта со знаком «плюс» в тарифном плане, то вы можете задать свой вопрос в одном из этих разделов или на любой из наших контактов. Форум специально предназначен для JBZoo, приоритет и скорость ответа там выше.