| Server IP : 172.64.80.1 / Your IP : 216.73.216.175 Web Server : LiteSpeed System : Linux srv13.swhc.ca 4.18.0-553.126.2.lve.el8.x86_64 #1 SMP Thu May 28 14:12:30 UTC 2026 x86_64 User : hongluck ( 2522) PHP Version : 7.4.33 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /home/hongluck/public_html/old site/webcal/ |
Upload File : |
<?php
/*
* $Id: upcoming.php,v 1.18.2.1 2005/05/26 13:44:04 cknudsen Exp $
*
* Description:
* This script is intended to be used outside of normal WebCalendar
* use, typically as an iframe in another page.
*
* You must have public access enabled in System Settings to use this
* page (unless you modify the $public_must_be_enabled setting below
* in this file).
*
* Typically, this is how you would reference this page from another:
*
* <iframe height="250" width="300"
* scrolling="yes" src="upcoming.php"></iframe>
*
* By default (if you do not edit this file), events for the public
* calendar will be loaded for either:
* - the next 30 days
* - the next 10 events
*
* Input parameters:
* You can override settings by changing the URL parameters:
* - days: number of days ahead to look for events
* - cat_id: specify a category id to filter on
* - user: login name of calendar to display (instead of public
* user), if allowed by System Settings. You must have the
* following System Settings configured for this:
* Allow viewing other user's calendars: Yes
* Public access can view others: Yes
*
* Security:
* TBD
*/
include "includes/config.php";
include "includes/php-dbi.php";
include "includes/functions.php";
include "includes/$user_inc";
include "includes/connect.php";
load_global_settings ();
/*
*
* Configurable settings for this file. You may change the settings
* below to change the default settings.
* This settings will likely move into the System Settings in the
* web admin interface in a future release.
*
*/
// Change this to false if you still want to access this page even
// though you do not have public access enabled.
$public_must_be_enabled = true;
// Do we include a link to view the event? If so, what target
// should we use.
$display_link = true;
$link_target = '_top';
// Default time window of events to load
// Can override with "upcoming.php?days=60"
$numDays = 30;
// Max number of events to display
$maxEvents = 10;
// Login of calendar user to use
// '__public__' is the login name for the public user
$username = '__public__';
// Allow the URL to override the user setting such as
// "upcoming.php?user=craig"
$allow_user_override = false;
// Load layers
$load_layers = true;
// Load just a specified category (by its id)
// Leave blank to not filter on category (unless specified in URL)
// Can override in URL with "upcoming.php?cat_id=4"
$cat_id = '';
// End configurable settings...
// Set for use elsewhere as a global
$login = $username;
// Load user preferences for DISPLAY_UNAPPROVED
load_user_preferences ();
$get_unapproved = ! empty ( $DISPLAY_UNAPPROVED ) && $DISPLAY_UNAPPROVED == 'Y';
include "includes/translate.php";
if ( $public_must_be_enabled && $public_access != 'Y' ) {
$error = translate ( "You are not authorized" ) . ".";
}
if ( $allow_user_override ) {
$u = getValue ( "user", "[A-Za-z0-9_\.=@,\-]+", true );
if ( ! empty ( $u ) ) {
$username = $u;
$login = $u;
// We also set $login since some functions assume that it is set.
}
}
$cat_id = '';
if ( $categories_enabled == 'Y' ) {
$x = getIntValue ( "cat_id", true );
if ( ! empty ( $x ) ) {
$cat_id = $x;
}
}
if ( $load_layers ) {
load_user_layers ( $username );
}
//load_user_categories ();
// Calculate date range
$date = getIntValue ( "date", true );
if ( empty ( $date ) || strlen ( $date ) != 8 ) {
// If no date specified, start with today
$date = date ( "Ymd" );
}
$thisyear = substr ( $date, 0, 4 );
$thismonth = substr ( $date, 4, 2 );
$thisday = substr ( $date, 6, 2 );
$startTime = mktime ( 3, 0, 0, $thismonth, $thisday, $thisyear );
$x = getIntValue ( "days", true );
if ( ! empty ( $x ) ) {
$numDays = $x;
}
// Don't let a malicious user specify more than 365 days
if ( $numDays > 365 ) {
$numDays = 365;
}
$endTime = mktime ( 3, 0, 0, $thismonth, $thisday + $numDays,
$thisyear );
$endDate = date ( "Ymd", $endTime );
/* Pre-Load the repeated events for quckier access */
$repeated_events = read_repeated_events ( $username, $cat_id, $date );
/* Pre-load the non-repeating events for quicker access */
$events = read_events ( $username, $date, $endDate, $cat_id );
// Print header without custom header and no style sheet
if ( ! empty ( $LANGUAGE ) ) {
$charset = translate ( "charset" );
$lang = languageToAbbrev ( ( $LANGUAGE == "Browser-defined" ||
$LANGUAGE == "none" )? $lang : $LANGUAGE );
if ( $charset != "charset" ) {
echo "<?xml version=\"1.0\" encoding=\"$charset\"?>\n" .
"<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" " .
"\"DTD/xhtml1-transitional.dtd\">\n" .
"<html xmlns=\"http://www.w3.org/1999/xhtml\" " .
"xml:lang=\"$lang\" lang=\"$lang\">\n" .
"<head>\n" .
"<meta http-equiv=\"Content-Type\" content=\"text/html; " .
"charset=$charset\" />\n";
} else {
echo "<?xml version=\"1.0\" encoding=\"iso-8859-1\"?>\n" .
"<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" " .
"\"DTD/xhtml1-transitional.dtd\">\n" .
"<html xmlns=\"http://www.w3.org/1999/xhtml\" " .
"xml:lang=\"en\" lang=\"en\">\n" .
"<head>\n";
}
} else {
echo "<html>\n";
$charset = "iso-8859-1";
}
echo "<title>".translate($application_name)."</title>\n";
?>
</head>
<body>
<?php
if ( ! empty ( $error ) ) {
echo "<h2>" . translate ( "Error" ) .
"</h2>\n" . $error;
echo "\n<br /><br />\n</body></html>";
exit;
}
print "<dl>\n";
print "<!-- \nstartTime: $startTime\nendTime: $endTime\nstartDate: " .
"$date\nnumDays: $numDays\nuser: $username\nevents: " .
count ( $events ) . "\nrepeated_events: " .
count ( $repeated_events ) . " -->\n";
$numEvents = 0;
for ( $i = $startTime; date ( "Ymd", $i ) <= date ( "Ymd", $endTime ) &&
$numEvents < $maxEvents; $i += ( 24 * 3600 ) ) {
$d = date ( "Ymd", $i );
$entries = get_entries ( $username, $d, $get_unapproved );
$rentries = get_repeating_entries ( $username, $d, $get_unapproved );
print "<!-- $d " . count ( $entries ) . "/" . count ( $rentries ) . " -->\n";
if ( count ( $entries ) > 0 || count ( $rentries ) > 0 ) {
print "<!-- XXX -->\n";
print "<dt>" . date_to_str ( $d ) . "</dt>\n<dd>";
for ( $j = 0; $j < count ( $entries ) && $numEvents < $maxEvents; $j++ ) {
print_upcoming_event ( $entries[$j] );
$numEvents++;
}
for ( $j = 0; $j < count ( $rentries ) && $numEvents < $maxEvents; $j++ ) {
print_upcoming_event ( $rentries[$j] );
$numEvents++;
}
print "</dd>\n";
}
}
print "</dl>\n";
print "</body>\n</html>";
// Print the details of an upcoming event
function print_upcoming_event ( $e ) {
global $display_link, $link_target, $server_url, $charset;
if ( $display_link && ! empty ( $server_url ) ) {
print "<a title=\"" .
$e['cal_name'] . "\" href=\"" .
$server_url . "view_entry.php?id=" .
$e['cal_id'] . "&date=" .
$e['cal_date'] . "\"";
if ( ! empty ( $link_target ) ) {
print " target=\"$link_target\"";
}
print ">";
}
print $e['cal_name'];
if ( $display_link && ! empty ( $server_url ) ) {
print "</a>";
}
if ( $e['cal_duration'] == 24 * 60 ) {
print " (" . translate("All day event") . ")\n";
} else if ( $e['cal_time'] != -1 ) {
print " (" . display_time ( $e['cal_time'] ) . ")\n";
}
print "<br />\n";
}
?>