Новосибирск +7(983)

По всем вопросам :

Телеграм : @radgura

Дорабатываем K2 (2.6.9) - управляемые рекомендации Related Items

Заказать доработку
Joomla 3.x

Стоимость 500


@radgura.ru
Адриена Лежена
63089
Новосибирск
Адриена Лежена
+7(983)
3067856
Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра.

Дорабатываем K2 (2.6.9) - управляемые рекомендации Related Items

Вы можете Заказать доработку 500руб. RUB

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

Выход прост - привязать иденты материалов для вывода рекомендаций.

Пролистав возможные решения (плагины, компоненты) для K2, стало понятно что нужно менять родной механизм, что мы делаем:

Дорабатываем таблицу и запрос выбора тегов

1.Добавляем поле "relateditems" в таблицу #__k2_items . Обязательно указать значение по умолчанию "0" ! Регистр букв важен, пишите все в нижнем, иначе компонент не сможет сопоставить поле.

2.Необходимо изменить файл с функцией выбора тегов "function getRelatedItems($itemID, $tags, $params)":

/components/com_k2/models/itemlist.php

В функции заменить:

$query = "SELECT DISTINCT itemID FROM #__k2_tags_xref WHERE tagID IN ({$sql}) AND itemID!={$itemID}";

На:

$query = "SELECT DISTINCT relateditemsFROM #__k2_items WHERE ID ={$itemID}";

 

Первый этап готов, достаточно в таблице #__k2_items в поле relatedItems перечислить иденты товаров и они появятся в списке рекомендаций.

В административной части реализуем механизм редактирования колонки relateditems

Редактируем список полей элемента в административной части, добавляем поле для ввода:

administrator\components\com_k2\views\item\tmpl\default.php

 Заменить код:

</tr>
<tr>
<td align="right" class="key">
<?php echo JText::_('K2_FINISH_PUBLISHING'); ?>
</td>
<td class="k2ItemFormDateField">
<?php echo $this->lists['publish_down']; ?>
</td>
</tr>

На (строка 847):

</tr>
<tr>
<td align="right" class="key">
<?php echo JText::_('K2_FINISH_PUBLISHING'); ?>
</td>
<td class="k2ItemFormDateField">
<?php echo $this->lists['publish_down']; ?>
</td>
</tr>
<tr>
<td align="right" class="key">
<?php echo 'Иденты похожих товаров' ?>
</td>
<td class="k2RelatedField">
<input class="text_area" type="text" name="relateditems" maxlength="250" value="<?php if ($this->row->relateditems == ''): echo '0'; else : echo $this->row->relateditems; endif; ?>" />
</td>
<tr>

Добавляем поле relatedItems в массив данных, редактируем файл:

\administrator\components\com_k2\models\items.php

Необходимо добавить поле в трех местах, где встречается строка:

$K2Item->created_by_alias = $item->created_by_alias;

Заменить на:

$K2Item->created_by_alias = $item->created_by_alias ;
$K2Item->relateditems = $item->relateditems;

Добавляем глобальную переменную:

\administrator\components\com_k2\tables\k2item.php

Заменить:

var $created_by_alias = null;

На

var $created_by_alias = null;
var $relateditems = null;

 

Иденты нужно будет вводить как в SQL запросе, через запятую. Следите за правильностью ввода данных, поле не должно быть пустым и содержать некорректные данные(например лишняя запятая), иначе на странице будет ошибка.

Список рекомендаций не появиться, если у товара нет тега. Достаточно добавить 1 тег. Если вы подробно ведете номенклатуру, этот момент вас не смутит, также можно самостоятельно исправить выборку, я не стал трогать этот момент.

Комментарии (0)

Здесь ещё нет оставленных комментариев.

Оставьте свой комментарий

  1. Добавление комментария от гостя.
Вложения (0 / 3)
Share Your Location

Как с нами связаться

По всем вопросам пишите  

Телеграм: @radgura

OnLine заказ

Отправить сообщение

Нажимая на кнопку «Отправить сообщение», я соглашаюсь:
* с условиями публичной оферты
* обработку моих персональных данных


RAD компоненты

Please publish modules in offcanvas position.