type=='blog' && $node->status==1)
_yandex_blogs_doping($node->uid);
}
}
//
function _yandex_blogs_doping($uid) {
global $base_url;
global $user;
$account = user_load(array('uid' => $uid, 'status' => 1));
/*
// It sends not fully correct result: parameters appear in .. tags
$result = xmlrpc('http://drupal47/pings_test_ping',//'http://ping.blogs.yandex.ru/RPC2',
'weblogUpdates.ping',
t("%name's blog", array('%name' => $account->name)),
$base_url.'/blog/'.$uid);
*/
// So we need to use something simplier than code in xmlrpc_request()
require_once './includes/xmlrpc.inc';
$result=true;
$req = '
weblogUpdates.ping
'.t("%name's blog", array('%name' => $account->name)).'
'.$base_url.'/blog/'.$uid.'
';
$res = drupal_http_request('http://ping.blogs.yandex.ru/RPC2', array("Content-Type" => "text/xml"), 'POST', $req);
if ($res->code != 200) {
xmlrpc_error(-$res->code, $result->error);
$result=false;
}
$message = xmlrpc_message($res->data);
// Now parse what we've got back
if (!xmlrpc_message_parse($message)) {
// XML error
xmlrpc_error(-32700, t('Parse error. Not well formed'));
$result=false;
}
// Is the message a fault?
if ($message->messagetype == 'fault') {
xmlrpc_error($message->fault_code, $message->fault_string);
$result=false;
}
// Message must be OK
if($result==true) $result=$message->params[0];
if ($result === FALSE) {
watchdog('Yandex ping', t('Failed to notify blogs.Yandex.ru (site).'), WATCHDOG_WARNING);
}
}
?>