get_baseurl() . '/events/new'); } $share = ((intval($_POST['share'])) ? intval($_POST['share']) : 0); if($share) { $str_group_allow = perms2str($_POST['group_allow']); $str_contact_allow = perms2str($_POST['contact_allow']); $str_group_deny = perms2str($_POST['group_deny']); $str_contact_deny = perms2str($_POST['contact_deny']); } else { $str_contact_allow = '<' . local_user() . '>'; $str_group_allow = $str_contact_deny = $str_group_deny = ''; } $datarray = array(); $datarray['start'] = $start; $datarray['finish'] = $finish; $datarray['desc'] = $desc; $datarray['location'] = $location; $datarray['type'] = $type; $datarray['adjust'] = $adjust; $datarray['nofinish'] = $nofinish; $datarray['uid'] = $uid; $datarray['cid'] = 0; $datarray['allow_cid'] = $str_contact_allow; $datarray['allow_gid'] = $str_group_allow; $datarray['deny_cid'] = $str_contact_deny; $datarray['deny_gid'] = $str_group_deny; $datarray['id'] = $event_id; $datarray['created'] = $created; $datarray['edited'] = $edited; $item_id = event_store($datarray); proc_run('php',"include/notifier.php","event","$item_id"); } function events_content(&$a) { if(! local_user()) { notice( t('Permission denied.') . EOL); return; } $o .= '

' . t('Events') . '

'; $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); // Put some limits on dates. The PHP date functions don't seem to do so well before 1900. // An upper limit was chosen to keep search engines from exploring links endlessly. if($y < 1901) $y = 1900; if($y > 2099) $y = 2100; $nextyear = $y; $nextmonth = $m + 1; if($nextmonth > 12) { $nextmonth = 1; $nextyear ++; } $prevyear = $y; if($m > 1) $prevmonth = $m - 1; else { $prevmonth = 12; $prevyear --; } $o .= ''; $o .= '
'; $o .= ''; $o .= cal($y,$m,false, ' eventcal'); $o .= ''; $o .= '
'; $o .= '
'; $dim = get_dim($y,$m); $start = sprintf('%d-%d-%d %d:%d:%d',$y,$m,1,0,0,0); $finish = sprintf('%d-%d-%d %d:%d:%d',$y,$m,$dim,23,59,59); $start = datetime_convert('UTC','UTC',$start); $finish = datetime_convert('UTC','UTC',$finish); $adjust_start = datetime_convert('UTC', date_default_timezone_get(), $start); $adjust_finish = datetime_convert('UTC', date_default_timezone_get(), $finish); $r = q("SELECT `event`.*, `item`.`id` AS `itemid`,`item`.`plink` FROM `event` LEFT JOIN `item` ON `item`.`event-id` = `event`.`id` WHERE `event`.`uid` = %d AND (( `adjust` = 0 AND `start` >= '%s' AND `finish` <= '%s' ) OR ( `adjust` = 1 AND `start` >= '%s' AND `finish` <= '%s' )) ", intval(local_user()), dbesc($start), dbesc($finish), dbesc($adjust_start), dbesc($adjust_finish) ); $last_date = ''; $fmt = t('l, F j'); if(count($r)) { $r = sort_by_date($r); foreach($r as $rr) { $d = (($rr['adjust']) ? datetime_convert('UTC',date_default_timezone_get(),$rr['start'], $fmt) : datetime_convert('UTC','UTC',$rr['start'],$fmt)); $d = day_translate($d); if($d !== $last_date) $o .= '
' . $d . '
'; $last_date = $d; $o .= format_event_html($rr); if($rr['plink']) $o .= get_plink($rr) . '
'; } } return $o; } if($mode === 'edit' || $mode === 'new') { $htpl = get_markup_template('event_head.tpl'); $a->page['htmlhead'] .= replace_macros($htpl,array('$baseurl' => $a->get_baseurl())); $tpl = get_markup_template('event_form.tpl'); $year = datetime_convert('UTC', date_default_timezone_get(), 'now', 'Y'); $month = datetime_convert('UTC', date_default_timezone_get(), 'now', 'm'); $day = datetime_convert('UTC', date_default_timezone_get(), 'now', 'd'); require_once('include/acl_selectors.php'); $o .= replace_macros($tpl,array( '$post' => $a->get_baseurl() . '/events', '$e_text' => t('Event details'), '$e_desc' => t('Format is year-month-day hour:minute. Starting date and Description are required.'), '$s_text' => t('Event Starts:') . ' * ', '$s_dsel' => datesel('start',$year+5,$year,false,$year,$month,$day), '$s_tsel' => timesel('start',0,0), '$n_text' => t('Finish date/time is not known or not relevant'), '$n_checked' => '', '$f_text' => t('Event Finishes:'), '$f_dsel' => datesel('finish',$year+5,$year,false,$year,$month,$day), '$f_tsel' => timesel('finish',0,0), '$a_text' => t('Adjust for viewer timezone'), '$a_checked' => '', '$d_text' => t('Description:') . ' *', '$d_orig' => '', '$l_text' => t('Location:'), '$l_orig' => '', '$sh_text' => t('Share this event'), '$sh_checked' => '', '$acl' => populate_acl($a->user,false), '$submit' => t('Submit') )); return $o; } }