PluginProbe
Property Hive / 1.4.53
Property Hive v1.4.53
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 1.4.62 All 260 releases
propertyhive / includes / class-ph-frontend-scripts.php

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

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