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