summaryrefslogtreecommitdiff
path: root/modules/ping
diff options
context:
space:
mode:
Diffstat (limited to 'modules/ping')
-rw-r--r--modules/ping/ping.module65
1 files changed, 39 insertions, 26 deletions
diff --git a/modules/ping/ping.module b/modules/ping/ping.module
index 5c641c560..ac73fea93 100644
--- a/modules/ping/ping.module
+++ b/modules/ping/ping.module
@@ -1,9 +1,10 @@
<?php
// $Id$
-function ping_help($section = "admin/help#ping") {
- $output = "";
-
+/**
+ * Implementation of hook_help().
+ */
+function ping_help($section) {
switch ($section) {
case 'admin/help#ping':
$output .= t("
@@ -11,82 +12,94 @@ function ping_help($section = "admin/help#ping") {
<p>%weblogs, 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 system. The ping module automatically notifies weblogs.com when your site is updated. To do so, Drupal implements the %weblogs-XML.</p>
<p>%weblogs-RSS, a web site that tracks and displays links to recently changed RSS feeds in XML format. To get your Drupal site listed, %weblogs-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-RSS-changes system. The ping module automatically notifies %weblogs-RSS when your site is updated.</p>
<p>%blo-gs, a directory of recently updated weblogs and tools for tracking interesting weblogs, in the spirit of services like %weblogs, %blogtracker and %blogrolling. 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 %blo-gs-XML.</p>
- <p>The ping feature requires crontab.</p>", array("%weblogs" => "<a href=\"http://www.weblogs.com/\">Weblogs.com</a>", "%weblogs-XML" => "<a href=\"http://www.xmlrpc.com/weblogsCom/\">". t("XML-RPC interface of weblogs.com") ."</a>", "%weblogs-RSS" => "<a href=\"http://www.xmlrpc.com/weblogsComForRSS\">". t("Weblogs.Com for RSS") ."</a>", "%weblogs-RSS-changes" => "<a href=\"http://www.weblogs.com/rssUpdates/changes.xml\">". t("the weblogs.com for RSS") ."</a>", "%blo-gs" => "<a href=\"http://blo.gs/\">blo.gs</a>", "%blogtracker" => "<a href=\"http://www.dansanderson.com/blogtracker\">blogtracker</a>", "%blogrolling" => "<a href=\"http://www.blogrolling.com\">blogtolling.com</a>", "%blo-gs-XML" => "<a href=\"http://blo.gs/ping.php\">". t("XML-RPC interface of blo.gs") ."</a>"));
+ <p>The ping feature requires crontab.</p>", array('%weblogs' => '<a href="http://www.weblogs.com/">Weblogs.com</a>', '%weblogs-XML' => '<a href="http://www.xmlrpc.com/weblogsCom/">'. t('XML-RPC interface of weblogs.com') .'</a>', '%weblogs-RSS' => '<a href="http://www.xmlrpc.com/weblogsComForRSS">'. t('Weblogs.Com for RSS') .'</a>', '%weblogs-RSS-changes' => '<a href="http://www.weblogs.com/rssUpdates/changes.xml">'. t('the weblogs.com for RSS') .'</a>', '%blo-gs' => '<a href="http://blo.gs/">blo.gs</a>', '%blogtracker' => '<a href="http://www.dansanderson.com/blogtracker">blogtracker</a>', '%blogrolling' => '<a href="http://www.blogrolling.com">blogrolling.com</a>', '%blo-gs-XML' => '<a href="http://blo.gs/ping.php">'. t('XML-RPC interface of blo.gs') .'</a>'));
break;
case 'admin/system/modules#description':
- $output = t("Alerts other site(s) that your site has been updated.");
+ $output = t('Alerts other sites that your site has been updated.');
break;
}
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) && 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);
+ 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());
+ variable_set('ping_cron_last', time());
}
}
+/**
+ * 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);
+ module_invoke_all('ping', $name, $url);
}
-function ping_ping($name = "", $url = "") {
- $feed = url("node/feed");
+/**
+ * Implementation of hook_ping().
+ *
+ * Notifies weblogs.com, blo.gs, and technorati.com of changes at this site.
+ */
+function ping_ping($name = '', $url = '') {
+ $feed = url('node/feed');
- $client = new xmlrpc_client("/RPC2", "rpc.weblogs.com", 80);
+ $client = new xmlrpc_client('/RPC2', 'rpc.weblogs.com', 80);
- $message = new xmlrpcmsg("weblogUpdates.ping", array(new xmlrpcval($name), new xmlrpcval($url)));
+ $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)");
+ watchdog('error', 'failed to notify "weblogs.com" (site)');
}
unset($client);
- $client = new xmlrpc_client("/RPC2", "rssrpc.weblogs.com", 80);
+ $client = new xmlrpc_client('/RPC2', 'rssrpc.weblogs.com', 80);
- $message = new xmlrpcmsg("rssUpdate", array(new xmlrpcval($name), new xmlrpcval($feed)));
+ $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)");
+ watchdog('error', 'failed to notify "weblogs.com" (RSS)');
}
unset($client);
- $client = new xmlrpc_client("/", "ping.blo.gs", 80);
+ $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)));
+ $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' ");
+ watchdog('error', 'failed to notify "blo.gs" ');
}
unset($client);
- $client = new xmlrpc_client("/rpc/ping", "rpc.technorati.com", 80);
+ $client = new xmlrpc_client('/rpc/ping', 'rpc.technorati.com', 80);
- $message = new xmlrpcmsg("weblogUpdates.ping", array(new xmlrpcval($name), new xmlrpcval($url)));
+ $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 'technorati.com'");
+ watchdog('error', 'failed to notify "technorati.com"');
}
-
-
}
?>