Инструкция по созданию сайта на MODx. Урок 20 — Карта сайта для посетителей и поисковых машин

В одном из прошлых уроков мы с вами реализовали поиск по сайту на базе встроенного сниппета AjaxSearch. Сегодня мы разберем еще один элемент, который должен быть у каждого сайта и который значительно облегчит навигацию по нему. Сегодня мы поговорим о карте сайта.

Карта сайта — своеобразное содержание сайта, аналогичное содержанию книги. Обычно карта сайта состоит из ссылок на все страницы либо разделы, содержащиеся на сайте. Карта сайта наглядно показывает, из каких страниц состоит сайт, и она помогает пользователю быстро найти интересующую его информацию. Карту можно отнести к элементу навигации: со страницы, на которой она расположена, посетитель сможет в один клик добраться до любого раздела или материала, который ему нужен. 

Создание карты сайта для посетителей

В MODx есть немало путей реализации карты сайта. В сегодняшнем уроке я вам покажу самый распространенный способ — с использованием сниппета Wayfinder.

Если вы помните, с помощью этого сниппета мы вызывали наши главное и вспомогательное меню на сайте.
Для того чтобы на какой-нибудь странице вывести дерево, состоящее из всех ссылок, достаточно вызвать сниппет с помощью следующей конструкции:

[!Wayfinder? &startId=`0`!]

В этом случае сниппет  пробежит по всему дереву документов в MODx и выведет в виде списка ссылки на все ресурсы. При этом дочерние документы контейнеров будут отображаться в виде вложенных списков UL.

Если вы хотите, чтобы в итоговом дереве ссылок отображались также и документы, не отмеченные для показа в меню, необходимо добавить параметр &ignoreHidden=`1` при в вызове сниппета.

Итак, создаем страницу с заголовком «Карта сайта», убираем галочку «Показывать в меню».

Создание страницы "Карта сайта"

Помещаем в область «Содержимое ресурса» только что созданной страницы конструкцию вызова сниппета Wayfinder:

[!Wayfinder? &startId=`0`  &ignoreHidden=`1` !]

Но также  следует иметь в виду, что иногда есть необходимость исключить некоторые документы из дерева ссылок. Например, логично было бы не выводить ссылку на страницу с результатами поиска, или на саму карту сайта. Чтобы исключить из вывода служебные страницы, воспользуемся параметром &excludeDocs. В этом параметре в вызове сниппета необходимо через запятую указать ID докуметов, которые вы не хотите видеть в карте сайта.

В моем случае страница с Картой сайта имеет идентификатор ID=36, а страница с результатами поиска ID=29, давайте исключим эти ресурсы из вывода карты сайта.

[!Wayfinder? &startId=`0`  &ignoreHidden=`1` &excludeDocs=`29,36` !]

Также можно указать, по какому параметру производить сортировку выводимого списка ссылок, и допустимый уровень вложенности. Для этого воспользуемся параметрами: &level и &sortBy.

[!Wayfinder? &startId=`0` &ignoreHidden=`1` &excludeDocs=`29,36` &level=`5` &sortBy=`id` !]

Уровень вложенности и поле, по которому нужно отсортировать ваш список, можете указать любыми.

Последний штрих, который можно сделать в создании карты сайта, это обернуть конструкцию вызова сниппета в контейнер с CSS классом, например, sitemap, чтобы из CSS файла иметь возможность изменить внешний вид выводимого списка.

Итоговая конструкция в поле с содержимым страницы «Карта сайта».

<div class="sitemap">
[!Wayfinder? &startId=`0` &ignoreHidden=`1` &excludeDocs=`29,36` &level=`5` &sortBy=`id` !]
</div>

В CSS можете прописать внешний вид нашей карты, как вам вздумается. Например, в CSS файл assets/templates/site/styles/layout.css можно вставить следующую конструкцию:

.sitemap ul{ padding:10px; list-style-type:none; margin:10px 20px;}
.sitemap ul ul,.sitemap ul ul, .sitemap ul ul ul, .sitemap ul ul ul ul { padding:10px; list-style-type:none; margin:10px 20px; border-left: 3px solid #ccc;}
.sitemap ul li { padding:2px;}
.sitemap a{color:#666;}
.sitemap a:hover{color:#B2C629;}

После этого внешний вид карты сайта будет следующим:

Внешний вид карты сайта

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

Чтобы поставить ссылку можно воспользоваться специальным тегом MODx [~id~], который выводит URL страницы с указанным ID. В моем случае ID ресурса с картой сайта равен 36, поэтому вывод ссылки на эту страницу примет следующий вид:

<a href=”[~36~]”>Карта сайта</a>

У вас ID может отличаться.

Мы позаботились о наших посетителях,  предоставив им возможность  в один клик с карты сайта перебраться на любой документ  на сайте. Но это еще не все. Сейчас давайте создадим такую же карту, но не для посетителей, а  для поисковых машин. Это, так называемая, XML карта sitemap.xml, адрес к которой можно указать в панели управления поисковиков, и которая будет оперативно сообщать поисковым роботам о новых недавно появившихся страницах на сайте. Подробнее о XML карте вы можете почитать  в википедии.

Создание XML карты сайта для поисковиков

Вначале вы можете ознакомиться с тем, что же такое XML карта в свободной энциклопедии wikipedia.

Я уже один раз описывал в своем блоге процесс создания XML карты с помощью сервиса xml-sitemaps.com и подключения её в панели вебмастеров Google и Яндекса. Этим способом вы можете также воспользоваться. Но в нем есть один существенный недостаток. Каждый раз при изменении структуры страниц вашего сайта, т.е. при добавлении или удалении материалов, созданная с помощью этого сервиса карта становится неактуальной, и вам каждый раз придется ее создавать снова и снова после внесения каких бы то ни было изменений в структуру сайта.

Чтобы избавиться от этого недостатка и чтобы XML карта генерировалась автоматически, давайте в MODx воспользуемся сниппетом Sitemap. Он не входит в дистрибутив, поэтому его сначала придется создать.

Отправляемся на страницу: Элементы→Управление элементами→ Сниппеты→Новый сниппет и заполняем поля:

Создание сниппета sitemap

Название сниппета: sitemap.

Описание: XML карта сайта.

Код сниппета (php): в эту область копируем содержимое файла sitemap.txt. Этот файл также приведен в списке в конце урока.

После этого нам необходимо произвести еще несколько подготовительных действий: создаем два TV параметра, необходимых для формирования XML файла, с типом ввода выпадающий список «DropDown List Menu» с именами sitemap_changefreq и sitemap_priority.

1. sitemap_changefreq — указывает на частоту изменения информации на сайте. При создании этого TV параметра заполните поля следующим образом:

Заполнение полей при создании sitemap_changefreq

Возможные значения: always||hourly||daily||weekly||monthly||yearly||never

Значение по умолчанию: можете вписать любое из возможных значений. Поставьте, к примеру, weekly.

2. sitemap_priority — указывает на приоритет страницы. При создании этого TV параметра заполните поля следующим образом:

Заполнение полей при создании sitemap_priority

Возможные значения: 0.1||0.2||0.3||0.4||0.5||0.6||0.7||0.8||0.9||1

Значение по умолчанию: любое из возможных значений, к примеру 0.7.

Как вы догадались, возможные значения для TV параметра с типом ввода «DropDown List Menu» отделяются друг от друга двумя вертикальными чертами: «||».

Не забудьте созданные TV параметры назначить для всех созданных шаблонов.

Доступ шаблонов

После этого при редактировании или создании ресурсов MODx будут отображаться дополнительные поля в виде выпадающих списков:

Дополнительные параметры

Далее создаем страницу с именем, например, «XML карта сайта», и псевдонимом  sitemap.xml. В качестве шаблона обязательно из выпадающего списка выберите шаблон «(blank)».

Создание страницы XML карты

В область содержимого помещаем конструкцию вызова сниппета.

[[sitemap]]

На вкладке «Настройка страницы» из выпадающего списка  «Тип содержимого» обязательно выберите «text/xml». Также необходимо отключить HTML-редактор, для этого снимите галочку «Использовать HTML-редактор».

Создание страницы XML карты

Внимание: убедитесь, что у вас  включены дружественные URL на сайте.

Чтобы посмотреть на результат работы сниппета введите в адресной строке браузера:

http://ваш_сайт/sitemap.xml

В различных браузерах отображение этой карты будет разным, в Гугл Хром, например, карта будет в виде обычного текста, в Опере и Фаерфоксе, карта имеет вид разметки XML файла, но информация, которую эта карта передает, для всех браузеров будет идентична.

XML карта

В качестве примера карты сайта, создаваемой с помощью сниппета sitemap, может стать карта моего блога http://efimov.ws/sitemap.xml.

После создания XML карты сайта, вы можете её также исключить из вывода обычной карты сайта. Для этого на странице с вызовом сниппета Wayfinder в параметр &excludeDocs добавьте Id ресурса, который использован в качестве XML карты.

Вы можете также посмотреть процесс подключения карты sitemap.xml в панели вебмастеров Google и Яндекса в одной из первых статей моего блога.

Измененные во время урока файлы, сниппеты и чанки:

  • sitemap — скопировать содержимое этого файла в область «Код сниппета (php)» при создании сниппета
  • layout.css — измененный файл с CSS стилями

Все описанные в этом уроке действия вы можете посмотреть в видео-уроке.

Видео урок: создание в MODx карты сайта для посетителей и XML карты для поисковых машин

Автор: Ефимов Виктор

Подпишитесь на обновления в блоге. Спасибо.

Вы можете также посмотреть другие уроки по созданию сайта на MODx:

28.12.2010
top


blog comments powered by Disqus
Рубрики
3 месяца отличного хостинга бесплатно
Система Orphus