Играясь с Яндекс.Вебмастер наткнулся на интересную штуку: 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 без всяких платных дополнений
Комментарии (0)