public static function init() { if (!empty(self::$init)) { return; } //Determine the available languages and the currently displayed locale for this site. self::$langs = apply_filters('em_ml_langs', array()); self::$wplang = apply_filters('em_ml_wplang', get_locale()); self::$current_language = !empty($_REQUEST['em_lang']) && array_key_exists($_REQUEST['em_lang'], self::$langs) ? $_REQUEST['em_lang'] : get_locale(); self::$current_language = apply_filters('em_ml_current_language', self::$current_language); //proceed with loading the plugin, we don't need to deal with the rest of this if no languages were defined by an extending class if (count(self::$langs) > 0) { //set flag to prevent unecessary counts self::$is_ml = true; do_action('em_ml_pre_init'); //only initialize when this is a MultiLingual instance //make sure options are being translated immediately if needed include EM_DIR . '/multilingual/em-ml-options.php'; //load all the extra ML helper classes if (is_admin()) { include EM_DIR . '/multilingual/em-ml-admin.php'; } include EM_DIR . '/multilingual/em-ml-bookings.php'; include EM_DIR . '/multilingual/em-ml-io.php'; include EM_DIR . '/multilingual/em-ml-placeholders.php'; include EM_DIR . '/multilingual/em-ml-search.php'; //change some localized script vars add_filter('em_wp_localize_script', 'EM_ML::em_wp_localize_script'); } self::$init = true; if (self::$is_ml) { do_action('em_ml_init'); } //only initialize when this is a MultiLingual instance }
public static function meta_box_bookings_translation() { global $EM_Event; $event = EM_ML::get_original_event($EM_Event); $lang = EM_ML::$current_language; ?> <p><em><?php esc_html_e('Below are translations for your tickets. If left blank, the language of the original event will be used.', 'dbem'); ?> </em></p> <table class="event-bookings-ticket-translation form-table"> <?php foreach ($event->get_tickets()->tickets as $EM_Ticket) { /* @var $EM_Ticket EM_Ticket */ $name = !empty($EM_Ticket->ticket_meta['langs'][$lang]['ticket_name']) ? $EM_Ticket->ticket_meta['langs'][$lang]['ticket_name'] : ''; $description = !empty($EM_Ticket->ticket_meta['langs'][$lang]['ticket_description']) ? $EM_Ticket->ticket_meta['langs'][$lang]['ticket_description'] : ''; $desc_ph = !empty($EM_Ticket->ticket_description) ? $EM_Ticket->ticket_description : __('Description', 'dbem'); ?> <tbody> <tr> <td><strong><?php echo esc_html($EM_Ticket->ticket_name); ?> </strong></td> <td> <input placeholder="<?php echo esc_attr($EM_Ticket->ticket_name); ?> " type="text" name="ticket_translations[<?php echo $EM_Ticket->ticket_id; ?> ][ticket_name]" value="<?php echo esc_attr($name); ?> " /> <br/> <textarea placeholder="<?php echo esc_attr($desc_ph); ?> " type="text" name="ticket_translations[<?php echo $EM_Ticket->ticket_id; ?> ][ticket_description]"><?php echo esc_html($description); ?> </textarea> </td> </tr> </tbody> <?php } ?> </table> <?php }
public static function em_object_get_default_search($defaults, $array, $super_defaults) { if (!empty($defaults['location'])) { //check that this location ID is the original one, given that all events of any language will refer to the location_id of the original $EM_Location = em_get_location($defaults['location']); if (!EM_ML::is_original($EM_Location)) { $defaults['location'] = EM_ML::get_original_location($EM_Location)->location_id; } } return $defaults; }
function init() { self::$translatable_options = apply_filters('em_ml_translatable_options', array('dbem_events_anonymous_result_success', 'dbem_events_form_result_success', 'dbem_events_form_result_success_updated', 'dbem_event_list_groupby_format', 'dbem_event_list_item_format_header', 'dbem_event_list_item_format', 'dbem_event_list_item_format_footer', 'dbem_no_events_message', 'dbem_list_date_title', 'dbem_single_event_format', 'dbem_serach_form_submit', 'dbem_search_form_text_label', 'dbem_search_form_categories_label', 'dbem_search_form_countries_label', 'dbem_search_form_regions_label', 'dbem_search_form_states_label', 'dbem_search_form_towns_label', 'dbem_date_format', 'dbem_date_format_js', 'dbem_dates_Separator', 'dbem_time_format', 'dbem_times_Separator', 'dbem_event_all_day_message', 'dbem_small_calendar_event_title_format', 'dbem_small_calendar_event_title_separator', 'dbem_full_calendar_event_format', 'dbem_display_calendar_events_limit_msg', 'dbem_ical_description_format', 'dbem_location_list_item_format_header', 'dbem_location_list_item_format', 'dbem_location_list_item_format_footer', 'dbem_no_locations_message', 'dbem_location_page_title_format', 'dbem_single_location_format', 'dbem_location_event_list_item_header_format', 'dbem_location_event_list_item_format', 'dbem_location_event_list_item_footer_format', 'dbem_location_no_events_message', 'dbem_categories_list_item_format_header', 'dbem_categories_list_item_format', 'dbem_categories_list_item_format_footer', 'dbem_no_categories_message', 'dbem_category_page_title_format', 'dbem_category_page_format', 'dbem_category_event_list_item_header_format', 'dbem_category_event_list_item_format', 'dbem_category_event_list_item_footer_format', 'dbem_category_no_events_message', 'dbem_tag_page_title_format', 'dbem_tag_page_format', 'dbem_tag_event_list_item_header_format', 'dbem_tag_event_list_item_format', 'dbem_tag_event_list_item_footer_format', 'dbem_tag_no_events_message', 'dbem_rss_main_description', 'dbem_rss_main_title', 'dbem_rss_title_format', 'dbem_rss_description_format', 'dbem_map_text_format', 'dbem_location_baloon_format', 'dbem_bookings_currency_thousands_sep', 'dbem_bookings_currency_decimal_point', 'dbem_bookings_currency_format', 'dbem_bookings_tax', 'dbem_booking_feedback_cancelled', 'dbem_booking_warning_cancel', 'dbem_bookings_form_msg_disabled', 'dbem_bookings_form_msg_closed', 'dbem_bookings_form_msg_full', 'dbem_bookings_form_msg_attending', 'dbem_bookings_form_msg_bookings_link', 'dbem_booking_feedback', 'dbem_booking_feedback_pending', 'dbem_booking_feedback_full', 'dbem_booking_feedback_error', 'dbem_booking_feedback_email_exists', 'dbem_booking_feedback_log_in', 'dbem_booking_feedback_nomail', 'dbem_booking_feedback_already_booked', 'dbem_booking_feedback_min_space', 'dbem_booking_button_msg_book', 'dbem_booking_button_msg_booking', 'dbem_booking_button_msg_booked', 'dbem_booking_button_msg_error', 'dbem_booking_button_msg_full', 'dbem_booking_button_msg_cancel', 'dbem_booking_button_msg_canceling', 'dbem_booking_button_msg_cancelled', 'dbem_booking_button_msg_cancel_error', 'dbem_bookings_submit_button', 'dbem_bookings_contact_email_subject', 'dbem_bookings_contact_email_body', 'dbem_contactperson_email_cancelled_subject', 'dbem_contactperson_email_cancelled_body', 'dbem_bookings_email_confirmed_subject', 'dbem_bookings_email_confirmed_body', 'dbem_bookings_email_pending_subject', 'dbem_bookings_email_pending_body', 'dbem_bookings_email_rejected_subject', 'dbem_bookings_email_rejected_body', 'dbem_bookings_email_cancelled_subject', 'dbem_bookings_email_cancelled_body', 'dbem_event_submitted_email_subject', 'dbem_event_submitted_email_body', 'dbem_event_resubmitted_email_subject', 'dbem_event_resubmitted_email_body', 'dbem_event_published_email_subject', 'dbem_event_approved_email_body', 'dbem_event_reapproved_email_subject', 'dbem_event_reapproved_email_body', 'em_booking_form_error_required', 'dbem_emp_emails_reminder_subject', 'dbem_emp_emails_reminder_body', 'dbem_gateway_label', 'em_paypal_booking_feedback', 'em_paypal_booking_feedback_free', 'em_paypal_booking_feedback_thanks', 'em_offline_option_name', 'em_offline_booking_feedback', 'em_offline_option_name', 'em_offline_button', 'em_authorize_aim_option_name', 'em_authorize_aim_booking_feedback', 'em_authorize_aim_booking_feedback_free')); self::$langs = apply_filters('em_ml_langs', array()); self::$wplang = apply_filters('em_ml_wplang', get_locale()); if (!is_admin()) { if (count(self::$langs) > 0 && self::$wplang != get_locale()) { foreach (self::$translatable_options as $option) { add_filter('pre_option_' . $option, array(&$this, 'pre_option_' . $option), 1, 1); } } } }
/** * Hooks into em_event_get_post and writes the original event translation data into the current event, to avoid validation errors and correct data saving. * @param boolean $result * @param EM_Event $EM_Event * @return boolean */ public static function event_get_post($result, $EM_Event) { //check if this is a master event, if not then we need to get the relevant master event info and populate this object with it so it passes validation and saves correctly. $event = EM_ML::get_original_event($EM_Event); /* @var $event EM_Event */ $EM_Event->original_event_id = $event->event_id; if ($EM_Event->event_id != $EM_Event->original_event_id) { $EM_Event->event_start_date = $event->event_start_date; $EM_Event->event_end_date = $event->event_end_date; $EM_Event->recurrence = $event->recurrence; $EM_Event->post_type = $event->post_type; $EM_Event->location_id = $event->location_id; $EM_Event->location = false; if ($EM_Event->location_id == 0) { $_POST['no_location'] = 1; } $EM_Event->event_all_day = $event->event_all_day; $EM_Event->event_start_time = $event->event_start_time; $EM_Event->event_end_time = $event->event_end_time; $EM_Event->start = $event->start; $EM_Event->end = $event->end; $EM_Event->event_rsvp_date = $event->event_rsvp_date; $EM_Event->event_rsvp = $event->event_rsvp; $EM_Event->event_rsvp_time = $event->event_rsvp_time; $EM_Event->blog_id = $event->blog_id; $EM_Event->group_id = $event->group_id; $EM_Event->recurrence = $event->recurrence; $EM_Event->recurrence_freq = $event->recurrence_freq; $EM_Event->recurrence_byday = $event->recurrence_byday; $EM_Event->recurrence_interval = $event->recurrence_interval; $EM_Event->recurrence_byweekno = $event->recurrence_byweekno; $EM_Event->recurrence_days = $event->recurrence_days; // We need to save ticket translations here as well to the ticket objects foreach ($EM_Event->get_tickets()->tickets as $EM_Ticket) { /* @var $EM_Ticket EM_Ticket */ $ticket_translation = array(); if (!empty($_REQUEST['ticket_translations'][$EM_Ticket->ticket_id]['ticket_name'])) { $ticket_translation['ticket_name'] = $_REQUEST['ticket_translations'][$EM_Ticket->ticket_id]['ticket_name']; } if (!empty($_REQUEST['ticket_translations'][$EM_Ticket->ticket_id]['ticket_description'])) { $ticket_translation['ticket_description'] = $_REQUEST['ticket_translations'][$EM_Ticket->ticket_id]['ticket_description']; } if (!empty($ticket_translation)) { $EM_Ticket->ticket_meta['langs'][EM_ML::$current_language] = $ticket_translation; } } } return $result; }
/** * Certain placeholders, specifically booking placeholders, will take information from the original event, so we generate the * @param string $replace * @param EM_Event $EM_Event * @param string $full_result * @return string */ public static function override_placeholders($replace, $EM_Event, $full_result) { global $em_wpml_original_events_cache; if (in_array($full_result, EM_ML_Placeholders::$event_placeholders)) { $event = EM_ML::get_original_event($EM_Event); //get the master event info, for later use if ($event->event_id != $EM_Event->event_id) { remove_filter('em_event_output_placeholder', 'EM_ML_Placeholders::override_placeholders', 100, 3); //override bookign form $replace = $event->output($full_result); add_filter('em_event_output_placeholder', 'EM_ML_Placeholders::override_placeholders', 100, 3); //override bookign form } } return $replace; }
public static function em_booking_email_messages($msg, $EM_Booking) { //only proceed if booking was in another language AND we're not in the current language given the option is translated automatically if (!empty($EM_Booking->booking_meta['lang']) && EM_ML::$current_language != $EM_Booking->booking_meta['lang']) { $lang = $EM_Booking->booking_meta['lang']; //get the translated event $EM_Event = EM_ML::get_translation($EM_Booking->get_event(), $lang); //check that we're not already dealing with the translated event if ($EM_Event->post_id != $EM_Booking->get_event()->post_id) { //below is copied script from EM_Booking::email_messages() replacing get_option with EM_ML_Options::get_option() supplying the booking language switch ($EM_Booking->booking_status) { case 0: case 5: //TODO remove offline status from here and move to pro $msg['user']['subject'] = EM_ML_Options::get_option('dbem_bookings_email_pending_subject', $lang); $msg['user']['body'] = EM_ML_Options::get_option('dbem_bookings_email_pending_body', $lang); //admins should get something (if set to) $msg['admin']['subject'] = EM_ML_Options::get_option('dbem_bookings_contact_email_pending_subject', $lang); $msg['admin']['body'] = EM_ML_Options::get_option('dbem_bookings_contact_email_pending_body', $lang); break; case 1: $msg['user']['subject'] = EM_ML_Options::get_option('dbem_bookings_email_confirmed_subject', $lang); $msg['user']['body'] = EM_ML_Options::get_option('dbem_bookings_email_confirmed_body', $lang); //admins should get something (if set to) $msg['admin']['subject'] = EM_ML_Options::get_option('dbem_bookings_contact_email_confirmed_subject', $lang); $msg['admin']['body'] = EM_ML_Options::get_option('dbem_bookings_contact_email_confirmed_body', $lang); break; case 2: $msg['user']['subject'] = EM_ML_Options::get_option('dbem_bookings_email_rejected_subject', $lang); $msg['user']['body'] = EM_ML_Options::get_option('dbem_bookings_email_rejected_body', $lang); //admins should get something (if set to) $msg['admin']['subject'] = EM_ML_Options::get_option('dbem_bookings_contact_email_rejected_subject', $lang); $msg['admin']['body'] = EM_ML_Options::get_option('dbem_bookings_contact_email_rejected_body', $lang); break; case 3: $msg['user']['subject'] = EM_ML_Options::get_option('dbem_bookings_email_cancelled_subject', $lang); $msg['user']['body'] = EM_ML_Options::get_option('dbem_bookings_email_cancelled_body', $lang); //admins should get something (if set to) $msg['admin']['subject'] = EM_ML_Options::get_option('dbem_bookings_contact_email_cancelled_subject', $lang); $msg['admin']['body'] = EM_ML_Options::get_option('dbem_bookings_contact_email_cancelled_body', $lang); break; } } } return $msg; }
public static function init() { if (!empty(self::$init)) { return; } //Determine the available languages and the currently displayed locale for this site. self::$langs = apply_filters('em_ml_langs', array()); self::$wplang = apply_filters('em_ml_wplang', get_locale()); self::$current_language = !empty($_REQUEST['em_lang']) && array_key_exists($_REQUEST['em_lang'], self::$langs) ? $_REQUEST['em_lang'] : get_locale(); self::$current_language = apply_filters('em_ml_current_language', self::$current_language); //proceed with loading the plugin, we don't need to deal with the rest of this if no languages were defined by an extending class if (count(self::$langs) > 0) { //set flag to prevent unecessary counts self::$is_ml = true; //define the translatable options for the plugin self::$translatable_options = apply_filters('em_ml_translatable_options', array('dbem_events_anonymous_result_success', 'dbem_events_form_result_success', 'dbem_events_form_result_success_updated', 'dbem_event_list_groupby_format', 'dbem_event_list_item_format_header', 'dbem_event_list_item_format', 'dbem_event_list_item_format_footer', 'dbem_no_events_message', 'dbem_list_date_title', 'dbem_single_event_format', 'dbem_event_excerpt_format', 'dbem_event_excerpt_alt_format', 'dbem_search_form_submit', 'dbem_search_form_advanced_hide', 'dbem_search_form_advanced_show', 'dbem_search_form_text_label', 'dbem_search_form_categories_label', 'dbem_search_form_category_label', 'dbem_search_form_countries_label', 'dbem_search_form_country_label', 'dbem_search_form_regions_label', 'dbem_search_form_region_label', 'dbem_search_form_states_label', 'dbem_search_form_state_label', 'dbem_search_form_towns_label', 'dbem_search_form_town_label', 'dbem_search_form_geo_label', 'dbem_search_form_geo_units_label', 'dbem_search_form_dates_label', 'dbem_search_form_dates_separator', 'dbem_date_format', 'dbem_date_format_js', 'dbem_dates_separator', 'dbem_time_format', 'dbem_times_separator', 'dbem_event_all_day_message', 'dbem_small_calendar_month_format', 'dbem_small_calendar_event_title_format', 'dbem_small_calendar_event_title_separator', 'dbem_full_calendar_month_format', 'dbem_full_calendar_event_format', 'dbem_display_calendar_events_limit_msg', 'dbem_ical_description_format', 'dbem_ical_real_description_format', 'dbem_ical_location_format', 'dbem_location_list_item_format_header', 'dbem_location_list_item_format', 'dbem_location_list_item_format_footer', 'dbem_no_locations_message', 'dbem_location_page_title_format', 'dbem_single_location_format', 'dbem_location_event_list_item_header_format', 'dbem_location_event_list_item_format', 'dbem_location_event_list_item_footer_format', 'dbem_location_no_events_message', 'dbem_location_event_single_format', 'dbem_location_no_event_message', 'dbem_categories_list_item_format_header', 'dbem_categories_list_item_format', 'dbem_categories_list_item_format_footer', 'dbem_no_categories_message', 'dbem_category_page_title_format', 'dbem_category_page_format', 'dbem_category_event_list_item_header_format', 'dbem_category_event_list_item_format', 'dbem_category_event_list_item_footer_format', 'dbem_category_no_events_message', 'dbem_category_no_event_message', 'dbem_category_event_single_format', 'dbem_tags_list_item_format_header', 'dbem_tags_list_item_format', 'dbem_tags_list_item_format_footer', 'dbem_no_tags_message', 'dbem_tag_page_title_format', 'dbem_tag_page_format', 'dbem_tag_event_list_item_header_format', 'dbem_tag_event_list_item_format', 'dbem_tag_event_list_item_footer_format', 'dbem_tag_no_events_message', 'dbem_tag_event_single_format', 'dbem_tag_no_event_message', 'dbem_rss_main_description', 'dbem_rss_main_title', 'dbem_rss_title_format', 'dbem_rss_description_format', 'dbem_map_text_format', 'dbem_location_baloon_format', 'dbem_bookings_currency_thousands_sep', 'dbem_bookings_currency_decimal_point', 'dbem_bookings_currency_format', 'dbem_booking_feedback_cancelled', 'dbem_booking_warning_cancel', 'dbem_bookings_form_msg_disabled', 'dbem_bookings_form_msg_closed', 'dbem_bookings_form_msg_full', 'dbem_bookings_form_msg_attending', 'dbem_bookings_form_msg_bookings_link', 'dbem_booking_feedback', 'dbem_booking_feedback_pending', 'dbem_booking_feedback_full', 'dbem_booking_feedback_error', 'dbem_booking_feedback_email_exists', 'dbem_booking_feedback_log_in', 'dbem_booking_feedback_nomail', 'dbem_booking_feedback_already_booked', 'dbem_booking_feedback_min_space', 'dbem_booking_feedback_spaces_limit', 'dbem_booking_button_msg_book', 'dbem_booking_button_msg_booking', 'dbem_booking_button_msg_booked', 'dbem_booking_button_msg_already_booked', 'dbem_booking_button_msg_error', 'dbem_booking_button_msg_full', 'dbem_booking_button_msg_cancel', 'dbem_booking_button_msg_canceling', 'dbem_booking_button_msg_cancelled', 'dbem_booking_button_msg_cancel_error', 'dbem_bookings_submit_button', 'dbem_bookings_contact_email_pending_subject', 'dbem_bookings_contact_email_pending_body', 'dbem_bookings_contact_email_confirmed_subject', 'dbem_bookings_contact_email_confirmed_body', 'dbem_bookings_contact_email_rejected_subject', 'dbem_bookings_contact_email_rejected_body', 'dbem_bookings_contact_email_cancelled_subject', 'dbem_bookings_contact_email_cancelled_body', 'dbem_bookings_email_confirmed_subject', 'dbem_bookings_email_confirmed_body', 'dbem_bookings_email_pending_subject', 'dbem_bookings_email_pending_body', 'dbem_bookings_email_rejected_subject', 'dbem_bookings_email_rejected_body', 'dbem_bookings_email_cancelled_subject', 'dbem_bookings_email_cancelled_body', 'dbem_event_submitted_email_subject', 'dbem_event_submitted_email_body', 'dbem_event_resubmitted_email_subject', 'dbem_event_resubmitted_email_body', 'dbem_event_published_email_subject', 'dbem_event_published_email_body', 'dbem_event_approved_email_subject', 'dbem_event_approved_email_body', 'dbem_event_reapproved_email_subject', 'dbem_event_reapproved_email_body', 'dbem_bookings_email_registration_subject', 'dbem_bookings_email_registration_body')); //load all the extra ML helper classes if (is_admin()) { include EM_DIR . '/multilingual/em-ml-admin.php'; } include EM_DIR . '/multilingual/em-ml-bookings.php'; include EM_DIR . '/multilingual/em-ml-io.php'; include EM_DIR . '/multilingual/em-ml-options.php'; include EM_DIR . '/multilingual/em-ml-placeholders.php'; include EM_DIR . '/multilingual/em-ml-search.php'; //Switch EM page IDs to translated versions if they exist, so e.g. the events page in another language grabs the right translated page format if available if (!is_admin()) { add_filter('option_dbem_events_page', 'EM_ML::get_translated_page'); add_filter('option_dbem_locations_page', 'EM_ML::get_translated_page'); add_filter('option_dbem_categories_page', 'EM_ML::get_translated_page'); add_filter('option_dbem_tags_page', 'EM_ML::get_translated_page'); add_filter('option_dbem_edit_events_page', 'EM_ML::get_translated_page'); add_filter('option_dbem_edit_locations_page', 'EM_ML::get_translated_page'); add_filter('option_dbem_edit_bookings_page', 'EM_ML::get_translated_page'); add_filter('option_dbem_my_bookings_page', 'EM_ML::get_translated_page'); } //change some localized script vars add_filter('em_wp_localize_script', 'EM_ML::em_wp_localize_script'); } self::$init = true; }
function em_options_textarea($title, $name, $description = '') { $translate = EM_ML::is_option_translatable($name); ?> <tr valign="top" id='<?php echo esc_attr($name); ?> _row'> <th scope="row"><?php echo esc_html($title); ?> </th> <td> <textarea name="<?php echo esc_attr($name); ?> " id="<?php echo esc_attr($name); ?> " rows="6" cols="60"><?php echo esc_attr(get_option($name), ENT_QUOTES); ?> </textarea> <?php if ($translate) { ?> <span class="em-translatable"></span><?php } ?> <br /> <?php if ($translate) { echo '<div class="em-ml-options"><table class="form-table">'; foreach (EM_ML::get_langs() as $lang => $lang_name) { if ($lang != EM_ML::$wplang) { ?> <tr> <td class="lang"><?php echo $lang_name; ?> </td> <td class="lang-text"><textarea name="<?php echo esc_attr($name); ?> _ml[<?php echo $lang; ?> ]" id="<?php echo esc_attr($name . '_' . $lang); ?> " style="width: 100%" size="45"><?php echo esc_attr(EM_ML::get_option($name, $lang, false), ENT_QUOTES); ?> </textarea></td> </tr> <?php } else { $default_lang = '<input name="' . esc_attr($name) . '_ml[' . EM_ML::$wplang . ']" type="hidden" id="' . esc_attr($name . '_' . EM_ML::$wplang) . '" value="' . esc_attr(get_option($name, $default), ENT_QUOTES) . '" />'; } } echo '</table>'; echo '<em>' . __('If left blank, the default value will be used.', 'dbem') . '</em>'; echo $default_lang . '</div>'; } ?> <em><?php echo $description; ?> </em> </td> </tr> <?php }
/** * When saving an original location, save shared meta to translations as well. * @param boolean $result * @param EM_Location $EM_Location * @return boolean */ public static function location_save_meta($result, $EM_Location) { if ($result && EM_ML::is_original($EM_Location)) { //save post meta for all others as well foreach (EM_ML::get_langs() as $lang_code => $language) { $location = EM_ML::get_translation($EM_Location, $lang_code); /* @var $EM_Location EM_Location */ if ($location->location_id != $EM_Location->location_id) { self::location_merge_original_meta($location, $EM_Location); $location->save_meta(); } } } return $result; }
public static function location_meta_box_attributes() { global $EM_Location; //get original location for attributes $location = EM_ML::get_original_location($EM_Location); EM_ML_IO::location_merge_original_attributes($EM_Location, $location); em_locate_template('forms/location/attributes.php', true); }
/** * Takes a page post_id and returns the translated version post_id of the language currently being viewed by the user. * Used to detect whether we're on an events listing page for example, where we would normally override the content with our formats. * @param int $post_id * @return int * @uses EM_ML::get_translated_post_id() */ public static function get_translated_page($post_id) { return EM_ML::get_translated_post_id($post_id, 'page'); }
public static function em_booking_form_footer($EM_Event) { if (EM_ML::$current_language != EM_ML::$wplang || EM_ML::$current_language != EM_ML::get_the_language($EM_Event)) { echo '<input type="hidden" name="em_lang" value="' . EM_ML::$current_language . '" />'; } }
/** * Modifies the duplication URL so that it contains the lang query parameter of the original event that is being duplicated. * * @param string $url * @param EM_Event $EM_Event * @return string */ public static function event_duplicate_url($url, $EM_Event) { global $sitepress; if (!EM_ML::is_original($EM_Event)) { $EM_Event = EM_ML::get_original_event($EM_Event); $sitepress_lang = $sitepress->get_language_for_element($EM_Event->post_id, 'post_' . $EM_Event->post_type); $url = add_query_arg(array('lang' => $sitepress_lang), $url); //gets escaped later } return $url; }