/** * Returns an html calendar of events filtered by the array or query-string of arguments supplied. * @param array|string $args * @return string */ function em_get_calendar($args = array()) { if (strpos($args, "=")) { // allows the use of arguments without breaking the legacy code $defaults = EM_Calendar::get_default_search(); $args = wp_parse_args($args, $defaults); } return EM_Calendar::output($args); }
/** * Hooks into icl_ls_languages and fixes links for when viewing an events list page specific to a calendar day. * @param array $langs * @return array */ public static function icl_ls_languages($langs) { global $wp_rewrite; //modify the URL if we're dealing with calendar day URLs if (!empty($_REQUEST['calendar_day']) && preg_match('/\\d{4}-\\d{2}-\\d{2}/', $_REQUEST['calendar_day'])) { $query_args = EM_Calendar::get_query_args(array_intersect_key(EM_Calendar::get_default_search($_GET), EM_Events::get_post_search($_GET, true))); if ($wp_rewrite->using_permalinks()) { //if using rewrites, add as a slug foreach ($langs as $lang => $lang_array) { $lang_url_parts = explode('?', $lang_array['url']); $lang_url_parts[0] = trailingslashit($lang_url_parts[0]) . $_REQUEST['calendar_day'] . '/'; $langs[$lang]['url'] = esc_url_raw(add_query_arg($query_args, implode('?', $lang_url_parts))); } } else { $query_args['calendar_day'] = $_REQUEST['calendar_day']; foreach ($langs as $lang => $lang_array) { $langs[$lang]['url'] = esc_url_raw(add_query_arg($query_args, $lang_array['url'])); } } } return $langs; }