PluginProbe
Property Hive / 1.4.61
Property Hive v1.4.61
2.3.1 2.3.0 2.2.6 2.2.5 2.2.4 2.2.3 2.2.2 1.4.46 1.4.47 1.4.48 1.4.49 1.4.5 1.4.50 1.4.51 1.4.52 1.4.53 1.4.54 1.4.55 1.4.56 1.4.57 1.4.58 1.4.59 1.4.6 1.4.60 1.4.61 All 261 releases
propertyhive / includes / class-ph-frontend-scripts.php

class-ph-frontend-scripts.php in Property Hive 1.4.61, at includes/class-ph-frontend-scripts.php

144 lines 5.4 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 if ( ! defined( 'ABSPATH' ) ) {
4 exit; // Exit if accessed directly
5 }
6
7 /**
8 * Handle frontend forms
9 *
10 * @class PH_Frontend_Scripts
11 * @version 1.0.0
12 * @package PropertyHive/Classes/
13 * @category Class
14 * @author PropertyHive
15 */
16 class PH_Frontend_Scripts {
17
18 /**
19 * Hook in methods
20 */
21 public static function init() {
22 add_action( 'wp_enqueue_scripts', array( __CLASS__, 'load_scripts' ) );
23 add_action( 'wp_print_scripts', array( __CLASS__, 'check_jquery' ), 25 );
24 add_action( 'wp_print_scripts', array( __CLASS__, 'localize_printed_scripts' ), 5 );
25 add_action( 'wp_print_footer_scripts', array( __CLASS__, 'localize_printed_scripts' ), 5 );
26 }
27
28 /**
29 * Get styles for the frontend
30 * @return array
31 */
32 public static function get_styles() {
33 return apply_filters( 'propertyhive_enqueue_styles', array(
34 'propertyhive-general' => array(
35 'src' => str_replace( array( 'http:', 'https:' ), '', PH()->plugin_url() ) . '/assets/css/propertyhive.css',
36 'deps' => '',
37 'version' => PH_VERSION,
38 'media' => 'all'
39 ),
40 ) );
41 }
42
43 /**
44 * Register/queue frontend scripts.
45 *
46 * @access public
47 * @return void
48 */
49 public static function load_scripts() {
50 global $post;
51
52 //$suffix = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min';
53 $suffix = '';
54 $assets_path = str_replace( array( 'http:', 'https:' ), '', PH()->plugin_url() ) . '/assets/';
55 $frontend_script_path = $assets_path . 'js/frontend/';
56
57 // Register any scripts for later use, or used as dependencies
58 wp_register_script( 'jquery-cookie', $assets_path . 'js/jquery-cookie/jquery.cookie' . $suffix . '.js', array( 'jquery' ), '1.3.1', true );
59
60 wp_register_script( 'propertyhive_fancybox', $assets_path . 'js/fancybox/jquery.fancybox' . $suffix . '.js', array( 'jquery' ), '3.3.5', true );
61 wp_register_style( 'propertyhive_fancybox_css', $assets_path . 'css/jquery.fancybox' . $suffix . '.css', array(), '3.3.5' );
62
63 if ( get_option('propertyhive_lettings_fees_display_search_results', '') == 'yes' )
64 {
65 wp_enqueue_script( 'propertyhive_fancybox' );
66 wp_enqueue_style( 'propertyhive_fancybox_css' );
67 }
68
69 if ( is_property() ) {
70 wp_enqueue_script( 'propertyhive_fancybox' );
71 wp_enqueue_style( 'propertyhive_fancybox_css' );
72
73 wp_enqueue_script( 'flexslider', $assets_path . 'js/flexslider/jquery.flexslider' . $suffix . '.js', array( 'jquery' ), '2.2.2', true );
74 wp_enqueue_script( 'flexslider-init', $assets_path . 'js/flexslider/jquery.flexslider.init' . $suffix . '.js', array( 'jquery','flexslider' ), PH_VERSION, true );
75 wp_enqueue_style( 'flexslider_css', $assets_path . 'css/flexslider.css' );
76 }
77
78 // Global frontend scripts
79 wp_enqueue_script( 'propertyhive_search', $frontend_script_path . 'search' . $suffix . '.js', array( 'jquery' ), PH_VERSION, true );
80 wp_enqueue_script( 'propertyhive_make_enquiry', $frontend_script_path . 'make-enquiry' . $suffix . '.js', array( 'jquery' ), PH_VERSION, true );
81 //wp_enqueue_script( 'propertyhive', $frontend_script_path . 'propertyhive' . $suffix . '.js', array( 'jquery' ), PH_VERSION, true );
82
83 wp_register_script( 'multiselect', $assets_path . 'js/multiselect/jquery.multiselect' . /*$suffix .*/ '.js', array('jquery'), '2.4.18', true );
84 wp_enqueue_style( 'multiselect', $assets_path . 'css/jquery.multiselect.css', array(), '2.4.18' );
85
86 // CSS Styles
87 $enqueue_styles = self::get_styles();
88
89 if ( $enqueue_styles ) {
90 foreach ( $enqueue_styles as $handle => $args ) {
91 wp_enqueue_style( $handle, $args['src'], $args['deps'], $args['version'], $args['media'] );
92 }
93 }
94 }
95
96 /**
97 * Localize scripts only when enqueued
98 */
99 public static function localize_printed_scripts() {
100 global $wp;
101
102 $assets_path = str_replace( array( 'http:', 'https:' ), '', PH()->plugin_url() ) . '/assets/';
103
104 if ( wp_script_is( 'propertyhive_make_enquiry' ) ) {
105 wp_localize_script( 'propertyhive_make_enquiry', 'propertyhive_make_property_enquiry_params', apply_filters( 'propertyhive_make_property_enquiry_params', array(
106 'ajax_url' => PH()->ajax_url()
107 ) ) );
108 }
109
110 if ( wp_script_is( 'propertyhive_account' ) ) {
111 wp_localize_script( 'propertyhive_account', 'propertyhive_account_params', apply_filters( 'propertyhive_account_params', array(
112 'ajax_url' => PH()->ajax_url(),
113 'my_account_url' => get_permalink( ph_get_page_id('my_account') ),
114 'login_nonce' => wp_create_nonce( "ph_login" ),
115 'register_nonce' => wp_create_nonce( "ph_register" ),
116 'details_nonce' => wp_create_nonce( "ph_details" ),
117 'requirements_nonce' => wp_create_nonce( "ph_requirements" ),
118 ) ) );
119 }
120 }
121
122 /**
123 * PH requires jQuery 1.8 since it uses functions like .on() for events and .parseHTML.
124 * If, by the time wp_print_scrips is called, jQuery is outdated (i.e not
125 * using the version in core) we need to deregister it and register the
126 * core version of the file.
127 *
128 * @access public
129 * @return void
130 */
131 public static function check_jquery() {
132 global $wp_scripts;
133
134 // Enforce minimum version of jQuery
135 if ( ! empty( $wp_scripts->registered['jquery']->ver ) && ! empty( $wp_scripts->registered['jquery']->src ) && 0 >= version_compare( $wp_scripts->registered['jquery']->ver, '1.8' ) ) {
136 wp_deregister_script( 'jquery' );
137 wp_register_script( 'jquery', '/wp-includes/js/jquery/jquery.js', array(), '1.8' );
138 wp_enqueue_script( 'jquery' );
139 }
140 }
141 }
142
143 PH_Frontend_Scripts::init();
144