for each of the events that fall on a given day */
+function display_events_for_day($day,$events) {
+ global $PHP_SELF,$cm,$cy;
+ foreach ($events as $event) {
+ if (($event['type'] == 2 && $event['start'] <= $day && $event['end'] >= $day)
+ || ($event['start'] == $day)) {
+ echo '
';
+ }
+ }
+}
+
+/* load a single event from the event list, by id */
+function load_event($id) {
+ $fp = @fopen("backend/events.csv",'r');
+ if (!$fp) return;
+ while (!feof($fp)) {
+ $event = read_event($fp);
+ if ($event['id'] == $id) {
+ fclose($fp);
+ return $event;
+ }
+ }
+ fclose($fp);
+ return;
+}
+
+/* load a list of events, either for a particular day or a whole month */
+function load_events($from, $whole_month=0) {
+ /* we'll take advantage of the equality behavior of this date format */
+ $from_date = date("Y-m-d", $from);
+ $bom = mktime(0,0,1,date("m",$from),1,date("Y",$from));
+ $eom = mktime(0,0,1,date("m",$from)+1,0,date("Y",$from));
+ $to_date = date("Y-m-d", $whole_month ? $eom : $from);
+
+ $events = $seen = array();
+ $fp = @fopen("backend/events.csv",'r');
+ if (!$fp) return;
+
+ while (!feof($fp)) {
+ $event = read_event($fp);
+
+ if ($seen[$event['id']]++) continue; # only want each event once!
+
+ switch ($event['type']) {
+ case 3: /* recurring event */
+ $date = date_for_recur($event['recur'],$event['recur_day'],$bom,$eom);
+ $event['start'] = date("Y-m-d", $date);
+ /* falls through: now it is just like a single-day event */
+ case 1: /* single-day event */
+ if ($event['start'] >= $from_date && $event['start'] <= $to_date) {
+ $events[] = $event;
+ }
+ break;
+ case 2: /* multi-day event */
+ if (($event['start'] >= $from_date && $event['start'] <= $to_date)
+ || ($event['end'] >= $from_date && $event['end'] <= $to_date)
+ || ($event['start'] <= $from_date && $event['end'] >= $to_date)) {
+ $events[] = $event;
+ }
+ break;
+ }
+ }
+ fclose($fp);
+ return $events;
+}
+
+/* read an event from the event listing */
+function read_event($fp) {
+ list(,,,,$sdesc,$id,$ldesc,$url,$recur,$tipo,$sdato,$edato)
+ = fgetcsv($fp,8192);
+ list($recur,$recur_day) = explode(":",$recur,2);
+ return array(
+ 'id' => $id,
+ 'type' => $tipo,
+ 'start' => $sdato,
+ 'end' => $edato,
+ 'recur' => $recur,
+ 'recur_day' => $recur_day,
+ 'sdesc' => $sdesc,
+ 'url' => $url,
+ 'ldesc' => base64_decode($ldesc),
+ );
+}
+
?>
diff --git a/cal.sql b/cal.sql
deleted file mode 100644
index e86782e0e..000000000
--- a/cal.sql
+++ /dev/null
@@ -1,256 +0,0 @@
-#drop table phpcal;
-CREATE TABLE phpcal (
- id int(8) NOT NULL AUTO_INCREMENT,
- sdato date,
- edato date,
- recur char(12),
- sdesc char(16) NOT NULL,
- url varchar(128),
- ldesc text,
- tipo int(1) NOT NULL,
- country char(3) NOT NULL,
- category TINYINT NOT NULL,
- approved int(1) NOT NULL DEFAULT 0,
- app_by char(16),
- PRIMARY KEY(id),
- INDEX (sdato),
- INDEX (edato),
- INDEX (country),
- INDEX (category)
-);
-
-CREATE TABLE country (
- id char(3) NOT NULL,
- name varchar(55),
- PRIMARY KEY (id)
-);
-
-INSERT INTO country VALUES ('AFG','Afghanistan');
-INSERT INTO country VALUES ('ALB','Albania');
-INSERT INTO country VALUES ('DZA','Algeria');
-INSERT INTO country VALUES ('ASM','American Samoa');
-INSERT INTO country VALUES ('AND','Andorra');
-INSERT INTO country VALUES ('AGO','Angola');
-INSERT INTO country VALUES ('AIA','Anguilla');
-INSERT INTO country VALUES ('ATG','Antigua and Barbuda');
-INSERT INTO country VALUES ('ARG','Argentina');
-INSERT INTO country VALUES ('ARM','Armenia');
-INSERT INTO country VALUES ('ABW','Aruba');
-INSERT INTO country VALUES ('AUS','Australia');
-INSERT INTO country VALUES ('AUT','Austria');
-INSERT INTO country VALUES ('AZE','Azerbaijan');
-INSERT INTO country VALUES ('BHS','Bahamas');
-INSERT INTO country VALUES ('BHR','Bahrain');
-INSERT INTO country VALUES ('BGD','Bangladesh');
-INSERT INTO country VALUES ('BRB','Barbados');
-INSERT INTO country VALUES ('BLR','Belarus');
-INSERT INTO country VALUES ('BEL','Belgium');
-INSERT INTO country VALUES ('BLZ','Belize');
-INSERT INTO country VALUES ('BEN','Benin');
-INSERT INTO country VALUES ('BMU','Bermuda');
-INSERT INTO country VALUES ('BTN','Bhutan');
-INSERT INTO country VALUES ('BOL','Bolivia');
-INSERT INTO country VALUES ('BIH','Bosnia and Herzegovina');
-INSERT INTO country VALUES ('BWA','Botswana');
-INSERT INTO country VALUES ('BRA','Brazil');
-INSERT INTO country VALUES ('VGB','British Virgin Islands');
-INSERT INTO country VALUES ('BRN','Brunei Darussalam');
-INSERT INTO country VALUES ('BGR','Bulgaria');
-INSERT INTO country VALUES ('BFA','Burkina Faso');
-INSERT INTO country VALUES ('BDI','Burundi');
-INSERT INTO country VALUES ('KHM','Cambodia');
-INSERT INTO country VALUES ('CMR','Cameroon');
-INSERT INTO country VALUES ('CAN','Canada');
-INSERT INTO country VALUES ('CPV','Cape Verde');
-INSERT INTO country VALUES ('CYM','Cayman Islands');
-INSERT INTO country VALUES ('CAF','Central African Republic');
-INSERT INTO country VALUES ('TCD','Chad');
-INSERT INTO country VALUES ('CHL','Chile');
-INSERT INTO country VALUES ('CHN','China');
-INSERT INTO country VALUES ('HKG','Hong Kong Special Administrative');
-INSERT INTO country VALUES ('MAC','Macao Special Administrative Region of China');
-INSERT INTO country VALUES ('COL','Colombia');
-INSERT INTO country VALUES ('COM','Comoros');
-INSERT INTO country VALUES ('COG','Congo');
-INSERT INTO country VALUES ('COK','Cook Islands');
-INSERT INTO country VALUES ('CRI','Costa Rica');
-INSERT INTO country VALUES ('CIV','Cote d\'Ivoire');
-INSERT INTO country VALUES ('HRV','Croatia');
-INSERT INTO country VALUES ('CUB','Cuba');
-INSERT INTO country VALUES ('CYP','Cyprus');
-INSERT INTO country VALUES ('CZE','Czech Republic');
-INSERT INTO country VALUES ('PRK','Democratic People\'s Republic of Korea');
-INSERT INTO country VALUES ('COD','Democratic Republic of the Congo');
-INSERT INTO country VALUES ('DNK','Denmark');
-INSERT INTO country VALUES ('DJI','Djibouti');
-INSERT INTO country VALUES ('DMA','Dominica');
-INSERT INTO country VALUES ('DOM','Dominican Republic');
-INSERT INTO country VALUES ('TMP','East Timor');
-INSERT INTO country VALUES ('ECU','Ecuador');
-INSERT INTO country VALUES ('EGY','Egypt');
-INSERT INTO country VALUES ('SLV','El Salvador');
-INSERT INTO country VALUES ('GNQ','Equatorial Guinea');
-INSERT INTO country VALUES ('ERI','Eritrea');
-INSERT INTO country VALUES ('EST','Estonia');
-INSERT INTO country VALUES ('ETH','Ethiopia');
-INSERT INTO country VALUES ('FRO','Faeroe Islands');
-INSERT INTO country VALUES ('FLK','Falkland Islands (Malvinas)');
-INSERT INTO country VALUES ('FJI','Fiji');
-INSERT INTO country VALUES ('FIN','Finland');
-INSERT INTO country VALUES ('FRA','France');
-INSERT INTO country VALUES ('GUF','French Guiana');
-INSERT INTO country VALUES ('PYF','French Polynesia');
-INSERT INTO country VALUES ('GAB','Gabon');
-INSERT INTO country VALUES ('GMB','Gambia');
-INSERT INTO country VALUES ('GEO','Georgia');
-INSERT INTO country VALUES ('DEU','Germany');
-INSERT INTO country VALUES ('GHA','Ghana');
-INSERT INTO country VALUES ('GIB','Gibraltar');
-INSERT INTO country VALUES ('GRC','Greece');
-INSERT INTO country VALUES ('GRL','Greenland');
-INSERT INTO country VALUES ('GRD','Grenada');
-INSERT INTO country VALUES ('GLP','Guadeloupe');
-INSERT INTO country VALUES ('GUM','Guam');
-INSERT INTO country VALUES ('GTM','Guatemala');
-INSERT INTO country VALUES ('GIN','Guinea');
-INSERT INTO country VALUES ('GNB','Guinea-Bissau');
-INSERT INTO country VALUES ('GUY','Guyana');
-INSERT INTO country VALUES ('HTI','Haiti');
-INSERT INTO country VALUES ('VAT','Holy See');
-INSERT INTO country VALUES ('HND','Honduras');
-INSERT INTO country VALUES ('HUN','Hungary');
-INSERT INTO country VALUES ('ISL','Iceland');
-INSERT INTO country VALUES ('IND','India');
-INSERT INTO country VALUES ('IDN','Indonesia');
-INSERT INTO country VALUES ('IRN','Iran (Islamic Republic of)');
-INSERT INTO country VALUES ('IRQ','Iraq');
-INSERT INTO country VALUES ('IRL','Ireland');
-INSERT INTO country VALUES ('ISR','Israel');
-INSERT INTO country VALUES ('ITA','Italy');
-INSERT INTO country VALUES ('JAM','Jamaica');
-INSERT INTO country VALUES ('JPN','Japan');
-INSERT INTO country VALUES ('JOR','Jordan');
-INSERT INTO country VALUES ('KAZ','Kazakhstan');
-INSERT INTO country VALUES ('KEN','Kenya');
-INSERT INTO country VALUES ('KIR','Kiribati');
-INSERT INTO country VALUES ('KWT','Kuwait');
-INSERT INTO country VALUES ('KGZ','Kyrgyzstan');
-INSERT INTO country VALUES ('LAO','Lao People\'s Democratic Republic');
-INSERT INTO country VALUES ('LVA','Latvia');
-INSERT INTO country VALUES ('LBN','Lebanon');
-INSERT INTO country VALUES ('LSO','Lesotho');
-INSERT INTO country VALUES ('LBR','Liberia');
-INSERT INTO country VALUES ('LBY','Libyan Arab Jamahiriya');
-INSERT INTO country VALUES ('LIE','Liechtenstein');
-INSERT INTO country VALUES ('LTU','Lithuania');
-INSERT INTO country VALUES ('LUX','Luxembourg');
-INSERT INTO country VALUES ('MDG','Madagascar');
-INSERT INTO country VALUES ('MWI','Malawi');
-INSERT INTO country VALUES ('MYS','Malaysia');
-INSERT INTO country VALUES ('MDV','Maldives');
-INSERT INTO country VALUES ('MLI','Mali');
-INSERT INTO country VALUES ('MLT','Malta');
-INSERT INTO country VALUES ('MHL','Marshall Islands');
-INSERT INTO country VALUES ('MTQ','Martinique');
-INSERT INTO country VALUES ('MRT','Mauritania');
-INSERT INTO country VALUES ('MUS','Mauritius');
-INSERT INTO country VALUES ('MEX','Mexico');
-INSERT INTO country VALUES ('FSM','Micronesia Federated States of,');
-INSERT INTO country VALUES ('MCO','Monaco');
-INSERT INTO country VALUES ('MNG','Mongolia');
-INSERT INTO country VALUES ('MSR','Montserrat');
-INSERT INTO country VALUES ('MAR','Morocco');
-INSERT INTO country VALUES ('MOZ','Mozambique');
-INSERT INTO country VALUES ('MMR','Myanmar');
-INSERT INTO country VALUES ('NAM','Namibia');
-INSERT INTO country VALUES ('NRU','Nauru');
-INSERT INTO country VALUES ('NPL','Nepal');
-INSERT INTO country VALUES ('NLD','Netherlands');
-INSERT INTO country VALUES ('ANT','Netherlands Antilles');
-INSERT INTO country VALUES ('NCL','New Caledonia');
-INSERT INTO country VALUES ('NZL','New Zealand');
-INSERT INTO country VALUES ('NIC','Nicaragua');
-INSERT INTO country VALUES ('NER','Niger');
-INSERT INTO country VALUES ('NGA','Nigeria');
-INSERT INTO country VALUES ('NIU','Niue');
-INSERT INTO country VALUES ('NFK','Norfolk Island');
-INSERT INTO country VALUES ('MNP','Northern Mariana Islands');
-INSERT INTO country VALUES ('NOR','Norway');
-INSERT INTO country VALUES ('PSE','Occupied Palestinian Territory');
-INSERT INTO country VALUES ('OMN','Oman');
-INSERT INTO country VALUES ('PAK','Pakistan');
-INSERT INTO country VALUES ('PLW','Palau');
-INSERT INTO country VALUES ('PAN','Panama');
-INSERT INTO country VALUES ('PNG','Papua New Guinea');
-INSERT INTO country VALUES ('PRY','Paraguay');
-INSERT INTO country VALUES ('PER','Peru');
-INSERT INTO country VALUES ('PHL','Philippines');
-INSERT INTO country VALUES ('PCN','Pitcairn');
-INSERT INTO country VALUES ('POL','Poland');
-INSERT INTO country VALUES ('PRT','Portugal');
-INSERT INTO country VALUES ('PRI','Puerto Rico');
-INSERT INTO country VALUES ('QAT','Qatar');
-INSERT INTO country VALUES ('KOR','Republic of Korea');
-INSERT INTO country VALUES ('MDA','Republic of Moldova');
-INSERT INTO country VALUES ('REU','Réunion');
-INSERT INTO country VALUES ('ROM','Romania');
-INSERT INTO country VALUES ('RUS','Russian Federation');
-INSERT INTO country VALUES ('RWA','Rwanda');
-INSERT INTO country VALUES ('SHN','Saint Helena');
-INSERT INTO country VALUES ('KNA','Saint Kitts and Nevis');
-INSERT INTO country VALUES ('LCA','Saint Lucia');
-INSERT INTO country VALUES ('SPM','Saint Pierre and Miquelon');
-INSERT INTO country VALUES ('VCT','Saint Vincent and the Grenadines');
-INSERT INTO country VALUES ('WSM','Samoa');
-INSERT INTO country VALUES ('SMR','San Marino');
-INSERT INTO country VALUES ('STP','Sao Tome and Principe');
-INSERT INTO country VALUES ('SAU','Saudi Arabia');
-INSERT INTO country VALUES ('SEN','Senegal');
-INSERT INTO country VALUES ('SYC','Seychelles');
-INSERT INTO country VALUES ('SLE','Sierra Leone');
-INSERT INTO country VALUES ('SGP','Singapore');
-INSERT INTO country VALUES ('SVK','Slovakia');
-INSERT INTO country VALUES ('SVN','Slovenia');
-INSERT INTO country VALUES ('SLB','Solomon Islands');
-INSERT INTO country VALUES ('SOM','Somalia');
-INSERT INTO country VALUES ('ZAF','South Africa');
-INSERT INTO country VALUES ('ESP','Spain');
-INSERT INTO country VALUES ('LKA','Sri Lanka');
-INSERT INTO country VALUES ('SDN','Sudan');
-INSERT INTO country VALUES ('SUR','Suriname');
-INSERT INTO country VALUES ('SJM','Svalbard and Jan Mayen Islands');
-INSERT INTO country VALUES ('SWZ','Swaziland');
-INSERT INTO country VALUES ('SWE','Sweden');
-INSERT INTO country VALUES ('CHE','Switzerland');
-INSERT INTO country VALUES ('SYR','Syrian Arab Republic');
-INSERT INTO country VALUES ('TWN','Taiwan Province of China');
-INSERT INTO country VALUES ('TJK','Tajikistan');
-INSERT INTO country VALUES ('THA','Thailand');
-INSERT INTO country VALUES ('MKD','The former Yugoslav Republic of Macedonia');
-INSERT INTO country VALUES ('TGO','Togo');
-INSERT INTO country VALUES ('TKL','Tokelau');
-INSERT INTO country VALUES ('TON','Tonga');
-INSERT INTO country VALUES ('TTO','Trinidad and Tobago');
-INSERT INTO country VALUES ('TUN','Tunisia');
-INSERT INTO country VALUES ('TUR','Turkey');
-INSERT INTO country VALUES ('TKM','Turkmenistan');
-INSERT INTO country VALUES ('TCA','Turks and Caicos Islands');
-INSERT INTO country VALUES ('TUV','Tuvalu');
-INSERT INTO country VALUES ('UGA','Uganda');
-INSERT INTO country VALUES ('UKR','Ukraine');
-INSERT INTO country VALUES ('ARE','United Arab Emirates');
-INSERT INTO country VALUES ('GBR','United Kingdom');
-INSERT INTO country VALUES ('TZA','United Republic of Tanzania');
-INSERT INTO country VALUES ('USA','United States');
-INSERT INTO country VALUES ('VIR','United States Virgin Islands');
-INSERT INTO country VALUES ('URY','Uruguay');
-INSERT INTO country VALUES ('UZB','Uzbekistan');
-INSERT INTO country VALUES ('VUT','Vanuatu');
-INSERT INTO country VALUES ('VEN','Venezuela');
-INSERT INTO country VALUES ('VNM','Viet Nam');
-INSERT INTO country VALUES ('WLF','Wallis and Futuna Islands');
-INSERT INTO country VALUES ('ESH','Western Sahara');
-INSERT INTO country VALUES ('YEM','Yemen');
-INSERT INTO country VALUES ('YUG','Yugoslavia');
-INSERT INTO country VALUES ('ZMB','Zambia');
-INSERT INTO country VALUES ('ZWE','Zimbabwe');
diff --git a/events.php b/events.php
deleted file mode 100644
index de5e429fa..000000000
--- a/events.php
+++ /dev/null
@@ -1,74 +0,0 @@
-
-
Upcoming Events
-
-
-If you would like to see the list of events in a calendar format,
-visit the complete event calendar.
-You can also add events yourself with our "Add
-an Event" form.
-
-
-'First',2=>'Second',3=>'Third',4=>'Fourth',-1=>'Last',-2=>'2nd Last',-3=>'3rd Last');
-
- function load_events() {
- global $re;
- $days = days();
- $fp = @fopen("backend/events.csv",'r');
- while(!feof($fp)) {
- list($d,$m,$y,,$sdesc,$id,$ldesc,$url,$recur,$tipo,$sdato,$edato) = fgetcsv($fp,8192);
- if(!$seen[$m][$id]) {
- switch($tipo) {
- case 1:
- $events[] = array($id,$sdato,$sdesc,$ldesc,$url,$d,$m,$y);
- break;
- case 2:
- $events[] = array($id,$sdato.' to '.$edato,$sdesc,$ldesc,$url,$d,$m,$y);
- break;
- case 3:
- list($which,$day) = explode(':',$recur);
- $events[] = array($id,'Every '.$re[(int)$which].' '.$days[$day].' of the month',$sdesc,$ldesc,$url,$d,$m,$y);
- break;
- }
- $seen[$m][$id] = true;
- }
- }
- return $events;
- }
-
- /* returns array of Days starting with 1 = Sunday */
- function days() {
- static $days=NULL;
- if(!$days) for($i=1;$i<=7;$i++) {
- $days[$i] = strftime('%A',mktime(12,0,0,4,$i,2001));
- }
- return $days;
- }
-?>
-
-
-
- $month
\n";
- }
- echo '| '.$month.' '.$event[5].' '.$event[2].' ('.$event[1].") |
\n";
- echo '| '.base64_decode($event[3])." |
\n";
-}
-?>
-
-
-
diff --git a/include/layout.inc b/include/layout.inc
index 0f089896b..7a4675331 100644
--- a/include/layout.inc
+++ b/include/layout.inc
@@ -394,4 +394,41 @@ function display_errors($errors)
echo '';
}
+function display_event($event,$include_date=1)
+{
+ for ($i = 0; $i < 7; $i++) {
+ $days[$i+1] = strftime('%A',mktime(12,0,0,4,$i,2001));
+ }
+
+ $re = array(1=>'First',2=>'Second',3=>'Third',4=>'Fourth',-1=>'Last',-2=>'2nd Last',-3=>'3rd Last');
+
+ $sday = $event['start'] ? strtotime($event['start'])
+ : mktime(0,0,1,$event['smonth'],$event['sday'],$event['syear']);
+ $eday = $event['end'] ? strtotime($event['end'])
+ : mktime(0,0,1,$event['emonth'],$event['eday'],$event['eyear']);
+?>
+
+ |
+", date("F j, Y", $sday), "\n";
+ if ($event['url']) echo '';
+ echo "", htmlentities($event['sdesc']), "";
+ if ($event['url']) echo "";
+ switch ($event['type']) {
+ case 2:
+ case 'multi':
+ echo " (", date("Y-m-d",$sday), " to ", date("Y-m-d",$eday), ")";
+ break;
+ case 3:
+ case 'recur':
+ echo " (Every ", $re[$event['recur']], " ", $days[$event['recur_day']], " of the month)";
+ break;
+ }
+?>
+ |
+ |
+
+
diff --git a/index.php b/index.php
index c4a6434a8..8888b25a1 100644
--- a/index.php
+++ b/index.php
@@ -57,7 +57,7 @@ $fp = @fopen("backend/events.csv",'r');
if($fp) {
$cm=0;
while(!feof($fp)) {
- list($d,$m,$y,$url,$desc) = fgetcsv($fp,8192);
+ list($d,$m,$y,$url,$desc,$id) = fgetcsv($fp,8192);
if($cm!=(int)$m) {
if($cm) $RSIDEBAR_DATA.= "
\n";
else $RSIDEBAR_DATA.='';
@@ -66,7 +66,7 @@ if($fp) {
unset($seen);
}
if(!$seen[$desc]) {
- $RSIDEBAR_DATA .= "$d. $desc
\n";
+ $RSIDEBAR_DATA .= "$d. $desc
\n";
$seen[$desc] = true;
}
}
diff --git a/style.css b/style.css
index 721da0276..aa142a099 100644
--- a/style.css
+++ b/style.css
@@ -129,3 +129,26 @@ div.tip {
background: #eef;
padding: 0px 8px;
}
+
+table#cal {
+ font-size: smaller;
+}
+
+table#cal a {
+ text-decoration: none;
+}
+table#cal a:hover {
+ text-decoration: underline;
+}
+
+table#cal a.day {
+ float: right;
+ font-weight: bold;
+ color: #666;
+}
+
+table#cal div.event {
+ margin-bottom: 2px;
+ padding-bottom: 2px;
+ border-bottom: 1px dashed #000;
+}
diff --git a/submit-event.php b/submit-event.php
index e44b40763..11c706dde 100644
--- a/submit-event.php
+++ b/submit-event.php
@@ -111,27 +111,10 @@ for ($i = 0; $i < 12; $i++) {
$re = array(1=>'First',2=>'Second',3=>'Third',4=>'Fourth',-1=>'Last',-2=>'2nd Last',-3=>'3rd Last');
-if (isset($in)) {?>
-Preview:
-
- |
-
-';
- echo htmlentities($in['sdesc']);
- if ($in['url']) echo "";
- switch ($in['type']) {
- case 'multi':
- echo " ($in[syear]-$in[smonth]-$in[sday] to $in[eyear]-$in[emonth]-$in[eday])";
- break;
- case 'recur':
- echo " (Every ", $re[$in['recur']], " ", $days[$in['recur_day']], " of the month)";
- break;
- }
+if (isset($in)) {
+ echo " Preview: \n";
+ display_event($in);
?>
- |
- |
-
Change: