1

Тема: Пагинация i18n

Добрый день.
Возможно что-то не понимаю. У меня сайт на нескольких языках. Сайт имеет такую структуру:
-Раздел 1
-Раздел 2
--Страница 1
--Страница 2
-Раздел 3
-Страница 3
--Страница 4

И так далее. Как создать пагинацию чтобы можно было листать страницы по порядку (кнопки предыдущая статья и следующая статья), не смотря на то что они находятся в разных разделах?

И как сделать ограничение в пагинации чтобы не создавалось куча кнопок для продистывания. Сейчас так: << < 1 2 3 4 5 6 7 8 9 > >>
А нужно так:
<< < 1 2 3 .. 9> >> То есть скрывается весь список страниц.
Отображается пара кнопок в начале кнопка текущей страницы и пара кнопок страниц в конце. Все остальное многоточие

Поделиться

2

Re: Пагинация i18n

навигация по страницам возможна только для страниц в одной категории https://getsimplecms.ru/plaginy-dlya-ge … 0%B0%D0%BC
для пагинации используйте плагин https://getsimplecms.ru/plaginy-dlya-ge … in-pagify/ на странице есть описание как сделать то, что вы хотите

Поддержать GetSimple CMS по-русски ЯДом

Сайт olsv64

Поделиться

3 (2020-01-21 00:28:56 отредактировано macik)

Re: Пагинация i18n

Спасибо! i18n очень гибкая штука! Не нарадуюсь на него. Только копать много всего приходится.
А как получить вернуть путь картинки из прошло и следующего поста, с конкретным полем?

Хочу обернуть в такую структуру ваш код:

<div class="col-lg-6 col-md-6 col-12 nav-left flex-row d-flex justify-content-start align-items-center">
      <div class="thumb">
        <a href="#"><img class="img-fluid" src="img/post/preview.png" alt=""></a>
      </div>
      <div class="arrow">
        <a href="#"><span class="lnr text-white ti-arrow-left"></span></a>
      </div>
      <div class="detials">
        <p>Prev Post</p>
        <a href="#"><h4>Space The Final Frontier</h4>
        </a>
      </div>
    </div>

Где thumb- превью поста, прошлого следующего
arrow - div со стрелочкой на картинке (появляется если навести мышью)
detials ссылка на пост и выше надпись прошлый иди сдед. пост

Поделиться

4

Re: Пагинация i18n

найдете способ, отпишитесь

Поддержать GetSimple CMS по-русски ЯДом

Сайт olsv64

Поделиться

5

Re: Пагинация i18n

Да, обязательно. Мне кажется нужно использовать:

.$nav[$i-1]['title'].

, где вместо title название поля.
Но еще пока не пробовал

Поделиться

6

Re: Пагинация i18n

Нашел свой ответ на странице https://getsimplecms.ru/plaginy-dlya-ge … 0%BD%D1%8E

<?php if (returnPageField($item->slug, 'menuicon')) { ?>

Где menuicon — это имя поля, созданного в настройках плагина I18n Custom Fields.

Кто силен в php как правильно прикрутить это поле? В ответе по сути получаю содержимое поля, в моем случае ссылку на картинку

А вот так реализовал код из шаблона выше

<?php  
  $slug = (string) return_page_slug();
  $bc = return_i18n_breadcrumbs($slug);
  $level = count($bc) - 1;
  $nav = return_i18n_menu_data($slug,$level,$level,I18N_SHOW_PAGES);
  $i = 0;
  while ($i < count($nav) && $nav[$i]['url'] != $slug) $i++;
  if ($i > 0) {
      echo '<div class="col-lg-6 col-md-6 col-12 nav-left flex-row d-flex justify-content-start align-items-center">
      <div class="thumb">
        <a href="'.find_i18n_url($nav[$i-1]['url'],$nav[$i-1]['parent']).
               '"><img loading="lazy" class="img-fluid" style="height:60px; width:60px;" src="https://pixel24.ru/pictures/full_size/ea1/ea1f23f64e8544b1a44035930ee6767e.jpg" alt="'.$nav[$i-1]['title'].'" title="'.$nav[$i-1]['title'].'"></a>
      </div>
      <div class="arrow">
        <a href="'.find_i18n_url($nav[$i-1]['url'],$nav[$i-1]['parent']).
               '"><span class="lnr text-white ti-arrow-left"></span></a>
      </div>
      <div class="detials">
        <p>Prev Post</p>
        <a href="'.find_i18n_url($nav[$i-1]['url'],$nav[$i-1]['parent']).
               '"><h4>'.$nav[$i-1]['title'].'</h4></a>
      </div>
    </div>';
  }
  if ($i+1 < count($nav)) {
    echo '<div class="col-lg-6 col-md-6 col-12 nav-right flex-row d-flex justify-content-end align-items-center">
      <div class="detials">
        <p>Next Post</p>
        <a href="'.find_i18n_url($nav[$i+1]['url'],$nav[$i+1]['parent']).
         '"><h4>'.$nav[$i+1]['title'].'</h4></a>
      </div>
      <div class="arrow">
        <a href="'.find_i18n_url($nav[$i+1]['url'],$nav[$i+1]['parent']).
         '"><span class="lnr text-white ti-arrow-right"></span></a>
      </div>
      <div class="thumb">
        <a href="'.find_i18n_url($nav[$i+1]['url'],$nav[$i+1]['parent']).
         '"><img loading="lazy" class="img-fluid" style="height:60px; width:60px;" src="https://photoprocenter.ru/upload/Products/modelId5974/5974_0.jpg" alt="'.$nav[$i+1]['title'].'" title="'.$nav[$i+1]['title'].'"></a>
      </div>
    </div>';
  }
?>

Поделиться

7 (2020-01-23 23:59:09 отредактировано macik)

Re: Пагинация i18n

Мой максимум это:

<img loading="lazy" class="img-fluid" style="height:60px; width:60px;" src="'.returnPageField($item->slug, 'images');'" alt="'.$nav[$i-1]['title'].'" title="'.$nav[$i-1]['title'].'">

В ответ получаю:

<img loading="lazy" class="img-fluid" style="height:60px; width:60px;" src="<div class="col-lg-6 col-md-6 col-12 nav-right flex-row d-flex justify-content-end align-items-center">

Хотя бы что-то без ошибок)))) Что я делаю не так? Кто сталкивался? Не хочу бросать

Поделиться

8 (2020-02-01 01:50:52 отредактировано macik)

Re: Пагинация i18n

Олег, думаю это важная инф, добавьте, пожалуйста, в описание на сайте с пагинацией.
В плагине i18n_customfields создаем поле, например imgpost (без спец. символов, только буквы)
и после

while ($i < count($nav) && $nav[$i]['url'] != $slug) $i++;
  if ($i > 0) {

добавляем

  $xml = return_i18n_page_data($nav[$i-1]['url']);
      $img = (string) $xml->imgpost;

и

  $xml = return_i18n_page_data($nav[$i+1]['url']);
      $img = (string) $xml->imgpost;

то есть различия только в

$nav[$i+1]['url'])

ставим знак + и - для подтягивая следующего и прошлого поста, где imgpost имя нашей переменной из i18n_customfields
А дальше там где картинка

<img loading="lazy" class="img-fluid" style="height:60px; width:60px;" src="'.$img.'" alt="'.$nav[$i-1]['title'].'" title="'.$nav[$i-1]['title'].'">

src="'.$img.'" имя нашей переменной с картинкой

Первая строка получает статью в формате xml, вторая строка значение конкретного поля заносит в переменную

На картинках другая переменная
https://sun9-1.userapi.com/c855728/v855728093/1e2243/QbfMqknu0lU.jpg
красным отмечены изменения
https://sun9-58.userapi.com/c854120/v854120918/1dd16f/khceMM58sy4.jpg

Решил проблему не я, мне подсказали. В php ноль) но вдруг кому пригодится

Итог:
https://sun9-14.userapi.com/c855428/v855428336/1e6385/YjlhjsjlgAU.jpg

Поделиться

9

Re: Пагинация i18n

спасибо, отметил тему как важную, я думаю и для слайдшоу пригодится

Поддержать GetSimple CMS по-русски ЯДом

Сайт olsv64

Поделиться