Разбиение узла на несколько страниц [закрыто]


14

Тип контента - статья. Я хочу разбить статьи на несколько страниц, когда сама статья становится слишком длинной. Например, если у нас есть статья «о том, как работает drupal», она будет огромной :), я хочу разделить ее на несколько страниц, и в какой-то момент вы получите «перейти на страницу 2 из 10», а затем «перейти на страницу 3 из 10». " и так далее. Надеюсь, вы меня поняли и можете поделиться некоторыми идеями. Заранее спасибо!


Связано: Создать пейджер между полями . Возможно, некоторые ответы будут вам полезны. Если вы примете один из них,
опубликуйте

@Molot, знаете ли вы способ переопределить представление по умолчанию для узла с помощью Views, тогда я могу использовать пейджер по умолчанию для views. Это было бы самым чистым решением для меня.
Иван Иванов

Просто установите путь к странице представлений /node/%и используйте контекстные фильтры (afair), чтобы получить правильный узел из его nidпути. Если вы сомневаетесь, задайте новый вопрос, просто не удивляйтесь, если кто-то узнает, что его уже задавали.
Молот

Ответы:


9

Я предлагаю разделить ваш текст на какую-то часть с помощью jquery и, прокручивая, вы добавляете (возможно, с некоторым эффектом, например, fadeIn ....) другую часть к основной части.
Я предлагаю вам выполнить эту работу с помощью jquery (решение на стороне клиента)


Вот как я реализовал вкладки на одной из страниц, которые я поддерживал. Я должен признать - работает довольно хорошо. Это действительно хорошая идея - вывести все страницы и спрятать все, кроме первого в js. А также реализовать #1в URL, чтобы определить, на какую страницу ссылается пользователь. (Моя вкладка реализована здесь , извините, но у меня больше нет авторских прав на используемый код JS). AJAX тоже может работать, но, с другой стороны, это, как правило, перебор, ASCII хорошо сжимается, и большую часть времени тратится на установление соединения, а не на фактическую передачу, так что это пустая трата времени.
Молот

Использование ajax для загрузки простой работы, такой как выборка базы данных содержимого (тела), не является оптимальной работой, и это бесполезная нагрузка на сервер, после этого не нужно быть очень опытным js-разработчиком с помощью 50-строчного кода maximom. Мы можем реализовать то, что я предложил Кстати, я думаю, что решение на стороне клиента - лучшее решение для этой работы .tnx для вас комментировать и обсуждать @ Mołot :)
Юсеф

Правильная реализация example.com/article/23#page-1займет более 50 строк. И оно того стоит, чтобы пользователи могли иметь прямые ссылки на нужную им страницу.
Молот

Я бы тоже предпочел это решение - оно гораздо удобнее для людей, которые устали ждать, пока весь стек Drupal загрузит каждую страницу. Это также позволяет Google индексировать статью как единое целое, а не результаты поиска, потенциально приводящие людей к середине статьи. Однако я бы посоветовал проверить доступность для программ чтения с экрана и т. П. - это могло бы сделать это решение немного более сложным (хотя все еще лучшим решением IMO)
Nerdmaster

хорошо, сделали это в конце фронта с несколькими строчками jquery. Я заставил поле body принимать неограниченное количество значений (имитируя разные страницы). Затем просто переключите между отображением нет / блок.
Иван Иванов

9

Вы ищете модуль Smart Paging

Обеспечивает разбиение длинного контента Drupal на подстраницы по количеству символов / слов или по HTML-тегу-заполнителю для узлов термина, пользователя и термина таксономии.

Для Drupal 6

Пейджинговый модуль, вы можете установить лимит символов, и он будет автоматически разделен на подстраницы, смотрите скриншот ниже

Автоматически разбивать длинные страницы на более мелкие по ограничению слов (или символов)

введите описание изображения здесь


Спасибо за ваш ответ! Я работаю над Drupal 7, хотя. Есть ли такое решение для D7?
Иван Иванов

Что ж, пробовал модуль Smart Paging, похоже, он справляется с работой, но он несовместим с пейджерами Views AJAX, и в моем случае я использую такой.
Иван Иванов

0

Хорошо, я бы использовал обходной путь, чтобы разделить его на несколько статей и объединить их с страницей просмотра (которая имеет пейджер), поскольку вы уже работаете с представлениями. Просто отфильтруйте свои статьи по nid или некоторым (скрытым) тегам. Если вы хотите, чтобы все они были одинакового максимального размера, вы можете использовать https://drupal.org/project/maxlength . Добавьте часть X в заголовок, чтобы читатели могли легко различать разные страницы.


0

Я не понимаю, какое отношение имеет пейджер Views AJAX (какие страницы отображают строки результатов) с отображением вашей статьи (которое само по себе является только 1 результатом). Две разные вещи на странице. Но вы можете вывести ваш «контент статьи как вычисляемое поле». Начните с вычисляемого поля, которое печатает только первые x слов вашего поля содержимого статьи. (или вплоть до первого средства разбиения на страницы) Завершите его созданным самим пользователем html «дополнительная ссылка». Эта дополнительная ссылка вызывает ваше мнение с аргументом. Вы можете использовать этот аргумент в PHP вашего вычисляемого поля. Отобразите x-ю часть в зависимости от полученного аргумента.


Спасибо за Ваш ответ! Ошибка # 1103810, при включении модуля Smart Pagging он выходит из строя модуля Views Load More (или Views Ajax Pager), поэтому вы не можете использовать оба. Это я и имел ввиду.
Иван Иванов
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.