function eme_get_calendar_shortcode($atts) { extract(shortcode_atts(array('category' => 0, 'notcategory' => 0, 'full' => 0, 'month' => '', 'year' => '', 'echo' => 0, 'long_events' => 0, 'author' => '', 'contact_person' => '', 'location_id' => '', 'template_id' => 0), $atts)); $echo = $echo === "true" || $echo === "1" ? true : $echo; $full = $full === "true" || $full === "1" ? true : $full; $long_events = $long_events === "true" || $long_events === "1" ? true : $long_events; $echo = $echo === "false" || $echo === "0" ? false : $echo; $full = $full === "false" || $full === "0" ? false : $full; $long_events = $long_events === "false" || $long_events === "0" ? false : $long_events; // this allows people to use specific months/years to show the calendar on if (isset($_GET['calmonth']) && $_GET['calmonth'] != '') { $month = eme_sanitize_request($_GET['calmonth']); } if (isset($_GET['calyear']) && $_GET['calyear'] != '') { $year = eme_sanitize_request($_GET['calyear']); } // the filter list overrides the settings if (isset($_REQUEST['eme_eventAction']) && $_REQUEST['eme_eventAction'] == 'filter') { if (isset($_REQUEST['eme_scope_filter'])) { $scope = eme_sanitize_request($_REQUEST['eme_scope_filter']); if (preg_match("/^([0-9]{4})-([0-9]{2})-[0-9]{2}--[0-9]{4}-[0-9]{2}-[0-9]{2}\$/", $scope, $matches)) { $year = $matches[1]; $month = $matches[2]; } } if (isset($_REQUEST['eme_loc_filter'])) { if (is_array($_REQUEST['eme_loc_filter'])) { $location_id = join(',', eme_sanitize_request($_REQUEST['eme_loc_filter'])); } else { $location_id = eme_sanitize_request($_REQUEST['eme_loc_filter']); } } if (isset($_REQUEST['eme_town_filter'])) { $towns = eme_sanitize_request($_REQUEST['eme_town_filter']); if (empty($location_id)) { $location_id = join(',', eme_get_town_location_ids($towns)); } else { $location_id .= "," . join(',', eme_get_town_location_ids($towns)); } } if (isset($_REQUEST['eme_cat_filter'])) { if (is_array($_REQUEST['eme_cat_filter'])) { $category = join(',', eme_sanitize_request($_REQUEST['eme_cat_filter'])); } else { $category = eme_sanitize_request($_REQUEST['eme_cat_filter']); } } } $result = eme_get_calendar("full={$full}&month={$month}&year={$year}&echo={$echo}&long_events={$long_events}&category={$category}&author={$author}&contact_person={$contact_person}&location_id={$location_id}¬category={$notcategory}&template_id={$template_id}"); return $result; }
function eme_get_events_list_shortcode($atts) { $eme_event_list_number_events = get_option('eme_event_list_number_items'); extract(shortcode_atts(array('limit' => $eme_event_list_number_events, 'scope' => 'future', 'order' => 'ASC', 'format' => '', 'category' => '', 'showperiod' => '', 'author' => '', 'contact_person' => '', 'paging' => 0, 'long_events' => 0, 'location_id' => 0, 'user_registered_only' => 0, 'show_ongoing' => 1, 'link_showperiod' => 0, 'notcategory' => '', 'show_recurrent_events_once' => 0, 'template_id' => 0, 'template_id_header' => 0, 'template_id_footer' => 0, 'no_events_message' => ''), $atts)); // the filter list overrides the settings if (isset($_REQUEST['eme_eventAction']) && $_REQUEST['eme_eventAction'] == 'filter') { if (isset($_REQUEST['eme_scope_filter']) && !empty($_REQUEST['eme_scope_filter'])) { $scope = eme_sanitize_request($_REQUEST['eme_scope_filter']); } if (isset($_REQUEST['eme_loc_filter']) && !empty($_REQUEST['eme_loc_filter'])) { if (is_array($_REQUEST['eme_loc_filter'])) { $location_id = join(',', eme_sanitize_request($_REQUEST['eme_loc_filter'])); } else { $location_id = eme_sanitize_request($_REQUEST['eme_loc_filter']); } } if (isset($_REQUEST['eme_town_filter']) && !empty($_REQUEST['eme_town_filter'])) { $towns = eme_sanitize_request($_REQUEST['eme_town_filter']); if (empty($location_id)) { $location_id = join(',', eme_get_town_location_ids($towns)); } else { $location_id .= "," . join(',', eme_get_town_location_ids($towns)); } } if (isset($_REQUEST['eme_cat_filter']) && !empty($_REQUEST['eme_cat_filter'])) { if (is_array($_REQUEST['eme_cat_filter'])) { $category = join(',', eme_sanitize_request($_REQUEST['eme_cat_filter'])); } else { $category = eme_sanitize_request($_REQUEST['eme_cat_filter']); } } } // if format is given as argument, sometimes people need url-encoded strings inside so wordpress doesn't get confused, so we decode them here again $format = urldecode($format); // for format: sometimes people want to give placeholders as options, but when using the shortcode inside // another (e.g. when putting[eme_events format="#_EVENTNAME"] inside the "display single event" setting, // the replacement of the placeholders happens too soon (placeholders get replaced first, before any other // shortcode is interpreted). So we add the option that people can use "#OTHER_", and we replace this with // "#_" here $format = preg_replace('/#OTHER/', "#", $format); $result = eme_get_events_list($limit, $scope, $order, $format, '', '', 0, $category, $showperiod, $long_events, $author, $contact_person, $paging, $location_id, $user_registered_only, $show_ongoing, $link_showperiod, $notcategory, $show_recurrent_events_once, $template_id, $template_id_header, $template_id_footer, $no_events_message); return $result; }