Example #1
0
 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 
    }
Example #3
0
 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;
 }
Example #4
0
 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);
             }
         }
     }
 }
Example #5
0
 /**
  * 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;
 }
Example #7
0
 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;
 }
Example #8
0
 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 
}
Example #10
0
 /**
  * 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;
 }
Example #11
0
 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);
 }
Example #12
0
 /**
  * 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 . '" />';
     }
 }
Example #14
0
 /**
  * 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;
 }