';
if($event_id) {
$r = q("UPDATE `event` SET
`edited` = '%s',
`start` = '%s',
`finish` = '%s',
`desc` = '%s',
`location` = '%s',
`type` = '%s',
`adjust` = %d,
`nofinish` = %d,
`allow_cid` = '%s',
`allow_gid` = '%s',
`deny_cid` = '%s',
`deny_gid` = '%s'
WHERE `id` = %d AND `uid` = %d LIMIT 1",
dbesc(datetime_convert()),
dbesc($start),
dbesc($finish),
dbesc($desc),
dbesc($location),
dbesc($type),
intval($adjust),
intval($nofinish),
dbesc($str_contact_allow),
dbesc($str_group_allow),
dbesc($str_contact_deny),
dbesc($str_group_deny),
intval($event_id),
intval($local_user())
);
}
else {
$uri = item_new_uri($a->get_hostname(),local_user());
$r = q("INSERT INTO `event` ( `uid`,`uri`,`created`,`edited`,`start`,`finish`,`desc`,`location`,`type`,
`adjust`,`nofinish`,`allow_cid`,`allow_gid`,`deny_cid`,`deny_gid`)
VALUES ( %d, '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', %d, %d, '%s', '%s', '%s', '%s' ) ",
intval(local_user()),
dbesc($uri),
dbesc(datetime_convert()),
dbesc(datetime_convert()),
dbesc($start),
dbesc($finish),
dbesc($desc),
dbesc($location),
dbesc($type),
intval($adjust),
intval($nofinish),
dbesc($str_contact_allow),
dbesc($str_group_allow),
dbesc($str_contact_deny),
dbesc($str_group_deny)
);
$r = q("SELECT * FROM `event` WHERE `uri` = '%s' AND `uid` = %d LIMIT 1",
dbesc($uri),
intval(local_user())
);
if(count($r))
$event = $r[0];
$arr = array();
$arr['uid'] = local_user();
$arr['uri'] = $uri;
$arr['parent-uri'] = $uri;
$arr['type'] = 'activity';
$arr['wall'] = 1;
$arr['contact-id'] = $a->contact['id'];
$arr['owner-name'] = $a->contact['name'];
$arr['owner-link'] = $a->contact['url'];
$arr['owner-avatar'] = $a->contact['thumb'];
$arr['author-name'] = $a->contact['name'];
$arr['author-link'] = $a->contact['url'];
$arr['author-avatar'] = $a->contact['thumb'];
$arr['title'] = '';
$arr['allow_cid'] = $str_contact_allow;
$arr['allow_gid'] = $str_group_allow;
$arr['deny_cid'] = $str_contact_deny;
$arr['deny_gid'] = $str_group_deny;
$arr['last-child'] = 1;
$arr['visible'] = 1;
$arr['verb'] = ACTIVITY_POST;
$arr['object-type'] = ACTIVITY_OBJ_EVENT;
$arr['body'] = format_event_bbcode($event);
$arr['object'] = '' . "\n";
$item_id = item_store($arr);
if($item_id) {
q("UPDATE `item` SET `plink` = '%s', `event-id` = %d WHERE `uid` = %d AND `id` = %d LIMIT 1",
dbesc($a->get_baseurl() . '/display/' . $owner_record['nickname'] . '/' . $item_id),
intval($event['id']),
intval($local_user()),
intval($item_id)
);
proc_run('php',"include/notifier.php","tag","$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);
$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 .= '' . t('<< Previous') . ' | ' . t('Next >>') . '';
$o .= cal($y,$m,false, ' eventcal');
$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 * FROM `event` WHERE `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);
}
}
return $o;
}
if($mode === 'edit' || $mode === 'new') {
$htpl = get_markup_template('profed_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');
$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' => '',
'$submit' => t('Submit')
));
return $o;
}
}