Thread: [Openfirst-cvscommit] members/phpicalendar AUTHORS,NONE,1.1 COPYING,NONE,1.1 README,NONE,1.1 TIMEZON
Brought to you by:
xtimg
From: <xt...@us...> - 2003-10-05 15:22:02
|
Update of /cvsroot/openfirst/members/phpicalendar In directory sc8-pr-cvs1:/tmp/cvs-serv23745 Added Files: AUTHORS COPYING README TIMEZONES admin.php config.inc.php day.php index.php month.php preferences.php print.php search.php week.php year.php Log Message: Add PHP iCalendar functionality to members module. See http://phpicalendar.sourceforge.net for more information about PHP iCalendar --- NEW FILE: AUTHORS --- AUTHORS ------- This file is a list of all people who have contributed their time to the PHP iCalendar project. Each section is sorted alphabetically. Thanks to all who are listed here. PROJECT ADMINS -------------- Chad Little <ch...@ch...> Patrick Crowley <pa...@ic...> DEVELOPERS ---------- Patrick Berry <pb...@ma...> Bill Fenner <fe...@re...> David Reindl <dr...@an...> Jared Wangen <xe...@si...> CODE CONTRIBUTORS ----------------- Greg Westin <php...@gr...> Blaine Cook <la...@re...> Mike Traum <mt...@ya...> TRANSLATORS ----------- Braz. Port. Bennet Wilton <su...@be...> Danish Henrik Højmark <st...@wo...> Jakob Peterhänsel <ma...@cr...> Dutch Lieven Gekiere <Li...@ge...> English Chad Little <ch...@ch...> Finnish Kari Somby <kar...@ra...> French La Shampouineuse <in...@la...> German David Reindl <dr...@an...> Italian Luca Cacciagrano <cl...@cl...> Japanese Jared Wangen <ja...@si...> Norwegian Geir Kielland <gei...@ju...> Polish Stanislaw Cieslicki <st...@po...> Portuguese Rui Costa <rui...@ub...> Spanish Javier Navarro <jna...@xi...> Swedish Jonas Hjelm <jo...@hn...> --- NEW FILE: COPYING --- GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc. 675 Mass Ave, Cambridge, MA 02139, USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS --- NEW FILE: README --- ______________________________________ | PHP iCalendar | | http://phpicalendar.sourceforge.net/ | |______________________________________| Introduction: ------------- PHP iCalendar is a PHP-based iCal file viewer/parser to display iCals in a Web browser. Its based on v2.0 of the IETF spec. It displays iCal files in a nice logical, clean manner with day, week, month, and year navigation. It is available in 13 languages and includes support for printing, searching and RSS news feeds. If you need a Calendar applicaion, please check the 'Calendar Links' section of our website. Contact: -------- E-mail the developers and others on the list at: php...@li... Installation: ------------- - Put PHP iCalendar into your Sites folder (or another web directory) - Edit the file "config.inc.php" and see section below called "Configuration" - Put your iCal files into the directory you specify in config.inc.php (default is "calendars") - Make sure PHP is enabled (http://developer.apple.com/internet/macosx/php.html) - Turn on Web sharing (if not already on) - View calendars in your web browser If it is in your Sites folder, the URL would be: <http://localhost/~username/phpicalendar> Configuration: -------------- View config.inc.php. The comments behind each variable definition will tell you what each setting does. Change the values between the quotation marks to change the setting of that variable. If there are restrictions as to what that variable can be set to, the comment behind will specify them. If you have difficulty with your configuration, you can ask the developers and other PHP iCalendar users at the PHP iCalendar forums: http://phpicalendar.sourceforge.net/phpBB2 Supported Calendar Applications: -------------------------------- PHP iCalendar supports any calendar application that can generate valid IETF 2445 files (.ics). Some of the supported applications are: - Apple iCal - http://www.apple.com/ical/ - Mozilla Calendar - http://www.mozilla.org/projects/calendar/ - Ximian Evolution - http://www.ximian.com/products/evolution/ - KOrganizer - http://korganizer.kde.org/ - WinDates 5.0 - http://www.rockinsoftware.com/windates.htm Bugs: ----- If you find a bug, please let us know. The easiest way for you to do this is to visit our Bug Tracker on SourceForge. This guarantees that we both look at it and take time to figure out what is causing it. You can submit bugs at the following URL: http://phpicalendar.sourceforge.net/bugs Requests: --------- Got an idea? Great! Just like with Bugs, there is a Features Tracker over on SourceForge. Please use that to sumbit feature requests. That way, you can see what others have suggested so you don't duplicate requests, and it will give us a chance to keep the features that haven't been implemented in one central place that we can find later. The tracker can be found at the following URL: http://phpicalendar.sourceforge.net/requests Licensing: ---------- This product is distributed under the GPL. Please read through the file COPYING for more information about our license. Older Browser Support: ---------------------- Starting with 0.9.4, PHP iCalendar is moving away from supporting 4.x browsers. If you still need support for these browers, 0.9.3 is still available for download. To get the latest ical support, simply download the latest version of PHP iCalendar and replace the file called 'ical_parser.php' in the functions folder. Changes: -------- 0.9.4 -Vastly improved BYDAY, BYMONTHDAY, BYYEARDAY support. -Improved DURATION Support. -Smaller HTML footprint on all pages with same look and feel. -Combined Calendars automatically refresh when changes are made. -Vtodo popup works again. -Validation increased on multiple pages. -Fixed a bug not listing blacklisted calendars. -Moved HTML head into header.inc.php to better support embedding of calendar. -Moved HTML foot into footer.inc.php to better support embedding of calendar. -Specify the name of 'All Calendars Combined' in language files. 0.9.3 -Multiple calendar support (up to 8). -Fixed pesky <BR> tags in event popup. -Added Esperanto language. -Major bug fixes. -Last to support Netscape 4.x 0.9.2 -Fixed an extra .php on the preferences page. -Increased validations on many pages. -Added support for CLASS (public, private, and confidential). -Added support for LOCATION -Added support for ATTENDEE -Added support for ORGANIZER -Added support for STATUS -New javascript functions provide additional information. -Added the ability to correct the servers time display -Added admin.php for administration of calendars (uses cookies). See config.inc.php for configuration. -Add or Update a calendar via a web interface -Delete a calendar via a web interface 0.9.1 -Added unset preferences -Cookies now fall back to defaults if data is bad. -Fixed a bug with the latest version of Ximian. -Added the ability to hard-set cookie-uri and download-uri. -Added Catalan and Tranditional Chinese languages. -Back button on preferences page now works. -Allow_Preferences option now works. 0.9 -Added complete VTODO support. -Added STATUS support for VEVENT and VTODO. -Added RSS auto-detection on day, week, month, and year pages. -Added year view icon. -Added Finnish and Czech language support. -Added Preferences page (uses cookies). -Select defualt language -Select default calendar -Select default view -Select default theme -Select default start day -Select default start time -Print view can now be set for your default view. -Updated silver and red styles. -Calendars can now be stored outside of phpicalendar's installation. -Cleaned up folders for easier installation. -Minor interface enhancements. -Minor bug fixes 0.8.1 -Added header.inc.php for custom headers. -Added Brazilian language support. -Fixed a bug with some of the style sheets not displaying correctly. -Fixed a bug with RSS not properly validating. -Fixed a bug with Search returning errors on some characters. -Brought some languages up to 0.8 translations. -Added support for "last X in month" -Fixed many small bugs. 0.8 -Added search capability. -Added a Printer Friendly view for Day, Week, and Month. -Added support for single event changes in a recurring set. -Added RSS feeds for Day, Week, and Month. -Added Portugese language support. -Added 'clickable links' for web addresses. -Tweeked Red and Grey styles. -Fixed a bug causing Sunday to be listed twice. -Fixed a bug preventing < 4.1.0 php users to run app. -Fixed a bug displaying quotes in summary. -Fixed many other bugs (none open on SF!!) 0.7 -Added Year view. -New themes, Green, Orange, Grey, and Tan. -Parses calendars much faster. -Page titles added for bookmarking. -Fixed bug not letting notes to fully display. -Fixed bug in recurring all-day events. -Fixed a bug for showing &'s and #'s in the javascript. -Greatly improved Mozilla Calendar support. -Overlapping events now display better. -Added complete timezone support (See TIMEZONE file for details). -A new website for PHP iCalendar. -Many bug fixes. 0.6 -Added this README! -Greatly improved CSS for "themes", theme SDK available. -HTML bug fixes specific to Windows browsers -All-day and Regular recurring event both support all types -Bottom of month view updated -Day, Week, Month navigation brought back. -Localization update -Localized dates and times work with Mac OS X as well as other *nixes. -Almost all text has been translated for supported languages -Added Spanish and Swedish -Added ability to turn off the pop-up menu calendar list -Added "black-listing" of specific local calendars -Added remote calendar support -Subscribe to calendars hosted remotely and have them show up in your popup -Allow any URL of a calendar to be parsed by your server -Added custom error page for user-friendly error messages. -Added saving of parsed files to separate files for faster processing -Custom options for mini-calendars, this months, events -Bug fixes 0.5 -Improved recurring event support -All-day and Regular recurring events now obey ending dates and counts -Regular recurring events for monthly -New UI -Mini-calendars in all views -Jump-to pop-ups for Weeks and Months -Subscribe works properly -Color coding on month view -Week view colors the length of the time like day -Support for event notes/descriptions -More language support -Danish -Dutch -Italian -Japanese -Norwegian -Bug fixes 0.4 -Improved recurring event support -All-day recurring for all types -Regular recurring events for daily, weekly -Event pop-ups -More style sheets -Multiple language support -English -French -German -Polish -24-hour clock support -Bug fixes 0.3 -Calendar list popup -All-day yearly recurring support -Bug fixes 0.2 -All-day event support -Added month and week views -Bug fixes 0.1 -Initial Release --- NEW FILE: TIMEZONES --- TIMEZONES --------- If your timezone is not in this list, it is assumed that the GMT offset for both regular time and Daylight Savings Time is +0000. If this is not correct, please use a timezone from this list which will acurrately represent your GMT offsets. All these are case-sensitive. 'Same as Server' is also a choice and it also case-sensitive. This will use the server's timezone offset. No entry at all (an empty string) means to use the timezome of the event or calendar itself. This is default. This does not support setting the offset itself (ie '+0500') because the offset might change depending on if we're looking at events when Daylight Savings Time is on, or events when it's off. You must choose a timezone from this list or an empty string. *** None of these timezones represent both regular AND Daylight Savings Time as +0000 except for 'GMT' but ANY string other than whats in this list will return them both as +0000. List of Timezones ----------------- Same as Server Africa/Addis_Ababa Africa/Algiers Africa/Asmera Africa/Bangui Africa/Blantyre Africa/Brazzaville Africa/Bujumbura Africa/Cairo Africa/Ceuta Africa/Dar_es_Salaam Africa/Djibouti Africa/Douala Africa/Gaborone Africa/Harare Africa/Johannesburg Africa/Kampala Africa/Khartoum Africa/Kigali Africa/Kinshasa Africa/Lagos Africa/Libreville Africa/Luanda Africa/Lubumbashi Africa/Lusaka Africa/Malabo Africa/Maputo Africa/Maseru Africa/Mbabane Africa/Mogadishu Africa/Nairobi Africa/Ndjamena Africa/Niamey Africa/Porto-Novo Africa/Tripoli Africa/Tunis Africa/Windhoek America/Adak America/Anchorage America/Anguilla America/Antigua America/Araguaina America/Aruba America/Asuncion America/Atka America/Barbados America/Belem America/Belize America/Boa_Vista America/Bogota America/Boise America/Buenos_Aires America/Cambridge_Bay America/Cancun America/Caracas America/Catamarca America/Cayenne America/Cayman America/Chicago America/Chihuahua America/Cordoba America/Costa_Rica America/Cuiaba America/Curacao America/Dawson America/Dawson_Creek America/Denver America/Detroit America/Dominica America/Edmonton America/Eirunepe America/El_Salvador America/Ensenada America/Fort_Wayne America/Fortaleza America/Glace_Bay America/Godthab America/Goose_Bay America/Grand_Turk America/Grenada America/Guadeloupe America/Guatemala America/Guayaquil America/Guyana America/Halifax America/Havana America/Hermosillo America/Indiana/Indianapolis America/Indiana/Knox America/Indiana/Marengo America/Indiana/Vevay America/Indianapolis America/Inuvik America/Iqaluit America/Jamaica America/Jujuy America/Juneau America/Kentucky/Louisville America/Kentucky/Monticello America/Knox_IN America/La_Paz America/Lima America/Los_Angeles America/Louisville America/Maceio America/Managua America/Manaus America/Martinique America/Mazatlan America/Mendoza America/Menominee America/Merida America/Mexico_City America/Miquelon America/Monterrey America/Montevideo America/Montreal America/Montserrat America/Nassau America/New_York America/Nipigon America/Nome America/Noronha America/Panama America/Pangnirtung America/Paramaribo America/Phoenix America/Port-au-Prince America/Port_of_Spain America/Porto_Acre America/Porto_Velho America/Puerto_Rico America/Rainy_River America/Rankin_Inlet America/Recife America/Regina America/Rio_Branco America/Rosario America/Santiago America/Santo_Domingo America/Sao_Paulo America/Scoresbysund America/Shiprock America/St_Johns America/St_Kitts America/St_Lucia America/St_Thomas America/St_Vincent America/Swift_Current America/Tegucigalpa America/Thule America/Thunder_Bay America/Tijuana America/Tortola America/Vancouver America/Virgin America/Whitehorse America/Winnipeg America/Yakutat America/Yellowknife Antarctica/Casey Antarctica/Davis Antarctica/DumontDUrville Antarctica/Mawson Antarctica/McMurdo Antarctica/Palmer Antarctica/South_Pole Antarctica/Syowa Antarctica/Vostok Arctic/Longyearbyen Asia/Aden Asia/Almaty Asia/Amman Asia/Anadyr Asia/Aqtau Asia/Aqtobe Asia/Ashgabat Asia/Ashkhabad Asia/Baghdad Asia/Bahrain Asia/Baku Asia/Bangkok Asia/Beirut Asia/Bishkek Asia/Brunei Asia/Calcutta Asia/Chungking Asia/Colombo Asia/Dacca Asia/Damascus Asia/Dhaka Asia/Dili Asia/Dubai Asia/Dushanbe Asia/Gaza Asia/Harbin Asia/Hong_Kong Asia/Hovd Asia/Irkutsk Asia/Istanbul Asia/Jakarta Asia/Jayapura Asia/Jerusalem Asia/Kabul Asia/Kamchatka Asia/Karachi Asia/Kashgar Asia/Katmandu Asia/Krasnoyarsk Asia/Kuala_Lumpur Asia/Kuching Asia/Kuwait Asia/Macao Asia/Magadan Asia/Manila Asia/Muscat Asia/Nicosia Asia/Novosibirsk Asia/Omsk Asia/Phnom_Penh Asia/Pyongyang Asia/Qatar Asia/Rangoon Asia/Riyadh Asia/Riyadh87 Asia/Riyadh88 Asia/Riyadh89 Asia/Saigon Asia/Samarkand Asia/Seoul Asia/Shanghai Asia/Singapore Asia/Taipei Asia/Tashkent Asia/Tbilisi Asia/Tehran Asia/Tel_Aviv Asia/Thimbu Asia/Thimphu Asia/Tokyo Asia/Ujung_Pandang Asia/Ulaanbaatar Asia/Ulan_Bator Asia/Urumqi Asia/Vientiane Asia/Vladivostok Asia/Yakutsk Asia/Yekaterinburg Asia/Yerevan Atlantic/Azores Atlantic/Bermuda Atlantic/Canary Atlantic/Cape_Verde Atlantic/Faeroe Atlantic/Jan_Mayen Atlantic/Madeira Atlantic/South_Georgia Atlantic/Stanley Australia/ACT Australia/Adelaide Australia/Brisbane Australia/Broken_Hill Australia/Canberra Australia/Darwin Australia/Hobart Australia/LHI Australia/Lindeman Australia/Lord_Howe Australia/Melbourne Australia/NSW Australia/North Australia/Perth Australia/Queensland Australia/South Australia/Sydney Australia/Tasmania Australia/Victoria Australia/West Australia/Yancowinna Brazil/Acre Brazil/DeNoronha Brazil/East Brazil/West CET CST6CDT Canada/Atlantic Canada/Central Canada/East-Saskatchewan Canada/Eastern Canada/Mountain Canada/Newfoundland Canada/Pacific Canada/Saskatchewan Canada/Yukon Chile/Continental Chile/EasterIsland Cuba EET EST EST5EDT Egypt Eire Etc/GMT+1 Etc/GMT+10 Etc/GMT+11 Etc/GMT+12 Etc/GMT+2 Etc/GMT+3 Etc/GMT+4 Etc/GMT+5 Etc/GMT+6 Etc/GMT+7 Etc/GMT+8 Etc/GMT+9 Etc/GMT-1 Etc/GMT-10 Etc/GMT-11 Etc/GMT-12 Etc/GMT-13 Etc/GMT-14 Etc/GMT-2 Etc/GMT-3 Etc/GMT-4 Etc/GMT-5 Etc/GMT-6 Etc/GMT-7 Etc/GMT-8 Etc/GMT-9 Europe/Amsterdam Europe/Andorra Europe/Athens Europe/Belfast Europe/Belgrade Europe/Berlin Europe/Bratislava Europe/Brussels Europe/Bucharest Europe/Budapest Europe/Chisinau Europe/Copenhagen Europe/Dublin Europe/Gibraltar Europe/Helsinki Europe/Istanbul Europe/Kaliningrad Europe/Kiev Europe/Lisbon Europe/Ljubljana Europe/London Europe/Luxembourg Europe/Madrid Europe/Malta Europe/Minsk Europe/Monaco Europe/Moscow Europe/Nicosia Europe/Oslo Europe/Paris Europe/Prague Europe/Riga Europe/Rome Europe/Samara Europe/San_Marino Europe/Sarajevo Europe/Simferopol Europe/Skopje Europe/Sofia Europe/Stockholm Europe/Tallinn Europe/Tirane Europe/Tiraspol Europe/Uzhgorod Europe/Vaduz Europe/Vatican Europe/Vienna Europe/Vilnius Europe/Warsaw Europe/Zagreb Europe/Zaporozhye Europe/Zurich GB GB-Eire GMT HST Hongkong Indian/Antananarivo Indian/Chagos Indian/Christmas Indian/Cocos Indian/Comoro Indian/Kerguelen Indian/Mahe Indian/Maldives Indian/Mauritius Indian/Mayotte Indian/Reunion Iran Israel Jamaica Japan Kwajalein Libya MET MST MST7MDT Mexico/BajaNorte Mexico/BajaSur Mexico/General Mideast/Riyadh87 Mideast/Riyadh88 Mideast/Riyadh89 NZ NZ-CHAT Navajo PRC PST8PDT Pacific/Apia Pacific/Auckland Pacific/Chatham Pacific/Easter Pacific/Efate Pacific/Enderbury Pacific/Fakaofo Pacific/Fiji Pacific/Funafuti Pacific/Galapagos Pacific/Gambier Pacific/Guadalcanal Pacific/Guam Pacific/Honolulu Pacific/Johnston Pacific/Kiritimati Pacific/Kosrae Pacific/Kwajalein Pacific/Majuro Pacific/Marquesas Pacific/Midway Pacific/Nauru Pacific/Niue Pacific/Norfolk Pacific/Noumea Pacific/Pago_Pago Pacific/Palau Pacific/Pitcairn Pacific/Ponape Pacific/Port_Moresby Pacific/Rarotonga Pacific/Saipan Pacific/Samoa Pacific/Tahiti Pacific/Tarawa Pacific/Tongatapu Pacific/Truk Pacific/Wake Pacific/Wallis Pacific/Yap Poland Portugal ROC ROK Singapore SystemV/AST4 SystemV/AST4ADT SystemV/CST6 SystemV/CST6CDT SystemV/EST5 SystemV/EST5EDT SystemV/HST10 SystemV/MST7 SystemV/MST7MDT SystemV/PST8 SystemV/PST8PDT SystemV/YST9 SystemV/YST9YDT Turkey US/Alaska US/Aleutian US/Arizona US/Central US/East-Indiana US/Eastern US/Hawaii US/Indiana-Starke US/Michigan US/Mountain US/Pacific US/Samoa W-SU WET --- NEW FILE: admin.php --- <?php session_start(); define('BASE', './'); include (BASE.'functions/init.inc.php'); include (BASE.'functions/admin_functions.php'); // Redirect if administration is not allowed // Modified to enforce proper openFIRST administrative privilidges. if ($allow_admin != "yes" || isset($user->membertype) == false || $user->membertype != "administrator") { header("Location: index.php"); die(); } // Load variables from forms and query strings into local scope if($HTTP_POST_VARS) {extract($HTTP_POST_VARS, EXTR_PREFIX_SAME, "post_");} if($HTTP_GET_VARS) {extract($HTTP_GET_VARS, EXTR_PREFIX_SAME, "get_");} if (!isset($action)) $action = ''; // Logout by clearing session variables if ((isset($action)) && ($action == "logout")) { $HTTP_SESSION_VARS['phpical_loggedin'] = FALSE; unset($HTTP_SESSION_VARS['phpical_username']); unset($HTTP_SESSION_VARS['phpical_password']); } // if $auth_method == 'none', don't do any authentication if ($auth_method == "none") { $is_loged_in = TRUE; } // Check if The User is Identified else { $is_loged_in = FALSE; if (is_loggedin()) { $is_loged_in = TRUE; } if (isset($username) && $action != "logout") { $is_loged_in = login ($username, $password); } } include (BASE.'includes/header.inc.php'); ?> <center> <table width="640" border="0" cellspacing="0" cellpadding="0" class="calborder"> <tr> <td align="center" valign="middle"> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td align="left" width="120" class="navback"><?php echo '<a href="'.BASE.'"><img src="'.BASE.'styles/'.$style_sheet.'/back.gif" alt=" " border="0" align="left"></a>'; ?></td> <td class="navback"> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td align="center" class="navback" nowrap valign="middle"><font class="H20"><?php echo "$admin_header_lang"; ?></font></td> </tr> </table> </td> <td align="right" width="120" class="navback"> <table width="120" border="0" cellpadding="0" cellspacing="0"> <tr> <td><?php echo '<a class="psf" href="'.BASE.'day.php?cal='.$cal.'&getdate='.$getdate.'"><img src="'.BASE.'styles/'.$style_sheet.'/day_on.gif" alt=" " border="0"></a></td>'; ?> <td><?php echo '<a class="psf" href="'.BASE.'week.php?cal='.$cal.'&getdate='.$getdate.'"><img src="'.BASE.'styles/'.$style_sheet.'/week_on.gif" alt=" " border="0"></a></td>'; ?> <td><?php echo '<a class="psf" href="'.BASE.'month.php?cal='.$cal.'&getdate='.$getdate.'"><img src="'.BASE.'styles/'.$style_sheet.'/month_on.gif" alt=" " border="0"></a></td>'; ?> <td><?php echo '<a class="psf" href="'.BASE.'year.php?cal='.$cal.'&getdate='.$getdate.'"><img src="'.BASE.'styles/'.$style_sheet.'/year_on.gif" alt=" " border="0"></a></td>'; ?> </tr> </table> </td> </tr> </table> </td> </tr> <tr> <td class="dayborder"><img src="images/spacer.gif" width="1" height="5" alt=" "></td> </tr> <tr> <td class="G10" align="right"><?php if ($auth_method != "none" && $is_loged_in == TRUE) { echo "<a href=\"{$HTTP_SERVER_VARS['PHP_SELF']}?action=logout\">{$logout_lang}</a>"; } ?> </td> </tr> <tr> <td> <table width="100%" border="0" cellspacing="0" cellpadding="0" class="G10B"> <tr> <td width="2%"></td> <td width="98%" valign="top" align="left"> <?php // If User is Not Logged In, Display The Login Page if ($is_loged_in == FALSE) { if (isset($username)) { $login_error = "<font color=\"red\">$invalid_login_lang</font>"; } else { $login_error = ''; } echo <<<EOT <form action="{$HTTP_SERVER_VARS['PHP_SELF']}" method="post"> <table cellspacing="0" cellpadding="0"> <tr> <td nowrap>{$username_lang}: </td> <td align="left"><input type="text" name="username"></td> </tr> <tr> <td>{$password_lang}: </td> <td align="left"><input type="password" name="password"></td> </tr> <tr> <td> </td> <td align="left"><input type="submit" value="{$login_lang}"></td> </tr> <tr> <td align="center" colspan="3">{$login_error} </td> </tr> </table> </form> EOT; echo " </td> </tr> </table> </td> </tr> </table>"; include (BASE.'includes/footer.inc.php'); echo " </center> </body> </html>"; die(); } // The user is logged in if we get here // Add or Update a calendar $addupdate_msg = ''; $delete_msg = ''; if ((isset($action)) && ($action == "addupdate")) { $addupdate_msg = ""; for($filenumber=1; $filenumber<6; $filenumber++) { $file = $HTTP_POST_FILES['calfile']; $addupdate_success = FALSE; if (!is_uploaded_file_v4($file['tmp_name'][$filenumber])) { $upload_error = get_upload_error($file['error'][$filenumber]); } elseif (!is_uploaded_ics($file['name'][$filenumber])) { $upload_error = $upload_error_type_lang; } elseif (!copy_cal($file['tmp_name'][$filenumber], $file['name'][$filenumber])) { $upload_error = $copy_error_lang . " " . $file['tmp_name'][$filenumber] . " - " . $calendar_path . "/" . $file['name'][$filenumber]; } else { $addupdate_success = TRUE; } if ($addupdate_success) $addupdate_msg = $addupdate_msg . "<font color=\"green\">{$cal_file_lang} {$filenumber}: {$action_success_lang}</font><br>"; else $addupdate_msg = $addupdate_msg . "<font color=\"red\">{$cal_file_lang} {$filenumber}: {$upload_error}</font><br>"; } } // Delete a calendar // Not at all secure - need to strip out path info if used by users besides admin in the future if ($action == "delete") { $delete_msg = ""; foreach ($delete_calendar as $filename) { if (!delete_cal(urldecode($filename))) { $delete_msg = $delete_msg . "<font color=\"red\">" . $delete_error_lang . " " . urldecode(substr($filename,0,-4)) . "</font><br>"; } else { $delete_msg = $delete_msg . "<font color=\"green\">" . urldecode(substr($filename,0,-4)) . " " . $delete_success_lang . "</font><br>"; } } } ?> <h2><?php echo $addupdate_cal_lang; ?></h2> <p><?php echo $addupdate_desc_lang; ?></p> <form action="<?php echo $HTTP_SERVER_VARS['PHP_SELF']; ?>" method="post" enctype="multipart/form-data"> <input type="hidden" name="action" value="addupdate"> <table border="0" cellspacing="0"> <tr> <td nowrap><?php echo $cal_file_lang; ?> 1: </td> <td><input type="file" name="calfile[1]"></td> </tr> <tr> <td nowrap><?php echo $cal_file_lang; ?> 2: </td> <td><input type="file" name="calfile[2]"></td> </tr> <tr> <td nowrap><?php echo $cal_file_lang; ?> 3: </td> <td><input type="file" name="calfile[3]"></td> </tr> <tr> <td nowrap><?php echo $cal_file_lang; ?> 4: </td> <td><input type="file" name="calfile[4]"></td> </tr> <tr> <td nowrap><?php echo $cal_file_lang; ?> 5: </td> <td><input type="file" name="calfile[5]"></td> </tr> <tr> <td> </td> <td><input type="submit" value="<?php echo $submit_lang; ?>"></td> </tr> <tr> <td align="center" colspan="2"><?php echo $addupdate_msg; ?> </td> </tr> </table> </form> <h2><?php echo $delete_cal_lang; ?></h2> <form action="<?php echo $HTTP_SERVER_VARS['PHP_SELF']; ?>" method="post"> <input type="hidden" name="action" value="delete"> <table border="0" cellspacing="0"> <?php // Print Calendar Checkboxes // $COLUMNS_TO_PRINT = 3; $column = 1; $filelist = get_calendar_files($calendar_path); foreach ($filelist as $file) { if ($column > $COLUMNS_TO_PRINT) { echo "</tr>"; $column = 1; } if ($column == 1) { echo "<tr>"; } $cal_filename_tmp = substr($file,0,-4); $cal_tmp = urlencode($file); $cal_displayname_tmp = str_replace("32", " ", $cal_filename_tmp); echo "<td align=\"left\"><input name=\"delete_calendar[]\" value=\"$cal_tmp\" type=\"checkbox\">$cal_displayname_tmp</td>\n"; $column++; } // Print remaining empty columns if necessary $number_of_columns = count($filelist); while (gettype($number_of_columns/$COLUMNS_TO_PRINT) != "integer") { echo "<td> </td>"; $number_of_columns++; } ?> </tr> </table> <p><input type="submit" value="<?php echo $delete_lang; ?>"></p> <p><?php echo $delete_msg; ?> </p> </form> </td> </tr> </table> </td> </tr> </table> </center> <?php include (BASE.'includes/footer.inc.php'); ?> --- NEW FILE: config.inc.php --- <?php /* * PHP iCalendar was taken from the PHP iCalendar project on Source Forge. * It has been adapted through the modification of this configuration file * and the accompanying sources to work with the openFIRST system. * * For more information about PHP iCalendar see: http://phpicalendar.sf.net * * This file has been heavily modified. * The other modified files are: * includes/* * admin.php * * Some patches in the PHP iCalendar CVS system have been applied as they were * causing bugs on some systems. * * Removed default calendar files in calendars/ * * You will have to set the calendars/ directory to be writable for best * results. */ // Add our own global files if(file_exists("../../config/globals.php")) { include("../../config/globals.php"); } else { include("../../../config/globals.php"); } // This fixes a bug which is present in version 0.9.4 of PHP iCalendar $cal_filelist = glob('calendars/*'); // Configuration file for PHP iCalendar 0.9.4 // // To set values, change the text between the single quotes // Follow instructions to the right for detailed information $style_sheet = 'silver'; // Themes support - silver, red, green, orange, grey, tan $default_view = 'month'; // Default view for calendars = 'day', 'week', 'month', 'year' $minical_view = 'current'; // Where do the mini-calendars go when clicked? = 'day', 'week', 'month', 'current' $default_cal = $ALL_CALENDARS_COMBINED; // Exact filename of calendar without .ics. Or set to $ALL_CALENDARS_COMBINED to open all calenders combined into one. $language = 'English'; // Language support - 'English', 'Polish', 'German', 'French', 'Dutch', 'Danish', 'Italian', 'Japanese', 'Norwegian', 'Spanish', 'Swedish', 'Portuguese', 'Catalan', 'Traditional_Chinese', 'Esperanto' $week_start_day = 'Sunday'; // Day of the week your week starts on $day_start = '0800'; // Start time for day grid $day_end = '2000'; // End time for day grid $gridLength = '15'; // Grid distance in minutes for day view, multiples of 15 preferred $num_years = '3'; // Number of years to display in 'Jump to' $month_event_lines = '1'; // Number of lines to wrap each event title in month view, 0 means display all lines. $tomorrows_events_lines = '1'; // Number of lines to wrap each event title in the 'Tommorrow's events' box, 0 means display all lines. $allday_week_lines = '1'; // Number of lines to wrap each event title in all-day events in week view, 0 means display all lines. $week_events_lines = '1'; // Number of lines to wrap each event title in the 'Tommorrow's events' box, 0 means display all lines. $timezone = ''; // Set timezone. Read TIMEZONES file for more information $default_path = '$basepath/members/phpicalendar'; // The HTTP URL to the PHP iCalendar directory, ie. http://www.example.com/phpicalendar $tmp_dir = '/tmp'; // The temporary directory on your system (/tmp is fine for UNIXes including Mac OS X) $calendar_path = 'calendars/'; // Leave this blank on most installs, place your full path to calendars if they are outside the phpicalendar folder. $second_offset = '0'; // The time in seconds between your time and your server's time. // Advanced settings for custom installs, cookies, etc. // In most cases these will not need to be set. $cookie_uri = ''; // The HTTP URL to the PHP iCalendar directory, ie. http://www.example.com/phpicalendar $download_uri = ''; // The HTTP URL to your calendars directory, ie. http://www.example.com/phpicalendar/calendars // Yes/No questions --- 'yes' means Yes, anything else means no. 'yes' must be lowercase. $save_parsed_cals = 'yes'; // Recommended 'yes'. Saves a copy of the cal in /tmp after it's been parsed. Improves performence. $use_sessions = 'no'; // This has not yet been implemented. $display_custom_goto = 'no'; // In the 'Jump To' box, display the custom 'go to day' box. $display_ical_list = 'yes'; // In the 'Jump To' box, display the pop-up menu with the list of all calendars in the $calendar_path directory. $allow_webcals = 'no'; // Allow http:// and webcal:// prefixed URLs to be used as the $cal for remote viewing of "subscribe-able" calendars. This does not have to be enabled to allow specific ones below. $this_months_events = 'yes'; // Display "This month's events" at the bottom off the month page. $use_color_cals = 'yes'; // Display each calendar in the pop-up as a different color. $daysofweek_dayview = 'no'; // Display the days of the week in day.php view. $enable_rss = 'no'; // Enable RSS access to your calendars (good thing). $show_search = 'no'; // Show the search box in the sidebar. $allow_preferences = 'yes'; // Allow visitors to change various preferences via cookies. $printview_default = 'no'; // Set print view as the default view. day, week, and month only supported views for $default_view (listed well above). $show_todos = 'yes'; // Show your todo list on the side of day and week view. $show_completed = 'yes'; // Show completed todos on your todo list. // Administration settings $allow_admin = 'yes'; // Set to yes to allow the admin page - remember to change the default password if using 'internal' as the $auth_method $auth_method = 'none'; // Valid values are: 'ftp', 'internal', or 'none'. 'ftp' uses the ftp server's username and password as well as ftp commands to delete and copy files. 'internal' uses $auth_internal_username and $auth_internal_password defined below - CHANGE the password. 'none' uses NO authentication - meant to be used with another form of authentication such as http basic. //$auth_internal_username = 'admin'; // Only used if $auth_method='internal'. The username for the administrator. //$auth_internal_password = 'default'; // Only used if $auth_method='internal'. The password for the administrator. //$ftp_server = 'localhost'; // Only used if $auth_method='ftp'. The ftp server name. 'localhost' will work for most servers. //$ftp_calendar_path = ''; // Only used if $auth_method='ftp'. The full path to the calendar directory on the ftp server. If = '', will attempt to deduce the path based on $calendar_path, but may not be accurate depending on ftp server config. $blacklisted_cals[] = ''; // Fill in between the quotes the name of the calendars $blacklisted_cals[] = ''; // you wish to 'blacklist' or that you don't want to show up in your calendar $blacklisted_cals[] = ''; // list. This should be the exact calendar filename without .ics $blacklisted_cals[] = ''; // the parser will *not* parse any cal that is in this list (it will not be Web accessible) // add more lines as necessary $list_webcals[] = ''; // Fill in between the quotes exact URL of a calendar that you wish $list_webcals[] = ''; // to show up in your calendar list. You must prefix the URL with http:// $list_webcals[] = ''; // or webcal:// and the filename should contain the .ics suffix $list_webcals[] = ''; // $allow_webcals does *not* need to be "yes" for these to show up and work // add more lines as necessary $color_cals[] = 'silver'; // Fill in between the quotes the colors you want to display $color_cals[] = 'red'; // multiple calendars in. $color_cals[] = 'orange'; // The first color will be used if no color is selected. $color_cals[] = 'grey'; // $color_cals[] = 'green'; // $color_cals[] = 'tan'; // // add more lines as necessary ?> --- NEW FILE: day.php --- <?php if (isset($HTTP_GET_VARS['jumpto_day'])) { $jumpto_day_time = strtotime($HTTP_GET_VARS['jumpto_day']); if ($jumpto_day_time == -1) { $getdate = date('Ymd', strtotime("now + $second_offset seconds")); } else { $getdate = date('Ymd', $jumpto_day_time); } } define('BASE', './'); $current_view = 'day'; include(BASE.'functions/ical_parser.php'); if ($minical_view == 'current') $minical_view = 'day'; $starttime = '0500'; $weekstart = 1; $unix_time = strtotime($getdate); $today_today = date('Ymd', strtotime("now + $second_offset seconds")); $tomorrows_date = date( 'Ymd', strtotime('+1 day', $unix_time)); $yesterdays_date = date( 'Ymd', strtotime('-1 day', $unix_time)); $display_date = localizeDate($dateFormat_day, $unix_time); // For the side months ereg ('([0-9]{4})([0-9]{2})([0-9]{2})', $getdate, $day_array2); $this_day = $day_array2[3]; $this_month = $day_array2[2]; $this_year = $day_array2[1]; $parse_month = date ('Ym', $unix_time); $thisday2 = localizeDate($dateFormat_week_list, $unix_time); $start_week_time = strtotime(dateOfWeek($getdate, $week_start_day)); $dayborder = 0; $nbrGridCols = 1; if (isset($master_array[($getdate)])) { foreach($master_array[($getdate)] as $ovlKey => $ovlValue) { if ($ovlKey != '-1') { foreach($ovlValue as $ovl2Value) { $nbrGridCols = kgv($nbrGridCols, ($ovl2Value['event_overlap'] + 1)); } } } } include (BASE.'includes/header.inc.php'); ?> <center> <table border="0" width="700" cellspacing="0" cellpadding="0"> <tr> <td width="520" valign="top"> <table width="520" border="0" cellspacing="0" cellpadding="0" class="calborder"> <tr> <td align="center" valign="middle"> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td align="left" width="120" class="navback"> </td> <td class="navback"> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td align="right" width="40%" class="navback"><?php echo '<a class="psf" href="day.php?cal='.$cal.'&getdate='.$yesterdays_date.'"><img src="styles/'.$style_sheet.'/left_day.gif" alt="['.$last_day_lang.']" border="0" align="right"></a>'; ?></td> <td align="center" width="20%" class="navback" nowrap valign="middle"><font class="H20"><?php echo $display_date; ?></font></td> <td align="left" width="40%" class="navback"><?php echo '<a class="psf" href="day.php?cal='.$cal.'&getdate='.$tomorrows_date.'"><img src="styles/'.$style_sheet.'/right_day.gif" alt="['.$next_day_lang.']" border="0" align="left"></a>'; ?></td> </tr> </table> </td> <td align="right" width="120" class="navback"> <table width="120" border="0" cellpadding="0" cellspacing="0"> <tr> <td><?php echo '<a class="psf" href="day.php?cal='.$cal.'&getdate='.$getdate.'"><img src="styles/'.$style_sheet.'/day_on.gif" alt="'.$day_view_lang.'" border="0"></a></td>'; ?> <td><?php echo '<a class="psf" href="week.php?cal='.$cal.'&getdate='.$getdate.'"><img src="styles/'.$style_sheet.'/week_on.gif" alt="'.$week_view_lang.'" border="0"></a></td>'; ?> <td><?php echo '<a class="psf" href="month.php?cal='.$cal.'&getdate='.$getdate.'"><img src="styles/'.$style_sheet.'/month_on.gif" alt="'.$month_view_lang.'" border="0"></a></td>'; ?> <td><?php echo '<a class="psf" href="year.php?cal='.$cal.'&getdate='.$getdate.'"><img src="styles/'.$style_sheet.'/year_on.gif" alt="'.$year_view_lang.'" border="0"></a></td>'; ?> </tr> </table> </td> </tr> </table> </td> </tr> <tr> <td> <table width="100%" border="0" cellspacing="0" cellpadding="0" class="G10B"> <?php // The all day events returned here. if (isset($master_array[($getdate)]['-1'])) { echo "<tr>\n"; echo '<td colspan="3" height="24">'."\n"; echo '<table width="100%" border="0" cellspacing="1" cellpadding="4">'."\n"; foreach($master_array[($getdate)]['-1'] as $allday) { echo "<tr>\n"; $event_calno = $allday['calnumber']; if ($event_calno < 1) $event_calno=1; if ($event_calno > 7) $event_calno=7; echo '<td valign="top" align="center" class="eventbg_'.$event_calno.'">'; openevent("$calendar_name", "", "", $allday, 0, "", '<font color="#ffffff"><i>', "</i></font>", "psf"); echo "</td>\n</tr>\n"; } echo '</table>'."\n"; echo '</td>'."\n"; echo '</tr>'."\n"; } if ($daysofweek_dayview == 'yes') { ?> <tr> <td> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <?php echo '<tr><td colspan="7"><img src="images/spacer.gif" width="70" height="1" alt=" "></td></tr>'; echo "<tr>"; $thisdate = $start_week_time; $start_day = strtotime($week_start_day); $i = 0; do { $day_num = date("w", $start_day); $day = $daysofweek_lang[$day_num]; $thisday = date("Ymd", $thisdate); echo "<td width=\"74\" valign=\"top\" align=\"center\" class=\"dateback\">\n"; echo "<font class=\"V9\"><a class=\"psf\" href=\"day.php?cal=$cal&getdate=$thisday\">$day</a></font>\n"; echo "</td>\n"; $start_day = strtotime("+1 day", $start_day); $thisdate = strtotime("+1 day", $thisdate); $i++; } while ($i < 7); echo '</tr>'; echo '</table>'; echo '</td>'; echo '</tr>'; } ?> <tr> <td align="center" valign="top" colspan="3"> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td width="60"><img src="images/spacer.gif" width="60" height="1" alt=" "></td> <td width="1"></td> <?php for ($m=0;$m < $nbrGridCols;$m++) { echo '<td><img src="images/spacer.gif" width="' . (520 / $nbrGridCols) . '" height="1" alt=" "></td>'; } ?> </tr> <?php // $master_array[($getdate)][$day_time] $event_length = array (); $border = 0; foreach ($day_array as $key) { ereg('([0-9]{2})([0-9]{2})', $key, $regs_tmp); $cal_time = $key; $key = mktime($regs_tmp[1],$regs_tmp[2],0,$this_month,$this_day,$this_year); $key = date ($timeFormat, $key); unset($this_time_arr); // add events that overlap the start time if (isset($master_array[$getdate][$cal_time]) && sizeof($master_array[$getdate][$cal_time]) > 0) { $this_time_arr = $master_array[$getdate][$cal_time]; } // add events that overlap $day_start instead of cutting them out completely if ("$day_start" == "$cal_time" && isset($master_array[$getdate])) { foreach($master_array[$getdate] as $time_key => $time_arr) { if ((int)$time_key < (int)$cal_time && is_array($time_arr) && $time_key != '-1') { foreach($time_arr as $event_tmp) { if ((int)$event_tmp['event_end'] > (int)$cal_time) { $this_time_arr[] = $event_tmp; } } } else { break; } } } // check for eventstart if (isset($this_time_arr) && sizeof($this_time_arr) > 0) { foreach ($this_time_arr as $eventKey => $loopevent) { $drawEvent = drawEventTimes ($cal_time, $loopevent['event_end']); $j = 0; while (isset($event_length[$j])) { if ($event_length[$j]['state'] == 'ended') { $event_length[$j] = array ('length' => ($drawEvent['draw_length'] / $gridLength), 'key' => $eventKey, 'overlap' => $loopevent['event_overlap'],'state' => 'begin'); break; } $j++; } if ($j == sizeof($event_length)) { array_push ($event_length, array ('length' => ($drawEvent['draw_length'] / $gridLength), 'key' => $eventKey, 'overlap' => $loopevent['event_overlap'],'state' => 'begin')); } } } if (ereg('([0-9]{1,2}):00', $key)) { echo '<tr>'."\n"; echo '<td rowspan="' . (60 / $gridLength) . '" align="center" valign="top" width="60" class="timeborder">'.$key.'</td>'."\n"; echo '<td width="1" height="' . $gridLength . '"></td>'."\n"; } elseif("$cal_time" == "$day_start") { $size_tmp = 60 - (int)substr($cal_time,2,2); echo "<tr>\n"; echo "<td rowspan=\"" . ($size_tmp / $gridLength) . "\" align=\"center\" valign=\"top\" width=\"60\" class=\"timeborder\">$key</td>\n"; echo "<td width=\"1\" height=\"" . $gridLength . "\"></td>\n"; } else { echo '<tr>'."\n"; echo '<td width="1" height="' . $gridLength . '"></td>'."\n"; } if ($dayborder == 0) { $class = ' class="dayborder"'; $dayborder++; } else { $class = ' class="dayborder2"'; $dayborder = 0; } if (sizeof($event_length) == 0) { echo '<td bgcolor="#ffffff" colspan="' . $nbrGridCols . '" '.$class.'> </td>'."\n"; } else { $emptyWidth = $nbrGridCols; for ($i=0;$i<sizeof($event_length);$i++) { $drawWidth = $nbrGridCols / ($event_length[$i]['overlap'] + 1); $emptyWidth = $emptyWidth - $drawWidth; switch ($event_length[$i]['state']) { case 'begin': $event_length[$i]['state'] = 'started'; $event_start = strtotime ($this_time_arr[($event_length[$i]['key'])]['event_start']); $event_end = strtotime ($this_time_arr[($event_length[$i]['key'])]['event_end']); $event_start = date ($timeFormat, $ev... [truncated message content] |