'. t('The ping module is useful for notifying interested sites that your site has changed. It automatically sends notifications, or "pings", to the pingomatic service about new or updated content. In turn, pingomatic notifies other popular services, including weblogs.com, Technorati, blo.gs, BlogRolling, Feedster.com, and Moreover.', array('@external-http-pingomatic-com' => 'http://pingomatic.com/')) .'

'; $output .= '

'. t('The ping module requires a correctly configured cron maintenance task.', array('@cron' => url('admin/reports/status'))) .'

'; $output .= '

'. t('For more information, see the online handbook entry for Ping module.', array('@ping' => 'http://drupal.org/handbook/modules/ping/')) .'

'; return $output; } } /** * Implementation of hook_cron(). * * Fire off notifications of updates to remote sites. */ function ping_cron() { global $base_url; if (variable_get('site_name', 0)) { $cron_last = variable_get('cron_last', time()); // Query changed first since usually changed >= created. if (db_result(db_query('SELECT COUNT(*) FROM {node} WHERE status = 1 AND changed > %d', $cron_last)) || db_result(db_query('SELECT COUNT(*) FROM {node} WHERE status = 1 AND created > %d', $cron_last))) { _ping_notify(variable_get('site_name', ''), $base_url); } } } /** * Call hook_ping() in all modules to notify remote sites that there is * new content at this one. */ function _ping_notify($name, $url) { module_invoke_all('ping', $name, $url); } /** * Implementation of hook_ping(). * * Notifies pingomatic.com, blo.gs, and technorati.com of changes at this site. */ function ping_ping($name = '', $url = '') { $result = xmlrpc('http://rpc.pingomatic.com', 'weblogUpdates.ping', $name, $url); if ($result === FALSE) { watchdog('directory ping', 'Failed to notify pingomatic.com (site).', array(), WATCHDOG_WARNING); } }