четверг, 3 декабря 2015 г.

Разбивка текста на страницы в modx


Добрый день, леди и джентельмены!

При создании сайта на MODX Revo возникла такая задача - разбить текст очень большой и длинной страницы на части размером с один экран (в частности - текст книжки, который, как вы понимаете, бывает очень большим). Иногда это называют пагинацией страниц. Она же - разбивка текста на страницы в modx

Штатных средств для этих целей в базе дополнений modx я не нашел. Может быть невнимательно искал, а может их там и правда нету.
Пришлось перечитать множество различных форумов и сайтов, переискать кучу информации.

Но, в результате на глаза попался замечательный плагин liPaginate, который можно найти по адресу http://masscode.ru/index.php/k2/item/42-lipaginate
liPaginate имеет несколько видов эффектов переключения страниц и еще ряд параметров.
Написан он как вы сами понимаете на JavaScript и требует несложной ручной настройки в MODX. Тем не менее, это довольно просто.


Достаточно обернуть требуемый текст в контейнер и присвоить ему класс liPaginate.
<div class="liPaginate">[[*content]]</div>
В результате текст будет разбит на части, а на экране появятся элементы управления. С их помощью можно будет перейти на ближайшие страницы вперед, назад, на первую или последнюю страницу.

Конечно, не забудьте подключить в разделе <head> файлы самого плагина, jQuery, необходимых стилей CSS. К примеру:
<link rel="stylesheet" href="css/style.css">
<link rel="stylesheet" href="css/liPaginate.css">
<script src="js/jquery-1.8.min.js"></script>
<script src="js/jquery.easing.1.3.js"></script>
<script src="js/jquery.liPaginate.js"></script>
А также инициализировать работу плагина:
<script>
$(function(){
 $(window).load(function(){
  $('.liPaginate').liPaginate({
   easing:'easeOutQuart', //http://gsgd.co.uk/sandbox/jquery/easing/
   duration: 1000, // A string or number determining how long the animation will run
   effect:'fade', //simple, fade, hSlide, vSlide
   pagePos:'after', //after, before, double
   pageHeight:500 //[px] - height of paginate item, ['auto'] - detect window height
  });
 })
});
</script>
В итоге мы получим примерно такого вида окно:

итоговое окно с разбивкой текста

К слову, данный способ организации разбивки длинного текста на страницы работает для любого сайта в котором можно вставить html код, не только в MODX Revo. Кстати, и для предыдущей версии MODX - Evolution.
Данный способ вообще не зависит от платформы. Главное - иметь возможность внедрить код в тело страницы.

2 комментария:

  1. Браво, Михаил! Так держать! :)

    ОтветитьУдалить
  2. Благодарен интересом к моей скромной персоне)
    Старемся информировать последними наработками.

    ОтветитьУдалить