» » » Пингатор для поиска Yandex [DLE]

Пингатор для поиска Yandex [DLE]

Пингатор для поиска Yandex [DLE]

 

Вышла новая версия мода: пингатор v2.1


Всем привет. Устанавливая поиск от яндекса на один из своих сайтов, заметил очень интересную возможность. Яша, для улучшения индексации предлагает отсылать ему адреса новых или измененных страниц вашего сайта. Огромная схожесть с простыми пинг сервисами поисковиков, но в данной ситуации дополнительно отсылаются: специальный ключ, логин, id-шник поиска.

Компания Яндекс позаботилась о внедрении этой фичи в популярные CMS. К великому сожалению, среди них нет DLE (Data Life Engine), сие я решил исправить.


Для начала регистрируем поиск для своего сайта и получаем ключ для дальнейшей отправки.

В файлы engine/modules/functions.php и engine/inc/include/functions.inc.php в самый конец, перед  ?>, вставляем код:
 
function YandexPing ($newsid) {
	        global $config;
	    $key = '876a50f3931ad0c167356e5a2b6d8ad565fc05b3'; //ваш Ключ
	    $id_search = '1938534'; //id поиска
	    $login = 'puritan4ik'; //логин Яндекса
	  
	    $url = urlencode($config['http_home_url'].'index.php?newsid='.$newsid);
	    $url = 'http://site.yandex.ru/ping.xml?urls='.$url.'&login='.$login.'&search_id='.$id_search.'&key='.$key;
	    $curl = curl_init($url);
	    curl_exec($curl);
	}
 
Не забудьте вставить свои данные.Теперь такие изменения:
  • В engine/modules/addnews.php после
    clear_cache( array('news_', 'related_', 'tagscloud_', 'archives_', 'calendar_', 'topnews_', 'rss') );
    вставляем
    YandexPing($row['id']);
  • В engine/modules/addcomments.php после
    clear_cache( array( 'news_', 'rss', 'comm_'.$post_id, $cprefix ) );
    вставляем
    YandexPing($post_id);
  • В engine/inc/addnews.php после
    clear_cache( array('news_', 'related_', 'tagscloud_', 'archives_', 'calendar_', 'topnews_', 'rss') );
    вставляем
    YandexPing( $row );
  • В engine/inc/editnews.php после
    clear_cache( array('news_', 'full_'.$item_db[0], 'comm_'.$item_db[0], 'tagscloud_', 'archives_', 'calendar_', 'rss') );
    вставляем
    YandexPing( $item_db[0] );
Теперь Яндекс будет знать о изменениях на сайте, а именно: добавление, редактирование новости или появление нового комментария.
[30 августа 2013 15:40] dle:
Думаю, у многих возникнет подобная проблема и вряд ли кто-то самостоятельно сможет с ней разобраться. Добавьте в пост ее решение.


И спасибо за проделанный труд!
[30 августа 2013 15:40] pur1tan:
Такое можно провернуть через крон.
[30 августа 2013 15:40] pur1tan:
Ну для этого в дле есть функция обработки неверных ЧПУ. Если этот момент принципиален то можно поправить отправляемый запрос. Это не трудно.
[30 августа 2013 15:40] dle:
Работает, но пользоваться не советую: в индекс повылазят дубли. Яндексу отправляется информация о новой опубликованной странице со ссылкой вида "index.php?newsid". Т.е., через некоторое время в индексе будет одна и та же новость, но с разными адресами: "index.php?newsid" + страничка с ЧПУ.
[30 августа 2013 15:40] Евгений:
Такой вопрос, если новости уже опубликованы, но на будущую дату, при появлении их на сайте они пингуются или нет? Если нет, можно ли это как то реализовать?
[31 августа 2013 17:01] pur1tan:
Обновил файлы, исправил формирование ссылок. Ссылка в начале новости
[15 октября 2013 17:10] Иван:
Привет! Спасибо за код! Не подскажешь случайно, вот мне пришёл ответ
my-site.ru/page 1
Это значит успешно?
[16 октября 2013 12:05] pur1tan:
Скорее всего нет. правильный ответ вида: my-site.ru/index.php?newsid=1
[4 ноября 2013 14:28] EDoS:
Здравствуйте.А как узнать что оно работает.Установил все по инструкции,при изменении даты новости,в левом верхнем углу указывается урл.Так и должно быть?Но яша страницы все равно не индексирует....
[4 ноября 2013 21:55] pur1tan:
Как недавно выяснилось, поиск должен быть установлен и активно использоваться. Тогда страницы будут заскакивать в индекс с полтолчка.
[5 ноября 2013 17:35] EDoS:
Ну поиск стоит.А нащет активного использования:это как ,каждую новость находить и переходить?
[5 ноября 2013 19:52] pur1tan:
Полагаю, что нужны запросы с разными ключевиками и с разных IP. На счёт последнего не уверен... можете уточнить здесь: http://clubs.ya.ru/sitesearch/
[8 ноября 2013 14:40] Алёна:
В версии 9.0 в файлах:
engine/inc/addnews.php,
engine/modules/addnews.php

не нашла
"clear_cache( array('news_', 'related_', 'tagscloud_', 'archives_', 'calendar_', 'topnews_', 'rss') );"



после чего мне вставлять изменения., и будет ли работать плагин в версии дле 9.0?
[8 ноября 2013 22:09] pur1tan:
Да, будет работать. В вашем случае вставлять код после clear_cache();
[9 ноября 2013 00:12] Алёна:
не получилось, при отправке новости, вот такая ошибка:

NO_SUCH_USER_IN_SERVICENo such user in WMConsole:
[9 ноября 2013 19:05] pur1tan:
Сервер яндекса отдаёт ошибку, в ввиду отсутствия такого пользователя. проверьте еще раз все данные (код, id, логин яндекса).
[9 ноября 2013 23:59] Алёна:
Наконец-то, получилось. Отправила новость , отправилось видом:"index.php?newsid" А у меня стоит ЧПУ2, обработки неверных ЧПУ, в версии дле 9.0, ещё нет.
Наверное, нужно убрать данный пингатор, чтобы не было дублей?
[10 ноября 2013 12:26] pur1tan:
да, в такой ситуации лучше отключить.
[15 января 2014 14:36] disqus_4G5uBSsgCx:
Не смог найти ваших контактов, можете скинуть на почту ваш скайп или почту?
[15 января 2014 20:26] pur1tan:
через обратную связь:
antonov.work/?do=feedback