Пагинация + Содержание статьи

Главные вкладки

Аватар пользователя medium medium 24 сентября 2017 в 15:01

Есть массив объемных статей. В текстах статей есть подзаголовки (h2, h3). Необходимо разбить текст ноды на страницы любым модулем типа (Paging, Smart paging, Pagination и пр.) и вывести блок «Содержание статьи» с ссылками на подзаголовки. Все опробованные модули вывода содержания (Table of contents) выводят заголовки только текущей страницы, а не всех страниц пагинированного текста ноды.
Может кто-нибудь сталкивался с подобной проблемой, подскажите куда копать?

Комментарии

Аватар пользователя ХулиGUN ХулиGUN 25 сентября 2017 в 12:04

medium wrote:

Похоже, это единственный вариант, хоть задача и казалась банальной )

Не вижу ничего банального в ней. Банально, это когда у Вас нода "Страницы" со связью один к одному к ноде-контейнеру. А тут у вас сплошной текст, который нужно разбить логически на страницы и всё это делать на лету ибо никакой структуры в бд не предусмотрено для хранения разбивки оного. Даже работа того же smart_paging сводится к тому, что в текст внедряются раздели по которым строка превращается в массив и указатель страницы является ключом этого массива. Решение же Вашей задачи либо из "страниц" делать отдельные ноды(тогда с заголовками никаких проблем), либо писать кастомный модуль, в который впиливать какой нить html парсер для создания Вашего Table Contents, но в таком случае открытие ноды будет далеко не быстрой задачей

Аватар пользователя VasyOK VasyOK 25 сентября 2017 в 12:08

Панк вариант решения проблемы (наброски).
1) В каждой статье на заголовках делаем номерные классы типа
<h2 class="anchor_1">
можно через поиск и замена в БД, можно еще как-то.
2) создаем поле, в которое идут только теги заголовков и выводим это поле выше чем содержание статьи.
Как сделать - смутно представляю.