From 452245d9883c29640fb1bd3a9e0d7cefaed77f23 Mon Sep 17 00:00:00 2001 From: Friendika Date: Mon, 6 Jun 2011 19:59:20 -0700 Subject: [PATCH] more events framework --- include/datetime.php | 40 ++++++++++++++++++++++++-- mod/events.php | 68 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 105 insertions(+), 3 deletions(-) diff --git a/include/datetime.php b/include/datetime.php index f7be5bdb11..67c4f42fad 100644 --- a/include/datetime.php +++ b/include/datetime.php @@ -108,9 +108,17 @@ function datesel($pre,$ymin,$ymax,$allow_blank,$y,$m,$d) { $o .= ""; } - for($x = $ymax; $x >= $ymin; $x --) { - $sel = (($x == $y) ? " selected=\"selected\" " : ""); - $o .= ""; + if($ymax > $ymin) { + for($x = $ymax; $x >= $ymin; $x --) { + $sel = (($x == $y) ? " selected=\"selected\" " : ""); + $o .= ""; + } + } + else { + for($x = $ymax; $x <= $ymin; $x ++) { + $sel = (($x == $y) ? " selected=\"selected\" " : ""); + $o .= ""; + } } $o .= " "; + for($x = 0; $x < 24; $x ++) { + $sel = (($x == $h) ? " selected=\"selected\" " : ""); + $o .= ""; + } + $o .= " : "; + return $o; +}} + + + + + + + + // implements "3 seconds ago" etc. // based on $posted_date, (UTC). // Results relative to current timezone diff --git a/mod/events.php b/mod/events.php index 73328b959e..cca0f20746 100644 --- a/mod/events.php +++ b/mod/events.php @@ -82,3 +82,71 @@ function events_post(&$a) { } + +function events_content(&$a) { + + if(! local_user()) { + notice( t('Permission denied.') . EOL); + return; + } + + $mode = 'view'; + $y = 0; + $m = 0; + + if($a->argc > 1) { + if($a->argc > 2 && $a->argv[1] == 'event') { + $mode = 'edit'; + $event_id = intval($a->argv[2]); + } + if($a->argv[1] === 'new') { + $mode = 'new'; + $event_id = 0; + } + if($a->argc > 2 && intval($a->argv[1]) && intval($a->argv[2])) { + $mode = 'view'; + $y = intval($a->argv[1]); + $m = intval($a->argv[2]); + } + } + + if($mode == 'view') { + $thisyear = datetime_convert('UTC',date_default_timezone_get(),'now','Y'); + $thismonth = datetime_convert('UTC',date_default_timezone_get(),'now','m'); + if(! $y) + $y = intval($thisyear); + if(! $m) + $m = intval($thismonth); + + + $o .= cal($y,$m,false); + + return $o; + } + + if($mode === 'edit' || $mode === 'new') { + $tpl = get_markup_template('event_form.tpl'); + + $year = datetime_convert('UTC', date_default_timezone_get(), 'now', 'Y'); + + + $o .= replace_macros($tpl,array( + '$post' => $a->get_baseurl() . '/events', + '$e_text' => t('Event details'), + '$s_text' => t('Starting date/time:'), + '$s_dsel' => datesel('start',$year+5,$year,false,$year,0,0), + '$s_tsel' => timesel('start',0,0), + '$f_text' => t('Finish date/time:'), + '$f_dsel' => datesel('start',$year+5,$year,false,$year,0,0), + '$f_tsel' => timesel('start',0,0), + '$d_text' => t('Description:'), + '$d_orig' => '', + '$l_text' => t('Location:'), + '$l_orig' => '', + '$submit' => t('Submit') + + )); + + return $o; + } +} \ No newline at end of file