'.GetEvents()");
function GetEvents() {
global $profiles;
$days = 14;
if (isset($_POST['days'])) $days = intval($_POST['days']);
$dsn = 'sqlite:////home/crux/public_html/local/timeline.db';
$db =& DB::connect($dsn);
if (DB::isError($db)) die("Cannot connect to database");
$db->setFetchMode(DB_FETCHMODE_ASSOC);
$from = time() - ($days * 24 * 60 * 60);
$sql = "select distinct event_date, event_description, event_notes, event_type, event_time from events where event_tstamp >= $from order by event_tstamp desc";
$res =& $db->Query($sql);
if (DB::isError($res)) die("Query error");
$timeline .= '
'."\n";
$currdate = "noway";
while ($evt =& $res->fetchRow()) {
// date header
if ($evt['event_date'] != $currdate) {
$timeline .= ''.$evt['event_date']." |
\n";
}
// description
$event_description = "";
if (substr($evt['event_type'], 0, 5) == "task_") {
// flyspray events
$real_name = strstr($evt['event_description'], 'by');
$real_name = substr($real_name, 3, strlen($real_name));
$trim_name = str_replace(' ', '', $real_name);
if (in_array($trim_name, $profiles)) {
$event_description = str_replace($real_name, "[[~".$trim_name."]]", $evt['event_description']);
}
else {
$event_description = $evt['event_description'];
}
}
elseif (substr($evt['event_type'], 0, 5) == "wiki_") {
// wiki events
$event_description = $evt['event_description'];
}
elseif (substr($evt['event_type'], 0, 11) == "git_commit_") {
// git events
$event_description = "Changeset ".substr($evt['event_type'], 11, strlen($evt['event_type'])).".git ".$evt['event_description'];
}
// append notes
if ($evt['event_notes'] != "") $event_description .= ": ".$evt['event_notes'];
// image
$img = '';
// final string
$timeline .= ''.$evt['event_time'].' | '.$img.' | '.$event_description.' |
'."\n";
$currdate = $evt['event_date'];
}
$timeline .= "
\n";
$timeline .= '
'."\n";
return $timeline;
}
?>