0byt3m1n1
Path:
/
data
/
applications
/
aps.bak
/
webcalendar
/
1.2.0-4
/
standard
/
htdocs
/
[
Home
]
File: publish.php
<?php /* $Id: publish.php,v 1.32.2.4 2007/11/12 15:40:31 umcesrjones Exp $ * * Description: * Creates the iCal output for a single user's calendar so that remote users can * "subscribe" to a WebCalendar calendar. Both Apple iCal and Mozilla's calendar * support subscribing to remote calendars. * * Note that unlike the export to iCal, this page does not include * attendee info. This improves the performance considerably, BTW. * * Notes: * Does anyone know when a client (iCal, for example) refreshes its * data, does it delete all old data and reload? Just wondering * if we need to somehow send a delete notification on updates... * * Input parameters: * URL should be the form of /xxx/publish.php/username.ics * or /xxx/publish.php?user=username * * Security: * DO NOT ALLOW if either; * $PUBLISH_ENABLED is not 'Y' (set in Admin System Settings). * $USER_PUBLISH_ENABLED is not 'Y' (set in each user's Preferences). */ require_once 'includes/classes/WebCalendar.class'; $WebCalendar =& new WebCalendar ( __FILE__ ); include 'includes/translate.php'; include 'includes/config.php'; include 'includes/dbi4php.php'; include 'includes/formvars.php'; include 'includes/functions.php'; $WebCalendar->initializeFirstPhase (); include 'includes/' . $user_inc; include 'includes/validate.php'; include 'includes/site_extras.php'; include_once 'includes/xcal.php'; $WebCalendar->initializeSecondPhase (); // Calculate username. // If using http_auth, use those credentials. if ( $use_http_auth && empty ( $user ) ) $user = $login; if ( empty ( $user ) ) { $arr = explode ( '/', $PHP_SELF ); $user = $arr[count ( $arr )-1]; # remove any trailing ".ics" in user name $user = preg_replace ( "/\.[iI][cC][sS]$/", '', $user ); } if ( $user == 'publish.php' ) $user = ''; if ( $user == 'public' ) $user = '__public__'; load_global_settings (); $WebCalendar->setLanguage (); if ( empty ( $PUBLISH_ENABLED ) || $PUBLISH_ENABLED != 'Y' ) { header ( 'Content-Type: text/plain' ); echo print_not_auth (20); exit; } $errorStr = translate ( 'Error' ); $nouser = translate ( 'No user specified' ); // Make sure they specified a username. if ( empty ( $user ) ) { echo send_doctype ( $errorStr ); echo <<<EOT </head> <body> <h2>{$errorStr}</h2> {$nouser}. </body> </html> EOT; exit; } // Load user preferences (to get the USER_PUBLISH_ENABLED and // DISPLAY_UNAPPROVED setting for this user). $login = $user; load_user_preferences (); if ( empty ( $USER_PUBLISH_ENABLED ) || $USER_PUBLISH_ENABLED != 'Y' ) { header ( 'Content-Type: text/plain' ); echo print_not_auth (25); exit; } // Load user name, etc. user_load_variables ( $user, 'publish_' ); // header ( 'Content-Type: text/plain' ); header ( 'Content-Type: text/calendar' ); header ( 'Content-Disposition: attachment; filename="' . $user . '.ics"' ); $use_all_dates = true; $type = 'publish'; export_ical (); ?>