<?php /* * This function can be used in John Rankin's wikilog calendar module to * handle multiple entries per day. * * Entries are separated by one or more empty lines. A summary of each * entry is printed after the date. A summary is any text ending with * the first period. * * Frank Hellwig <frank@hellwig.org> * 2003-11-18 */ function list_entries($month, $year) { global $pagename, $monthnames, $today, $noentries; $r = ""; $group = FmtPageName('$Group',$pagename); $title = FmtPageName('$Title',$pagename); $prefix = $group . "/" . $year . $month; $todays_time = mktime(0, 0, 0, date("m"), date("d"), date("Y")); $last_day_of_month = strftime("%d", mktime(0, 0, 0, $month+1, 0, $year)); $tmp = ""; for ($i = 1; $i <= $last_day_of_month; $i++) { $day = ($i < 10) ? "0$i" : "$i"; $entrydate = $year . $month . $day; $entryname= $prefix . $day; if (PageExists($entryname)) { $tmp .= "<dt>[[$entryname "; if (abs($todays_time - mktime(0,0,0,$month,$i,$year)) < 86400) { $tmp .= "<em>$today</em>"; } else { $tmp .= shortdate($year,$month,$day); } $tmp .= "]]</dt>\n<dd>\n"; $page = ReadPage($entryname); $text = trim($page['text']); $text = preg_replace('/(.)\n(.)/', '$1 $2', $text); $text = preg_replace('/\n+/', '\n', $text); $a = explode('\n', $text); foreach ($a as $s) { $s = preg_replace("/^[#*!:]+\s*/", "", $s); $s = preg_replace("/\..*$/", ".", $s); $tmp .= "• $s<br />\n"; } $tmp .= "</dd>\n"; } } if ($tmp == "") { $r = "<li>$noentries ".$monthnames[$month-1]." $year.</li>\n"; } else { $r = "<dl>\n$tmp</dl>\n"; } return $r; } ?>