Генерируем DESCRIPTION и KEYWORDS

MODX (читается «мо́дэкс») — это бесплатная профессиональная система управления содержимым (CMS) и фреймворк для веб-приложений, предназначенная для обеспечения и организации совместного процесса создания, редактирования и управления контентом сайтов.
Ответить
Аватара пользователя
berdck
Сообщения: 884
Зарегистрирован: 11 апр 2013, 09:44
Родной город: Бердск
Откуда: Регион 54
Контактная информация:

Генерируем DESCRIPTION и KEYWORDS

Сообщение berdck »

Не секрет, что большинство не любят писать уникальные метатеги, в частности Description и Keywords, а ведь они важны ;)

Description

Создаем сниппет с именем, например pdoDescription, и вставляем в него следующий код.
Далее в нужной части шаблона просто вызываем данный сниппет.
Работает он очень просто: В случае, если при создании страницы (ресурса) не задано описание страницы, то данный сниппет проверяет это и формирует автоматически новый из полей title-страницы и title-родителя (если он есть)

Код: Выделить всё

<?php
$dataTitle = $modx->resource->get('longtitle');
$dataDiscription = $modx->resource->get('description');
$dataParentsId = $modx->resource->get('parent');

if ($dataParentsId != 0) {
$dataParents = $modx->getObject('modResource', $dataParentsId);
$dataParentsTitle = $dataParents->get('pagetitle');
$dataParentsTitle = mb_strtolower($dataParentsTitle);
}
else {
    $dataParentsTitle = '';
}

if (!empty($dataDiscription)) {
    
    $numDiscription = mb_strlen($dataDiscription, 'UTF-8');
    if ($numDiscription < 100) { $metaDiscription = $dataDiscription . $dataParentsTitle; }
       else {$metaDiscription = $dataDiscription;}
    
}
else {
    $metaDiscription = $dataTitle.'. Berdck.org предоставление услуг по '. $dataParentsTitle;
}

$order   = array('"', ";");
$metaDiscription = str_replace($order, "", $metaDiscription);

return $metaDiscription;
Keywords

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

А теперь простой вариант:

Создаем сниппет, например pdoKeywords, и вставляем в него следующий код:

Код: Выделить всё

<?php
$dataTitle = $modx->resource->get('longtitle');
$dataKeywords = $modx->resource->get('keywords');
$dataParentsId = $modx->resource->get('parent');

    $dataTitle = mb_strtolower($dataTitle);
    $order   = array('"', ";", ",", "-", "|", "!", "?");
    $dataTitle = str_replace($order, "", $dataTitle);
    $dataTitle = str_replace("  ", " ", $dataTitle);
 
    $metaKeywords = str_replace(" ", ", ", $dataTitle);

return $metaKeywords;
массив $order - указывает, какие символы/слова необходимо удалить из текста.

Вставку Keywords в шаблон сайта будем делать через вот такой код

Код: Выделить всё

[[*keywords:ne=``:then=`[[*keywords]]`:else=`[[pdoKeywords]]`]]
Если Вам понравилось :roll:, то не забывайте нажимать кнопочки ПОДЕЛИТЬСЯ... в социальных сетях :idea: Мне будет очень приятно ;)
А если копируете к себе в блог или на сайт, не скупитесь поставить ссылочку или пару на источник :!: - YaDumau.RU
Поделиться с друзьями:
Ответить

Вернуться в «MODX»