+
+ if ($mode == 'export') {
+ if (!(intval($owner_uid))) {
+ notice(t('User not found'));
+ return;
+ }
+
+ // Test permissions
+ // Respect the export feature setting for all other /cal pages if it's not the own profile
+ if (((local_user() !== intval($owner_uid))) && !Feature::isEnabled($owner_uid, "export_calendar")) {
+ notice(t('Permission denied.') . EOL);
+ goaway('cal/' . $nick);
+ }
+
+ // Get the export data by uid
+ $evexport = event_export($owner_uid, $format);
+
+ if (!$evexport["success"]) {
+ if ($evexport["content"]) {
+ notice(t('This calendar format is not supported'));
+ } else {
+ notice(t('No exportable data found'));
+ }
+
+ // If it the own calendar return to the events page
+ // otherwise to the profile calendar page
+ if (local_user() === intval($owner_uid)) {
+ $return_path = "events";
+ } else {
+ $return_path = "cal/" . $nick;
+ }
+
+ goaway($return_path);
+ }
+
+ // If nothing went wrong we can echo the export content
+ if ($evexport["success"]) {
+ header('Content-type: text/calendar');
+ header('content-disposition: attachment; filename="' . t('calendar') . '-' . $nick . '.' . $evexport["extension"] . '"');
+ echo $evexport["content"];
+ killme();
+ }
+
+ return;
+ }