function xmlrpc_getLastUpdate($method_name, $params) { $uid = array_pop($params); if (is_array($uid)) { return Planworld::getLastUpdate($uid); } else { if (is_string($uid) && Planworld::isUser($uid)) { return Planworld::getLastUpdate($uid); } else { return array('faultCode' => 800, 'faultString' => 'No such user'); } } }
#!/usr/local/bin/php -q <?php /** * $Id: cache.php,v 1.7 2002/03/03 22:19:51 seth Exp $ * XML-RPC cache: updates LastUpdate and LastLogin for all remote * users on planwatches. */ $_base = dirname(__FILE__) . '/../'; require_once $_base . 'config.php'; require_once $_base . 'lib/Planworld.php'; // display errors in a readable format (since this is run from cron) ini_set('html_errors', 'off'); $dbh = Planworld::_connect(); $query = "SELECT DISTINCT users.username FROM planwatch, users WHERE planwatch.w_uid=users.id AND users.remote='Y'"; $result = $dbh->query($query); $hosts = array(); while ($row = $result->fetchRow(DB_FETCHMODE_ASSOC)) { list($user, $host) = split('@', $row['username']); if (!in_array($host, $hosts)) { $hosts[] = $host; } if (!isset(${$host})) { ${$host} = array(); } array_push(${$host}, $user); } foreach ($hosts as $host) { Planworld::getLastUpdate(${$host}, $host); Planworld::getLastLogin(${$host}, $host); }
function getReferences(&$user, $order = 'd', $dir = 'd') { $dbh = Planworld::_connect(); /* direction to sort */ if ($dir == 'a') { $dir = 'ASC'; } else { $dir = 'DESC'; } /* attribute to sort by */ switch ($order) { case 'l': $order = 'last_update'; break; case 'u': $order = 'username'; break; default: $order = 'referenced'; } if (is_int($user)) { $query = "SELECT s_uid, referenced, username, last_update FROM snoop,users WHERE uid={$user} AND users.id=s_uid ORDER BY {$order} {$dir}"; } else { if (is_string($user)) { $query = "SELECT s_uid, referenced, users.username, users.last_update FROM snoop,users,users as u2 WHERE uid=u2.id AND u2.username='******' AND users.id=s_uid ORDER BY {$order} {$dir}"; } else { if (is_object($user)) { $query = "SELECT s_uid, referenced, username, last_update FROM snoop,users WHERE uid=" . $user->getUserID() . " AND users.id=s_uid ORDER BY {$order} {$dir}"; } } } /* execute the query */ $result = $dbh->query($query); if (isset($result) && !DB::isError($result)) { $return = array(); if (date('n-j') == '4-1') { /* April fool's easter egg */ $uid = Planworld::getRandomUser(); $return[] = array("userID" => $uid, "userName" => Planworld::idToName($uid), "date" => mktime(0, 0, 0, 4, 1, date('Y')), "lastUpdate" => Planworld::getLastUpdate($uid)); } while ($row = $result->fetchRow(DB_FETCHMODE_ASSOC)) { $return[] = array("userID" => (int) $row['s_uid'], "userName" => $row['username'], "date" => (int) $row['referenced'], "lastUpdate" => (int) $row['last_update']); } return $return; } else { return PLANWORLD_ERROR; } }