Function Reference: geodir_templates_scripts

Summary

Handles loading of all geodirectory javascripts and its dependencies.

Package

GeoDirectory

Change Log

Since: 1.0.0

Filters

‘geodir_vars_data’ [Line: 77]

‘geodir_googlemap_script_extra’ [Line: 103]

Source File

geodir_templates_scripts() is located in geodirectory_template_tags.php [Line: 37]

Source Code

function geodir_templates_scripts()
{
    $is_detail_page = false;
    $geodir_map_name = geodir_map_name();

    if((is_single() && geodir_is_geodir_page()) || (is_page() && geodir_is_page('preview') )) {
        $is_detail_page = true;
    }

    wp_enqueue_script('jquery');

    wp_register_script('geodirectory-script', geodir_plugin_url() . '/geodirectory-assets/js/geodirectory.min.js', array(), GEODIRECTORY_VERSION);
    wp_enqueue_script('geodirectory-script');

    $geodir_vars_data = array(
        'siteurl' => get_option('siteurl'),
        'geodir_plugin_url' => geodir_plugin_url(),
        'geodir_lazy_load' => get_option('geodir_lazy_load',1),
        'geodir_ajax_url' => geodir_get_ajax_url(),
        'geodir_gd_modal' => (int)get_option('geodir_disable_gb_modal'),
        'is_rtl' => is_rtl() ? 1 : 0 // fix rtl issue
    );

    /**
     * Filter the `geodir_var` data array that outputs the  wp_localize_script() translations and variables.
     *
     * This is used by addons to add JS translatable variables.
     *
     * @since 1.4.4
     * @param array $geodir_vars_data {
     *    geodir var data used by addons to add JS translatable variables.
     *
     *    @type string $siteurl Site url.
     *    @type string $geodir_plugin_url Geodirectory core plugin url.
     *    @type string $geodir_ajax_url Geodirectory plugin ajax url.
     *    @type int $geodir_gd_modal Disable GD modal that displays slideshow images in popup?.
     *    @type int $is_rtl Checks if current locale is RTL.
     *
     * }
     */
    $geodir_vars_data = apply_filters('geodir_vars_data',$geodir_vars_data);

    wp_localize_script('geodirectory-script', 'geodir_var', $geodir_vars_data);

    wp_register_script('geodirectory-jquery-flexslider-js', geodir_plugin_url() . '/geodirectory-assets/js/jquery.flexslider.min.js', array(), GEODIRECTORY_VERSION,true);
    if($is_detail_page){wp_enqueue_script('geodirectory-jquery-flexslider-js');}

    wp_register_script('geodirectory-lightbox-jquery', geodir_plugin_url() . '/geodirectory-assets/js/jquery.lightbox-0.5.min.js', array(), GEODIRECTORY_VERSION,true);
    wp_enqueue_script('geodirectory-lightbox-jquery');

    wp_register_script('geodirectory-jquery-simplemodal', geodir_plugin_url() . '/geodirectory-assets/js/jquery.simplemodal.min.js', array(), GEODIRECTORY_VERSION,true);
    if ($is_detail_page) {
        wp_enqueue_script('geodirectory-jquery-simplemodal');
    }

    if (in_array($geodir_map_name, array('auto', 'google'))) {
        $map_lang = "&language=" . geodir_get_map_default_language();
        $map_key = "&key=" . geodir_get_map_api_key();
        /**
         * Filter the variables that are added to the end of the google maps script call.
         *
         * This i used to change things like google maps language etc.
         *
         * @since 1.0.0
         * @param string $var The string to filter, default is empty string.
         */
        $map_extra = apply_filters('geodir_googlemap_script_extra', '');
        wp_enqueue_script('google-maps-api', 'https://maps.google.com/maps/api/js?' . $map_lang . $map_key . $map_extra , '', NULL);
        
        // Overlapping Marker Spiderfier
        wp_register_script('geodirectory-g-overlappingmarker-script', geodir_plugin_url() . '/geodirectory-assets/jawj/oms.min.js', array(), GEODIRECTORY_VERSION);
        wp_enqueue_script('geodirectory-g-overlappingmarker-script');
    }
    
    if ($geodir_map_name == 'osm') {
        // Leaflet OpenStreetMap
        wp_register_style('geodirectory-leaflet-style', geodir_plugin_url() . '/geodirectory-assets/leaflet/leaflet.css', array(), GEODIRECTORY_VERSION);
        wp_enqueue_style('geodirectory-leaflet-style');
            
        wp_register_script('geodirectory-leaflet-script', geodir_plugin_url() . '/geodirectory-assets/leaflet/leaflet.min.js', array(), GEODIRECTORY_VERSION);
        wp_enqueue_script('geodirectory-leaflet-script');
        
        wp_register_script('geodirectory-leaflet-geo-script', geodir_plugin_url() . '/geodirectory-assets/leaflet/osm.geocode.min.js', array(), GEODIRECTORY_VERSION);
        wp_enqueue_script('geodirectory-leaflet-geo-script');
        
        if ($is_detail_page) {
            wp_register_style('geodirectory-leaflet-routing-style', geodir_plugin_url() . '/geodirectory-assets/leaflet/routing/leaflet-routing-machine.css', array(), GEODIRECTORY_VERSION);
            wp_enqueue_style('geodirectory-leaflet-routing-style');
                
            wp_register_script('geodirectory-leaflet-routing-script', geodir_plugin_url() . '/geodirectory-assets/leaflet/routing/leaflet-routing-machine.min.js', array(), GEODIRECTORY_VERSION);
            wp_enqueue_script('geodirectory-leaflet-routing-script');
        }
        
        // Overlapping Marker Spiderfier Leaflet
        wp_register_script('geodirectory-o-overlappingmarker-script', geodir_plugin_url() . '/geodirectory-assets/jawj/oms-leaflet.min.js', array(), GEODIRECTORY_VERSION);
        wp_enqueue_script('geodirectory-o-overlappingmarker-script');
    }
    wp_enqueue_script( 'jquery-ui-autocomplete' );
    
    wp_register_script('geodirectory-goMap-script', geodir_plugin_url() . '/geodirectory-assets/js/goMap.min.js', array(), GEODIRECTORY_VERSION, true);
    wp_enqueue_script('geodirectory-goMap-script');

    wp_register_script('chosen', geodir_plugin_url() . '/geodirectory-assets/js/chosen.jquery.min.js', array(), GEODIRECTORY_VERSION);
    wp_enqueue_script('chosen');

    wp_register_script('geodirectory-choose-ajax', geodir_plugin_url() . '/geodirectory-assets/js/ajax-chosen.min.js', array(), GEODIRECTORY_VERSION);
    wp_enqueue_script('geodirectory-choose-ajax');

    wp_enqueue_script('geodirectory-jquery-ui-timepicker-js', geodir_plugin_url() . '/geodirectory-assets/js/jquery.ui.timepicker.min.js', array('jquery-ui-datepicker', 'jquery-ui-slider', 'jquery-effects-core', 'jquery-effects-slide'), '', true);

    if (is_page() && geodir_is_page('add-listing')) {
        // SCRIPT FOR UPLOAD
        wp_enqueue_script('plupload-all');
        wp_enqueue_script('jquery-ui-sortable');

        wp_register_script('geodirectory-plupload-script', geodir_plugin_url() . '/geodirectory-assets/js/geodirectory-plupload.min.js#asyncload', array(), GEODIRECTORY_VERSION,true);
        wp_enqueue_script('geodirectory-plupload-script');
        // SCRIPT FOR UPLOAD END

        // check_ajax_referer function is used to make sure no files are uplaoded remotly but it will fail if used between https and non https so we do the check below of the urls
        if (str_replace("https", "http", admin_url('admin-ajax.php')) && !empty($_SERVER['HTTPS'])) {
            $ajax_url = admin_url('admin-ajax.php');
        } elseif (!str_replace("https", "http", admin_url('admin-ajax.php')) && empty($_SERVER['HTTPS'])) {
            $ajax_url = admin_url('admin-ajax.php');
        } elseif (str_replace("https", "http", admin_url('admin-ajax.php')) && empty($_SERVER['HTTPS'])) {
            $ajax_url = str_replace("https", "http", admin_url('admin-ajax.php'));
        } elseif (!str_replace("https", "http", admin_url('admin-ajax.php')) && !empty($_SERVER['HTTPS'])) {
            $ajax_url = str_replace("http", "https", admin_url('admin-ajax.php'));
        } else {
            $ajax_url = admin_url('admin-ajax.php');
        }

        // place js config array for plupload
        $plupload_init = array(
            'runtimes' => 'html5,silverlight,browserplus,gears,html4',
            'browse_button' => 'plupload-browse-button', // will be adjusted per uploader
            'container' => 'plupload-upload-ui', // will be adjusted per uploader
            'drop_element' => 'dropbox', // will be adjusted per uploader
            'file_data_name' => 'async-upload', // will be adjusted per uploader
            'multiple_queues' => true,
            'max_file_size' => geodir_max_upload_size(),
            'url' => $ajax_url,
            'flash_swf_url' => includes_url('js/plupload/plupload.flash.swf'),
            'silverlight_xap_url' => includes_url('js/plupload/plupload.silverlight.xap'),
            'filters' => array(array('title' => __('Allowed Files', 'geodirectory'), 'extensions' => '*')),
            'multipart' => true,
            'urlstream_upload' => true,
            'multi_selection' => false, // will be added per uploader
            // additional post data to send to our ajax hook
            'multipart_params' => array(
                '_ajax_nonce' => "", // will be added per uploader
                'action' => 'plupload_action', // the ajax action name
                'imgid' => 0 // will be added per uploader
            )
        );
        $base_plupload_config = json_encode($plupload_init);

        $gd_plupload_init = array('base_plupload_config' => $base_plupload_config,
            'upload_img_size' => geodir_max_upload_size());

        wp_localize_script('geodirectory-plupload-script', 'gd_plupload', $gd_plupload_init);

        wp_enqueue_script('geodirectory-listing-validation-script', geodir_plugin_url() . '/geodirectory-assets/js/listing_validation.min.js#asyncload');
    } // End if for add place page

    wp_register_script('geodirectory-post-custom-js', geodir_plugin_url() . '/geodirectory-assets/js/post.custom.min.js#asyncload', array(), GEODIRECTORY_VERSION, true);
    if ($is_detail_page) {
		wp_enqueue_script('geodirectory-post-custom-js');
	}

    // font awesome rating script
	if (get_option('geodir_reviewrating_enable_font_awesome')) {
		wp_register_script('geodir-barrating-js', geodir_plugin_url() . '/geodirectory-assets/js/jquery.barrating.min.js', array(), GEODIRECTORY_VERSION, true);
		wp_enqueue_script('geodir-barrating-js');
	} else { // default rating script
		wp_register_script('geodir-jRating-js', geodir_plugin_url() . '/geodirectory-assets/js/jRating.jquery.min.js', array(), GEODIRECTORY_VERSION, true);
		wp_enqueue_script('geodir-jRating-js');
	}

    wp_register_script('geodir-on-document-load', geodir_plugin_url() . '/geodirectory-assets/js/on_document_load.min.js#asyncload', array(), GEODIRECTORY_VERSION, true);
    wp_enqueue_script('geodir-on-document-load');

    wp_register_script('google-geometa', geodir_plugin_url() . '/geodirectory-assets/js/geometa.min.js#asyncload', array(), GEODIRECTORY_VERSION, true);
    wp_enqueue_script('google-geometa');
}