/** * Serves pages for upload and embed. * * @param $page */ function embed_page_handler($page) { if (!isset($page[0])) { $page[0] = 'embed'; } switch ($page[0]) { case 'upload': echo elgg_view('embed/upload'); break; case 'embed': default: // trigger hook to get section tabs // use views for embed/section/ // listing // item // default to embed/listing | item if not found. // @todo trigger for all right now. If we categorize these later we can trigger // for certain categories. $sections = elgg_trigger_plugin_hook('embed_get_sections', 'all', NULL, array()); $upload_sections = elgg_trigger_plugin_hook('embed_get_upload_sections', 'all', NULL, array()); elgg_sort_3d_array_by_value($sections, 'name'); elgg_sort_3d_array_by_value($upload_sections, 'name'); $active_section = get_input('active_section', NULL); $internal_name = get_input('internal_name', NULL); echo elgg_view('embed/embed', array('sections' => $sections, 'active_section' => $active_section, 'upload_sections' => $upload_sections, 'internal_name' => $internal_name)); break; } // exit because this is in a modal display. exit; }
return; } } $timezone = Util::getClientTimezone(); $start_local = $start - Util::getOffset($start, Util::UTC, $timezone); $end_local = $end - Util::getOffset($end, Util::UTC, $timezone); $events = array(); foreach ($calendars as $c) { $cevents = $c->getAllEventInstances($start_local, $end_local); $events = array_merge($events, $cevents); } // need to weed out duplicates // since some events can show up on multiple calendars // $events = array_map('unserialize', array_unique(array_map('serialize', $events))); // calendar param on urls makes this not work :( $dupes = array(); foreach ($events as $key => $instance) { $test = $instance['guid'] . ':' . $instance['start_timestamp']; if (in_array($test, $dupes)) { unset($events[$key]); continue; } $dupes[] = $test; } // also re-order by time elgg_sort_3d_array_by_value($events, 'start_timestamp', SORT_ASC, SORT_NUMERIC); // finally limit the number of results $limit = $vars['entity']->num_results ? $vars['entity']->num_results : 10; if (count($events) > $limit) { $events = array_slice($events, 0, $limit); } echo elgg_view('events_ui/feed', array('events' => $events));