[РЕШЕНО] Модуль Multiping - не пингует автоматически. Кто подскажет почему?

Главные вкладки

Аватар пользователя Goodseeker Goodseeker 23 июня 2011 в 20:16

Крон запускается, а пинг автоматически не производится.
Пинг работает только в ручном режиме.

Вот настройки пинга Яндекс:
URL: http://ping.blogs.yandex.ru/RPC2
Имя метода: weblogUpdates.ping
Сервис активен: - стоит галочка
Отправлять основную RSS ленту при пинге: стоит галочка

- больше ничего не включено.

Помогите, пожалуйста....?

Комментарии

Аватар пользователя Goodseeker Goodseeker 24 июня 2011 в 19:07

Cyber wrote:
Он по крону работает либо при добавлении материалов либо мануально.

Так в том то и дело, что не запускается. Я уже об этом сказал.

Аватар пользователя Plazik Plazik 24 июня 2011 в 19:16

"Cyber" wrote:
Он по крону работает либо при добавлении материалов либо мануально.

В настройках можно выбрать "Пинг сразу после сообщения/обновления (а не во время работы cron)", но это не работает.

Аватар пользователя Cyber Cyber 24 июня 2011 в 20:40

"Goodseeker" wrote:
Так в том то и дело, что не запускается. Я уже об этом сказал.

"Plazik" wrote:
В настройках можно выбрать "Пинг сразу после сообщения/обновления (а не во время работы cron)", но это не работает.

А если с ноги? пинг идёт? Там букувально сразу можно по логу посмотреть пришёл краулер или нет. У меня вроде работает. Сегодня постораюсь в исходники глянуть.

Вообще дело может быть в отсутствии настройки сервера позволяющей обращаться к сторонним ресурсам. Может быть дело во времени

Аватар пользователя Cyber Cyber 24 июня 2011 в 22:37

Глянул код, вроде всё нормально. Проверьте, что у вам RSS не выключены, проверьте, что не стоит настройка пинговать только те что есть на главной.

Сообщени должно выводить, что успешно уведомлён. Можете проверить, что ваш список пингов актуален. Проверьте, что XMLRPC работает.

Пинг должен проходить в любом случае, иначе месадж будет.

<?php
  
// Ping! Check service method
  
if (!empty($pingservice->method)) {
    if (
$pingservice->method == 'weblogUpdates.ping') {
      
$result xmlrpc($pingservice->url$pingservice->method$name$base_url);
    }
    else {
      
$result xmlrpc($pingservice->url$pingservice->method$name$base_url$rss_url);
    }
  }
  else {
    
$pingurl strtr($pingservice->url, array(
      
'%name' => urlencode($name),
      
'%url' => urlencode($base_url .'/'),
      
'%rss' => urlencode($rss_url),
    ));
    
$result drupal_http_request($pingurl);
    if (
$result->code == 200) {
      
$result = (strpos($result->data'1') == 0);
    }
    else {
      
$result FALSE;
    }
  }
?>
<?php   if ($result->code == 200) {
      
$result = (strpos($result->data'1') == 0);
    }
    else {
      
$result FALSE;
    }
?>

Единственный момент, пинг может уходить не туда т.к. обратный ключ от сервиса не проверяется, а только статус ответа. Посмотрите куда вообще пингуете и по каким параметрам.

Проверить можно прямо через браузер вбив адрес сервиса и параметры пинга.

Аватар пользователя Cyber Cyber 24 июня 2011 в 22:44

Кстати, ещё момент.

<?php
if (module_exists('taxonomy') && ($row->whentoping MULTIPING_WHEN_TAXONOMY)) {
      
$voc unserialize($row->voc);
      if (!empty(
$voc)) {
        
$sql_join[]  = 'INNER JOIN {term_node} t ON t.nid = n.nid';
        
$sql_where[] = 't.tid IN (' db_placeholders($voc) . ')';
        
$sql_values  array_merge($sql_values$voc);
      }
    }
    
// Nodetype selection
    
if ($row->whentoping MULTIPING_WHEN_NODETYPE) {
      
$nodetypes unserialize($row->nodetypes);
      if (!empty(
$nodetypes)) {
        
$sql_where[] = 'n.type IN (' db_placeholders($nodetypes'varchar') . ')';
        
$sql_values  array_merge($sql_values$nodetypes);
      }
    }
    
// Promoted to front page?
    
if ($row->whentoping MULTIPING_WHEN_FRONTPAGE) {
      
$sql_where[] = 'n.promote > 0';
    }

?>

Собсно, если вы надеетесь пропинговать какой то левый модуль или фиды созданые вьюсом, то нифига не получится. Модуль их не видит. Если будет настроение на досуге хакну этот момент

Аватар пользователя Goodseeker Goodseeker 24 июня 2011 в 23:08

Спасибо, Вам за такое внимание.
Я постараюсь разобраться во всем что вы написали.
Но пока мне сложно понять что делать... Я не знаю php .

Нажал "ping" Google: http://blogsearch.google.com/ping/RPC2 - а тут admin/reports/dblog никаких новых следов.

Настройка "Пинговать продвинутые на главную" - отключена.

По поводу настройки сервера - нужно что-то уточнить у хостера?

Вообщем..., вопросов много возникает, а я их не понимаю...

Аватар пользователя Goodseeker Goodseeker 25 июня 2011 в 0:03

А у вас на скрине стоит галочка пинговать только ноды помещённые на главную страницу. Наверное ее нужно снять, если я хочу пинговать при добавлении всего отмеченного материала?

Аватар пользователя Cyber Cyber 25 июня 2011 в 0:11

"Goodseeker" wrote:
А у вас на скрине стоит галочка пинговать только ноды помещённые на главную страницу. Наверное ее нужно снять, если я хочу пинговать при добавлении всего отмеченного материала?

Если вы эту галочку оставите, то пинговаться будет только то, что на главной, а это не совсем кошерно т.к. могут добавляться материалы во внутренние разделы. У меня нормально стоит т.к. другое пинговать не имеет смысла, у вас может быть по другому.

Аватар пользователя Goodseeker Goodseeker 13 июля 2011 в 18:43

Cyber wrote:
"Goodseeker" wrote:
А у вас на скрине стоит галочка пинговать только ноды помещённые на главную страницу. Наверное ее нужно снять, если я хочу пинговать при добавлении всего отмеченного материала?

Если вы эту галочку оставите, то пинговаться будет только то, что на главной, а это не совсем кошерно т.к. могут добавляться материалы во внутренние разделы. У меня нормально стоит т.к. другое пинговать не имеет смысла, у вас может быть по другому.


Спасибо Cyber, все решилось установив модуль dev версии.