В CMS MODx есть специальная система размещения мета-тегов страницы. Она присутствует на всех версиях системы до 1.0.0 включительно. О размещении META-тегов в MODx 1.0.2 вы можете прочитать
Рабоатет она довольно странно и, возможно, неудобно.
Как это работает по умолчанию
В системе есть возможность добавлять МЕТА-теги. Делается это на вкладке Ресуры(Elements) -> Управление МЕТА-тегами и ключевыми словами(Manage META-tags and Keywords).
Здесь можно внести необходимые МЕТА-теги, а также ключевые слова.Для того чтоб МЕТА-теги отображались на конкретной странице их надо выбрать в настройках документа для соответствующей страницы:
Добавлять в шаблон информацию о МЕТА-тегах не надо, она сформируется автоматически.
Тег title.
Для отображения этого тега в шаблонах modx обычно используются конструкции вроде
<title>[*pagetitle*]</title>
или
<title>[(site_name)] | [*pagetitle*]</title>
в этом случае заголовком страницы будет ее название или, как во втором случае, название сайта и название страницы. При добавлении META-тега title он будет отображаться таким образом :
<meta name=»title» content=»some content» />
Это не всегда удобно. Ниже приведен сниппет, который берет за заголовок страницы соответствующий внесенный МЕТА-тег, а если не находит его, то заголовок страницы:
<?php
global $mods;
global $id;
$output = »;
$result = $modx->db->query( ‘SELECT *
FROM modx_site_content_metatags
INNER JOIN modx_site_metatags ON modx_site_content_metatags.metatag_id = modx_site_metatags.id
WHERE modx_site_content_metatags.content_id =’.$modx->documentIdentifier );
while( $row = $modx->db->getRow( $result ) ) {
if ($row[‘tag’]==’title’){$output .= $row[‘tagvalue’]; } ;
}
if ($output==»){
$a = $modx->getPageInfo($modx->documentIdentifier);
$output .= $a[‘pagetitle’];
}
echo $output;
?>
Сохранить его можно под названием showtitle и вызывать в шаблоне [[showtitle]] в блоке head например так:
<title>[[showtitle]]</title>
или так
<title>[(site_name)] | [[showtitle]]</title>.
Тег keywords.
В системе есть два способа внесения ключевых слов:
1) Можно это сделать аналогично остальным тегам (например <a href=»#descr»>description</a>);
2) Можно внести список всех, встречающихся на сайте ключевых слов и выбирать для каждой страницы их список. В этом случае в коде HTML будет примерно следующая конструкциия:
<meta name=»keywords» content=»ключевое слово 1, ключевое слово 2″ />
Т. е. ключевые слова будут перечислены через запятую. Если одновременно указать ключевые слова обоими способами, то META-тегов будет два, что, наверное, нежелательно.
Теги descrition, robots и т. п.
Соответствующие теги просто вносятся в систему и выбираются для страницы. В коде HTML появляются конструкции:
<meta name=»имя тега» content=»контент тега» />
Рассмотрим все это на конкретном примере
На вкладке ресурсы — Управление META-тегами и Ключевыми словами внесем необходимые нам META-теги. Вносить надо все МЕТА-теги для всего сайта.
На этой же странице внесем ключевые слова. Если для сайта есть набор ключевых слов, который подходит для каждой страницы(большинства страниц), то целесообразно вносить ключевые слова через нижнюю форму. В нашем примере, для каждой страницы списка рефератов будут актуальны ключевые слова «скачать рефераты» и «коллекция рефератов» остальные ключевые слова для каждой рубрики будут разные
Если для сайта характерны уникальные для каждой страницы наборы ключевых слов(или изредка пересекающиеся) то для их добавления целесообразно использовать верхнюю форму добавления META-тегов. Нижнюю форму использовать в этом случае не надо.
Далее на каждой странице выбираем нужные нам метатеги. Если мы решили, что будем загружать ключевые слова по второму принципу — первый столбец будет пустым, если по первому — во втором столбце не будет тегов keywords. Нельзя использовать два способа одновременно.
С еще одним способом организации размещения мета-информации на сайте, а также с размещением мета-тегов в последних версиях MODx можно прочитать