function notify(&$evt, $date, $daysDue) { global $emlStyle, $set, $xx, $ax; $todayD = date("Y-m-d", time() + 43200); //today 12:00 //compose email message $dateTime = IDtoDD($date) . ' ' . $xx['at_time'] . ' ' . (($evt['sti'] or $evt['eti']) ? ITtoDT($evt['sti']) : $ax['cro_all_day']); if ($evt['eti']) { $dateTime .= " - " . ITtoDT($evt['eti']); } $status = ''; if ($evt['cbx']) { $status .= $evt['clb'] . ': ' . (strpos($evt['chd'], $date) ? $evt['cmk'] : '- -'); } $subject = "{$set['calendarTitle']} - " . ($daysDue ? "{$ax['cro_due_in']} {$daysDue} {$ax['cro_days']}" : $ax['cro_due_today']) . ": " . $evt['tit']; if ($set['eventColor']) { $eStyle = ($evt['cco'] ? "color:{$evt['cco']};" : '') . ($evt['cbg'] ? "background-color:{$evt['cbg']};" : ''); } else { $eStyle = $evt['uco'] ? "background-color:{$evt['uco']};" : ''; } $eStyle = $eStyle ? " style=\"{$eStyle}\"" : ''; $calUrl = $set['calendarUrl'] . (strpos($set['calendarUrl'], '?', 6) ? '&' : '?') . 'cD=' . $date; $evtText = makeE($evt, $set['evtTemplGen'], 'td', '', '12345'); $msgText = "\n<html>\n<head>\n<title>{$set['calendarTitle']} {$ax['cro_mailer']}</title>\n<style type='text/css'>\nbody, p, table {{$emlStyle}}\ntd {vertical-align:top;}\n</style>\n</head>\n<body>\n<p>{$set['calendarTitle']} {$ax['cro_mailer']} " . IDtoDD($todayD) . "</p>\n<p>" . ($daysDue ? "{$ax['cro_event_due_in']} {$daysDue} {$ax['cro_days']}" : $ax['cro_event_due_today']) . ":</p>\n<table>\n\t<tr><td>{$ax['cro_title']}:</td><td><b><span{$eStyle}>{$evt['tit']}</span></b></td></tr>\n\t" . ($evt['cbx'] ? "<tr><td>{$ax['cro_status']}:</td><td>{$status}</td></tr>" : '') . "\n\t<tr><td>{$ax['cro_date_time']}:</td><td>{$dateTime}</td></tr>\n\t{$evtText}\n</table>\n<p><a href='{$calUrl}'>{$ax['cro_open_calendar']}</a></p>\n</body>\n</html>\n"; //send notification $sender = $set['notifSender'] ? $evt['uid'] : 0; $sent = sendMail($subject, $msgText, $evt['rml'], $sender); $sentTo = $sent ? "{$sent} - {$ax['cro_subject']}: {$subject}" : "Sending mail failed. See logs/luxcal.log for details"; return $sentTo; }
function showEvents(&$events, $date) { global $privs, $wkDays, $set, $xx, $months; foreach ($events as $evt) { switch ($evt['r_t']) { //make repeat text case 0: $repeat = ''; break; case 1: $repeat = $xx['evt_repeat_on'] . ' ' . $evt['r_i'] . ' ' . $xx['evt_period1_' . $evt['r_p']]; break; case 2: $repeat = $xx['evt_repeat_on'] . ' ' . $xx['evt_interval2_' . $evt['r_i']] . ' ' . $wkDays[$evt['r_p']] . ' ' . $xx['of'] . ' ' . ($evt['r_m'] ? $months[$evt['r_m'] - 1] : $xx['evt_each_month']); } if ($evt['r_t'] > 0 and $evt['r_u']) { $repeat .= " {$xx['evt_until']} " . IDtoDD($evt['r_u']); } if ($evt['app'] and !$evt['apd']) { $eBoxStyle = 'border-left:2px solid #ff0000;'; } $eBoxStyle = !empty($eBoxStyle) ? " style='{$eBoxStyle}'" : ''; $evtDateTime = IDtoDD($evt['sda']); if ($evt['sti']) { $evtDateTime .= " {$xx['at_time']} " . ITtoDT($evt['sti']); } if ($evt['eda'] or $evt['eti']) { $evtDateTime .= ' -'; } if ($evt['eda']) { $evtDateTime .= ' ' . IDtoDD($evt['eda']) . ($evt['eti'] ? " {$xx['at_time']}" : ''); } if ($evt['eti']) { $evtDateTime .= ' ' . ITtoDT($evt['eti']); } if ($evt['ald']) { $evtDateTime .= ' ' . $xx['vws_all_day']; } if ($repeat) { $evtDateTime .= '. ' . $repeat; } if ($set['eventColor']) { $eStyle = ($evt['cco'] ? "color:{$evt['cco']};" : '') . ($evt['cbg'] ? "background-color:{$evt['cbg']};" : ''); } else { $eStyle = $evt['uco'] ? "background-color:{$evt['uco']};" : ''; } $eStyle = $eStyle ? " style='{$eStyle}'" : ''; echo "<table>\n<tr>\n\t\t\t<td class='widthCol1'>" . ($evt['sts'] < 0 ? $xx['chg_deleted'] : ($evt['mdt'] > $evt['adt'] ? $xx['chg_edited'] : $xx['chg_added'])) . "</td>\n"; echo "<td class='eBox'{$eBoxStyle}>{$evtDateTime}"; if ($evt['sts'] >= 0 and $evt['mayE']) { echo "<h6><span class='point'{$eStyle} onclick=\"editE({$evt['eid']},'{$date}');\">{$evt['tix']}</span></h6>\n"; } else { echo "<h6><span{$eStyle}>{$evt['tix']}</span></h6>\n"; } if ($set['details4All'] == 1 or $set['details4All'] == 2 and $_SESSION['uid'] > 1 or $evt['mayE']) { echo makeE($evt, $set['evtTemplGen'], 'br', "<br>\n", '1234567') . "\n"; } echo "</td>\n</tr>\n</table>\n<br>\n"; } }
function sendSum($sumReport) { global $cmlStyle, $set, $ax; $subject = translit("{$set['calendarTitle']} {$ax['cro_sum_header']}"); //create cronjob summary header $msgText = "\n<html>\n<head>\n<title>{$set['calendarTitle']} {$ax['cro_sum_header']}</title>\n<style type='text/css'>\n* {padding:0; margin:0;}\nbody, p {{$cmlStyle}}\nh3 {font-size:14px; font-weight:bold; margin:20px 0px; }\nh4 {font-size:12px; font-weight:bold; margin-top:20px;}\n</style>\n</head>\n<body>\n<h3>{$set['calendarTitle']}</h3>\n<p>=== {$ax['cro_sum_header']} ~ " . IDtoDD(date("Y-m-d")) . " {$ax['at_time']} " . date("H:i") . " ===</p>\n{$sumReport}\n<br>\n<p>=== {$ax['cro_sum_trailer']} ===</p>\n<br>\n<p><a href='{$set['calendarUrl']}'>{$ax['cro_open_calendar']}</a></p>\n</body>\n</html>\n"; sendMail($subject, $msgText, $set['calendarEmail']); }
function makeGrid(&$events) { global $set, $xx, $wkDays, $months; $changeList = ''; foreach ($events as $evt) { switch ($evt['r_t']) { //make repeat text case 0: $repeat = ''; break; case 1: $repeat = $xx['evt_repeat_on'] . ' ' . $evt['r_i'] . ' ' . $xx['evt_period1_' . $evt['r_p']]; break; case 2: $repeat = $xx['evt_repeat_on'] . ' ' . $xx['evt_interval2_' . $evt['r_i']] . ' ' . $wkDays[$evt['r_p']] . ' ' . $xx['of'] . ' ' . ($evt['r_m'] ? $months[$evt['r_m'] - 1] : $xx['evt_each_month']); } if ($evt['r_t'] > 0 and $evt['r_u']) { $repeat .= " {$xx['evt_until']} " . IDtoDD($evt['r_u']); } if ($set['eventColor']) { $eStyle = ($evt['cco'] ? "color:{$evt['cco']};" : '') . ($evt['cbg'] ? "background-color:{$evt['cbg']};" : ''); } else { $eStyle = $evt['uco'] ? "background-color:{$evt['uco']};" : ''; } $eStyle = $eStyle ? " style=\"{$eStyle}\"" : ''; $eBoxStyle = ' style="padding-left:5px;' . (($evt['app'] and !$evt['apd']) ? ' border-left:2px solid #ff0000;' : '') . '"'; $changeList .= "<table><tr><td width='100px'>"; $changeList .= $evt['sts'] < 0 ? $xx['chg_deleted'] : ($evt['mdt'] > $evt['adt'] ? $xx['chg_edited'] : $xx['chg_added']); $changeList .= " </td>\n"; $changeList .= "<td{$eBoxStyle}>"; $changeList .= "<span{$eStyle}><b>{$evt['tit']}</b></span><br>\n"; $changeList .= IDtoDD($evt['sda']); if ($evt['sti']) { $changeList .= " {$xx['at_time']} " . ITtoDT($evt['sti']); } if ($evt['eda'] or $evt['eti']) { $changeList .= ' -'; } if ($evt['eda']) { $changeList .= ' ' . IDtoDD($evt['eda']) . ($evt['eti'] ? " {$xx['at_time']}" : ''); } if ($evt['eti']) { $changeList .= ' ' . ITtoDT($evt['eti']); } if ($evt['ald']) { $changeList .= " {$xx['vws_all_day']}"; } $changeList .= " {$repeat}<br>"; $changeList .= makeE($evt, $set['evtTemplGen'], 'br', "<br>\n", '1234567'); $changeList .= "</td></tr></table><br>\n"; } return $changeList; }
function notifyNow(&$evt, $what) { //notify added/edited/deleted event global $xx, $set, $nml, $apd, $app, $tit, $cid, $sda, $eda, $sti, $eti, $r_t, $ald, $chd, $uid, $repTxt; $emlStyle = "background:#FFFFDD; color:#000099; font:12px arial, sans-serif;"; //email body style definition //get category data $stH = stPrep("SELECT `name`,`color`,`bgColor`,`checkBx`,`checkLb`,`checkMk` FROM `categories` WHERE `ID` = ?"); stExec($stH, array($cid)); $row = $stH->fetch(PDO::FETCH_ASSOC); $stH = null; //compose email message $noteText = $what == 'add_exe' ? $xx['evt_event_added'] : ($what == 'upd_exe' ? $xx['evt_event_edited'] : $xx['evt_event_deleted']); $dateTime = $sda; if ($sti) { $dateTime .= ' ' . $xx['at_time'] . ' ' . $sti; } if ($eda or $eti) { $dateTime .= ' -'; } if ($eda) { $dateTime .= ' ' . $eda; } if ($eda and $eti) { $dateTime .= ' ' . $xx['at_time']; } if ($eti) { $dateTime .= ' ' . $eti; } $dateTime .= ($ald == 'all' ? ' ' . $xx['evt_all_day'] : '') . ($r_t ? ' (' . $repTxt . ')' : ''); $evD = DDtoID($sda); $status = ''; if (!$eda and !$r_t) { //no multi-day and not repeating if ($row['checkBx']) { $status .= $row['checkLb'] . ': ' . (strpos($chd, $evD) ? $row['checkMk'] : '- -'); } } $subject = "{$set['calendarTitle']} - {$noteText}: {$tit}"; $catColor = ($row['color'] ? "color:{$row['color']};" : "") . ($row['bgColor'] ? "background-color:{$row['bgColor']};" : ""); $eStyle = $catColor ? " style=\"{$catColor}\"" : ""; $eBoxStyle = ' style="padding-left:5px;' . (($app and !$apd) ? ' border-left:2px solid #ff0000;' : '') . '"'; $calUrl = $set['calendarUrl'] . (strpos($set['calendarUrl'], '?', 6) ? '&' : '?') . 'cD=' . $evD; $evtText = makeE($evt, $set['evtTemplGen'], 'td', '', '12345'); $msgText = "\n<html>\n<head>\n<title>{$set['calendarTitle']} {$xx['evt_mailer']}</title>\n<style type='text/css'>\nbody, p, table {{$emlStyle}}\ntd {vertical-align:top;}\n</style>\n</head>\n<body>\n<p>{$set['calendarTitle']} {$xx['evt_mailer']} " . IDtoDD(date("Y-m-d")) . "</p>\n<p>{$noteText}:</p>\n<table{$eBoxStyle}>\n\t<tr><td>{$xx['evt_title']}:</td><td><b><span{$eStyle}>{$tit}</span></b></td></tr>\n\t" . ($status ? "<tr><td>{$xx['evt_status']}:</td><td>{$status}</td></tr>" : '') . "\n\t<tr><td>{$xx['evt_date_time']}:</td><td>{$dateTime}</td></tr>\n\t{$evtText}\n</table>\n<p><a href='{$calUrl}'>{$xx['evt_open_calendar']}</a></p>\n</body>\n</html>\n"; //send notifications if ($nml) { //email address(es) to notify $sender = $set['notifSender'] ? $uid : 0; sendMail($subject, $msgText, $nml, $sender); } }
function IDTtoDDT($dateTime) { //convert ISO date+time (yyyy mm dd hh:mm:ss) to display date global $xx; $date = substr($dateTime, 0, 10); if (!$date) { return ''; } $time = substr($dateTime, 11, 5); $dD = IDtoDD($date); $dT = ITtoDT($time); return $dD . ($dT ? " {$xx['at_time']} {$dT}" : ''); }
function notifyReg($uName, $eMail) { //notify a new user registration global $ax, $set, $emlStyle, $emlHeader, $emlTrailer; //compose email message $dDate = IDtoDD(date('Y-m-d')); //current date in display format $noteText = $ax['log_new_reg']; $subject = translit("{$set['calendarTitle']} - {$noteText}: {$uName}"); $msgText = $emlHeader . "\n<p>{$set['calendarTitle']} {$ax['cro_mailer']} {$dDate}</p>\n<p>{$noteText}:</p>\n<table>\n\t<tr><td>{$ax['log_un']}:</td><td>{$uName}</td></tr>\n\t<tr><td>{$ax['log_em']}:</td><td>{$eMail}</td></tr>\n\t<tr><td>{$ax['log_date_time']}:</td><td>{$dDate} {$ax['at_time']} " . ITtoDT(date("H:i")) . "</td></tr>\n</table>\n<p><a href='{$set['calendarUrl']}'>{$ax['cro_open_calendar']}</a></p>\n{$emlTrailer}"; //send email sendMail($subject, $msgText, $set['calendarEmail']); }
function selectEvents() { global $ax, $set, $msg, $fileName, $fileDes, $usrName, $catName, $fromDda, $fromMda, $tillDda, $tillMda; if (!$fileName) { $fileName = substr(translit($set['calendarTitle'], true), 0, 60); } echo "<form action='index.php?lc' method='post'>\n\t\t<table class='fieldBox'>\n\t\t<tr><td class='legend' colspan='2'> {$ax['iex_create_ics']} </td></tr>\n\t\t<tr><td class='label'>{$ax['iex_file_name']}:</td><td><input type='text' name='fileName' maxlength='60' value=\"{$fileName}\" maxlength='40' size='26'> .ics</td></tr>\n\t\t<tr><td class='label'>{$ax['iex_file_description']}:</td><td><input type='text' name='fileDes' value=\"{$fileDes}\" maxlength='50' size='30'></td></tr><tr><td colspan='2'><hr>\n</td></tr><tr><td colspan='2'>{$ax['iex_filters']}</td></tr>\n\t\t<tr><td class='label'>{$ax['iex_owner']}:</td><td><select name='usrName' >\n"; userMenu($usrName); echo "</select></td></tr>\n<tr><td class='label'>{$ax['iex_category']}:</td><td><select name='catName' >\n"; catList($catName); echo "</select></td></tr>\n\t\t<tr><td class='label'>{$ax['iex_between_dates']}:</td><td>\n\t\t<input type='text' name='fromDda' id='fromDda' value='" . IDtoDD($fromDda) . "' size='8'>\n\t\t<button title=\"{$ax['iex_select_start_date']}\" onclick=\"dPicker(1,'nill','fromDda');return false;\">←</button> –\n\t\t<input type='text' name='tillDda' id='tillDda' value='" . IDtoDD($tillDda) . "' size='8'>\n\t\t<button title=\"{$ax['iex_select_end_date']}\" onclick=\"dPicker(1,'nill','tillDda');return false;\">←</button></td></tr>\n\t\t<tr><td class='label'>{$ax['iex_changed_between']}:</td><td>\n\t\t<input type='text' name='fromMda' id='fromMda' value='" . IDtoDD($fromMda) . "' size='8'>\n\t\t<button title=\"{$ax['iex_select_start_date']}\" onclick=\"dPicker(1,'nill','fromMda');return false;\">←</button> –\n\t\t<input type='text' name='tillMda' id='tillMda' value='" . IDtoDD($tillMda) . "' size='8'>\n\t\t<button title=\"{$ax['iex_select_end_date']}\" onclick=\"dPicker(1,'nill','tillMda');return false;\">←</button></td></tr>\n\t\t</table>\n\t\t<input class='noPrint' type='submit' name='create' value=\"{$ax['iex_create_file']}\">\n"; if (isset($_POST['create']) and $msg == $ax['iex_file_created']) { $icalfName = $fileName ? $fileName : $set['calendarTitle']; $icalfName = substr(translit($icalfName, true) . '.ics', 0, 60); $rName = str_replace('.', '-' . date("Ymd-Hi") . '.', $icalfName); echo " <button class='noPrint' type='button' onclick=\"location.href='dloader.php?ftd={$icalfName}&rName={$rName}'\">{$ax['iex_download_file']}</button>\n"; } echo "</form>\n<div style='clear:right'></div>\n"; }
function processFunctions() { global $ax, $compact, $backup, $restore, $events, $delEvt, $fromD, $tillD; $fName = false; if ($compact) { compactDb(); } if ($backup) { $fName = backupTables(); } if ($restore) { restoreTables(); } if ($events) { delEvents($delEvt, $fromD, $tillD); } echo "<form action='index.php?lc' method='post'>\n\t\t<input type='hidden' name='token' value='{$_SESSION['token']}'>\n\t\t<input type='hidden' name='compact' id='compact' value='{$compact}'>\n\t\t<input type='hidden' name='backup' id='backup' value='{$backup}'>\n\t\t<input type='hidden' name='restore' id='restore' value='{$restore}'>\n\t\t<input type='hidden' name='events' id='events' value='{$events}'>\n\t\t<input type='hidden' name='delEvt' id='delEvt' value='{$delEvt}'>\n\t\t<input type='hidden' name='fromD' id='fromD' value='" . IDtoDD($fromD) . "'>\n\t\t<input type='hidden' name='tillD' id='tillD' value='" . IDtoDD($tillD) . "'>\n\t\t<input class='noPrint' type='submit' name='back' value=\"{$ax['back']}\">\n"; if ($fName) { echo " <button class='noPrint' type='button' onclick=\"location.href='dloader.php?ftd={$fName}&rName={$fName}'\">{$ax['iex_download_file']}</button>\n"; } echo "</form>\n"; }
function processFunctions() { global $ax, $repair, $compact, $backup, $restore, $events, $delevt, $fromD, $tillD; echo "<table><tr><td>\n"; if ($repair) { checkDb(); } if ($compact) { compactTables(); } if ($backup) { backupTables(); } if ($restore) { restoreTables(); } if ($events) { processEvents(); } echo "</td></tr></table>\n"; echo "<form action='index.php?lc' method='post'>\n\t\t<input type='hidden' name='repair' id='repair' value='{$repair}'>\n\t\t<input type='hidden' name='compact' id='compact' value='{$compact}'>\n\t\t<input type='hidden' name='backup' id='backup' value='{$backup}'>\n\t\t<input type='hidden' name='restore' id='restore' value='{$restore}'>\n\t\t<input type='hidden' name='events' id='events' value='{$events}'>\n\t\t<input type='hidden' name='delevt' id='delevt' value='{$delevt}'>\n\t\t<input type='hidden' name='fromD' id='fromD' value='" . IDtoDD($fromD) . "'>\n\t\t<input type='hidden' name='tillD' id='tillD' value='" . IDtoDD($tillD) . "'>\n\t\t<input class='noPrint' type='submit' name='back' value=\"{$ax['back']}\">\n\t</form>\n"; }
function showUsers() { global $ax; echo "<table class='fieldBox'>\n\t\t<tr><td class='legend'> {$ax['usr_list_of_users']} </td></tr>\n"; $rSet = dbQuery("SELECT * FROM [db]users WHERE status >= 0 ORDER BY IF(user_id = 1, user_id, user_name)"); if (!$rSet) { echo "Database Error."; } else { echo "<tr><td><table class='list'>\n\t\t\t<tr><th>{$ax['usr_id']}</th><th>{$ax['usr_name']}</th><th>{$ax['usr_email']}</th><th>{$ax['usr_rights']}</th><th>{$ax['usr_login_0']}</th><th>{$ax['usr_login_1']}</th><th>{$ax['usr_login_cnt']}</th><th></th></tr>\n"; while ($row = mysql_fetch_assoc($rSet)) { $firstLoginD = $row['login_0'] != '9999-00-00' ? IDtoDD($row['login_0']) : ''; $lastLoginD = $row['login_1'] != '9999-00-00' ? IDtoDD($row['login_1']) : ''; $style = $row['color'] ? " style='background-color:{$row['color']};'" : ''; echo "<tr><td>{$row['user_id']}</td><td{$style}><b>{$row['user_name']}</b></td><td>{$row['email']}</td>"; echo '<td>'; if ($row['privs'] == 9) { echo $ax['usr_admin']; } elseif ($row['privs'] == 0) { echo $ax['none']; } elseif ($row['privs'] == 1) { echo $ax['usr_view']; } elseif ($row['privs'] == 2) { echo $ax['usr_post_own']; } elseif ($row['privs'] == 3) { echo $ax['usr_post_all']; } elseif ($row['privs'] == 4) { echo $ax['usr_manager']; } echo "</td>\n\t\t\t\t<td>{$firstLoginD}</td><td>{$lastLoginD}</td><td>{$row['login_cnt']}</td>\n\t\t\t\t<td>[<a href='index.php?lc&editUser=y&uid={$row['user_id']}'>{$ax['usr_edit']}</a>]"; if ($row['user_id'] > 2 and $row['user_id'] != $_SESSION['uid']) { echo " [<a href='index.php?lc&delExe=y&uid={$row['user_id']}'>{$ax['usr_delete']}</a>]"; } echo "</td></tr>\n"; } echo "</table>\n</td></tr>\n"; } echo "</table>\n\t\t<button class='noPrint' type='button' onclick=\"window.location.href='index.php?lc&editUser=y&uid=add'\">{$ax['usr_add']}</button>\n"; }
function showUsers() { global $ax, $privs; echo "<fieldset><legend>{$ax['usr_list_of_users']}</legend>\n"; $stH = stPrep("SELECT u.`ID`, u.`name` AS uname, u.`email`, u.`login0`, u.`login1`, u.`loginCnt`, g.`name` AS gname, g.`color` FROM `users` AS u INNER JOIN `groups` AS g ON g.`ID` = u.`groupID` WHERE u.`status` >= 0 ORDER BY CASE WHEN u.`ID` <= 2 THEN u.`ID` ELSE u.`name` END"); stExec($stH, null); echo "<table class='list'>\n\t\t<tr><th> {$ax['id']} </th><th>{$ax['usr_name']}</th><th>{$ax['usr_email']}</th><th>{$ax['usr_group']}</th><th>{$ax['usr_login_0']}</th><th>{$ax['usr_login_1']}</th><th>{$ax['usr_login_cnt']}</th><th></th></tr>\n"; while ($row = $stH->fetch(PDO::FETCH_ASSOC)) { $firstLoginD = $row['login0'] != '9999-00-00' ? IDtoDD($row['login0']) : ''; $lastLoginD = $row['login1'] != '9999-00-00' ? IDtoDD($row['login1']) : ''; $style = $row['color'] ? " style='background-color:{$row['color']};'" : ''; echo "<tr><td>{$row['ID']}</td><td><b>{$row['uname']}</b></td><td>{$row['email']}</td>"; echo "<td{$style}>{$row['gname']}</td><td>{$firstLoginD}</td><td>{$lastLoginD}</td><td>{$row['loginCnt']}</td>"; if ($privs == 9 or $row['ID'] != 2) { echo "<td>[<a href='index.php?lc&mode=edit&uid={$row['ID']}'>{$ax['usr_edit']}</a>]"; } if ($row['ID'] > 2 and $row['ID'] != $_SESSION['uid']) { echo " [<a href='index.php?lc&delExe=y&uid={$row['ID']}'>{$ax['usr_delete']}</a>]"; } echo "</td></tr>\n"; } echo "</table>\n"; echo "</fieldset>\n\t\t<button class='noPrint' type='button' onclick=\"window.location.href='index.php?lc&mode=add'\">{$ax['usr_add']}</button> \n\t\t<button class='noPrint' type='button' onclick=\"window.location.href='index.php?lc&cP=93'\">{$ax['usr_go_to_groups']}</button>\n"; }
function processEvtFields(&$sDate, &$eDate, &$sTime, &$eTime, &$title, &$catID) { global $dFormat, $tFormat; //Get calendar category ids $rSet = dbQuery("SELECT category_id FROM [db]categories WHERE status >= 0"); $catIDs = array(); if ($rSet) { while ($row = mysql_fetch_assoc($rSet)) { $catIDs[] = $row['category_id']; } } //Processing $errors = 0; $nofDates = count($sDate); for ($i = 0; $i < $nofDates; $i++) { $error = 0; if (($IsDate = DDtoID($sDate[$i], $dFormat)) === false) { $error++; } if ($eDate[$i]) { if (($IeDate = DDtoID($eDate[$i], $dFormat)) === false) { $error++; } } if ($sTime[$i]) { if (($IsTime = DTtoIT($sTime[$i], $tFormat)) === false) { $error++; } } if ($eTime[$i]) { if (($IeTime = DTtoIT($eTime[$i], $tFormat)) === false) { $error++; } } if (!$error) { if ($eDate[$i]) { if ($IsDate == $IeDate) { $eDate[$i] = ''; } elseif ($IeDate < $IsDate) { $temp = $eDate[$i]; $eDate[$i] = $sDate[$i]; $sDate[$i] = $temp; } elseif ($IeDate > $IsDate and $IsTime == "00:00" and $IeTime == "00:00") { $eDate[$i] = IDtoDD(date("Y-m-d", mktime(12, 0, 0, substr($IeDate, 5, 2), substr($IeDate, 8, 2), substr($IeDate, 0, 4)) - 86400), $dFormat); $eTime[$i] = ITtoDT("23:59", $tFormat); } } if (!$sTime[$i] and !$eTime[$i]) { $sTime[$i] = ITtoDT("00:00", $tFormat); $eTime[$i] = ITtoDT("23:59", $tFormat); } //no times: all day if (!$sTime[$i] and $eTime[$i]) { $sTime[$i] = $eTime[$i]; } if ($sTime[$i] == $eTime[$i]) { $eTime[$i] = ''; } if ($eTime[$i]) { if ($IeTime < $IsTime) { $temp = $eTime[$i]; $eTime[$i] = $sTime[$i]; $sTime[$i] = $temp; } } } $errors += $error; if (!$title[$i]) { $errors++; } //title empty if (!in_array($catID[$i], $catIDs)) { $catID[$i] = 0; } //reset non-existing category IDs } return $errors; }
<?php //sanity check if (empty($lcV)) { exit('not permitted (' . substr(basename(__FILE__), 0, -4) . ')'); } //via script only echo "<form id='event' name='event' method='post' action='index.php?lc&xP=10'>\n\t<input type='hidden' name='token' value='{$_SESSION['token']}'>\n\t<input type='hidden' name='mode' value='{$mode}'>\n\t<input type='hidden' name='eid' value='{$eid}'>\n\t<input type='hidden' name='evD' value='{$evD}'>\n\t<input type='hidden' name='oUid' value='{$oUid}'>\n\t<input type='hidden' name='chd' value='{$chd}'>\n\t<input type='hidden' name='mdt' value='{$mdt}'>\n\t<input type='hidden' name='edr' value=\"{$edr}\">\n\t<input type='hidden' name='own' value=\"{$own}\">\n"; $catColor = ($col ? "color:{$col};" : '') . ($bco ? "background-color:{$bco};" : ''); echo "<table class='evtForm'>\n<tr><td class='floatC'>\n\t<span" . ($catColor ? " style='{$catColor}'" : '') . ">{$tit}</span>\n\t</td></tr>\n\t<tr><td class='floatC'>" . ($r_t > 0 ? $xx['evt_is_repeating'] : $xx['evt_is_multiday']) . "</td></tr>\n\t<tr><td class='floatC'><br>{$xx['evt_edit_series_or_occurrence']}</td></tr>\n\t</table>\n"; echo "<div class='floatC'>\n\t<input type='submit' name='edit_nx' value=\"{$xx['evt_edit_series']}\"> \n\t<input type='submit' name='edit_1x' value=\"{$xx['evt_edit_occurrence']} (" . IDtoDD($evD) . ")\"> \n\t<button type='button' onclick='javascript:self.close();'>{$xx['evt_close']}</button>\n\t</div>\n"; echo "</form>\n";
exit('not permitted (' . substr(basename(__FILE__), 0, -4) . ')'); } //launch via script only if ($app and $apd) { //manager or admin echo "<div class='apdBar'>{$xx['evt_apd_locked']}</div>\n"; } $evtArr = array('ven' => $ven, 'cnm' => $cnm, 'des' => $desHtml, 'xf1' => $xf1Html, 'xf2' => $xf2Html); //Html: with hyperlinks $eColor = ($col or $bco) ? " style='color:{$col}; background:{$bco};'" : ''; echo "<table class='evtForm'>\n\t<tr><td>{$xx['evt_title']}:</td><td><span{$eColor}>{$tit}</span></td></tr>"; if ($pri) { echo "<tr><td colspan='2'>{$xx['evt_private']}</td></tr>\n"; } echo makeE($evtArr, $set['evtTemplGen'], 'td', "\n", '12345'); echo "<tr><td colspan='2'><hr></td></tr>\n\t<tr><td>{$xx['evt_date_time']}:</td><td>" . IDtoDD($evD); if ($ald) { echo ($eda ? " - {$eda}" : '') . " {$xx['at_time']} {$xx['evt_all_day']}"; } else { echo " {$xx['at_time']} {$sti}"; if ($eda) { echo " - {$eda}"; } if ($eti) { echo ($eda ? " {$xx['at_time']} " : ' - ') . $eti; } } echo "</td></tr>\n"; if ($r_t) { echo "<tr><td colspan='2'>{$repTxt}<br></td></tr>\n"; }
function upcoList() { //make list with upcoming events global $xx, $set, $evtList; if ($set['navUpcoList']) { echo "<div id='upcoBar'>\n<div class='barHead move' onmousedown=\"dragMe('upcoBar',event)\">{$xx['hdr_upco_list']}<span class='floatR select' onclick=\"show('upcoBar')\"> ❌ </span></div>\n"; $startD = $_SESSION['cD']; $eTime = mktime(12, 0, 0, substr($startD, 5, 2), substr($startD, 8, 2), substr($startD, 0, 4)) + ($set['lookaheadDays'] - 1) * 86400; //Unix time of end date $endD = date("Y-m-d", $eTime); retrieve($startD, $endD, 'guc'); echo '<h6 class="floatC">' . IDtoDD($startD) . ' - ' . IDtoDD($endD) . "</h6>\n"; //display events echo "<div class='barBody'>\n"; if ($evtList) { $evtDone = array(); $lastDate = ''; foreach ($evtList as $date => &$events) { foreach ($events as $evt) { if (!$evt['mde'] or !in_array($evt['eid'], $evtDone)) { //!mde or mde not processed $evtDone[] = $evt['eid']; $evtDate = $evt['mde'] ? makeD($evt['sda'], 5) . " - " . makeD($evt['eda'], 5) : makeD($date, 5); $evtTime = $evt['ald'] ? $xx['vws_all_day'] : ITtoDT($evt['sti']) . ($evt['eti'] ? ' - ' . ITtoDT($evt['eti']) : ''); $details = ($set['details4All'] == 1 or $set['details4All'] == 2 and $_SESSION['uid'] > 1 or $evt['mayE']); $onClick = $details ? " class='point' onclick=\"editE({$evt['eid']},'{$date}');\"" : " class='arrow'"; if ($set['eventColor']) { $eStyle = ($evt['cco'] ? "color:{$evt['cco']};" : '') . ($evt['cbg'] ? "background-color:{$evt['cbg']};" : ''); } else { $eStyle = $evt['uco'] ? "background-color:{$evt['uco']};" : ''; } $eStyle = $eStyle ? " style='{$eStyle}'" : ''; echo $lastDate != $evtDate ? "<h6>{$evtDate}</h6>\n" : ''; echo "<p>{$evtTime}</p><p{$onClick}{$eStyle}> {$evt['tit']}</p><br>\n"; $lastDate = $evtDate; } } } } else { echo $xx['none'] . "\n"; } echo "</div>\n</div>\n"; } }
<?php //sanity check if (!defined('LCC')) { exit('not permitted (' . substr(basename(__FILE__), 0, -4) . ')'); } //via script only echo "<form id='event' name='event' method='post' action='index.php?lc&xP=10'>\n\t<input type='hidden' name='mode' value='{$mode}'>\n\t<input type='hidden' name='eid' value='{$eid}'>\n\t<input type='hidden' name='evD' value='{$evD}'>\n\t<input type='hidden' name='oUid' value='{$oUid}'>\n\t<input type='hidden' name='chd' value='{$chd}'>\n\t<input type='hidden' name='mdt' value='{$mdt}'>\n\t<input type='hidden' name='edr' value=\"{$edr}\">\n\t<input type='hidden' name='own' value=\"{$own}\">\n"; $catColor = ($col ? "color:{$col};" : '') . ($bco ? "background-color:{$bco};" : ''); echo "<table class='evtForm'>\n<tr><td class='floatC'>\n\t<span" . ($catColor ? " style='{$catColor}'" : '') . ">{$tit}</span>\n\t</td></tr>\n\t<tr><td class='floatC'>" . ($r_t > 0 ? $xx['evt_is_repeating'] : $xx['evt_is_multiday']) . "</td></tr>\n\t<tr><td class='floatC'><br>{$xx['evt_edit_series_or_occurrence']} (" . IDtoDD($evD) . ")?</td></tr>\n\t</table>\n"; echo "<div class='floatC'>\n\t<input type='submit' name='edit_nx' value=\"{$xx['evt_edit_series']}\"> \n\t<input type='submit' name='edit_1x' value=\"{$xx['evt_edit_occurrence']}\"> \n\t<button type='button' onclick='javascript:self.close();'>{$xx['evt_close']}</button>\n\t</div>\n"; echo "</form>\n";
function processUpload() { global $ax, $curLine, $calProps, $fromD, $defcatID; $fName = $_FILES['fName']['tmp_name']; if (!$fName) { return $ax['iex_no_file_name']; } //ical file missing $fContent = file_get_contents($fName); //read file unlink($fName); $begin = strpos($fContent, 'BEGIN:VCALENDAR'); if ($begin === false) { return $ax['iex_no_begin_tag']; } //sanity check $fContent = preg_replace("#\r?\n[\\s\t]#m", "", trim(substr($fContent, $begin + 15))); //skip BEGIN and unfold lines $icsLines = preg_split("#\r?\n#", $fContent); //split into lines unset($fContent); //Get calendar categories $rset = dbQuery("SELECT category_id AS cid, name AS cnm FROM [db]categories WHERE status >= 0 ORDER BY category_id"); if ($rset) { $cats = array(); while ($row = mysql_fetch_assoc($rset)) { $cats[$row['cnm']] = $row['cid']; } } //Iterate icsLines $curLine = 1; while (isset($icsLines[$curLine])) { list($key, $value) = explode(':', $icsLines[$curLine++], 2); $key = strtoupper(trim($key)); $value = trim($value); if ($key == "BEGIN" and strtoupper($value) == "VEVENT") { //event start $event = parseEvent($icsLines); if ($event === false) { return $ax['iex_ics_file_error_on_line'] . ": " . $curLine; } //ics file error //save event data if ($event['r_t'] == 0 and (!$event['eda'] or $event['eda'] >= DDtoID($fromD)) or $event['r_t'] != 0 and (!$event['r_u'] or $event['r_u'] >= DDtoID($fromD))) { $curCat = ''; foreach ($cats as $catName => $catID) { if (strpos(strtolower($event['cat']), trim(strtolower($catName))) !== false) { $curCat = $catID; break; } } $_POST['title'][] = $event['tit']; $_POST['venue'][] = $event['ven']; $_POST['descr'][] = $event['des']; $_POST['catID'][] = $curCat ? $curCat : $defcatID; $_POST['sDate'][] = IDtoDD($event['sda']); $_POST['eDate'][] = IDtoDD($event['eda']); $_POST['sTime'][] = ITtoDT($event['sti']); $_POST['eTime'][] = ITtoDT($event['eti']); $_POST['r_t'][] = $event['r_t']; $_POST['r_i'][] = $event['r_i']; $_POST['r_p'][] = $event['r_p']; $_POST['r_m'][] = $event['r_m']; $_POST['r_u'][] = IDtoDD($event['r_u']); $_POST['delete'][] = 0; } } else { //meta data if (in_array($key, $calProps)) { $_POST[$key] = $value; //save meta data } } } return ''; //no error }
function processEvtFields(&$sDate, &$eDate, &$sTime, &$eTime, &$title, &$catID) { global $dFormat, $tFormat; //Get calendar category ids $catIDs = array(); $stH = dbQuery("SELECT `ID` FROM `categories` WHERE `status` >= 0"); if ($stH) { while ($row = $stH->fetch(PDO::FETCH_ASSOC)) { $catIDs[] = $row['ID']; } } //Processing $errors = 0; $nofDates = count($sDate); for ($i = 0; $i < $nofDates; $i++) { $error = 0; if (($IsDate = DDtoID($sDate[$i], $dFormat)) === false) { $error++; } if (($IeDate = DDtoID($eDate[$i], $dFormat)) === false) { $error++; } if (($IsTime = DTtoIT($sTime[$i], $tFormat)) === false) { $error++; } if (($IeTime = DTtoIT($eTime[$i], $tFormat)) === false) { $error++; } if (!$error) { if ($eDate[$i]) { if ($IsDate == $IeDate) { $eDate[$i] = ''; } elseif ($IeDate < $IsDate) { list($sDate[$i], $eDate[$i]) = array($eDate[$i], $sDate[$i]); //swap start and end date } elseif ($IeDate > $IsDate and !$IsTime and !$IeTime) { //all day $eDate[$i] = IDtoDD(date("Y-m-d", mktime(12, 0, 0, substr($IeDate, 5, 2), substr($IeDate, 8, 2), substr($IeDate, 0, 4)) - 86400), $dFormat); //-1 day } } if (!$sTime[$i] and $eTime[$i]) { $sTime[$i] = $eTime[$i]; } if ($sTime[$i] == $eTime[$i]) { $eTime[$i] = ''; } if ($eTime[$i]) { if ($IeTime < $IsTime) { list($sTime[$i], $eTime[$i]) = array($eTime[$i], $sTime[$i]); //swap start and end time } } } $errors += $error; if (!$title[$i]) { $errors++; } //title empty if (!in_array($catID[$i], $catIDs)) { $catID[$i] = 0; } //reset non-existing category IDs } return $errors; }
function searchText() { global $xx, $set, $schText, $eF, $catName, $fromDda, $tillDda; //set event filter $schTextEsc = '%' . mysql_real_escape_string($schText) . '%'; $schTextEsc = str_replace('&', '%', $schTextEsc); //prepare description filter $filter = ''; if ($catName != '*') { $filter .= " AND c.name = '" . mysql_real_escape_string($catName) . "'"; } $filter .= " AND ("; if (in_array(0, $eF) or in_array(1, $eF)) { $filter .= "e.title LIKE '{$schTextEsc}'"; } //Title if (in_array(0, $eF) or in_array(2, $eF)) { $filter .= (substr($filter, -1) == '(' ? '' : ' OR ') . "e.venue LIKE '{$schTextEsc}'"; } //venue if (in_array(0, $eF) or in_array(3, $eF)) { $filter .= (substr($filter, -1) == '(' ? '' : ' OR ') . "e.description LIKE '{$schTextEsc}'"; } //description if (in_array(0, $eF) or in_array(4, $eF)) { $filter .= (substr($filter, -1) == '(' ? '' : ' OR ') . "e.xfield1 LIKE '{$schTextEsc}'"; } //extra field 1 if (in_array(0, $eF) or in_array(5, $eF)) { $filter .= (substr($filter, -1) == '(' ? '' : ' OR ') . "e.xfield2 LIKE '{$schTextEsc}'"; } //extra field 2 $filter = substr($filter, 5) . ")"; //set event date range $sDate = $fromDda ? $fromDda : date('Y-m-d', time() - 31536000); //-1 year $eDate = $tillDda ? $tillDda : date('Y-m-d', time() + 31536000); //+1 year retrieve($sDate, $eDate, '', $filter); //grab events //display header $fields = ''; if (in_array(0, $eF) or in_array(1, $eF)) { $fields = ' + ' . $xx['sch_title']; } foreach (str_split($set['evtTemplGen']) as $fieldNr) { if (strpos('1345', $fieldNr) !== false) { switch ($fieldNr) { case '1': if (in_array(0, $eF) or in_array(2, $eF)) { $fields .= ' + ' . $xx['sch_venue']; } break; case '3': if (in_array(0, $eF) or in_array(3, $eF)) { $fields .= ' + ' . $xx['sch_description']; } break; case '4': if (in_array(0, $eF) or in_array(4, $eF)) { $fields .= ' + ' . ($set['xField1'] ? "{$set['xField1']}" : $xx['sch_extra_field1']); } break; case '5': if (in_array(0, $eF) or in_array(5, $eF)) { $fields .= ' + ' . ($set['xField2'] ? "{$set['xField2']}" : $xx['sch_extra_field2']); } } } } $fields = substr($fields, 3); echo "<div class='subHead'>\n\t\t<form id='event' name='event' action='index.php?lc' method='post'>\n\t\t<input type='hidden' name='schText' value=\"{$schText}\">\n"; foreach ($eF as $key => $value) { echo "<input type='hidden' name='eF[]' value=\"{$value}\">\n"; } echo "<input type='hidden' name='catName' value=\"{$catName}\">\n\t\t<input type='hidden' name='fromDda' value='" . IDtoDD($fromDda) . "'>\n\t\t<input type='hidden' name='tillDda' value='" . IDtoDD($tillDda) . "'>\n\t\t<input class='floatR noPrint' type='submit' name='newSearch' value=\"{$xx['sch_new_search']}\">\n\t\t</form>\n\t\t{$xx['sch_search_text']}: <b>{$schText}</b><br>\n\t\t{$xx['sch_event_fields']}: <b>{$fields}</b><br>\n\t\t{$xx['sch_event_cat']}: <b>" . ($catName != '*' ? $catName : $xx['sch_all_cats']) . "</b><br>\n\t\t{$xx['sch_occurring_between']}: <b>" . makeD($sDate, 2) . " - " . makeD($eDate, 2) . "</b>\n\t\t</div>\n"; }
echo "<div class='navBar noPrint'>\n"; if ($privs > 0) { //view rights echo "<div class='floatR'>\n"; if ($privs > 1) { //post rights echo "<button type='button' title=\"{$xx['hdr_add_event']}\" onclick=\"newE();\"> + </button>\n"; } if ($_SESSION['uid'] == 1) { //public user echo "<button type='button' onclick=\"login()\">{$xx['hdr_button_log_in']}</button>\n"; } else { //known user echo "<button type='button' onclick=\"logout()\">{$xx['hdr_button_log_out']}</button>\n"; } echo "</div>\n"; if ($set['backLinkUrl']) { echo "<button type='button' title=\"{$xx['hdr_button_back']}\" onclick=\"window.location.href='{$set['backLinkUrl']}';\">{$xx['back']}</button>\n"; } echo "<button type='button' title=\"{$xx['hdr_options_panel']}\" onclick=\"toggleLabel(this,'{$xx['hdr_button_options']}','{$xx['done']}'); show('optPanel','optMenu')\">{$xx['hdr_button_options']}</button>\n"; echo "<form class='inline' method='post' id='gotoD' name='gotoD' action='index.php?lc'>\n\t\t<input style='width:62px;' type='text' name='nD' id='nD' value='" . IDtoDD($_SESSION['cD']) . "'>\n\t\t<button type='button' title=\"{$xx['hdr_select_date']}\" onclick=\"dPicker(0,'gotoD','nD');return false;\">←</button>\n\t</form>\n"; //make options panel echo "<div id='optPanel'>\n\t\t<h4 class='floatC'>{$xx['hdr_options_submit']}</h4>\n\t\t<form name='optMenu' method='post' action='index.php?lc'>\n\t\t<table class='options'>\n\t\t<tr>\n<th title=\"{$xx['hdr_select_view']}\">{$xx['hdr_view']}</th>\n</tr>\n\t\t<tr>\n\t\t<td><div class='optList'>\n\t\t<input type='checkbox' id='cP1' name='cP' value='1' onclick=\"check1('cP',this);\"" . ($cP == "1" ? " checked='checked'" : '') . "><label for='cP1'>{$xx['hdr_year']}</label><br>\n\t\t<input type='checkbox' id='cP2' name='cP' value='2' onclick=\"check1('cP',this);\"" . ($cP == "2" ? " checked='checked'" : '') . "><label for='cP2'>{$xx['hdr_month_full']}</label><br>\n\t\t<input type='checkbox' id='cP3' name='cP' value='3' onclick=\"check1('cP',this);\"" . ($cP == "3" ? " checked='checked'" : '') . "><label for='cP3'>{$xx['hdr_month_work']}</label><br>\n\t\t<input type='checkbox' id='cP4' name='cP' value='4' onclick=\"check1('cP',this);\"" . ($cP == "4" ? " checked='checked'" : '') . "><label for='cP4'>{$xx['hdr_week_full']}</label><br>\n\t\t<input type='checkbox' id='cP5' name='cP' value='5' onclick=\"check1('cP',this);\"" . ($cP == "5" ? " checked='checked'" : '') . "><label for='cP5'>{$xx['hdr_week_work']}</label><br>\n\t\t<input type='checkbox' id='cP6' name='cP' value='6' onclick=\"check1('cP',this);\"" . ($cP == "6" ? " checked='checked'" : '') . "><label for='cP6'>{$xx['hdr_day']}</label><br>\n\t\t<input type='checkbox' id='cP7' name='cP' value='7' onclick=\"check1('cP',this);\"" . ($cP == "7" ? " checked='checked'" : '') . "><label for='cP7'>{$xx['hdr_upcoming']}</label><br>\n\t\t<input type='checkbox' id='cP8' name='cP' value='8' onclick=\"check1('cP',this);\"" . ($cP == "8" ? " checked='checked'" : '') . "><label for='cP8'>{$xx['hdr_changes']}</label>\n\t\t</div></td>\n\t\t</tr>\n\t\t</table>\n\t\t</form>\n\t\t</div>\n"; } else { //display dummy navbar echo " <div class=\"floatR\">\n\t\t<button type='button' onclick=\"login()\">{$xx['hdr_button_log_in']}</button>\n\t\t</div>\n"; } echo "</div>\n<div class=\"content\">\n"; if ($pageTitle) { echo "<br><h3 class='pageTitle'>{$pageTitle}</h3>\n"; }