Добрый день!
Хочу сделать простейшую вещь и не могу. Есть вьюс, в который выводится список статей по определённому критерию (использую таксономию). Формируется длинная страница-простыня с однотипным содержимым этих статей: title+body. Нужно в начале этой страницы поместить оглавление с якорными ссылками на заголовки этой страницы. Была идея запихнуть в шапку вьюса другой вьюс, состоящий в свою очередь из заголовков этих статей, но как сделать их якорными, а не обычными ссылками - не понятно. Модуль Table of Contents настроить и запихнуть в шапку тоже не удалось.
Подскажите, пожалуйста, способ, как в начало вьюса поместить оглавление страницы?
Комментарии
(Напрасно я использовала название тега в посте, конечно. Не аккуратно получилось.)
Минут 5 искала, как отредактировать пост. Прикольно.
Мне ваш комментарий ничего не сообщил, к сожалению.
Спасибо, что пояснили.
Для полей типа «Заголовок», «Body» есть блок Rewrite results - по смыслу похоже на "переопределить вывод" - там можно сделать поле «Заголовок» ссылкой, например. Но тогда мне нужно, чтобы в одном вьюсе заголовки сначала шли подряд (оглавление), а потом чередовались бы с body (уже сами статьи). По-моему, так сделать нельзя. Значит, надо в шапку вставлять другой вьюс, в котором будут эти же заголовки ссылками, и каждому заголовку вручную прописать ссылку на id нужного заголовка из основного вьюса. В основном вьюсе тоже надо каждому заголовку указать id, получается. При таком раскладе, когда всё делается вручную, использование модуля Views кажется излишним. Я надеялась, что есть более автоматизированный способ собирать оглавление.
Ещё для полей с текстом есть Formatter - список со способами отображения. Например, можно сделать возможность разворачивать большой текст по нажатию. Тоже не понимаю, как это использовать для оглавления.
Чтобы заголовки дополнительного вьюса ссылались на отдельные ноды со статьями, даже ничего не надо дополнительно определять - просто при создании вьюса галочку одну поставить. Мне же надо, чтобы они ссылались на куски страницы, сформированной основным вьюсом.
Страница выглядеть в идеале должна так:
Заголовок 1
Заголовок 2
Заголовок 3
Заголовок 1а
Текст
Заголовок 2а
Текст
Заголовок 3а
Текст
Заголовки в начале страницы должны быть ссылками на соответствующие им заголовки из второй части страницы. То есть жмём на «Заголовок 1», страница проматывается к «Заголовку 1а». Сейчас жмём на «Заголовок 1» и попадаем на отдельную страницу статьи, потому что ссылка имеет вид «http://bla-bla-bla.ru/node/18».
У меня проблема в том, что я, во-первых, не знаю, как задать уникальный id «Заголовку 1а», «Заголовку 2а» и «Заголовку 3а», а во-вторых, не знаю, как определить «Заголовку n» ссылку на этот id. Я даже не уверена, что так можно сделать и что это вообще делается именно так.
Добавьте в запрос скрытый nid и перетащите его выше «Заголовка». Затем для «Заголовок1а-Заголовок3а» сделайте rewrite output вроде такого (условно):
В дополнительном представлении сделайте то же самое, только вместо
href="node/[nid]"
поставьте teaser-[nid] (как там анкоры ставятся, не помню)Вот! Что вы написали, мне понятно. Наконец-то. Сейчас попробую воплотить. Спасибо!
Кое-что получилось, но не до конца.
Сначала я добавила скрытое поле «Содержимое: Nid (Nid)» в основной вьюс, потом сделала Rewrite the output of this field для «Заголовка nа», переопределила на
<a name="teaser-[nid]" href="node/[nid]">[title]</a>
. И полдела сделано: у каждого заголовка теперь есть name, то есть якорь. Всё ок.Потом во встроенном вьюсе я сделала то же самое для «Заголовка n», переопределила на
<div><a href="#teaser-[nid]">[title]</a></div>
. Но ссылки у этих заголовков все одинаковые, а именно: «http://bla-bla-bla.ru/node/18/#teaser-[nid]». То есть [nid] не заменяется на цифру.///////
Хех, пока писала ответ, поняла, что второму вьюсу тоже нужно поле Nid. Добавила и всё заработало, как ожидалось.
Спасибо огромное за помощь! Вы понятно объясняете, это дорогого стоит. Кажется, я начинаю понимать логику модуля Views.
Теперь меня не устраивает только, что «Заголовок nа» имеет вид ссылки. Хотелось бы, чтобы он оставался просто текстом.
Оставила заголовки как есть, добавила после поля «Содержимое: Nid (Nid)» ещё одно скрытое поле Global: Custom text, в котором текст: «
<a name="teaser-[nid]"></a>
». Теперь совсем красота.