http://www.drupal.org/. Requires crontab."); return $output; } function drupal_cron() { if (time() - variable_get("drupal_cron_last", 0) > 21600) { variable_set("drupal_cron_last", time()); /* ** If this site acts as a Drupal XML-RPC server, delete the sites that ** stopped sending "ping" messages. */ db_query("DELETE FROM directory WHERE timestamp < '". (time() - 259200) ."'"); /* ** If this site acts as a Drupal XML-RPC client, send a message to the ** Drupal XML-RPC server. */ if (variable_get("drupal_directory", 0) && variable_get("drupal_server", 0)) { drupal_notify(variable_get("drupal_server", "")); } } } function drupal_directory_ping($arguments) { /* ** Parse our parameters: */ $argument = $arguments->getparam(0); $link = strip_tags($argument->scalarval()); $argument = $arguments->getparam(1); $name = strip_tags($argument->scalarval()); $argument = $arguments->getparam(2); $mail = strip_tags($argument->scalarval()); $argument = $arguments->getparam(3); $slogan = strip_tags($argument->scalarval()); $argument = $arguments->getparam(4); $mission = strip_tags($argument->scalarval()); /* ** Update the data in our database and send back a reply: */ if ($link && $name && $mail && $slogan && $mission) { db_query("DELETE FROM directory WHERE link = '%s' OR mail = '%s'", $link, $mail); db_query("INSERT INTO directory (link, name, mail, slogan, mission, timestamp) VALUES ('%s', '%s', '%s', '%s', '%s', '%s')", $link, $name, $mail, $slogan, $mission, time()); watchdog("message", "directory: ping from '$name' ($link)"); return new xmlrpcresp(new xmlrpcval(1, "int")); } else { return new xmlrpcresp(new xmlrpcval(0, "int")); } } function drupal_directory_page() { $result = db_query("SELECT * FROM directory ORDER BY name"); while ($site = db_fetch_object($result)) { $output .= "link\">$site->name - $site->slogan
Drupal is the name of the software which powers %s. There are Drupal websites all over the world, and many of them share their registration databases so that users may freely login to any Drupal site using a single Drupal ID.
\n"; $output .= "So please feel free to login to your account here at %s with a username from another Drupal site. The format of a Drupal ID is similar to an email address: username@server. An example of valid Drupal ID is mwlily@www.drupal.org.
"; return t($output, array("%s" => "$site")); } function drupal_user($type, $edit, $user) { global $HTTP_HOST; $module = "drupal"; $name = module_invoke($module, "info", "name"); switch ($type) { case "view_private": $result = user_get_authname($user, $module); if ($result) { $output .= form_item(t("$name ID"), $result); } else { // TODO: use a variation of path_uri() instead of $HTTP_HOST below $output .= form_item(t("$name ID"), "$user->name@$HTTP_HOST"); } return $output; } } ?>