<?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 .= "&#149; $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;
}
?>