PluginProbe
Property Hive / 1.4.59
Property Hive v1.4.59
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.59, at includes/class-ph-frontend-scripts.php

146 lines 5.5 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 wp_enqueue_script( 'ph-single-property' );
78 }
79
80 // Global frontend scripts
81 wp_enqueue_script( 'propertyhive_search', $frontend_script_path . 'search' . $suffix . '.js', array( 'jquery' ), PH_VERSION, true );
82 wp_enqueue_script( 'propertyhive_make_enquiry', $frontend_script_path . 'make-enquiry' . $suffix . '.js', array( 'jquery' ), PH_VERSION, true );
83 //wp_enqueue_script( 'propertyhive', $frontend_script_path . 'propertyhive' . $suffix . '.js', array( 'jquery' ), PH_VERSION, true );
84
85 wp_register_script( 'multiselect', $assets_path . 'js/multiselect/jquery.multiselect' . /*$suffix .*/ '.js', array('jquery'), '2.4.18', true );
86 wp_enqueue_style( 'multiselect', $assets_path . 'css/jquery.multiselect.css', array(), '2.4.18' );
87
88 // CSS Styles
89 $enqueue_styles = self::get_styles();
90
91 if ( $enqueue_styles ) {
92 foreach ( $enqueue_styles as $handle => $args ) {
93 wp_enqueue_style( $handle, $args['src'], $args['deps'], $args['version'], $args['media'] );
94 }
95 }
96 }
97
98 /**
99 * Localize scripts only when enqueued
100 */
101 public static function localize_printed_scripts() {
102 global $wp;
103
104 $assets_path = str_replace( array( 'http:', 'https:' ), '', PH()->plugin_url() ) . '/assets/';
105
106 if ( wp_script_is( 'propertyhive_make_enquiry' ) ) {
107 wp_localize_script( 'propertyhive_make_enquiry', 'propertyhive_make_property_enquiry_params', apply_filters( 'propertyhive_make_property_enquiry_params', array(
108 'ajax_url' => PH()->ajax_url()
109 ) ) );
110 }
111
112 if ( wp_script_is( 'propertyhive_account' ) ) {
113 wp_localize_script( 'propertyhive_account', 'propertyhive_account_params', apply_filters( 'propertyhive_account_params', array(
114 'ajax_url' => PH()->ajax_url(),
115 'my_account_url' => get_permalink( ph_get_page_id('my_account') ),
116 'login_nonce' => wp_create_nonce( "ph_login" ),
117 'register_nonce' => wp_create_nonce( "ph_register" ),
118 'details_nonce' => wp_create_nonce( "ph_details" ),
119 'requirements_nonce' => wp_create_nonce( "ph_requirements" ),
120 ) ) );
121 }
122 }
123
124 /**
125 * PH requires jQuery 1.8 since it uses functions like .on() for events and .parseHTML.
126 * If, by the time wp_print_scrips is called, jQuery is outdated (i.e not
127 * using the version in core) we need to deregister it and register the
128 * core version of the file.
129 *
130 * @access public
131 * @return void
132 */
133 public static function check_jquery() {
134 global $wp_scripts;
135
136 // Enforce minimum version of jQuery
137 if ( ! empty( $wp_scripts->registered['jquery']->ver ) && ! empty( $wp_scripts->registered['jquery']->src ) && 0 >= version_compare( $wp_scripts->registered['jquery']->ver, '1.8' ) ) {
138 wp_deregister_script( 'jquery' );
139 wp_register_script( 'jquery', '/wp-includes/js/jquery/jquery.js', array(), '1.8' );
140 wp_enqueue_script( 'jquery' );
141 }
142 }
143 }
144
145 PH_Frontend_Scripts::init();
146