if ($page == 1) {
$this->document->addLink($this->url->link('product/category', 'path=' . $category_info['category_id']), 'canonical');
} elseif ($page == 2) {
$this->document->addLink($this->url->link('product/category', 'path=' . $category_info['category_id'] . '&page='. $page), 'canonical');
$this->document->addLink($this->url->link('product/category', 'path=' . $category_info['category_id']), 'prev');
} else {
$this->document->addLink($this->url->link('product/category', 'path=' . $category_info['category_id'] . '&page='. $page), 'canonical');
$this->document->addLink($this->url->link('product/category', 'path=' . $category_info['category_id'] . '&page='. ($page - 1)), 'prev');
}
if ($limit && ceil($product_total / $limit) > $page) {
$this->document->addLink($this->url->link('product/category', 'path=' . $category_info['category_id'] . '&page='. ($page + 1)), 'next');
}
if (($product_total > 0 ) && $limit && ceil($product_total / $limit) < $page) {
$this->response->redirect($this->url->link('product/category', 'path=' . $category_info['category_id'], true));
}
Якщо $page == 1 (перша сторінка):
Додається тільки canonical на першу сторінку без параметру &page=1
Якщо $page == 2:
canonical вказує на поточну (з параметром &page=2)
prev вказує на першу сторінку (без &page)
Якщо $page >= 3:
canonical на на поточну (&page=N)
prev на попередню (&page=N-1)
Додається rel="next" тільки якщо:
встановлено $limit (кількість товарів на сторінці), і поточна сторінка не остання.
Тобто якщо є наступна сторінка, вказує на неї.
Додатково; якщо:
В категорії є товари ($product_total > 0), вказано ліміт товарів на сторінку та номер поточної сторінки більший ніж загальна кількість сторінок - тоді редирект на першу сторінку.
Не дає плодити переходи на неіснуючі сторінки типу ?page=99, якщо сторінок, припустимо, всього 5.
Все у файлі catalog/controller/product/category.php