private:koding:hostcms:modules:shop:useful:ssylki_na_sledjuschij_i_predyduschij_tovar

Ссылки на следующий и предыдущий товар

1) Добавить в папку modules shop.php

Участок кода из shop.php, описывающий данный метод.

2) В ТДС страницы перед выводом XSL шаблона добавить следующие строки:

/**
* Перенос комментариев от модифицикаций к товару
* 
* @author Kozurev Egor, KAD Systems (©) 2017    
* @date 23-08-2017  
* Начало >>
*/
$entity = Ecoders_Shop::addNearest($Shop_Controller_Show);
if ($entity) {
    $Shop_Controller_Show->addEntity($entity);
}
/**
* << Конец 
* @author Kozurev Egor, KAD Systems (©) 2017    
* @date 23-08-2017
*/

3) Пример вывода этих значений в XSL:

<xsl:template match="shop_item">		
  <xsl:if test="/shop/nearest/next">
    <a href="{/shop/nearest/next/shop_item/url}">
      Следующий элемент
    </a>
  </xsl:if>
 
  <xsl:if test="/shop/nearest/prev">
    <a href="{/shop/nearest/prev/shop_item/url}">
      Предыдущий  элемент
    </a>
  </xsl:if>
 
  <!--Шаблон вывода товара-->
    ......
  <!--/Шаблон вывода товара-->
 
</xsl:template match="shop_item">

Поскольку в XML передаётся весь объект соседнего товара, то можно выводить не только ссылки но и любую инфрормацию о нём (изображение, название, цена и т.д.).

Так же можно задавать "радиус" количества соседних товаров (по умолчанию он равен 1, следовательно передаёт по одному товару с каждой стороны), что позволит передавать не по одному соседнему товару, а, к примуру, по 2 или 3 товара с каждой "стороны".

Пример задания этого параметра:

$entity = Ecoders_Shop::addNearest($Shop_Controller_Show, 2);
if ($entity) {
    $Shop_Controller_Show->addEntity($entity);
}

Страницу создал Егор Козырев 23.08.17 в 12:48

private/koding/hostcms/modules/shop/useful/ssylki_na_sledjuschij_i_predyduschij_tovar.txt · Last modified: 25.12.17 в 09:48 by maximzasorin_gmail.com