Twig как отображать текст только на первой странице пагинации - PullRequest
4 голосов
/ 18 июня 2020

У меня OpenCart и тема, использующая twig, как я могу отображать свой текст только на первой странице категории и не показывать его на страницах пагинации.

Мой шаблон выглядит так

{% if description %}
    <div class="row" style="margin-bottom:50px;">
        {{ description }}
    </div>
{% endif %}

Ответы [ 2 ]

5 голосов
/ 18 июня 2020

Эта проверка не должна выполняться в шаблоне .twig . Это задача для контроллера .

Go до каталога / контроллера / продукта / категории. php

Найти

$data['description'] = html_entity_decode($category_info['description'], ENT_QUOTES, 'UTF-8');

Заменил на

if ($page == 1) {
    $data['description'] = html_entity_decode($category_info['description'], ENT_QUOTES, 'UTF-8');
} else {
    $data['description'] = '';
}

Проверено, работает отлично. Редакция шаблона не требуется. Восстановите ваш .twig файл до исходного состояния.

Если вы не видите никаких изменений - очистите кеши согласно этой инструкции { ссылка }


ОБНОВЛЕНО

Или , если вы хотите проверить что-нибудь еще в шаблоне

Go на каталог / контроллер / продукт / категория. php

Найдите

if (isset($this->request->get['page'])) {
    $page = $this->request->get['page'];
} else {
    $page = 1;
}

Добавьте ниже

if ($page == 1) {
    $data['firstpage'] = 1;
} else {
    $data['firstpage'] = '';
}

Теперь в вашем каталоге / просмотре / теме /YOUR_THEME/template/product/category.twig вы можете сделать такую ​​проверку

{% if firstpage %}
    This is the first page.
{% endif %}

UPDATED 2 После предыдущих манипуляций ваш код должен быть таким

if (isset($this->request->get['page'])) {
    $page = $this->request->get['page'];
} else {
    $page = 1;
}

if ($page == 1) {
    $data['firstpage'] = 1;
} else {
    $data['firstpage'] = '';
}
0 голосов
/ 18 июня 2020

Если я прав, вы должны иметь возможность получить параметр запроса page внутри twig с помощью opencart следующим образом:

{{ app.request.query.get('page') }}

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

{% if app.request.query.get('page')|default(1) == 1 %}
     You are at the first page
{% endif %}
...