SEOSuite - после установки!
Иногда бывает после установки seo Suite, мета теги типа canonical & robots не появляются у документа сразу, а только после его сохранения, и чтобы не заходить в каждый документ и пере сохранять, написал небольшой сниппет.
Код сниппета: OnDocFormSave_seo
Далее создаем ресурс к примеру:
Заголовок*: OnDocFormSave_seo
Шаблон: Пустой шаблон
Использовать HTML-редактор: Нет
Кэшируемый: Нет
Содержимое:
ЗЫ: Писал на коленке по-быстрому)))
Код сниппета: 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>
Открываем страничку и ждем пока обновятся документы…ЗЫ: Писал на коленке по-быстрому)))
Поблагодарить автора
Отправить деньги
Комментарии: 3
Привет! Спасибо за решение, сорри не могу плюсануть уже, время прошло, вовремя не заметил!
Я же правильно понимаю, что можно не делать одноразовый сниппет, а просто запустить его код через компонент Console или подобный?
И ещё есть вопрос по SEOSuite, пользуясь случаем. Они там решили вопрос с тем, что компонент создаёт большую секцию своих настроек в админке для каждого ресурса? Там эта секция была выше, чем секция с основным контентом (и соответственно с секцией TV-шек, если их системной настройкой `tvs_below_content` перенести тоже на первую вкладку в админке где страницы редактируешь) и из-за этого осложнялось редактирование контента на мой взгляд (SEO-настройки маячили и лишний раз мешались). Помню из-за этого даже кто-то ставил старые версии, SEOtab вроде… и ждали фикса, сообщив разрабам на github. Это пофикшено в свежих SEOsuite?
Я же правильно понимаю, что можно не делать одноразовый сниппет, а просто запустить его код через компонент Console или подобный?
И ещё есть вопрос по SEOSuite, пользуясь случаем. Они там решили вопрос с тем, что компонент создаёт большую секцию своих настроек в админке для каждого ресурса? Там эта секция была выше, чем секция с основным контентом (и соответственно с секцией TV-шек, если их системной настройкой `tvs_below_content` перенести тоже на первую вкладку в админке где страницы редактируешь) и из-за этого осложнялось редактирование контента на мой взгляд (SEO-настройки маячили и лишний раз мешались). Помню из-за этого даже кто-то ставил старые версии, SEOtab вроде… и ждали фикса, сообщив разрабам на github. Это пофикшено в свежих SEOsuite?
Можно и в консоли только кнопочку руками придется нажимать, одна итерация 50 ресурсов)
По второму вопросу не скажу, не вникал)
По второму вопросу не скажу, не вникал)
Написал вот такой плагин, меня устраивает
<?php
// OnDocFormRender
$modx->controller->addHtml('<script>Ext.onReady(function(){
setTimeout(function(){
hideseo = document.querySelector("div#resource-seosuite-panel > div > div.x-tool.x-tool-toggle");
hideseo.style.cssText += "float: left";
hideseo.click();
var divNode = document.createElement("style");
divNode.innerHTML = " .vertical-tabs-panel .vertical-tabs-header { width: 235px !important; } .vertical-tabs-panel .vertical-tabs-header .x-tab-strip-wrap ul.x-tab-strip > li.x-tab-strip-active { width: 235px !important; } ";
document.getElementsByTagName("head")[0].appendChild(divNode);
}, 300);
});</script>');
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.