Drupal can pings sites automatically to notify them that your site has changed. It can ping the following sites :

"; $output .= "

Weblogs.com, a web site that tracks and displays links to changed weblogs and news-oriented web sites. To get your Drupal site listed, weblogs.com must be informed about your site's updates. This is the job of the ping module and when installed, the administrator doesn't have to do anything to participate in the weblogs.com system. The weblog module automatically notifies weblogs.com when your site is updated. To do so, Drupal implements the XML-RPC interface of weblogs.com.

"; $output .= "

Weblogs.Com for RSS, a web site that tracks and displays links to recently changed RSS feeds in XML format. To get your Drupal site listed, weblogs.com for RSS must be informed about updates to your RSS feed. This is the job of the ping module and when installed, the administrator doesn't have to do anything to participate in the weblogs.com for RSS system. The ping module automatically notifies weblogs.com for RSS when your site is updated.

"; $output .= "

blo.gs, a directory of recently updated weblogs and tools for tracking interesting weblogs, in the spirit of services like weblogs.com, blogtracker and blogrolling.com. To get your Drupal site listed, blo.gs must be informed about your site's updates. This is the job of the ping module and when installed, the administrator doesn't have to do anything to participate in the blo.gs system. The ping module automatically notifies blo.gs when your site is updated. To do so, Drupal implements the XML-RPC interface of blo.gs.

"; // for optional modules that ping other sites // $output .= module_invoke_all("ping_help"); $output .= "

The ping feature requires crontab.

"; print $output; } function ping_system($field){ $system["description"] = t("Alerts other site(s) that your site has been updated."); return $system[$field]; } function ping_cron() { global $base_url; if (variable_get("site_name", 0) && variable_get("site_slogan", 0)) { if (db_num_rows(db_query("SELECT nid FROM node WHERE status = 1 AND moderate = 0 AND (created > '". variable_get("ping_cron_last", time()) ."' OR changed > '". variable_get("ping_cron_last", time()) ."')"), 1)) { _ping_notify(variable_get("site_name", "") ." - ". variable_get("site_slogan", ""), $base_url); } variable_set("ping_cron_last", time()); } } function _ping_notify($name, $url) { module_invoke_all("ping", $name, $url); } function ping_ping($name = "", $url = "") { $feed = url("node/feed"); $client = new xmlrpc_client("/RPC2", "rpc.weblogs.com", 80); $message = new xmlrpcmsg("weblogUpdates.ping", array(new xmlrpcval($name), new xmlrpcval($url))); $result = $client->send($message); if (!$result || $result->faultCode()) { watchdog("error", "failed to notify 'weblogs.com' (site)"); } unset($client); $client = new xmlrpc_client("/RPC2", "rssrpc.weblogs.com", 80); $message = new xmlrpcmsg("rssUpdate", array(new xmlrpcval($name), new xmlrpcval($feed))); $result = $client->send($message); if (!$result || $result->faultCode()) { watchdog("error", "failed to notify 'weblogs.com' (RSS)"); } unset($client); $client = new xmlrpc_client("/", "ping.blo.gs", 80); $message = new xmlrpcmsg("weblogUpdates.extendedPing", array(new xmlrpcval($name), new xmlrpcval($url), new xmlrpcval($url), new xmlrpcval($feed))); $result = $client->send($message); if (!$result || $result->faultCode()) { watchdog("error", "failed to notify 'blo.gs' "); } } ?>