HTML карта сайта на Drupal

карта сайта

Для ускорения индексации сайта Яндекс рекомендует http://help.yandex.ru/webmaster/robot-workings/helping-robot.xml кроме XML карты сделать ещё HTML карту сайта. В отличии от sitemap.xml это будет просто страница сайта с cсылками на все посты. Нам нужен модуль который сгенерирует эту страницу и будет её обновлять при добавлении новых постов. Желательно что бы модуль не просто составил список а разделил ссылки по разделам как и контент на сайте. Такого требования нет в рекомендации веб-мастерам, но мне кажется так будет лучше выглядеть.

Если вы делали сайт по рекомендациям webonlife то нужный модуль у вас уже есть. Я говорю про views. Модуль на все случай жизни:). Не зря его включили в ядро восьмой версии.
Как вы уже знаете для создания новой вьювсы переходим Structure → Views → Add new view.

Создаём вьювсу для HTML карты сайта

На скрине представлены настройки для простой карты сайта. Если вам не нужно разбивать её на разделы то жмите save&exit. Всем остальным continue & edit.

Можно сказать половину дела сделали. Все посты выводятся, осталось их разбить на группы. Контент на сайте делиться при помощи таксономии. Был создан отдельный словарь с терминами соответствующими разделам сайта. Подробнее об этом в посте про таксономию. Следующее что мы делаем - добавляем поле со словарём. Для этого в разделе FIELDS жмём Add(добавить), в открывшемся окне выбираем поле "content:название_словаря". Жмём Apply(this display). Осталось настроить отображение этого поля.

настраиваем поле словаря таксономии для вывода в views

Снимаем галочку с Create a label. Подписи нам совершенно ни к чему. А вот следующий чекбокс Exclude from display нужно отметить. Он делает поле скрытым. Если не отметить это поле то у нас после каждой ссылки на статью будет выводиться название раздела. В FORMATTER я выбрал Link(термин словаря будет ссылкой). Не забываем жмакнуть по применить и смотрим что получилось. Не плохо но можно лучше.

Сперва определимся с тем контентом что выводиться в карте сайта - раздел FILTER CRITERIA. Нам нужны все опубликованные страницы не смотря на то какого они типа. На скрине видно что у нас один фильтр. Он отбирает все опубликованные материалы. Мы можем добавить фильтры и убрать из вывода материалы определённого типа или относящиеся к определённому термину.

фильтры для views

Разобравшись с тем что выводиться перейдем к вопросу как выводиться. По умолчанию стоит сортировка по дате добавления. Чтобы учитывался раздел сайта добавим ещё одно условие. Жмём Add напротив SORT CRITERIA и выбираем "Content:название_словаря(Field_название_словаря)". Напомню что название_словаря - это тот словарь на основе которого контент делиться на группы. В моём случае это site_section. Ситуация не сильно поменялась. Дело в том что сортировка по дате стоит выше сортировки по словарю. Чтобы поменять приоритет жмём на rearrange.

меняем очерёдность фильтрации

Далее обычным перетаскиванием меняем порядок сортировки. Дело за малым вывести названия разделов. Для этого нам нужно отредактировать формат нашего списка

настраиваем формат отображения полей

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

группируем поля

HTML карта сайта закончена. Если для вас не принципиально чтобы новые посты в карте стояли выше старых то можете не заморачиваться с фильтрами а удалить их. Последнее что осталось сделать это определить количество ссылок на странице. Об этом в помощи Яндекса ничего нет. Я поставил 1000. С запасом:). Полностью настроенный Views выглядит так:

окнчательные настройки Views

Вот так имея всего один модуль Views мы сделали ещё одно полезное дело. Не забудьте нажать Save для сохранения вьювсы.

UPD: Забыл сказать про адрес. На последнем скрине справа в разделе PAGE SETTINGS есть строка Path. В этой строке указывается часть адреса, которая идёт после домена. В моём случае карта сайта находится по адресу webonlife.ru/sitemap-html.

Добавлено пользователемNikolaon сб, 11/30/2013 - 11:26

Слишком уж замороченное решение. И зачем ставить Views ради карты сайта.

У друпала наверняк есть отдельный модуль для карты сайта, но я в начале написал что Views уже стоял для других задач и если уж он есть, то почему не воспользоваться. Насчёт замороченности. Простая карта сайта получается после первого скрина, всё остальное можно не делать. Мне захотелось выделить в карте сайта разделы, вы можете этого не делать. В рекомендациях ПСов на этот счёт ничего нет, а поьзователи редко ищут через карту нужные страницы.

Добавлено пользователемwshurikon ср, 05/25/2016 - 11:58

Создать сайт на друпале без модуля views - это просто фантастика ... Разве что самый обычный блог, но тогда логичней использовать WP.

А решение отличное, спасибо. Воспользовался.

Добавлено пользователемНиколайon сб, 12/24/2016 - 22:34

Ув. админ, всё перелистал не вижу в views поля со своим словарём, там только есть "Content: Все термины таксономии". Если в поле выбрать его вместо, как у вас указано, "поле со словарём", то получается нормально, но проблема... Отсортировать термины не получается, так как в сортировке нет поля со словарём, а также нет и поля "Content: Все термины таксономии"...

У меня какой-то модуль не стоит? Куда копать, подскажи...