SEOSuite - после установки!

Иногда бывает после установки seo Suite, мета теги типа canonical & robots не появляются у документа сразу, а только после его сохранения, и чтобы не заходить в каждый документ и пере сохранять, написал небольшой сниппет.

Код сниппета: OnDocFormSave_seo
<?php
// Создаем новый запрос к ресурсам MODX
$query = $modx->newQuery('modResource');

// Устанавливаем лимит на количество возвращаемых ресурсов
$query->limit(50);

// Фильтруем ресурсы, исключая те, которые имеют свойство, содержащие 'seosuite'
$query->where(['properties:NOT LIKE' => '%seosuite%']);

// Получаем коллекцию ресурсов, соответствующих запросу
$resources = $modx->getCollection('modResource', $query);


if($resources){
// Обрабатываем каждый найденный ресурс
    foreach ($resources as $res) {
      
    
        // Сохраняем изменения в ресурсе
        $res->save();
    
        // Вызываем событие после сохранения ресурса
        $modx->invokeEvent('OnDocFormSave', array(
            'mode' => modSystemEvent::MODE_UPD,
            'id' => $res->get('id'),
            'resource' => &$res,
            'object' => &$res,
        ));
    
        // Выводим информацию о ресурсе
        print_r(['id' => $res->id, 'seoProps' => $res->properties]);
    }
    
    // Если есть обновленные ресурсы, перезагрузим страницу
    return '<script>window.location.reload();</script>';
    
} else{
    
    return 'Все ресурсы уже получили properties => seosuite';
}

Далее создаем ресурс к примеру:
Заголовок*: OnDocFormSave_seo
Шаблон: Пустой шаблон
Использовать HTML-редактор: Нет
Кэшируемый: Нет
Содержимое:
<pre>
    [[OnDocFormSave_seo]]
</pre>
Открываем страничку и ждем пока обновятся документы…

ЗЫ: Писал на коленке по-быстрому)))
vectorserver
16 октября 2024, 16:05
modx.pro
77
+1
Поблагодарить автора Отправить деньги

Комментарии: 0

Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
0