/** * Renders pagination * */ public static function draw_pagination($settings = '') { global $wpp_query, $wp_properties; $settings = wp_parse_args($settings, array('type' => 'slider', 'javascript' => true, 'return' => true, 'class' => '', 'sorter_type' => 'none', 'hide_count' => false, 'sort_by_text' => isset($wpp_query['sort_by_text']) ? $wpp_query['sort_by_text'] : '')); $settings = apply_filters('wpp:draw_pagination:settings', $settings, $wpp_query, $wp_properties); //** Do not show pagination on ajax requests */ if ($wpp_query['ajax_call']) { return null; } if (is_array($wpp_query) || is_object($wpp_query)) { extract($wpp_query); } if (isset($pagination) && $pagination == 'off' && !empty($hide_count)) { return null; } /** Maybe use custom pagination/sorter instead of default one */ $custom = apply_filters('wpp:property_overview:custom_pagination', false, $settings, $wpp_query, $wp_properties); if (!empty($custom)) { if ($settings['return'] == 'true') { return $custom; } else { echo $custom; return null; } } if (is_array($wpp_query) || is_object($wpp_query)) { extract($wpp_query); } if ($properties['total'] > $per_page && $pagination != 'off') { $use_pagination = true; } if ($properties['total'] < 2 || $sorter_type == 'none') { $sortable_attrs = false; } //** Determine if we should initialize javascript logic */ */ if ($settings['javascript']) { //** Load pagination script */ $script_path = apply_filters("wpp::property_overview::script::path", ud_get_wp_property()->path('static/scripts/property_overview.js', 'url'), $settings); wp_enqueue_script("property-overview", $script_path, array('jquery')); wp_localize_script("property-overview", "_wpp_overview_pagination", array("previous" => __('Previous', ud_get_wp_property('domain')), "next" => __('Next', ud_get_wp_property('domain')), "first" => __('First', ud_get_wp_property('domain')), "last" => __('Last', ud_get_wp_property('domain')))); ob_start(); ?> <script type="text/javascript"> jQuery( document).ready(function(){ if( typeof jQuery.fn.wpp_pagination == 'function' ) { jQuery( '#wpp_shortcode_<?php echo $unique_hash; ?> ' ).wpp_pagination({ "type": "<?php echo $settings['type']; ?> ", "unique_id": "<?php echo $unique_hash; ?> ", "pages": <?php echo !empty($pages) ? $pages : 'null'; ?> , "use_pagination": <?php echo $use_pagination ? $use_pagination : '""'; ?> , "query": <?php echo json_encode($wpp_query); ?> , "ajax_url": "<?php echo admin_url('admin-ajax.php'); ?> " }); } }); </script> <?php $js_result = ob_get_clean(); $js_result = apply_filters("wpp::property_overview::{$settings['type']}::script::inline", $js_result, $settings); } //** Try find pagination template based on type */ $template_found = \WPP_F::get_template_part(array("pagination"), array(ud_get_wp_property()->path('static/views', 'dir'))); $result = ''; if ($template_found) { ob_start(); self::maybe_print_styles(); include $template_found; $result = ob_get_clean(); } //** Combine JS (after minification) with HTML results */ if ($settings['javascript'] && isset($js_result)) { $js_result = \WPP_F::minify_js($js_result); $result = $js_result . $result; } if ($settings['return'] == 'true') { return $result; } echo $result; }
/** * Figures out if current page is the property overview page * * This function could be called multiple times for the same shortcode, and numerous times on the page. * therefore, all JS in here has to take that into account and not perform same function twice. * * @since 1.10 * */ function wpp_draw_pagination($settings = '') { global $wpp_query, $wp_properties; $settings = wp_parse_args($settings, array('javascript' => true, 'return' => true, 'class' => '', 'sorter_type' => 'none', 'hide_count' => false, 'sort_by_text' => isset($wpp_query['sort_by_text']) ? $wpp_query['sort_by_text'] : '')); $settings = apply_filters('wpp:draw_pagination:settings', $settings, $wpp_query, $wp_properties); //** Do not show pagination on ajax requests */ if ($wpp_query['ajax_call']) { return null; } if (is_array($wpp_query) || is_object($wpp_query)) { extract($wpp_query); } if ($pagination == 'off' && $hide_count) { return null; } /** Maybe use custom pagination/sorter instead of default one */ $custom = apply_filters('wpp:property_overview:custom_pagination', false, $settings, $wpp_query, $wp_properties); if (!empty($custom)) { if ($settings['return'] == 'true') { return $custom; } else { echo $custom; return null; } } if (is_array($wpp_query) || is_object($wpp_query)) { extract($wpp_query); } if ($properties['total'] > $per_page && $pagination != 'off') { $use_pagination = true; } if ($properties['total'] < 2 || $sorter_type == 'none') { $sortable_attrs = false; } //** */ if ($settings['javascript']) { ob_start(); ?> <script type="text/javascript"> /* * The functionality below is used for pagination and sorting the list of properties * It can be many times (on multiple shortcodes) * So the current javascript functionality should not to be initialized twice. */ /* * Init global WPP_QUERY variable which will contain all query objects */ if ( typeof wpp_query == 'undefined' ) { var wpp_query = []; } /* * */ if ( typeof document_ready == 'undefined' ) { var document_ready = false; } /* * Initialize shortcode's wpp_query object */ if ( typeof wpp_query_<?php echo $unique_hash; ?> == 'undefined' ) { var wpp_query_<?php echo $unique_hash; ?> = <?php echo json_encode($wpp_query); ?> ; /* Default values for ajax query. It's used when we go to base URL using back button */ wpp_query_<?php echo $unique_hash; ?> ['default_query'] = wpp_query_<?php echo $unique_hash; ?> .query; /* Push query objects to global wpp_query variable */ wpp_query.push( wpp_query_<?php echo $unique_hash; ?> ); } /* * Init variable only at once */ if ( typeof wpp_pagination_history_ran == 'undefined' ) { var wpp_pagination_history_ran = false; } /* Init variable only at once */ if ( typeof wpp_pagination_<?php echo $unique_hash; ?> == 'undefined' ) { var wpp_pagination_<?php echo $unique_hash; ?> = false; } if ( typeof first_load == 'undefined' ) { var first_load = true; } /* Watch for address URL for back buttons support */ if ( !wpp_pagination_history_ran ) { wpp_pagination_history_ran = true; /* * On change location (address) Event. * * Also used as Back button functionality. * * Attention! This event is unique (binds at once) and is used for any (multiple) shortcode */ jQuery( document ).ready( function () { if ( !jQuery.isFunction( jQuery.fn.slider ) ) { return; } jQuery.address.change( function ( event ) { callPagination( event ); } ); } ); /* * Parse location (address) hash, * Setup shortcode params by hash params * Calls ajax pagination */ function callPagination ( event ) { /* * We have to be sure that DOM is ready * if it's not, wait 0.1 sec and call function again */ if ( !document_ready ) { window.setTimeout( function () { callPagination( event ); }, 100 ); return false; } var history = {}; /* Parse hash value (params) */ var hashes = event.value.replace( /^\//, '' ); /* Determine if we have hash params */ if ( hashes ) { hashes = hashes.split( '&' ); for ( var i in hashes ) { if ( typeof hashes[i] != 'function' ) { hash = hashes[i].split( '=' ); history[hash[0]] = hash[1]; } } if ( history.i ) { /* get current shortcode's object */ var index = parseInt( history.i ) - 1; if ( index >= 0 ) { var q = wpp_query[index]; } if ( typeof q == 'undefined' || q.length == 0 ) { //ERROR return false; } if ( history.sort_by && history.sort_by != '' ) { q.sort_by = history.sort_by; } if ( history.sort_order && history.sort_order != '' ) { q.sort_order = history.sort_order; } /* 'Select/Unselect' sortable buttons */ var sortable_links = jQuery( '#wpp_shortcode_' + q.unique_hash + ' .wpp_sortable_link' ); if ( sortable_links.length > 0 ) { sortable_links.each( function ( i, e ) { jQuery( e ).removeClass( "wpp_sorted_element" ); if ( jQuery( e ).attr( 'sort_slug' ) == q.sort_by ) { jQuery( e ).addClass( "wpp_sorted_element" ); } } ); } if ( history.requested_page && history.requested_page != '' ) { eval( 'wpp_do_ajax_pagination_' + q.unique_hash + '(' + history.requested_page + ')' ); } else { eval( 'wpp_do_ajax_pagination_' + q.unique_hash + '(1)' ); } } else { return false; } } else { /* Looks like it's base url * Determine if this first load, we do nothing * If not, - we use 'back button' functionality. */ if ( first_load ) { first_load = false; } else { /* * Set default pagination values for all shortcodes */ for ( var i in wpp_query ) { wpp_query[i].sort_by = wpp_query[i].default_query.sort_by; wpp_query[i].sort_order = wpp_query[i].default_query.sort_order; /* 'Select/Unselect' sortable buttons */ var sortable_links = jQuery( '#wpp_shortcode_' + wpp_query[i].unique_hash + ' .wpp_sortable_link' ); if ( sortable_links.length > 0 ) { sortable_links.each( function ( ie, e ) { jQuery( e ).removeClass( "wpp_sorted_element" ); if ( jQuery( e ).attr( 'sort_slug' ) == wpp_query[i].sort_by ) { jQuery( e ).addClass( "wpp_sorted_element" ); } } ); } eval( 'wpp_do_ajax_pagination_' + wpp_query[i].unique_hash + '(1, false)' ); } } } } } /* * Changes location (address) hash based on pagination * * We use this function extend of wpp_do_ajax_pagination() * because wpp_do_ajax_pagination() is called on change Address Value's event * * @param int this_page Page which will be loaded * @param object data WPP_QUERY object * @return object data Returns updated WPP_QUERY object */ if ( typeof changeAddressValue == 'undefined' ) { function changeAddressValue ( this_page, data ) { var q = window.wpp_query; /* Get the current shortcode's index */ var index = 0; for ( var i in q ) { if ( q[i].unique_hash == data.unique_hash ) { index = (++i); break; } } /* Set data query which will be used in history hash below */ var q = { requested_page: this_page, sort_order: data.sort_order, sort_by: data.sort_by, i: index }; /* Update WPP_QUERY query */ data.query.requested_page = this_page; data.query.sort_order = data.sort_order; data.query.sort_by = data.sort_by; /* * Update page URL for back-button support (needs to do sort order and direction) * jQuery.address.value() and jQuery.address.path() double binds jQuery.change() event, some way * so for now, we use window.location */ var history = jQuery.param( q ); window.location.hash = '/' + history; return data; } } function wpp_do_ajax_pagination_<?php echo $unique_hash; ?> ( this_page, scroll_to ) { if ( typeof this_page == 'undefined' ) { this_page = 1; } if ( typeof scroll_to == 'undefined' ) { scroll_to = true; } data = wpp_query_<?php echo $unique_hash; ?> ; /* Update page counter */ jQuery( "#wpp_shortcode_<?php echo $unique_hash; ?> .wpp_current_page_count" ).text( this_page ); jQuery( "#wpp_shortcode_<?php echo $unique_hash; ?> .wpp_pagination_slider .slider_page_info .val" ).text( this_page ); /* Update sliders */ jQuery( "#wpp_shortcode_<?php echo $unique_hash; ?> .wpp_pagination_slider" ).slider( "value", this_page ); jQuery( '#wpp_shortcode_<?php echo $unique_hash; ?> .ajax_loader' ).show(); /* Scroll page to the top of the current shortcode */ if ( scroll_to ) { jQuery( document ).trigger( 'wpp_pagination_change', {'overview_id': <?php echo $unique_hash; ?> } ); } data.ajax_call = 'true'; data.requested_page = this_page; jQuery.post( '<?php echo admin_url('admin-ajax.php'); ?> ', { action: 'wpp_property_overview_pagination', wpp_ajax_query: data }, function ( result_data ) { jQuery( '#wpp_shortcode_<?php echo $unique_hash; ?> .ajax_loader' ).hide(); var p_list = jQuery( '.wpp_property_view_result', result_data.display ); //* Determine if p_list is empty try previous version's selector */ if ( p_list.length == 0 ) { p_list = jQuery( '.wpp_row_view', result_data.display ); } var content = ( p_list.length > 0 ) ? p_list.html() : result_data.display; var p_wrapper = jQuery( '#wpp_shortcode_<?php echo $unique_hash; ?> .wpp_property_view_result' ); //* Determine if p_wrapper is empty try previous version's selector */ if ( p_wrapper.length == 0 ) { p_wrapper = jQuery( '#wpp_shortcode_<?php echo $unique_hash; ?> .wpp_row_view' ) } p_wrapper.html( content ); /* Total properties count may change depending on sorting (if sorted by an attribute that all properties do not have) */ /* It seems issue mentioned above are fexed so nex line unneeded, commented odokienko@UD */ // jQuery("#wpp_shortcode_<?php echo $unique_hash; ?> .wpp_property_results").text(result_data.wpp_query.properties?result_data.wpp_query.properties.total:0); <?php if (isset($use_pagination) && $use_pagination) { ?> /* Update max page in slider and in display */ jQuery( "#wpp_shortcode_<?php echo $unique_hash; ?> .wpp_pagination_slider" ).slider( "option", "max", result_data.wpp_query.pages ); jQuery( "#wpp_shortcode_<?php echo $unique_hash; ?> .wpp_total_page_count" ).text( result_data.wpp_query.pages ); max_slider_pos_<?php echo $unique_hash; ?> = result_data.wpp_query.pages; if ( max_slider_pos_<?php echo $unique_hash; ?> == 0 ) jQuery( "#wpp_shortcode_<?php echo $unique_hash; ?> .wpp_current_page_count" ).text( 0 ); <?php } ?> jQuery( "#wpp_shortcode_<?php echo $unique_hash; ?> a.fancybox_image" ).fancybox( { 'transitionIn': 'elastic', 'transitionOut': 'elastic', 'speedIn': 600, 'speedOut': 200, 'overlayShow': false } ); jQuery( document ).trigger( 'wpp_pagination_change_complete', {'overview_id': <?php echo $unique_hash; ?> } ); }, "json" ); } jQuery( document ).ready( function () { if ( !jQuery.isFunction( jQuery.fn.slider ) || !jQuery.isFunction( jQuery.fn.slider ) ) { jQuery( ".wpp_pagination_slider_wrapper" ).hide(); return null; } document_ready = true; max_slider_pos_<?php echo $unique_hash; ?> = <?php echo !empty($pages) ? $pages : 'null'; ?> ; //** Do not assign click event again */ if ( !jQuery( '#wpp_shortcode_<?php echo $unique_hash; ?> .wpp_pagination_back' ).data( 'events' ) ) { jQuery( '#wpp_shortcode_<?php echo $unique_hash; ?> .wpp_pagination_back' ).click( function () { var current_value = jQuery( "#wpp_shortcode_<?php echo $unique_hash; ?> .wpp_pagination_slider" ).slider( "value" ); if ( current_value == 1 ) { return; } var new_value = current_value - 1; jQuery( "#wpp_shortcode_<?php echo $unique_hash; ?> .wpp_pagination_slider" ).slider( "value", new_value ); wpp_query_<?php echo $unique_hash; ?> = changeAddressValue( new_value, wpp_query_<?php echo $unique_hash; ?> ); } ); } if ( !jQuery( '#wpp_shortcode_<?php echo $unique_hash; ?> .wpp_pagination_forward' ).data( 'events' ) ) { jQuery( '#wpp_shortcode_<?php echo $unique_hash; ?> .wpp_pagination_forward' ).click( function () { var current_value = jQuery( "#wpp_shortcode_<?php echo $unique_hash; ?> .wpp_pagination_slider" ).slider( "value" ); if ( max_slider_pos_<?php echo $unique_hash; ?> && (current_value == max_slider_pos_<?php echo $unique_hash; ?> || max_slider_pos_<?php echo $unique_hash; ?> < 1 ) ) { return; } var new_value = current_value + 1; jQuery( "#wpp_shortcode_<?php echo $unique_hash; ?> .wpp_pagination_slider" ).slider( "value", new_value ); wpp_query_<?php echo $unique_hash; ?> = changeAddressValue( new_value, wpp_query_<?php echo $unique_hash; ?> ); } ); } if ( !jQuery( '#wpp_shortcode_<?php echo $unique_hash; ?> .wpp_sortable_link' ).data( 'events' ) ) { jQuery( '#wpp_shortcode_<?php echo $unique_hash; ?> .wpp_sortable_link' ).click( function () { var attribute = jQuery( this ).attr( 'sort_slug' ); var sort_order = jQuery( this ).attr( 'sort_order' ); var this_attribute = jQuery( "#wpp_shortcode_<?php echo $unique_hash; ?> .wpp_sortable_link[sort_slug=" + attribute + "]" ); if ( jQuery( this ).is( ".wpp_sorted_element" ) ) { var currently_sorted = true; /* If this attribute is already sorted, we switch sort order */ if ( sort_order == "ASC" ) { sort_order = "DESC"; } else if ( sort_order == "DESC" ) { sort_order = "ASC"; } } jQuery( "#wpp_shortcode_<?php echo $unique_hash; ?> .wpp_sortable_link" ).removeClass( "wpp_sorted_element" ); wpp_query_<?php echo $unique_hash; ?> .sort_by = attribute; wpp_query_<?php echo $unique_hash; ?> .sort_order = sort_order; jQuery( this_attribute ).addClass( "wpp_sorted_element" ); jQuery( this_attribute ).attr( "sort_order", sort_order ); /* Get ajax results and reset to first page */ wpp_query_<?php echo $unique_hash; ?> = changeAddressValue( 1, wpp_query_<?php echo $unique_hash; ?> ); } ); } if ( !jQuery( '#wpp_shortcode_<?php echo $unique_hash; ?> .wpp_sortable_dropdown' ).data( 'events' ) ) { jQuery( '#wpp_shortcode_<?php echo $unique_hash; ?> .wpp_sortable_dropdown' ).change( function () { var parent = jQuery( this ).parents( '.wpp_sorter_options' ); var attribute = jQuery( ":selected", this ).attr( 'sort_slug' ); var sort_element = jQuery( ".sort_order", parent ); var sort_order = jQuery( sort_element ).attr( 'sort_order' ); wpp_query_<?php echo $unique_hash; ?> .sort_by = attribute; wpp_query_<?php echo $unique_hash; ?> .sort_order = sort_order; /* Get ajax results and reset to first page */ wpp_query_<?php echo $unique_hash; ?> = changeAddressValue( 1, wpp_query_<?php echo $unique_hash; ?> ); } ); } if ( !jQuery( '#wpp_shortcode_<?php echo $unique_hash; ?> .wpp_overview_sorter' ).data( 'events' ) ) { jQuery( '#wpp_shortcode_<?php echo $unique_hash; ?> .wpp_overview_sorter' ).click( function () { var parent = jQuery( this ).parents( '.wpp_sorter_options' ); var sort_element = this; var dropdown_element = jQuery( ".wpp_sortable_dropdown", parent ); var attribute = jQuery( ":selected", dropdown_element ).attr( 'sort_slug' ); var sort_order = jQuery( sort_element ).attr( 'sort_order' ); jQuery( sort_element ).removeClass( sort_order ); /* If this attribute is already sorted, we switch sort order */ if ( sort_order == "ASC" ) { sort_order = "DESC"; } else if ( sort_order == "DESC" ) { sort_order = "ASC"; } wpp_query_<?php echo $unique_hash; ?> .sort_by = attribute; wpp_query_<?php echo $unique_hash; ?> .sort_order = sort_order; jQuery( sort_element ).attr( "sort_order", sort_order ); jQuery( sort_element ).addClass( sort_order ); /* Get ajax results and reset to first page */ wpp_query_<?php echo $unique_hash; ?> = changeAddressValue( 1, wpp_query_<?php echo $unique_hash; ?> ); } ); } <?php if (isset($use_pagination) && $use_pagination) { ?> jQuery( "#wpp_shortcode_<?php echo $unique_hash; ?> .wpp_pagination_slider_wrapper" ).each( function () { var this_parent = this; /* Slider */ jQuery( '.wpp_pagination_slider', this ).slider( { value: 1, min: 1, max: <?php echo $pages; ?> , step: 1, slide: function ( event, ui ) { /* Update page counter - we do it here because we want it to be instant */ jQuery( "#wpp_shortcode_<?php echo $unique_hash; ?> .wpp_current_page_count" ).text( ui.value ); jQuery( "#wpp_shortcode_<?php echo $unique_hash; ?> .wpp_pagination_slider .slider_page_info .val" ).text( ui.value ); }, stop: function ( event, ui ) { wpp_query_<?php echo $unique_hash; ?> = changeAddressValue( ui.value, wpp_query_<?php echo $unique_hash; ?> ); } } ); /* Fix slider width based on button width */ var slider_width = (jQuery( this_parent ).width() - jQuery( ".wpp_pagination_back", this_parent ).outerWidth() - jQuery( ".wpp_pagination_forward", this_parent ).outerWidth() - 30); jQuery( ".wpp_pagination_slider", this_parent ).css( 'width', slider_width ); jQuery( '.wpp_pagination_slider .ui-slider-handle', this ).append( '<div class="slider_page_info"><div class="val">1</div><div class="arrow"></div></div>' ); } ); <?php } ?> } ); </script> <?php $js_result = ob_get_contents(); ob_end_clean(); } ob_start(); ?> <div class="properties_pagination <?php echo $settings['class']; ?> wpp_slider_pagination" id="properties_pagination_<?php echo $unique_hash; ?> "> <div class="wpp_pagination_slider_status"> <span class="wpp_property_results_options"> <?php if ($hide_count != 'true') { $wpp_property_results = '<span class="wpp_property_results">'; $wpp_property_results .= $properties['total'] > 0 ? WPP_F::format_numeric($properties['total']) : __('None', ud_get_wp_property()->domain); $wpp_property_results .= __(' found.', ud_get_wp_property()->domain); echo apply_filters('wpp::wpp_draw_pagination::wpp_property_results', $wpp_property_results, array('properties' => $properties, 'settings' => $settings)); ?> <?php } ?> <?php if (!empty($use_pagination)) { ?> <?php _e('Viewing page', ud_get_wp_property()->domain); ?> <span class="wpp_current_page_count">1</span> <?php _e('of', ud_get_wp_property()->domain); ?> <span class="wpp_total_page_count"><?php echo $pages; ?> </span>. <?php } ?> </span> <?php if ($sortable_attrs) { ?> <span class="wpp_sorter_options"><span class="wpp_sort_by_text"><?php echo $settings['sort_by_text']; ?> </span> <?php if ($settings['sorter_type'] == 'buttons') { ?> <?php foreach ($sortable_attrs as $slug => $label) { ?> <span class="wpp_sortable_link <?php echo $sort_by == $slug ? 'wpp_sorted_element' : ''; ?> label label-info" sort_order="<?php echo $sort_order; ?> " sort_slug="<?php echo $slug; ?> "><?php echo $label; ?> </span> <?php } } elseif ($settings['sorter_type'] == 'dropdown') { ?> <select class="wpp_sortable_dropdown sort_by label-info" name="sort_by"> <?php foreach ($sortable_attrs as $slug => $label) { ?> <option <?php echo $sort_by == $slug ? 'class="wpp_sorted_element" selected="true"' : ''; ?> sort_slug="<?php echo $slug; ?> " value="<?php echo $slug; ?> "><?php echo $label; ?> </option> <?php } ?> </select> <?php /* <span class="wpp_overview_sorter sort_order <?php echo $sort_order ?> label label-info" sort_order="<?php echo $sort_order ?>"></span> */ ?> <?php } else { do_action('wpp_custom_sorter', array('settings' => $settings, 'wpp_query' => $wpp_query, 'sorter_type' => $settings['sorter_type'])); } ?> </span> <?php } ?> <div class="clear"></div> </div> <?php if (!empty($use_pagination)) { ?> <div class="wpp_pagination_slider_wrapper"> <div class="wpp_pagination_back wpp_pagination_button"><?php _e('Prev', ud_get_wp_property()->domain); ?> </div> <div class="wpp_pagination_forward wpp_pagination_button"><?php _e('Next', ud_get_wp_property()->domain); ?> </div> <div class="wpp_pagination_slider"></div> </div> <?php } ?> </div> <div class="ajax_loader"></div> <?php $result = ob_get_contents(); ob_end_clean(); //** Combine JS (after minification) with HTML results */ if ($settings['javascript'] && isset($js_result)) { $js_result = WPP_F::minify_js($js_result); $result = $js_result . $result; } if ($settings['return'] == 'true') { return $result; } echo $result; }
google.maps.event.addListener( infowindow, 'domready', function () { document.getElementById( 'infowindow' ).parentNode.style.overflow = 'hidden'; document.getElementById( 'infowindow' ).parentNode.parentNode.style.overflow = 'hidden'; } ); google.maps.event.addListener( marker, 'click', function () { infowindow.open( map, marker ); } ); }, 3000 ); <?php } ?> } } ); </script> <?php $google_map_js = ob_get_contents(); ob_end_clean(); if (class_exists('WPP_F')) { try { echo WPP_F::minify_js($google_map_js); } catch (Exception $e) { echo $google_map_js; } } else { echo $google_map_js; }