Есть массив объемных статей. В текстах статей есть подзаголовки (h2, h3). Необходимо разбить текст ноды на страницы любым модулем типа (Paging, Smart paging, Pagination и пр.) и вывести блок «Содержание статьи» с ссылками на подзаголовки. Все опробованные модули вывода содержания (Table of contents) выводят заголовки только текущей страницы, а не всех страниц пагинированного текста ноды.
Может кто-нибудь сталкивался с подобной проблемой, подскажите куда копать?
Комментарии
Кастом, я бы форкнул https://www.drupal.org/project/Smart_paging
Спасибо за совет. Похоже, это единственный вариант, хоть задача и казалась банальной )
Не вижу ничего банального в ней. Банально, это когда у Вас нода "Страницы" со связью один к одному к ноде-контейнеру. А тут у вас сплошной текст, который нужно разбить логически на страницы и всё это делать на лету ибо никакой структуры в бд не предусмотрено для хранения разбивки оного. Даже работа того же smart_paging сводится к тому, что в текст внедряются раздели по которым строка превращается в массив и указатель страницы является ключом этого массива. Решение же Вашей задачи либо из "страниц" делать отдельные ноды(тогда с заголовками никаких проблем), либо писать кастомный модуль, в который впиливать какой нить html парсер для создания Вашего Table Contents, но в таком случае открытие ноды будет далеко не быстрой задачей
Панк вариант решения проблемы (наброски).
1) В каждой статье на заголовках делаем номерные классы типа
<h2 class="anchor_1">
можно через поиск и замена в БД, можно еще как-то.
2) создаем поле, в которое идут только теги заголовков и выводим это поле выше чем содержание статьи.
Как сделать - смутно представляю.