xx{$evt['tit']}", "{$evt['tit']}", $evt['una'], $age, "
", ""]; //html code return str_replace($keys,$html,$head); } } //display todo list function if (!function_exists('displayTD')) { function displayTD(&$evtList) { global $evtList, $set, $xx, $sbEvtHead, $sbCalUrl, $rxULink; foreach($evtList as $date => &$events) { echo "
".makeD($date,5)."
\n"; foreach ($events as $evt) { $evtTime = ($evt['ald'] ? $xx['vws_all_day'] : ITtoDT($evt['sti'])).($evt['eti'] ? ' - '.ITtoDT($evt['eti']) : ''); if ($set['popFieldsSbar']) { $fields = '123678'.($set['xField1Rights'] == 1 ? '4' : '').($set['xField2Rights'] == 1 ? '5' : ''); //exclude xFields $popText = makeE($evt,$set['popFieldsSbar'],'br',"
",$fields); $popText = htmlspecialchars(addslashes($popText),ENT_QUOTES); $popClass = ($evt['mde'] or $evt['r_t']) ? 'ssb_repeat' : 'ssb_normal'; $popAttr = " onmouseover='pop(this,`{$popText}`,`{$popClass}`,50)' onclick='pop(this,`{$popText}`,`{$popClass}`,50)'"; } else { $popAttr = ''; } $eHead = makeEvtHead($sbEvtHead,$evt,$date); //make event head if (!empty($sbCalUrl)) { $jumpD = (strpos($sbCalUrl,'?') ? '&' : '?')."cD={$evt['sda']}"; $eHead = "{$eHead}"; } $chBox = ''; if ($evt['cbx']) { $chBox .= cMark($evt,$date) ? $evt['cmk'] : '☐'; $cBoxAtt = $set['evtTemplGen'] ? "class='ssb_chkBox ssb_floatL ssb_point' onclick='checkE(this,{$evt['eid']},`{$date}`);'" : "class='ssb_chkBox ssb_floatL ssb_arrow'"; $chBox = "{$chBox}"; } echo "
\n"; echo "
{$evtTime}
\n{$chBox}\n"; echo "
{$eHead}
\n"; echo "
\n"; } } } } //display upcoming events function if (!function_exists('displayUE')) { function displayUE(&$evtList) { global $evtList, $set, $xx, $sbEvtHead, $sbRec1x, $sbMaxNbr, $sbCalUrl, $sbFutEvts, $rxULink; $evtDone = []; $lastDate = ''; $now = date('Y-m-dH:i'); foreach($evtList as $date => &$events) { foreach ($events as $evt) { if ($sbFutEvts and $evt['eti'] and $date.$evt['eti'] < $now) { continue; } //future events only if (($evt['mde'] or ($evt['r_t'] and $sbRec1x)) and in_array($evt['eid'],$evtDone)) { continue; } //mde or recurring event already 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']) : ''); if ($set['popFieldsSbar']) { $fields = '1238'.($set['xField1Rights'] == 1 ? '4' : '').($set['xField2Rights'] == 1 ? '5' : ''); //exclude xField 1 $popText = makeE($evt,$set['popFieldsSbar'],'br',"
",$fields); $popText = htmlspecialchars(addslashes($popText),ENT_QUOTES); $popClass = ($evt['mde'] or $evt['r_t']) ? 'ssb_repeat' : 'ssb_normal'; $popAttr = " onmouseover='pop(this,`{$popText}`,`{$popClass}`,50)' onclick='pop(this,`{$popText}`,`{$popClass}`,50)'"; } else { $popAttr = ''; } $eHead = makeEvtHead($sbEvtHead,$evt,$date); //make event head if (!empty($sbCalUrl)) { $jumpD = (strpos($sbCalUrl,'?') ? '&' : '?')."cD={$evt['sda']}"; $eHead = "{$eHead}"; } if ($lastDate != $evtDate) { echo "
{$evtDate}
\n"; $lastDate = $evtDate; } echo "
\n"; echo "
{$evtTime}
\n"; echo "
{$eHead}
\n"; echo "
\n"; if ($set['showLinkInSB'] and preg_match_all($rxULink,$evt['tx1'], $urls, PREG_SET_ORDER)) { //display URL links echo "
"; foreach ($urls as $url) { echo "{$url[0]}
"; } echo "
\n"; } if (--$sbMaxNbr < 1) { break 2; } } } } } //save and set cwd $cwd = getcwd(); chdir(__DIR__); //get config data if (file_exists('./lcconfig.php')) { require './lcconfig.php'; } else { exit('No config data!'); } require_once './common/toolbox.php'; //load tools require_once './common/toolboxd.php'; //database tools $calID = $sbCal ?? $dbDef; //select calendar $dbH = dbConnect($calID); //connect to database if (!isset($set)) { $set = getSettings(); } //get settings from db date_default_timezone_set($set['timeZone']); //set time zone require_once './lang/ui-'.strtolower($set['language']).'.php'; //set language require_once './common/retrieve.php';//get retrieve function //process external params if (empty($sbContent)) { $sbContent = 'upco'; } if (empty($sbClass)) { $sbClass = 'sideBar'; } if (empty($sbHeader)) { $sbHeader = $xx['ssb_upco_events']; } if (empty($sbEvtHead)) { $sbEvtHead = '#c| (#a)|'; } if (empty($sbMaxNbr)) { $sbMaxNbr = 1000; } if (empty($sbRec1x)) { $sbRec1x = 0; } if (empty($sbFutEvts)) { $sbFutEvts = 0; } $usr['vCats'] = $usr['eCats'] = $sbCats ?? 0; //categories to show $sbFilter = ($sbContent == 'todo') ? ' AND c.`checkBx` = 1' : ''; if (!empty($sbGroups)) { $sbFilter .= " AND g.`ID` IN ({$sbGroups})"; } if (!empty($sbUsersIn)) { $sbFilter .= " AND e.`userID` IN ({$sbUsersIn})"; } elseif (!empty($sbUsersEx)) { $sbFilter .= " AND e.`userID` NOT IN ({$sbUsersEx})"; } if ($sbFilter) { $sbFilter = substr($sbFilter,5); } $sbsTime = time(); if (!empty($sbWeekDay) and $sbWeekDay >= 0 and $sbWeekDay < 7) { //show event on the specified weekday $sbTodayWD = date('w', $sbsTime); //weekday (0: Su - 6: Sa) $sbsTime = $sbsTime + ((($sbWeekDay-$sbTodayWD+7)%7) * 86400); $sbUpDays = 1; } else { $sbUpDays = empty($sbUpDays) ? $set['sideBarDays'] : intval($sbUpDays); } $sbsDate = $sbContent == 'todo' ? date("Y-m-d",$sbsTime - (30 * 86400)) : date("Y-m-d",$sbsTime); // if ToDo start 30 days back $sbeDate = date("Y-m-d",$sbsTime + (($sbUpDays-1) * 86400)); //display sidebar echo "
{$sbHeader}
"; retrieve($sbsDate,$sbeDate,'',$sbFilter); if ($evtList) { //display upcoming events if ($sbContent == 'todo') { displayTD($evtList); } else { displayUE($evtList); } } else { echo $xx['ssb_none']."\n"; } echo "
\n
\n
\n"; foreach (array_keys($GLOBALS) as $k) { if (substr($k,0,2) == 'sb') unset($$k); } //unset ext params unset($k); chdir($cwd); //restore cwd ?>