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 не столь важны, поэтому в первом случае сделал просто - взял заголовок страницы и разобрал его на слова. В том случае, если заголовок сделан не от балды, а реально отвечает ключевым запросам, то этого достаточно, в противном случае можно взять текст статьи и посчитать слова, а уже потом вывести нужное количество самых встречающихся слов.
А теперь простой вариант:
Создаем сниппет, например 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;
Вставку Keywords в шаблон сайта будем делать через вот такой код
Код: Выделить всё
[[*keywords:ne=``:then=`[[*keywords]]`:else=`[[pdoKeywords]]`]]