function date_to_str($indate, $format = "", $show_weekday = true, $short_months = false, $server_time = "") { global $DATE_FORMAT, $TZ_OFFSET; if (strlen($indate) == 0) { $indate = date("Ymd"); } $newdate = $indate; if (!empty($server_time)) { $y = substr($indate, 0, 4); $m = substr($indate, 4, 2); $d = substr($indate, 6, 2); if ($server_time + $TZ_OFFSET * 10000 > 240000) { $newdate = date("Ymd", mktime(3, 0, 0, $m, $d + 1, $y)); } else { if ($server_time + $TZ_OFFSET * 10000 < 0) { $newdate = date("Ymd", mktime(3, 0, 0, $m, $d - 1, $y)); } } } // if they have not set a preference yet... if ($DATE_FORMAT == "") { $DATE_FORMAT = "__month__ __dd__, __yyyy__"; } if (empty($format)) { $format = $DATE_FORMAT; } $y = (int) ($newdate / 10000); $m = (int) ($newdate / 100) % 100; $d = $newdate % 100; $date = mktime(3, 0, 0, $m, $d, $y); $wday = strftime("%w", $date); if ($short_months) { $weekday = weekday_short_name($wday); $month = month_short_name($m - 1); } else { $weekday = weekday_name($wday); $month = month_name($m - 1); } $yyyy = $y; $yy = sprintf("%02d", $y %= 100); $ret = $format; $ret = str_replace("__yyyy__", $yyyy, $ret); $ret = str_replace("__yy__", $yy, $ret); $ret = str_replace("__month__", $month, $ret); $ret = str_replace("__mon__", $month, $ret); $ret = str_replace("__dd__", $d, $ret); $ret = str_replace("__mm__", $m, $ret); if ($show_weekday) { return "{$weekday}, {$ret}"; } else { return $ret; } }
$body .= ' <tr> <th class="row" style="width:' . $tdw . '%;">' . $tempfullname . '</th>'; for ($date = $wkstart; $date < $wkend; $date += 86400) { $is_weekend = is_weekend($date); if ($is_weekend && $DISPLAY_WEEKENDS == 'N') { continue; } $dateYmd = date('Ymd', $date); $entryStr = print_date_entries($dateYmd, $user, true); $class = ($dateYmd == $todayYmd ? ' class="today"' : (!empty($entryStr) && $entryStr != ' ' ? ' class="hasevents"' : ($is_weekend ? ' class="weekend"' : ''))) . ' style="width:' . $tdw . '%;">'; // . // Build header row. if ($i == 0) { $header .= ' <th' . $class . weekday_name(date('w', $date), $DISPLAY_LONG_DAYS) . ' ' . date('d', $date) . '</th>'; } $body .= ' <td' . $class . (empty($ADD_LINK_IN_VIEWS) || $ADD_LINK_IN_VIEWS != 'N' ? html_for_add_icon($dateYmd, '', '', $user) . "\n" : '') . $entryStr . ' </td>'; } $body .= ' </tr>'; } // . // Output all. echo $header . ' </tr>' . $body . ' </table>'; } // .
} $tmp = $prad ? $s['DATE_FORMAT_MD'] : $prefarray['DATE_FORMAT_MD']; for ($i = 0, $cnt = count($datestyles_md); $i < $cnt; $i++) { $datestyle_md .= $option . $datestyles_md[$i] . '"' . ($tmp == $datestyles_md[$i] ? $selected : '') . '>' . $datestyles_md[++$i] . '</option>'; } $tmp = $prad ? $s['DATE_FORMAT_TASK'] : $prefarray['DATE_FORMAT_TASK']; for ($i = 0, $cnt = count($datestyles_task); $i < $cnt; $i++) { $datestyle_tk .= $option . $datestyles_task[$i] . '"' . ($tmp == $datestyles_task[$i] ? $selected : '') . '>' . $datestyles_task[++$i] . '</option>'; } $tmp_wk = $prad ? $s['WEEK_START'] : $prefarray['WEEK_START']; $tmp_en = $prad ? $s['WEEKEND_START'] : $prefarray['WEEKEND_START']; for ($i = 0; $i < 7; $i++) { $start_wk_on .= $option . "{$i}\"" . ($i == $tmp_wk ? $selected : '') . '>' . weekday_name($i) . '</option>'; $j = $i == 0 ? 6 : $i - 1; // Make sure to start with Saturday. $start_wkend_on .= $option . "{$j}\"" . ($j == $tmp_en ? $selected : '') . '>' . weekday_name($j) . '</option>'; } $tmp_st = $prad ? $s['WORK_DAY_START_HOUR'] : $prefarray['WORK_DAY_START_HOUR']; $tmp_en = $prad ? $s['WORK_DAY_END_HOUR'] : $prefarray['WORK_DAY_END_HOUR']; for ($i = 0; $i < 24; $i++) { $tmp = display_time($i * 10000, 1); $work_hr_start .= $option . "{$i}\"" . ($i == $tmp_st ? $selected : '') . '>' . $tmp . '</option>'; $work_hr_end .= $option . "{$i}\"" . ($i == $tmp_en ? $selected : '') . '>' . $tmp . '</option>'; } $tmp = $prad ? $s['STARTVIEW'] : $prefarray['STARTVIEW']; for ($i = 0, $cnt = count($choices); $i < $cnt; $i++) { $prefer_vu .= $option . $choices[$i] . '"' . ($tmp == $choices[$i] ? $selected : '') . '>' . htmlspecialchars($choices_text[$i]) . '</option>'; } // Allow user to select a view also. $tmp = $prad ? $s['STARTVIEW'] : $prefarray['STARTVIEW']; for ($i = 0, $cnt = count($views); $i < $cnt; $i++) {
</select> </td></tr> <tr><td class="tooltip" title="<?php etooltip('display-weekend-starts-on'); ?> "> <?php etranslate('Weekend starts on'); ?> :</td><td> <select name="pref_WEEKEND_START" id="pref_WEEKEND_START"> <?php for ($i = -1; $i < 6; $i++) { $j = $i == -1 ? 6 : $i; //make sure start with Saturday echo "<option value=\"{$j}\"" . ($j == $prefarray['WEEKEND_START'] ? $selected : '') . '>' . weekday_name($j) . "</option>\n"; } ?> </select> </td></tr> <tr><td class="tooltip" title="<?php etooltip('work-hours-help'); ?> "> <?php etranslate('Work hours'); ?> :</td><td> <label for="pref_starthr"><?php etranslate('From'); ?>
<a title="<?php etranslate("Next"); ?> " class="next" href="view_d.php?id= <?php echo $id . "&date=" . $nextdate; ?> "><img src="rightarrow.gif" class="prevnext" alt="<?php etranslate("Next"); ?> " /></a> <div class="title"> <span class="date"><?php printf("%s, %s %d, %d", weekday_name($wday), month_name($thismonth - 1), $thisday, $thisyear); ?> </span><br /> <span class="viewname"><?php echo $view_name; ?> </span> </div></div> <?php daily_matrix($date, $participants); ?> <br /> <!-- Hidden form for booking events --> <form action="edit_entry.php" method="post" name="schedule">
/* Pre-load the non-repeating events for quicker access subtracting ONE_WEEK to allow cross-day events to display*/ $events = read_events($viewusers[$i], $wkstart - 604800, $wkend); $e_save = array_merge($e_save, $events); } $events = $e_save; $repeated_events = $re_save; $timeBarHeader = print_header_timebar(); echo ' <table class="main">'; for ($date = $wkstart; $date <= $wkend; $date += 86400) { $dateYmd = date('Ymd', $date); $is_weekend = is_weekend($date); if ($is_weekend && $DISPLAY_WEEKENDS == 'N') { continue; } echo ' <tr' . ($dateYmd == date('Ymd', $today) ? '> <th class="today">' : ($is_weekend ? ' class="weekend"> <th class="weekend">' : '> <th class="row">')) . (empty($ADD_LINK_IN_VIEWS) || $ADD_LINK_IN_VIEWS != 'N' ? html_for_add_icon($dateYmd, '', '', $user) : '') . weekday_name(date('w', $date), $DISPLAY_LONG_DAYS) . ' ' . date('d', $date) . '</th> <td class="timebar">' . $timeBarHeader . print_date_entries_timebar($dateYmd, $login, true) . ' </table> </td> </tr>'; } $user = ''; // reset ob_end_flush(); echo ' </table>' . (empty($eventinfo) ? '' : $eventinfo) . $printerStr . print_trailer();
$rep_str .= translate("2nd"); break; case 3: $rep_str .= translate("3rd"); break; case 4: $rep_str .= translate("4th"); break; case 5: $rep_str .= translate("5th"); break; } if ($cal_type == 'monthlyByDayR') { $rep_str .= " " . translate("last"); } $rep_str .= ' ' . weekday_name($thisdow); break; case "monthlyByDate": $rep_str .= translate("Month") . "/" . translate("by date"); break; case "yearly": $rep_str .= translate("Year"); break; } $rep_str .= ")"; } else { $rep_str = ""; } dbi_free_result($res); } /* calculate end time */
} elseif (empty($month)) { echo str_replace('XXX', translate('month'), $noXStr); exit; } elseif (empty($day)) { echo str_replace('XXX', translate('day'), $noXStr); exit; } print_header(array('js/availability.php/false/' . "{$month}/{$day}/{$year}/" . getGetValue('form')), '', 'onload="focus();"', true, false, true); $next_url = $prev_url = '?users=' . $users; $time = mktime(0, 0, 0, $month, $day, $year); $date = date('Ymd', $time); $next_url .= strftime('&year=%Y&month=%m&day=%d', $time + 86400); $prev_url .= strftime('&year=%Y&month=%m&day=%d', $time - 86400); $span = ($WORK_DAY_END_HOUR - $WORK_DAY_START_HOUR) * 3 + 1; $users = explode(',', $users); $nextStr = translate('Next'); $prevStr = translate('Previous'); echo ' <div style="width:99%;"> <a title="' . $prevStr . '" class="prev" href="' . $prev_url . '"><img src="images/leftarrow.gif" class="prev" alt="' . $prevStr . '" /></a> <a title="' . $nextStr . '" class="next" href="' . $next_url . '"><img src="images/rightarrow.gif" class="next" alt="' . $nextStr . '" /></a> <div class="title"> <span class="date">'; printf("%s, %s %d, %d", weekday_name(strftime("%w", $time)), month_name($month - 1), $day, $year); echo '</span><br /> </div> </div><br /> <form action="availability.php" method="post"> ' . daily_matrix($date, $users) . ' </form> ' . print_trailer(false, true, true);
function display_small_month($thismonth, $thisyear, $showyear, $show_weeknums = false, $minical_id = '', $month_link = 'month.php?') { global $boldDays, $caturl, $DATE_FORMAT_MY, $DISPLAY_ALL_DAYS_IN_MONTH, $DISPLAY_TASKS, $DISPLAY_WEEKNUMBER, $get_unapproved, $login, $MINI_TARGET, $SCRIPT, $SHOW_EMPTY_WEEKENDS, $thisday, $today, $use_http_auth, $user, $WEEK_START; $nextStr = translate('Next'); $prevStr = translate('Previous'); $u_url = $user != $login && !empty($user) ? 'user='******'&' : ''; $weekStr = translate('Week'); // Start the minical table for each month. $ret = ' <table class="minical"' . ($minical_id != '' ? ' id="' . $minical_id . '"' : '') . '>'; $monthstart = date('Ymd', mktime(0, 0, 0, $thismonth, 1, $thisyear)); $monthend = date('Ymd', mktime(0, 0, 0, $thismonth + 1, 0, $thisyear)); // Determine if the week starts on Sunday or Monday. // TODO: We need to be able to start a week on ANY day. $wkstart = get_weekday_before($thisyear, $thismonth); if ($SCRIPT == 'day.php') { $month_ago = date('Ymd', mktime(0, 0, 0, $thismonth - 1, 1, $thisyear)); $month_ahead = date('Ymd', mktime(0, 0, 0, $thismonth + 1, 1, $thisyear)); $ret .= '<caption>' . $thisday . '</caption> <thead> <tr class="monthnav"> <th colspan="' . ($DISPLAY_WEEKNUMBER == true ? 8 : 7) . '"> <a title="' . $prevStr . '" class="prev" href="day.php?' . $u_url . 'date=' . $month_ago . $caturl . '"><img src="images/leftarrowsmall.gif" alt="' . $prevStr . '" /></a> <a title="' . $nextStr . '" class="next" href="day.php?' . $u_url . 'date=' . $month_ahead . $caturl . '"><img src="images/rightarrowsmall.gif" alt="' . $nextStr . '" /></a>' . date_to_str(sprintf("%04d%02d%02d", $thisyear, $thismonth, 1), $showyear != '' ? $DATE_FORMAT_MY : '__month__', false) . ' </th> </tr>'; } elseif ($SCRIPT == 'minical.php') { $month_ago = date('Ymd', mktime(0, 0, 0, $thismonth - 1, $thisday, $thisyear)); $month_ahead = date('Ymd', mktime(0, 0, 0, $thismonth + 1, $thisday, $thisyear)); $ret .= ' <thead> <tr class="monthnav"> <th colspan="7"> <a title="' . $prevStr . '" class="prev" href="minical.php?' . $u_url . 'date=' . $month_ago . '"><img src="images/leftarrowsmall.gif" alt="' . $prevStr . '" /></a> <a title="' . $nextStr . '" class="next" href="minical.php?' . $u_url . 'date=' . $month_ahead . '"><img src="images/rightarrowsmall.gif" alt="' . $nextStr . '" /></a>' . date_to_str(sprintf("%04d%02d%02d", $thisyear, $thismonth, 1), $showyear != '' ? $DATE_FORMAT_MY : '__month__', false) . ' </th> </tr>'; } else { // Not day or minical script. Print the month name. $ret .= ' <caption><a href="' . $month_link . $u_url . 'year=' . $thisyear . '&month=' . $thismonth . '">' . date_to_str(sprintf("%04d%02d%02d", $thisyear, $thismonth, 1), $showyear != '' ? $DATE_FORMAT_MY : '__month__', false) . '</a></caption> <thead>'; } $ret .= ' <tr>' . ($show_weeknums && $DISPLAY_WEEKNUMBER == 'Y' ? ' <th class="empty"> </th>' : ''); for ($i = 0; $i < 7; $i++) { $thday = ($i + $WEEK_START) % 7; $ret .= ' <th' . (is_weekend($thday) ? ' class="weekend"' : '') . '>' . weekday_name($thday, 'D') . '</th>'; } // End the header row. $ret .= ' </tr> </thead> <tbody>'; for ($i = $wkstart; date('Ymd', $i) <= $monthend; $i += 604800) { $tmp = $i + 172800; // 48 hours. $ret .= ' <tr>' . ($show_weeknums && $DISPLAY_WEEKNUMBER == 'Y' ? ' <td><a class="weeknumber" ' . 'title="' . $weekStr . ' ' . date('W', $i + 86400) . '" ' . 'href="week.php?' . $u_url . 'date=' . date('Ymd', $tmp) . '">(' . date('W', $tmp) . ')</a></td>' : ''); for ($j = 0; $j < 7; $j++) { // Add 12 hours just so we don't have DST problems. $date = $i + ($j * 86400 + 43200); $dateYmd = date('Ymd', $date); $hasEvents = false; $title = ''; $ret .= ' <td'; if ($boldDays) { $ev = get_entries($dateYmd, $get_unapproved, true, true); if (count($ev) > 0) { $hasEvents = true; $title = $ev[0]->getName(); } else { $rep = get_repeating_entries($user, $dateYmd, $get_unapproved); if (count($rep) > 0) { $hasEvents = true; $title = $rep[0]->getName(); } } } if ($dateYmd >= $monthstart && $dateYmd <= $monthend || !empty($DISPLAY_ALL_DAYS_IN_MONTH) && $DISPLAY_ALL_DAYS_IN_MONTH == 'Y') { $class = (is_weekend($date) ? 'weekend' : '') . ($dateYmd == $thisyear . $thismonth . $thisday && $SCRIPT == 'day.php' ? ' selectedday' : '') . ($hasEvents ? ' hasevents' : ''); $ret .= ($class != '' ? ' class="' . $class . '"' : '') . ($dateYmd == date('Ymd', $today) ? ' id="today"' : '') . '><a href="'; if ($SCRIPT == 'minical.php') { $ret .= ($use_http_auth ? 'day.php?user='******'nulogin.php?login='******'&return_path=day.php') . '&date=' . $dateYmd . '"' . (empty($MINI_TARGET) ? '' : ' target="' . $MINI_TARGET . '"') . (empty($title) ? '' : ' title="' . $title . '"'); } else { $ret .= 'day.php?' . $u_url . 'date=' . $dateYmd . '"'; } $ret .= '>' . date('j', $date) . '</a></td>'; } else { $ret .= ' class="empty' . (!empty($SHOW_EMPTY_WEEKENDS) && is_weekend($date) ? ' weekend' : '') . '"> </td>'; } } // end for $j $ret .= ' </tr>'; } // end for $i return $ret . ' </tbody> </table>'; }
$wkend = $wkstart + 86400 * 6; $startdate = date('Ymd', $wkstart); $enddate = date('Ymd', $wkend); /* Pre-Load the repeated events for quckier access */ $repeated_events = read_repeated_events($login, $startdate, $enddate, ''); /* Pre-load the non-repeating events for quicker access */ $events = read_events($login, $startdate, $enddate); $first_hour = $WORK_DAY_START_HOUR; $last_hour = $WORK_DAY_END_HOUR; $untimed_found = false; $tmpOut1 = $tmpOut2 = ''; for ($i = 0; $i < 7; $i++) { $days[$i] = $wkstart + 86400 * $i; $date = date('Ymd', $days[$i]); $tmpOut1 .= ' <th style="width: 13%; background: ' . (date('Ymd', $days[$i]) == date('Ymd', $today) ? $TODAYCELLBG : $THBG) . ';">' . weekday_name(($i + $WEEK_START) % 7, $DISPLAY_LONG_DAYS) . '<br />' . month_name(date('m', $days[$i]) - 1, 'M') . ' ' . date('d', $days[$i]) . '</th>'; $tmpOut2 .= ' <td style="vertical-align: top; width: 75px; height: 75px; ' . 'background: ' . ($date == date('Ymd') ? $TODAYCELLBG : $CELLBG) . print_date_entries($date, $login, true, true) . ' </td>'; } echo ' <table width="100%"> <tr> <td style="background: ' . $TABLEBG . ';"> <table style="border: 0; width: 100%;" cellspacing="1" cellpadding="2"> <tr>' . $tmpOut1 . ' </tr> <tr>' . $tmpOut2 . ' </tr> </table> </td> </tr>
$thismonth = date('m'); } $href = 'href="datesel.php?form=' . $form . '&fday=' . $fday . '&fmonth=' . $fmonth . '&fyear=' . $fyear . '&date='; $nextdate = $href . date('Ym01"', mktime(0, 0, 0, $thismonth + 1, 1, $thisyear)); $nextStr = translate('Next'); $prevdate = $href . date('Ym01"', mktime(0, 0, 0, $thismonth - 1, 1, $thisyear)); $previousStr = translate('Previous'); $monthStr = month_name($thismonth - 1); $wkstart = get_weekday_before($thisyear, $thismonth); $monthstartYmd = date('Ymd', mktime(0, 0, 0, $thismonth, 1, $thisyear)); $monthendYmd = date('Ymd', mktime(23, 59, 59, $thismonth + 1, 0, $thisyear)); print_header('', '', '', true, false, true, true, true); //build weekday names $wkdys = ''; for ($i = 0; $i < 7; $i++) { $wkdys .= '<td>' . weekday_name(($i + $WEEK_START) % 7, 'D') . '</td>'; } //build month grid $mdays = ''; for ($i = $wkstart; date('Ymd', $i) <= $monthendYmd; $i += 604800) { $mdays .= ' <tr>'; for ($j = 0; $j < 7; $j++) { $date = $i + $j * 86400 + 43200; $dateYmd = date('Ymd', $date); $mdays .= ' <td' . ($dateYmd >= $monthstartYmd && $dateYmd <= $monthendYmd || $DISPLAY_ALL_DAYS_IN_MONTH == 'Y' ? ' class="field"><a href="javascript:sendDate(\'' . $dateYmd . '\')">' . date('j', $date) . '</a>' : '>') . '</td>'; } $mdays .= ' </tr>'; }
$evEnd = $wkend; } /* Pre-Load the repeated events for quickier access. */ $repeated_events = read_repeated_events(strlen($user) ? $user : $login, $evStart, $evEnd, $cat_id); /* Pre-load the non-repeating events for quicker access. */ // Start the search ONE_WEEK early to account for cross-day events. $events = read_events(strlen($user) ? $user : $login, $evStart - 604800, $evEnd, $cat_id); if (empty($DISPLAY_TASKS_IN_GRID) || $DISPLAY_TASKS_IN_GRID == 'Y') { /* Pre-load tasks for quicker access. */ $tasks = read_tasks(!empty($user) && strlen($user) && $is_assistant ? $user : $login, $wkend, $cat_id); } $eventsStr = $filler = $headerStr = $minical_tasks = $untimedStr = ''; $navStr = display_navigation('week'); for ($i = $start_ind; $i <= $end_ind; $i++) { $days[$i] = $wkstart + 86400 * $i + 43200; $weekdays[$i] = weekday_name(($i + $WEEK_START) % 7, $DISPLAY_LONG_DAYS); $dateYmd = date('Ymd', $days[$i]); $header[$i] = $weekdays[$i] . '<br />' . date_to_str($dateYmd, $DATE_FORMAT_MD, false, true); // . // Generate header row. $class = $dateYmd == date('Ymd', $today) ? ' class="today"' : (is_weekend($days[$i]) ? ' class="weekend"' : ''); $headerStr .= ' <th ' . $class . '>' . ($can_add ? html_for_add_icon($dateYmd, '', '', $user) : '') . '<p style="margin:.75em 0 0 0"><a href="day.php?' . $u_url . 'date=' . $dateYmd . $caturl . '">' . $header[$i] . '</a></p></th>'; $date = date('Ymd', $days[$i]); $hour_arr = $rowspan_arr = $tk = array(); // . // Get, combine and sort, static and repeating events for this date. $ev = combine_and_sort_events(get_entries($date, $get_unapproved), get_repeating_entries($user, $date)); // . // Then sort in any tasks due for this day and before. $ev = combine_and_sort_events($ev, $date >= date('Ymd') ? get_tasks($date, $get_unapproved) : $tk);
etranslate("Previous"); ?> " /></a> <a title="<?php etranslate("Next"); ?> " class="next" href="<?php echo $next_url; ?> "><img src="rightarrow.gif" class="prevnext" alt="<?php etranslate("Next"); ?> " /></a> <div class="title"> <span class="date"><?php printf("%s, %s %d, %d", weekday_name($wday), month_name($month - 1), $day, $year); ?> </span><br /> </div></div> <br /> <form action="availability.php" method="post"> <?php daily_matrix($date, $users); ?> </form> <?php print_trailer(false, true, true); ?>
<?php // month_widget.php // Displays the Month View // Setup the weekday index array values $wdays_ind = array(); $wdays_ind = weekday_index_array(WEEK_START); // Build the wdays string using the weekday_short_name function. $wdays = array(); foreach ($wdays_ind as $index) { $wdays[] = weekday_name($index); } reset($wdays_ind); // Find the beginning of the Week yyyy-mm-dd if (WEEK_START == 1) { // Starts on Monday $week_day_start = monday_before_date($_REQUEST['date']); } else { // Starts on Sunday $week_day_start = sunday_before_date($_REQUEST['date']); } // Define the 7 dates of the Week yyyy-mm-dd $week_dates = array(); for ($i = 0; $i <= 6; $i++) { $week_dates[] = add_delta_ymd($week_day_start, 0, 0, $i); } // Define Previous and Next Week Dates $previous_week_date = add_delta_ymd($_REQUEST['date'], 0, 0, -7); $next_week_date = add_delta_ymd($_REQUEST['date'], 0, 0, 7); // Define the $event_data object. $event_data = get_week_view_event_data(SELECTED_DATE, $_REQUEST['loc']);
$user = $viewusers[$i]; user_load_variables($user, 'temp'); echo ' <th style="width:' . $tdw . '%;">' . $tempfullname . '</th>'; } //end for echo ' </tr>'; for ($date = $startdate; $date <= $enddate; $date += 86400) { $dateYmd = date('Ymd', $date); $todayYmd = date('Ymd', $today); $is_weekend = is_weekend($date); if ($is_weekend && $DISPLAY_WEEKENDS == 'N') { continue; } $weekday = weekday_name(date('w', $date), $DISPLAY_LONG_DAYS); $class = 'class="' . ($dateYmd == $todayYmd ? 'today"' : ($is_weekend ? 'weekend"' : 'row"')); // . // Non-breaking space below keeps event from wrapping prematurely. echo ' <tr> <th ' . $class . '>' . $weekday . ' ' . date('d', $date) . '</th>'; for ($i = $j, $k = 0; $i < $viewusercnt && $k < $USERS_PER_TABLE; $i++, $k++) { $events = $e_save[$i]; $repeated_events = $re_save[$i]; $user = $viewusers[$i]; $entryStr = print_date_entries($dateYmd, $user, true); // Unset class from above if needed. if ($class == 'class="row"' || $class == 'class="hasevents"') { $class = ''; }