Добавление кнопок навигации вперед-назад на странице товара

kjgh
В этой статье мы рассмотрим пример как добавить возможность клиенту магазина просматривать товары одной категории не выходя со страницы товара и добавим кнопки навигации следующий товар-предыдущий товар. Для примера воспользуемся стандартным шаблоном PrestaShop версии 1.6.0.9. Но точно таким же способом можно воспользоваться для установки кнопок для шаблонов Престашоп версий 1.5. Для работы нам потребуется расширить функционал контроллеров classes/product.php, controllers/front/ProductController.php и изменить файл шаблона страницы товара hemes/default-bootstrap/product.tpl
Как всегда, чтобы сохранить работоспособность проекта в случае обновления Prestashop, поместим файлы контроллеров с расширением в папку override.
Создадим файл override/classes/Product.php и разместим в нем следующий код:

 

В комментариях кода я отметил какие расширения мы добавили.
Теперь создадим файл override/controllers/front/ProductController.php
и запишем в нем следующий код

 

Здесь мы используем ранее созданный метод getAdjacentProducts() из файла product.php и указываем переменные для навигации предидущий-следующий

Осталось добавить кнопки в шаблон. Для этого откроем файл themes/default-bootstrap/product.tpl
найдем строку с кодом

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

 
Все готово. Но, чтобы заработали переопределения в файлах находящиеся в папке override необходимо почистить кэш, удалив файл cache/class_index.php
Чтобы перевести на русский названия кнопок Next Product и Previous Product воспользуйтесь переводом шаблона в бэк-офисе.
Результат
prevnext

Comments (18)

Михаил
15.12.2014 - 18:43 / Ответить

Не получилосьь…..
Вроде бы зделал все как написана, но ни чего не получилось, беда, что сделал не так не пойму ((((

15.12.2014 - 20:58 / Ответить

Если прочитать еще раз внимательно, а может и еще раз, может и получится, а беда пройдет стороной?

Алексей
23.12.2014 - 07:29 / Ответить

К сожалению так и не заработало, проверил три раза, если смотреть исходный код то видно только
        

23.12.2014 - 21:31 / Ответить

А каким редактором пользовались?

Алексей
24.12.2014 - 03:58 / Ответить

Notepad++, поставил чистую престу 1.6.0.9 тоже самое, незнаю в чём проблема

24.12.2014 - 11:24 / Ответить

Тогда поясните что значит по Вашему исходный код, где показаны пробелы.

Алексей
24.12.2014 - 20:31 /

В chrome нажать f12 или правой кнопкой мыши посмотреть код элемента скрин “clip2net.com/s/39mu1Jv”

25.12.2014 - 01:45 /

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

Анна
17.04.2015 - 06:24 / Ответить

привет! спасибо, все получилось!
для тех кто думает, что это “баг”, – не пробовали в начале кода поставить [php] <? [/php] ?
без кавычек естественно.
или просто код скопировали?))

Геннадий
17.04.2015 - 07:11 / Ответить

Здравствуйте!
PrestaShop™ 1.5.6.1

1. Теперь создадим файл override/controllers/front/ProductController.php

- Такой директории не существует, если я правильно понимаю. то её нужно создать (весь путь) как указан у Вас в данной статье?

2. Осталось добавить кнопки в шаблон. Для этого откроем файл themes/default-bootstrap/product.tpl
найдем строку с кодом

- в файле /product.tpl к сожалению нет строки

Как тогда быть в этом случае?
Заранее благодарен за ответ!

17.04.2015 - 11:07 / Ответить

В примере использовался PrestaShop 1.6.0.9. Тупо копировать и пробовать на 1.5.6.1 нельзя. Подумайте,почитайте внимательно и делайте по аналогии.

Tatiana Bzasso
22.12.2015 - 04:44 / Ответить

У меня вот такой вопросик: Можно ли сделать так, чтобы надписи на кнопках выводились только на русском? Заказчику это принципиально!

23.12.2015 - 10:43 / Ответить

Как же так, делаете на заказ, а перевести с английского на русский не можете? previous, next.

Artem
12.04.2016 - 06:31 / Ответить

Подскажи когда вставляешь код то нужно что то добавлять?(([php] <? [/php] ?))
у меня лично код не работает

12.04.2016 - 10:43 / Ответить

Да, теги php добавлять надо, у Вас не сайте есть наверняка другие файлы переопределения, постомтрите и по примеру сделайте.И еще не забываете удалить файл class_index.php в корне папки cache иначе работать не будет.

Денис
23.11.2016 - 21:33 / Ответить

Все работает))) Я вообще в этом не разбираюсь, но с помощью статьи все сделал, все получилось! Спасибо

Денис
23.11.2016 - 21:47 / Ответить

Все работает. Все хорошо. Я не разбираюсь в этом, но благодаря статье – смог это сделать. Спасибо.
Был бы благодарен, если бы Вы написали как все-таки перевести названия кнопок!? Заранее спасибо)))

Денис
23.11.2016 - 22:49 / Ответить

Разобрался как менять язык кнопок. Спасибо

Leave a Reply