Эта статья призвана показать простоту и гибкость системы MODX.

Играясь с Яндекс.Вебмастер наткнулся на интересную штуку: indexNow. Вкратце это звонок Яндексу об изменении/добавлении новой страницы на сайте. Для тех кто реально работает с сайтом, а не забрасывает его пылиться на хостинге, вполне полезная штука, призванная не ждать очередного обхода робота для индексации и отдавать актуальный контент. Скрипт простейший, ниже вы убедитесь в этом сами, но я был поражен тем, что на других системах: Битрикс, OpenCart и т.д. это дополнение ПЛАТНОЕ! От 700 до 2000 рублей в зависимости от системы.
А теперь смотрите как это делается в MODX:

Создаем плагин, называем indexNow. Ставим галочки напротив системных событий: onAfterMoveDocument, OnDocFormDelete, OnDocFormSave, OnDocFormUnDelete, в поле код вставляем:

//<?php // for MODX Revolution
$length = 16;
$chars = 'qazxswedcvfrtgbnhyujmkiolp1234567890QAZXSWEDCVFRTGBNHYUJMKIOLP'; 
$size = strlen($chars) - 1; 
$key = ''; 
while($length--) {
	$key .= $chars[random_int(0, $size)]; 
}
file_put_contents(MODX_BASE_PATH . $key . '.txt', $key);
$url = $modx->makeUrl($id,'','','full');
 
$get = ['key' => $key,'url' => $url];
 
$ch = curl_init('https://yandex.com/indexnow?' . http_build_query($get));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_HEADER, false);
$json = curl_exec($ch);
curl_close($ch);

$res = json_decode($json,1);
if (isset($res['message'])){
	$modx->logEvent(0, 3, 'Error on ID - '.$id.': '.$res['message'], 'indexNow');
	//$modx->log(modX::LOG_LEVEL_ERROR, 'indexNow error on ID - '.$id.': '.$res['message'],true) ); //for MODX Revolution
}

unlink(MODX_BASE_PATH . $key.'.txt');


И все. Можно было вообще в три строчки написать, но это я так, для приличия. И этим отрывком я не хотел показать что-то новое и гениальное, наоборот: на наглядном примере просто хотел показать на сколько легок и гибок MODX без всяких платных дополнений