Completed
Push — master ( 72dfec...61887c )
by
unknown
06:50
created
includes/admin/assets.php 1 patch
Spacing   +28 added lines, -28 removed lines patch added patch discarded remove patch
@@ -6,7 +6,7 @@  discard block
 block discarded – undo
6 6
  */
7 7
 namespace SimpleCalendar\Admin;
8 8
 
9
-if ( ! defined( 'ABSPATH' ) ) {
9
+if ( ! defined('ABSPATH')) {
10 10
 	exit;
11 11
 }
12 12
 
@@ -34,9 +34,9 @@  discard block
 block discarded – undo
34 34
 	 */
35 35
 	public function __construct() {
36 36
 
37
-		$this->min = ( defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG == true ) ? '' : '.min';
37
+		$this->min = (defined('SCRIPT_DEBUG') && SCRIPT_DEBUG == true) ? '' : '.min';
38 38
 
39
-		add_action( 'admin_enqueue_scripts', array( $this, 'load' ) );
39
+		add_action('admin_enqueue_scripts', array($this, 'load'));
40 40
 	}
41 41
 
42 42
 	/**
@@ -46,10 +46,10 @@  discard block
 block discarded – undo
46 46
 	 */
47 47
 	public function load() {
48 48
 
49
-		$css_path        = SIMPLE_CALENDAR_ASSETS . 'css/';
50
-		$css_path_vendor = $css_path . 'vendor/';
51
-		$js_path         = SIMPLE_CALENDAR_ASSETS . 'js/';
52
-		$js_path_vendor  = $js_path . 'vendor/';
49
+		$css_path        = SIMPLE_CALENDAR_ASSETS.'css/';
50
+		$css_path_vendor = $css_path.'vendor/';
51
+		$js_path         = SIMPLE_CALENDAR_ASSETS.'js/';
52
+		$js_path_vendor  = $js_path.'vendor/';
53 53
 
54 54
 		/* ====================== *
55 55
 		 * Register Admin Scripts *
@@ -58,21 +58,21 @@  discard block
 block discarded – undo
58 58
 		// TipTip uses ".minified.js" filename ending.
59 59
 		wp_register_script(
60 60
 			'simcal-tiptip',
61
-			$js_path_vendor . 'jquery.tipTip' . ( ( $this->min !== '' ) ? '.minified' : '' ) . '.js',
62
-			array( 'jquery' ),
61
+			$js_path_vendor.'jquery.tipTip'.(($this->min !== '') ? '.minified' : '').'.js',
62
+			array('jquery'),
63 63
 			'1.3',
64 64
 			true
65 65
 		);
66 66
 		wp_register_script(
67 67
 			'simcal-select2',
68
-			$js_path_vendor . 'select2' . $this->min . '.js',
68
+			$js_path_vendor.'select2'.$this->min.'.js',
69 69
 			array(),
70 70
 			'4.0',
71 71
 			true
72 72
 		);
73 73
 		wp_register_script(
74 74
 			'simcal-admin',
75
-			$js_path . 'admin' . $this->min . '.js',
75
+			$js_path.'admin'.$this->min.'.js',
76 76
 			array(
77 77
 				'jquery',
78 78
 				'jquery-ui-sortable',
@@ -86,8 +86,8 @@  discard block
 block discarded – undo
86 86
 		);
87 87
 		wp_register_script(
88 88
 			'simcal-admin-add-calendar',
89
-			$js_path . 'admin-add-calendar' . $this->min . '.js',
90
-			array( 'simcal-select2' ),
89
+			$js_path.'admin-add-calendar'.$this->min.'.js',
90
+			array('simcal-select2'),
91 91
 			SIMPLE_CALENDAR_VERSION,
92 92
 			true
93 93
 		);
@@ -98,13 +98,13 @@  discard block
 block discarded – undo
98 98
 
99 99
 		wp_register_style(
100 100
 			'simcal-select2',
101
-			$css_path_vendor . 'select2' . $this->min . '.css',
101
+			$css_path_vendor.'select2'.$this->min.'.css',
102 102
 			array(),
103 103
 			'4.0.0'
104 104
 		);
105 105
 		wp_register_style(
106 106
 			'simcal-admin',
107
-			$css_path . 'admin' . $this->min . '.css',
107
+			$css_path.'admin'.$this->min.'.css',
108 108
 			array(
109 109
 				'wp-color-picker',
110 110
 				'simcal-select2',
@@ -113,21 +113,21 @@  discard block
 block discarded – undo
113 113
 		);
114 114
 		wp_register_style(
115 115
 			'simcal-admin-add-calendar',
116
-			$css_path . 'admin-add-calendar' . $this->min . '.css',
117
-			array( 'simcal-select2' ),
116
+			$css_path.'admin-add-calendar'.$this->min.'.css',
117
+			array('simcal-select2'),
118 118
 			SIMPLE_CALENDAR_VERSION
119 119
 		);
120 120
 
121
-		if ( simcal_is_admin_screen() !== false ) {
121
+		if (simcal_is_admin_screen() !== false) {
122 122
 
123
-			wp_enqueue_script( 'simcal-admin' );
123
+			wp_enqueue_script('simcal-admin');
124 124
 			wp_localize_script(
125 125
 				'simcal-admin',
126 126
 				'simcal_admin',
127 127
 				simcal_common_scripts_variables()
128 128
 			);
129 129
 
130
-			wp_enqueue_style( 'simcal-admin' );
130
+			wp_enqueue_style('simcal-admin');
131 131
 
132 132
 		} else {
133 133
 
@@ -135,25 +135,25 @@  discard block
 block discarded – undo
135 135
 			$screen = get_current_screen();
136 136
 
137 137
 			$post_types = array();
138
-			$settings = get_option( 'simple-calendar_settings_calendars' );
139
-			if ( isset( $settings['general']['attach_calendars_posts'] ) ) {
138
+			$settings = get_option('simple-calendar_settings_calendars');
139
+			if (isset($settings['general']['attach_calendars_posts'])) {
140 140
 				$post_types = $settings['general']['attach_calendars_posts'];
141 141
 			}
142 142
 
143 143
 			$conditions = array(
144
-				in_array( $post_type, (array) $post_types ),
144
+				in_array($post_type, (array) $post_types),
145 145
 				$screen->id == 'widgets',
146 146
 			);
147 147
 
148
-			if ( in_array( true, $conditions ) ) {
148
+			if (in_array(true, $conditions)) {
149 149
 
150
-				wp_enqueue_script( 'simcal-admin-add-calendar' );
151
-				wp_localize_script( 'simcal-admin-add-calendar', 'simcal_admin', array(
150
+				wp_enqueue_script('simcal-admin-add-calendar');
151
+				wp_localize_script('simcal-admin-add-calendar', 'simcal_admin', array(
152 152
 					'locale'   => get_locale(),
153 153
 					'text_dir' => is_rtl() ? 'rtl' : 'ltr',
154
-				) );
154
+				));
155 155
 
156
-				wp_enqueue_style( 'simcal-admin-add-calendar' );
156
+				wp_enqueue_style('simcal-admin-add-calendar');
157 157
 			}
158 158
 
159 159
 		}
Please login to merge, or discard this patch.
includes/admin/fields/select.php 1 patch
Spacing   +24 added lines, -24 removed lines patch added patch discarded remove patch
@@ -8,7 +8,7 @@  discard block
 block discarded – undo
8 8
 
9 9
 use SimpleCalendar\Abstracts\Field;
10 10
 
11
-if ( ! defined( 'ABSPATH' ) ) {
11
+if ( ! defined('ABSPATH')) {
12 12
 	exit;
13 13
 }
14 14
 
@@ -51,32 +51,32 @@  discard block
 block discarded – undo
51 51
 	 *
52 52
 	 * @param array $field
53 53
 	 */
54
-	public function __construct( $field ) {
54
+	public function __construct($field) {
55 55
 
56 56
 		$class = 'simcal-field-select';
57 57
 
58
-		$enhanced = isset( $field['enhanced'] ) ? $field['enhanced'] : '';
59
-		if ( 'enhanced' == $enhanced )  {
58
+		$enhanced = isset($field['enhanced']) ? $field['enhanced'] : '';
59
+		if ('enhanced' == $enhanced) {
60 60
 			$this->enhanced = true;
61 61
 			$class .= ' simcal-field-select-enhanced';
62 62
 		}
63 63
 
64
-		$multiselect = isset( $field['multiselect'] ) ? $field['multiselect'] : '';
65
-		if ( 'multiselect' == $multiselect ) {
64
+		$multiselect = isset($field['multiselect']) ? $field['multiselect'] : '';
65
+		if ('multiselect' == $multiselect) {
66 66
 			$this->multiselect = true;
67 67
 			$class .= ' simcal-field-multiselect';
68 68
 		}
69 69
 
70
-		if ( isset( $field['default'] ) ) {
70
+		if (isset($field['default'])) {
71 71
 			$this->default = $field['default'];
72 72
 		}
73 73
 
74 74
 		$this->type_class = $class;
75 75
 
76
-		$allow_void = isset( $field['allow_void'] ) ? $field['allow_void'] : '';
76
+		$allow_void = isset($field['allow_void']) ? $field['allow_void'] : '';
77 77
 		$this->allow_void = 'allow_void' == $allow_void ? true : false;
78 78
 
79
-		parent::__construct( $field );
79
+		parent::__construct($field);
80 80
 	}
81 81
 
82 82
 	/**
@@ -86,36 +86,36 @@  discard block
 block discarded – undo
86 86
 	 */
87 87
 	public function html() {
88 88
 
89
-		if ( $this->multiselect === true && ! is_array( $this->value ) ) {
90
-			$this->value = explode( ',', $this->value );
89
+		if ($this->multiselect === true && ! is_array($this->value)) {
90
+			$this->value = explode(',', $this->value);
91 91
 		}
92 92
 
93
-		if ( $this->default ) {
94
-			if ( empty( $this->value ) || $this->value == '' ) {
93
+		if ($this->default) {
94
+			if (empty($this->value) || $this->value == '') {
95 95
 				$this->value = $this->default;
96 96
 			}
97 97
 		}
98 98
 
99 99
 		?>
100
-		<select name="<?php echo $this->name; ?><?php if ( $this->multiselect === true ) { echo '[]'; } ?>"
100
+		<select name="<?php echo $this->name; ?><?php if ($this->multiselect === true) { echo '[]'; } ?>"
101 101
 		        id="<?php echo $this->id; ?>"
102 102
 		        style="<?php echo $this->style; ?>"
103 103
 		        class="<?php echo $this->class; ?>"
104 104
 				<?php echo $this->attributes; ?>
105
-				<?php echo ( $this->multiselect === true ) ? ' multiple="multiple"' : ''; ?>>
105
+				<?php echo ($this->multiselect === true) ? ' multiple="multiple"' : ''; ?>>
106 106
 			<?php
107 107
 
108
-			if ( $this->allow_void === true ) {
109
-				echo '<option value=""' . selected( '', $this->value, false ) . '></option>';
108
+			if ($this->allow_void === true) {
109
+				echo '<option value=""'.selected('', $this->value, false).'></option>';
110 110
 			}
111 111
 
112
-			foreach ( $this->options as $option => $name ) {
113
-				if ( is_array( $this->value ) ) {
114
-					$selected =	selected( in_array( $option, $this->value ), true, false );
112
+			foreach ($this->options as $option => $name) {
113
+				if (is_array($this->value)) {
114
+					$selected = selected(in_array($option, $this->value), true, false);
115 115
 				} else {
116
-					$selected = selected( $this->value, trim( strval( $option ) ), false );
116
+					$selected = selected($this->value, trim(strval($option)), false);
117 117
 				}
118
-				echo '<option value="' . $option . '" ' . $selected . '>' . esc_attr( $name ) . '</option>';
118
+				echo '<option value="'.$option.'" '.$selected.'>'.esc_attr($name).'</option>';
119 119
 			}
120 120
 
121 121
 			?>
@@ -124,8 +124,8 @@  discard block
 block discarded – undo
124 124
 
125 125
 		echo $this->tooltip;
126 126
 
127
-		if ( ! empty( $this->description ) ) {
128
-			echo '<p class="description">' . wp_kses_post( $this->description ) . '</p>';
127
+		if ( ! empty($this->description)) {
128
+			echo '<p class="description">'.wp_kses_post($this->description).'</p>';
129 129
 		}
130 130
 
131 131
 	}
Please login to merge, or discard this patch.
includes/abstracts/calendar.php 2 patches
Indentation   +2 added lines, -2 removed lines patch added patch discarded remove patch
@@ -784,8 +784,8 @@
 block discarded – undo
784 784
 				if ( 'yes' == $poweredby ) {
785 785
 					$align = is_rtl() ? 'left' : 'right';
786 786
 					echo '<small class="simcal-powered simcal-align-' . $align .'">' .
787
-					     sprintf( __( 'Powered by <a href="%s" target="_blank">Simple Calendar</a>', 'google-calendar-events' ), simcal_get_url( 'home' ) ) .
788
-					     '</small>';
787
+						 sprintf( __( 'Powered by <a href="%s" target="_blank">Simple Calendar</a>', 'google-calendar-events' ), simcal_get_url( 'home' ) ) .
788
+						 '</small>';
789 789
 				}
790 790
 
791 791
 				echo '</div>';
Please login to merge, or discard this patch.
Spacing   +181 added lines, -181 removed lines patch added patch discarded remove patch
@@ -11,7 +11,7 @@  discard block
 block discarded – undo
11 11
 use SimpleCalendar\Events\Event_Builder;
12 12
 use SimpleCalendar\Events\Events;
13 13
 
14
-if ( ! defined( 'ABSPATH' ) ) {
14
+if ( ! defined('ABSPATH')) {
15 15
 	exit;
16 16
 }
17 17
 
@@ -234,12 +234,12 @@  discard block
 block discarded – undo
234 234
 	 * @param int|object|\WP_Post|Calendar $calendar
235 235
 	 * @param string $view
236 236
 	 */
237
-	public function __construct( $calendar, $view = '' ) {
237
+	public function __construct($calendar, $view = '') {
238 238
 
239 239
 		// Set the post object.
240
-		$this->set_post_object( $calendar );
240
+		$this->set_post_object($calendar);
241 241
 
242
-		if ( ! is_null( $this->post ) ) {
242
+		if ( ! is_null($this->post)) {
243 243
 
244 244
 			// Set calendar type and events source.
245 245
 			$this->set_taxonomies();
@@ -256,23 +256,23 @@  discard block
 block discarded – undo
256 256
 			$this->set_events_template();
257 257
 
258 258
 			// Get events source data.
259
-			$feed = simcal_get_feed( $this );
260
-			if ( $feed instanceof Feed ) {
261
-				if ( ! empty( $feed->events ) ) {
262
-					if ( is_array( $feed->events ) ) {
263
-						$this->set_events( $feed->events );
264
-						if ( 'use_calendar' == get_post_meta( $this->id, '_feed_timezone_setting', true ) ) {
259
+			$feed = simcal_get_feed($this);
260
+			if ($feed instanceof Feed) {
261
+				if ( ! empty($feed->events)) {
262
+					if (is_array($feed->events)) {
263
+						$this->set_events($feed->events);
264
+						if ('use_calendar' == get_post_meta($this->id, '_feed_timezone_setting', true)) {
265 265
 							$this->timezone = $feed->timezone;
266 266
 							$this->set_start();
267 267
 						}
268
-					} elseif ( is_string( $feed->events ) ) {
268
+					} elseif (is_string($feed->events)) {
269 269
 						$this->errors[] = $feed->events;
270 270
 					}
271 271
 				}
272 272
 			}
273 273
 
274 274
 			// Set general purpose timestamps.
275
-			$now = Carbon::now( $this->timezone );
275
+			$now = Carbon::now($this->timezone);
276 276
 			$this->now    = $now->getTimestamp();
277 277
 			$this->today  = $now->startOfDay()->getTimestamp();
278 278
 			$this->offset = $now->getOffset();
@@ -283,26 +283,26 @@  discard block
 block discarded – undo
283 283
 			$this->set_datetime_separator();
284 284
 
285 285
 			// Set earliest and latest event timestamps.
286
-			if ( $this->events && is_array( $this->events ) ) {
287
-				$this->earliest_event = intval( current( array_keys( $this->events ) ) );
288
-				$this->latest_event   = intval( key( array_slice( $this->events, -1, 1, true ) ) );
286
+			if ($this->events && is_array($this->events)) {
287
+				$this->earliest_event = intval(current(array_keys($this->events)));
288
+				$this->latest_event   = intval(key(array_slice($this->events, -1, 1, true)));
289 289
 			}
290 290
 
291 291
 			// Set calendar end.
292 292
 			$this->set_end();
293 293
 
294 294
 			// Set view.
295
-			if ( ! $view ) {
295
+			if ( ! $view) {
296 296
 
297
-				$calendar_view = get_post_meta( $this->id, '_calendar_view', true );
298
-				$calendar_view = isset( $calendar_view[ $this->type ] ) ? $calendar_view[ $this->type ] : '';
297
+				$calendar_view = get_post_meta($this->id, '_calendar_view', true);
298
+				$calendar_view = isset($calendar_view[$this->type]) ? $calendar_view[$this->type] : '';
299 299
 
300
-				$view = esc_attr( $calendar_view );
300
+				$view = esc_attr($calendar_view);
301 301
 			}
302 302
 		}
303 303
 
304 304
 		// Get view.
305
-		$this->view = $this->get_view( $view );
305
+		$this->view = $this->get_view($view);
306 306
 	}
307 307
 
308 308
 	/**
@@ -314,8 +314,8 @@  discard block
 block discarded – undo
314 314
 	 *
315 315
 	 * @return bool
316 316
 	 */
317
-	public function __isset( $key ) {
318
-		return metadata_exists( 'post', $this->id, '_' . $key );
317
+	public function __isset($key) {
318
+		return metadata_exists('post', $this->id, '_'.$key);
319 319
 	}
320 320
 
321 321
 	/**
@@ -327,9 +327,9 @@  discard block
 block discarded – undo
327 327
 	 *
328 328
 	 * @return mixed
329 329
 	 */
330
-	public function __get( $key ) {
331
-		$value = get_post_meta( $this->id, '_' . $key, true );
332
-		if ( ! empty( $value ) ) {
330
+	public function __get($key) {
331
+		$value = get_post_meta($this->id, '_'.$key, true);
332
+		if ( ! empty($value)) {
333 333
 			$this->$key = $value;
334 334
 		}
335 335
 		return $value;
@@ -342,17 +342,17 @@  discard block
 block discarded – undo
342 342
 	 *
343 343
 	 * @param int|object|\WP_Post|Calendar $calendar
344 344
 	 */
345
-	public function set_post_object( $calendar ) {
346
-		if ( is_numeric( $calendar ) ) {
347
-			$this->id   = absint( $calendar );
348
-			$this->post = get_post( $this->id );
349
-		} elseif ( $calendar instanceof Calendar ) {
350
-			$this->id   = absint( $calendar->id );
345
+	public function set_post_object($calendar) {
346
+		if (is_numeric($calendar)) {
347
+			$this->id   = absint($calendar);
348
+			$this->post = get_post($this->id);
349
+		} elseif ($calendar instanceof Calendar) {
350
+			$this->id   = absint($calendar->id);
351 351
 			$this->post = $calendar->post;
352
-		} elseif ( $calendar instanceof \WP_Post ) {
353
-			$this->id   = absint( $calendar->ID );
352
+		} elseif ($calendar instanceof \WP_Post) {
353
+			$this->id   = absint($calendar->ID);
354 354
 			$this->post = $calendar;
355
-		} elseif ( isset( $calendar->id ) && isset( $calendar->post ) ) {
355
+		} elseif (isset($calendar->id) && isset($calendar->post)) {
356 356
 			$this->id   = $calendar->id;
357 357
 			$this->post = $calendar->post;
358 358
 		}
@@ -366,8 +366,8 @@  discard block
 block discarded – undo
366 366
 	 * @return string
367 367
 	 */
368 368
 	public function get_title() {
369
-		$title = isset( $this->post->post_title ) ? $this->post->post_title : '';
370
-		return apply_filters( 'simcal_calendar_title', $title );
369
+		$title = isset($this->post->post_title) ? $this->post->post_title : '';
370
+		return apply_filters('simcal_calendar_title', $title);
371 371
 	}
372 372
 
373 373
 	/**
@@ -389,16 +389,16 @@  discard block
 block discarded – undo
389 389
 	 */
390 390
 	protected function set_taxonomies() {
391 391
 		// Set calendar type.
392
-		if ( $type = wp_get_object_terms( $this->id, 'calendar_type' ) ) {
393
-			$this->type = sanitize_title( current( $type )->name );
392
+		if ($type = wp_get_object_terms($this->id, 'calendar_type')) {
393
+			$this->type = sanitize_title(current($type)->name);
394 394
 		} else {
395
-			$this->type = apply_filters( 'simcal_calendar_default_type', 'default-calendar' );
395
+			$this->type = apply_filters('simcal_calendar_default_type', 'default-calendar');
396 396
 		}
397 397
 		// Set feed type.
398
-		if ( $feed_type = wp_get_object_terms( $this->id, 'calendar_feed' ) ) {
399
-			$this->feed = sanitize_title( current( $feed_type )->name );
398
+		if ($feed_type = wp_get_object_terms($this->id, 'calendar_feed')) {
399
+			$this->feed = sanitize_title(current($feed_type)->name);
400 400
 		} else {
401
-			$this->feed = apply_filters( 'simcal_calendar_default_feed', 'google' );
401
+			$this->feed = apply_filters('simcal_calendar_default_feed', 'google');
402 402
 		}
403 403
 	}
404 404
 
@@ -410,7 +410,7 @@  discard block
 block discarded – undo
410 410
 	 * @return Events
411 411
 	 */
412 412
 	public function get_events() {
413
-		return new Events( $this->events, $this->timezone );
413
+		return new Events($this->events, $this->timezone);
414 414
 	}
415 415
 
416 416
 	/**
@@ -420,14 +420,14 @@  discard block
 block discarded – undo
420 420
 	 *
421 421
 	 * @param array $array
422 422
 	 */
423
-	public function set_events( array $array ) {
423
+	public function set_events(array $array) {
424 424
 
425 425
 		$events = array();
426 426
 
427
-		if ( ! empty( $array ) ) {
428
-			foreach ( $array as $tz => $e ) {
429
-				foreach ( $e as $event ) {
430
-					$events[ $tz ][] = $event instanceof Event ? $event : new Event( $event );
427
+		if ( ! empty($array)) {
428
+			foreach ($array as $tz => $e) {
429
+				foreach ($e as $event) {
430
+					$events[$tz][] = $event instanceof Event ? $event : new Event($event);
431 431
 				}
432 432
 			}
433 433
 		}
@@ -444,24 +444,24 @@  discard block
 block discarded – undo
444 444
 	 *
445 445
 	 * @return string
446 446
 	 */
447
-	public function set_events_template( $template = '' ) {
448
-		if ( empty( $template ) ) {
449
-			$template = isset( $this->post->post_content ) ? $this->post->post_content : '';
447
+	public function set_events_template($template = '') {
448
+		if (empty($template)) {
449
+			$template = isset($this->post->post_content) ? $this->post->post_content : '';
450 450
 		}
451 451
 
452 452
 		// TODO: Removed wpautop() call.
453 453
 
454
-		$event_formatting = get_post_meta( $this->id, '_event_formatting', true );
454
+		$event_formatting = get_post_meta($this->id, '_event_formatting', true);
455 455
 
456
-		switch( $event_formatting ) {
456
+		switch ($event_formatting) {
457 457
 			case 'none':
458
-				$this->events_template =  wp_kses_post( trim( $template ) );
458
+				$this->events_template = wp_kses_post(trim($template));
459 459
 				break;
460 460
 			case 'no_linebreaks':
461
-				$this->events_template =  wpautop( wp_kses_post( trim( $template ) ), false );
461
+				$this->events_template = wpautop(wp_kses_post(trim($template)), false);
462 462
 				break;
463 463
 			default:
464
-				$this->events_template =  wpautop( wp_kses_post( trim( $template ) ), true );
464
+				$this->events_template = wpautop(wp_kses_post(trim($template)), true);
465 465
 		}
466 466
 
467 467
 		//$this->events_template =  wpautop( wp_kses_post( trim( $template ) ), true );
@@ -474,37 +474,37 @@  discard block
 block discarded – undo
474 474
 	 *
475 475
 	 * @param string $tz Timezone.
476 476
 	 */
477
-	public function set_timezone( $tz = '' ) {
477
+	public function set_timezone($tz = '') {
478 478
 
479
-		$site_tz = esc_attr( simcal_get_wp_timezone() );
479
+		$site_tz = esc_attr(simcal_get_wp_timezone());
480 480
 
481
-		if ( $this->feed === 'grouped-calendars' ) {
481
+		if ($this->feed === 'grouped-calendars') {
482 482
 			$this->timezone = $site_tz;
483 483
 			return;
484 484
 		}
485 485
 
486
-		if ( empty( $tz ) ) {
486
+		if (empty($tz)) {
487 487
 
488
-			$timezone_setting = get_post_meta( $this->id, '_feed_timezone_setting', true );
488
+			$timezone_setting = get_post_meta($this->id, '_feed_timezone_setting', true);
489 489
 
490
-			if ( 'use_site' == $timezone_setting ) {
490
+			if ('use_site' == $timezone_setting) {
491 491
 				$tz = $site_tz;
492
-			} elseif ( 'use_custom' == $timezone_setting ) {
493
-				$custom_timezone = esc_attr( get_post_meta( $this->id, '_feed_timezone', true ) );
492
+			} elseif ('use_custom' == $timezone_setting) {
493
+				$custom_timezone = esc_attr(get_post_meta($this->id, '_feed_timezone', true));
494 494
 				// One may be using a non standard timezone in GMT (UTC) offset format.
495
-				if ( ( strpos( $custom_timezone, 'UTC+' ) === 0 ) || ( strpos( $custom_timezone, 'UTC-' ) === 0 ) ) {
496
-					$tz = simcal_get_timezone_from_gmt_offset( substr( $custom_timezone, 3 ) );
495
+				if ((strpos($custom_timezone, 'UTC+') === 0) || (strpos($custom_timezone, 'UTC-') === 0)) {
496
+					$tz = simcal_get_timezone_from_gmt_offset(substr($custom_timezone, 3));
497 497
 				} else {
498
-					$tz = ! empty( $custom_timezone ) ? $custom_timezone : 'UTC';
498
+					$tz = ! empty($custom_timezone) ? $custom_timezone : 'UTC';
499 499
 				}
500 500
 			}
501 501
 
502
-			$this->timezone = empty( $tz ) ? 'UTC' : $tz;
502
+			$this->timezone = empty($tz) ? 'UTC' : $tz;
503 503
 			return;
504 504
 		}
505 505
 
506 506
 		$this->site_timezone = $site_tz;
507
-		$this->timezone = simcal_esc_timezone( $tz, $this->timezone );
507
+		$this->timezone = simcal_esc_timezone($tz, $this->timezone);
508 508
 	}
509 509
 
510 510
 	/**
@@ -514,20 +514,20 @@  discard block
 block discarded – undo
514 514
 	 *
515 515
 	 * @param string $format PHP datetime format.
516 516
 	 */
517
-	public function set_date_format( $format = '' ) {
517
+	public function set_date_format($format = '') {
518 518
 
519 519
 		$date_format_custom = $date_format_default = $format;
520 520
 
521
-		if ( empty( $date_format_custom ) ) {
521
+		if (empty($date_format_custom)) {
522 522
 
523
-			$date_format_option  = esc_attr( get_post_meta( $this->id, '_calendar_date_format_setting', true ) );
524
-			$date_format_default = esc_attr( get_option( 'date_format' ) );
523
+			$date_format_option  = esc_attr(get_post_meta($this->id, '_calendar_date_format_setting', true));
524
+			$date_format_default = esc_attr(get_option('date_format'));
525 525
 			$date_format_custom  = '';
526 526
 
527
-			if ( 'use_custom' == $date_format_option ) {
528
-				$date_format_custom = esc_attr( get_post_meta( $this->id, '_calendar_date_format', true ) );
529
-			} elseif ( 'use_custom_php' == $date_format_option ) {
530
-				$date_format_custom = esc_attr( get_post_meta( $this->id, '_calendar_date_format_php', true ) );
527
+			if ('use_custom' == $date_format_option) {
528
+				$date_format_custom = esc_attr(get_post_meta($this->id, '_calendar_date_format', true));
529
+			} elseif ('use_custom_php' == $date_format_option) {
530
+				$date_format_custom = esc_attr(get_post_meta($this->id, '_calendar_date_format_php', true));
531 531
 			}
532 532
 		}
533 533
 
@@ -541,20 +541,20 @@  discard block
 block discarded – undo
541 541
 	 *
542 542
 	 * @param string $format PHP datetime format.
543 543
 	 */
544
-	public function set_time_format( $format = '' ) {
544
+	public function set_time_format($format = '') {
545 545
 
546 546
 		$time_format_custom = $time_format_default = $format;
547 547
 
548
-		if ( empty( $time_format_custom ) ) {
548
+		if (empty($time_format_custom)) {
549 549
 
550
-			$time_format_option  = esc_attr( get_post_meta( $this->id, '_calendar_time_format_setting', true ) );
551
-			$time_format_default = esc_attr( get_option( 'time_format' ) );
550
+			$time_format_option  = esc_attr(get_post_meta($this->id, '_calendar_time_format_setting', true));
551
+			$time_format_default = esc_attr(get_option('time_format'));
552 552
 			$time_format_custom  = '';
553 553
 
554
-			if ( 'use_custom' == $time_format_option ) {
555
-				$time_format_custom = esc_attr( get_post_meta( $this->id, '_calendar_time_format', true ) );
556
-			} elseif ( 'use_custom_php' == $time_format_option ) {
557
-				$time_format_custom = esc_attr( get_post_meta( $this->id, '_calendar_time_format_php', true ) );
554
+			if ('use_custom' == $time_format_option) {
555
+				$time_format_custom = esc_attr(get_post_meta($this->id, '_calendar_time_format', true));
556
+			} elseif ('use_custom_php' == $time_format_option) {
557
+				$time_format_custom = esc_attr(get_post_meta($this->id, '_calendar_time_format_php', true));
558 558
 			}
559 559
 		}
560 560
 
@@ -568,13 +568,13 @@  discard block
 block discarded – undo
568 568
 	 *
569 569
 	 * @param string $separator A UTF8 character used as separator.
570 570
 	 */
571
-	public function set_datetime_separator( $separator = '' ) {
571
+	public function set_datetime_separator($separator = '') {
572 572
 
573
-		if ( empty( $separator ) ) {
574
-			$separator = get_post_meta( $this->id, '_calendar_datetime_separator', true );
573
+		if (empty($separator)) {
574
+			$separator = get_post_meta($this->id, '_calendar_datetime_separator', true);
575 575
 		}
576 576
 
577
-		$this->datetime_separator = esc_attr( $separator );
577
+		$this->datetime_separator = esc_attr($separator);
578 578
 	}
579 579
 
580 580
 	/**
@@ -584,18 +584,18 @@  discard block
 block discarded – undo
584 584
 	 *
585 585
 	 * @param int $weekday From 0 (Sunday) to 6 (Friday).
586 586
 	 */
587
-	public function set_start_of_week( $weekday = -1 ) {
587
+	public function set_start_of_week($weekday = -1) {
588 588
 
589
-		$week_starts = is_int( $weekday ) ? $weekday : -1;
589
+		$week_starts = is_int($weekday) ? $weekday : -1;
590 590
 
591
-		if ( $week_starts < 0 || $week_starts > 6 ) {
591
+		if ($week_starts < 0 || $week_starts > 6) {
592 592
 
593
-			$week_starts_setting = get_post_meta( $this->id, '_calendar_week_starts_on_setting', true );
594
-			$week_starts         = intval( get_option( 'start_of_week' ) );
593
+			$week_starts_setting = get_post_meta($this->id, '_calendar_week_starts_on_setting', true);
594
+			$week_starts         = intval(get_option('start_of_week'));
595 595
 
596
-			if ( 'use_custom' == $week_starts_setting ) {
597
-				$week_starts_on = get_post_meta( $this->id, '_calendar_week_starts_on', true );
598
-				$week_starts    = is_numeric( $week_starts_on ) ? intval( $week_starts_on ) : $week_starts;
596
+			if ('use_custom' == $week_starts_setting) {
597
+				$week_starts_on = get_post_meta($this->id, '_calendar_week_starts_on', true);
598
+				$week_starts    = is_numeric($week_starts_on) ? intval($week_starts_on) : $week_starts;
599 599
 			}
600 600
 		}
601 601
 
@@ -609,55 +609,55 @@  discard block
 block discarded – undo
609 609
 	 *
610 610
 	 * @param int $timestamp
611 611
 	 */
612
-	public function set_start( $timestamp = 0 ) {
612
+	public function set_start($timestamp = 0) {
613 613
 
614
-		if ( is_int( $timestamp ) && $timestamp !== 0 ) {
614
+		if (is_int($timestamp) && $timestamp !== 0) {
615 615
 			$this->start = $timestamp;
616 616
 			return;
617 617
 		}
618 618
 
619
-		$start_dt = Carbon::now( $this->timezone );
619
+		$start_dt = Carbon::now($this->timezone);
620 620
 
621
-		$calendar_begins = esc_attr( get_post_meta( $this->id, '_calendar_begins', true ) );
622
-		$nth = max( absint( get_post_meta( $this->id, '_calendar_begins_nth', true ) ), 1 );
621
+		$calendar_begins = esc_attr(get_post_meta($this->id, '_calendar_begins', true));
622
+		$nth = max(absint(get_post_meta($this->id, '_calendar_begins_nth', true)), 1);
623 623
 
624 624
 		// Start date/time is sometimes 1 hour too early, which puts in the previous month.
625 625
 		// Maybe due to daylight savings changes in different timezones?
626 626
 		// Adding 1 hour is hackish, but fixes this.
627 627
 
628
-		if ( 'today' == $calendar_begins ) {
629
-			$start_dt = Carbon::today( $this->timezone )->addHour();
630
-		} elseif ( 'days_before' == $calendar_begins ) {
631
-			$start_dt = Carbon::today( $this->timezone )->subDays( $nth )->addHour();
632
-		} elseif ( 'days_after' == $calendar_begins ) {
633
-			$start_dt = Carbon::today( $this->timezone )->addDays( $nth )->addHour();
634
-		} elseif ( 'this_week' == $calendar_begins ) {
635
-			$week = new Carbon( 'now', $this->timezone );
636
-			$week->setWeekStartsAt( $this->week_starts );
628
+		if ('today' == $calendar_begins) {
629
+			$start_dt = Carbon::today($this->timezone)->addHour();
630
+		} elseif ('days_before' == $calendar_begins) {
631
+			$start_dt = Carbon::today($this->timezone)->subDays($nth)->addHour();
632
+		} elseif ('days_after' == $calendar_begins) {
633
+			$start_dt = Carbon::today($this->timezone)->addDays($nth)->addHour();
634
+		} elseif ('this_week' == $calendar_begins) {
635
+			$week = new Carbon('now', $this->timezone);
636
+			$week->setWeekStartsAt($this->week_starts);
637 637
 			$start_dt = $week->startOfWeek()->addHour();
638
-		} elseif ( 'weeks_before' == $calendar_begins ) {
639
-			$week = new Carbon( 'now', $this->timezone );
640
-			$week->setWeekStartsAt( $this->week_starts );
641
-			$start_dt = $week->startOfWeek()->subWeeks( $nth )->addHour();
642
-		} elseif ( 'weeks_after' == $calendar_begins ) {
643
-			$week = new Carbon( 'now', $this->timezone );
644
-			$week->setWeekStartsAt( $this->week_starts );
645
-			$start_dt = $week->startOfWeek()->addWeeks( $nth )->addHour();
646
-		} elseif ( 'this_month' == $calendar_begins ) {
647
-			$start_dt = Carbon::today( $this->timezone )->startOfMonth()->addHour();
648
-		} elseif ( 'months_before' == $calendar_begins ) {
649
-			$start_dt = Carbon::today( $this->timezone )->subMonths( $nth )->startOfMonth()->addHour();
650
-		} elseif ( 'months_after' == $calendar_begins ) {
651
-			$start_dt = Carbon::today( $this->timezone )->addMonths( $nth )->startOfMonth()->addHour();
652
-		} elseif ( 'this_year' == $calendar_begins ) {
653
-			$start_dt = Carbon::today( $this->timezone )->startOfYear()->addHour();
654
-		} elseif ( 'years_before' == $calendar_begins ) {
655
-			$start_dt = Carbon::today( $this->timezone )->subYears( $nth )->startOfYear()->addHour();
656
-		} elseif ( 'years_after' == $calendar_begins ) {
657
-			$start_dt = Carbon::today( $this->timezone )->addYears( $nth )->startOfYear()->addHour();
658
-		} elseif ( 'custom_date' == $calendar_begins ) {
659
-			if ( $date = get_post_meta( $this->id, '_calendar_begins_custom_date', true ) ) {
660
-				$start_dt = Carbon::createFromFormat( 'Y-m-d', esc_attr( $date ), $this->timezone )->setTimezone( $this->timezone )->startOfDay()->addHour();
638
+		} elseif ('weeks_before' == $calendar_begins) {
639
+			$week = new Carbon('now', $this->timezone);
640
+			$week->setWeekStartsAt($this->week_starts);
641
+			$start_dt = $week->startOfWeek()->subWeeks($nth)->addHour();
642
+		} elseif ('weeks_after' == $calendar_begins) {
643
+			$week = new Carbon('now', $this->timezone);
644
+			$week->setWeekStartsAt($this->week_starts);
645
+			$start_dt = $week->startOfWeek()->addWeeks($nth)->addHour();
646
+		} elseif ('this_month' == $calendar_begins) {
647
+			$start_dt = Carbon::today($this->timezone)->startOfMonth()->addHour();
648
+		} elseif ('months_before' == $calendar_begins) {
649
+			$start_dt = Carbon::today($this->timezone)->subMonths($nth)->startOfMonth()->addHour();
650
+		} elseif ('months_after' == $calendar_begins) {
651
+			$start_dt = Carbon::today($this->timezone)->addMonths($nth)->startOfMonth()->addHour();
652
+		} elseif ('this_year' == $calendar_begins) {
653
+			$start_dt = Carbon::today($this->timezone)->startOfYear()->addHour();
654
+		} elseif ('years_before' == $calendar_begins) {
655
+			$start_dt = Carbon::today($this->timezone)->subYears($nth)->startOfYear()->addHour();
656
+		} elseif ('years_after' == $calendar_begins) {
657
+			$start_dt = Carbon::today($this->timezone)->addYears($nth)->startOfYear()->addHour();
658
+		} elseif ('custom_date' == $calendar_begins) {
659
+			if ($date = get_post_meta($this->id, '_calendar_begins_custom_date', true)) {
660
+				$start_dt = Carbon::createFromFormat('Y-m-d', esc_attr($date), $this->timezone)->setTimezone($this->timezone)->startOfDay()->addHour();
661 661
 			}
662 662
 		}
663 663
 
@@ -671,8 +671,8 @@  discard block
 block discarded – undo
671 671
 	 *
672 672
 	 * @param int $timestamp
673 673
 	 */
674
-	public function set_end( $timestamp = 0 ) {
675
-		$latest = is_int( $timestamp ) && $timestamp !== 0 ? $timestamp : $this->latest_event;
674
+	public function set_end($timestamp = 0) {
675
+		$latest = is_int($timestamp) && $timestamp !== 0 ? $timestamp : $this->latest_event;
676 676
 		$this->end = $latest > $this->start ? $latest : $this->start;
677 677
 	}
678 678
 
@@ -683,14 +683,14 @@  discard block
 block discarded – undo
683 683
 	 *
684 684
 	 * @param string|bool $static
685 685
 	 */
686
-	public function set_static( $static = '' ) {
686
+	public function set_static($static = '') {
687 687
 
688
-		if ( ! empty( $static ) && is_bool( $static ) ) {
688
+		if ( ! empty($static) && is_bool($static)) {
689 689
 			$this->static = $static;
690 690
 			return;
691 691
 		}
692 692
 
693
-		if ( 'yes' == get_post_meta( $this->id, '_calendar_is_static', true ) ) {
693
+		if ('yes' == get_post_meta($this->id, '_calendar_is_static', true)) {
694 694
 			$this->static = true;
695 695
 			return;
696 696
 		}
@@ -718,7 +718,7 @@  discard block
 block discarded – undo
718 718
 	 *
719 719
 	 * @return Calendar_View
720 720
 	 */
721
-	abstract public function get_view( $view = '' );
721
+	abstract public function get_view($view = '');
722 722
 
723 723
 	/**
724 724
 	 * Get event HTML parsed by template.
@@ -730,11 +730,11 @@  discard block
 block discarded – undo
730 730
 	 *
731 731
 	 * @return string
732 732
 	 */
733
-	public function get_event_html( Event $event, $template = '' ) {
734
-		$event_builder = new Event_Builder( $event, $this );
733
+	public function get_event_html(Event $event, $template = '') {
734
+		$event_builder = new Event_Builder($event, $this);
735 735
 		// Use the event template to parse tags; if empty, fallback to calendar post content.
736
-		$template = empty( $template ) ? ( empty( $event->template ) ? $this->events_template : $event->template ) : $template;
737
-		return $event_builder->parse_event_template_tags( $template );
736
+		$template = empty($template) ? (empty($event->template) ? $this->events_template : $event->template) : $template;
737
+		return $event_builder->parse_event_template_tags($template);
738 738
 	}
739 739
 
740 740
 	/**
@@ -746,7 +746,7 @@  discard block
 block discarded – undo
746 746
 	 *
747 747
 	 * @return string
748 748
 	 */
749
-	public function get_add_to_gcal_url( Event $event ) {
749
+	public function get_add_to_gcal_url(Event $event) {
750 750
 		$base_url = 'https://calendar.google.com/calendar/render';
751 751
 		// Was https://www.google.com/calendar/render
752 752
 
@@ -754,30 +754,30 @@  discard block
 block discarded – undo
754 754
 		// &dates=20160504T110000/20160504T170000
755 755
 		// No "Z"s tacked on to preserve source timezone.
756 756
 		// All day events remove time component, but need to add a full day to show up correctly.
757
-		$is_all_day     = ( true == $event->whole_day );
757
+		$is_all_day     = (true == $event->whole_day);
758 758
 		$gcal_dt_format = $is_all_day ? 'Ymd' : 'Ymd\THi00';
759
-		$gcal_begin_dt  = $event->start_dt->format( $gcal_dt_format );
759
+		$gcal_begin_dt  = $event->start_dt->format($gcal_dt_format);
760 760
 		$end_dt_raw     = $is_all_day ? $event->end_dt->addDay() : $event->end_dt;
761
-		$gcal_end_dt    = $end_dt_raw->format( $gcal_dt_format );
762
-		$gcal_dt_string = $gcal_begin_dt . '/' . $gcal_end_dt;
761
+		$gcal_end_dt    = $end_dt_raw->format($gcal_dt_format);
762
+		$gcal_dt_string = $gcal_begin_dt.'/'.$gcal_end_dt;
763 763
 
764 764
 		// "details" (description) should work even when blank.
765 765
 		// "location" (address) should work with an address, just a name or blank.
766 766
 		$params = array(
767 767
 			'action'   => 'TEMPLATE',
768
-			'text'     => urlencode( strip_tags( $event->title ) ),
768
+			'text'     => urlencode(strip_tags($event->title)),
769 769
 			'dates'    => $gcal_dt_string,
770
-			'details'  => urlencode( $event->description ),
771
-			'location' => urlencode( $event->start_location['address'] ),
770
+			'details'  => urlencode($event->description),
771
+			'location' => urlencode($event->start_location['address']),
772 772
 			'trp'      => 'false',
773 773
 		);
774 774
 
775 775
 		// "ctz" (timezone) arg should be included unless all-day OR 'UTC'.
776
-		if ( ! $is_all_day && ( 'UTC' !== $event->timezone ) ) {
777
-			$params['ctz'] = urlencode( $event->timezone );
776
+		if ( ! $is_all_day && ('UTC' !== $event->timezone)) {
777
+			$params['ctz'] = urlencode($event->timezone);
778 778
 		}
779 779
 
780
-		$url = add_query_arg( $params, $base_url );
780
+		$url = add_query_arg($params, $base_url);
781 781
 
782 782
 		return $url;
783 783
 	}
@@ -789,56 +789,56 @@  discard block
 block discarded – undo
789 789
 	 *
790 790
 	 * @param string $view The calendar view to display.
791 791
 	 */
792
-	public function html( $view = '' ) {
792
+	public function html($view = '') {
793 793
 
794
-		$view = empty( $view ) ? $this->view : $this->get_view( $view );
794
+		$view = empty($view) ? $this->view : $this->get_view($view);
795 795
 
796
-		if ( $view instanceof Calendar_View ) {
796
+		if ($view instanceof Calendar_View) {
797 797
 
798
-			if ( ! empty( $this->errors ) ) {
798
+			if ( ! empty($this->errors)) {
799 799
 
800
-				if ( current_user_can( 'manage_options' )  ) {
800
+				if (current_user_can('manage_options')) {
801 801
 					echo '<pre><code>';
802
-					foreach ( $this->errors as $error ) { echo $error; }
802
+					foreach ($this->errors as $error) { echo $error; }
803 803
 					echo '</code></pre>';
804 804
 				}
805 805
 
806 806
 			} else {
807 807
 
808 808
 				// Get a CSS class from the class name of the calendar view (minus namespace part).
809
-				$view_name  = implode( '-', array_map( 'lcfirst', explode( '_', strtolower( get_class( $view ) ) ) ) );
810
-				$view_class = substr( $view_name, strrpos( $view_name, '\\' ) + 1 );
809
+				$view_name  = implode('-', array_map('lcfirst', explode('_', strtolower(get_class($view)))));
810
+				$view_class = substr($view_name, strrpos($view_name, '\\') + 1);
811 811
 
812
-				$calendar_class = trim( implode( ' simcal-', apply_filters( 'simcal_calendar_class', array(
812
+				$calendar_class = trim(implode(' simcal-', apply_filters('simcal_calendar_class', array(
813 813
 					'simcal-calendar',
814 814
 					$this->type,
815 815
 					$view_class,
816
-				), $this->id ) ) );
817
-
818
-				echo '<div class="' . $calendar_class . '" '
819
-									. 'data-calendar-id="'    . $this->id . '" '
820
-									. 'data-timezone="'       . $this->timezone . '" '
821
-									. 'data-offset="'         . $this->offset . '" '
822
-									. 'data-week-start="'     . $this->week_starts . '" '
823
-									. 'data-calendar-start="' . $this->start .'" '
824
-									. 'data-calendar-end="'   . $this->end . '" '
825
-									. 'data-events-first="'   . $this->earliest_event .'" '
826
-									. 'data-events-last="'    . $this->latest_event . '"'
816
+				), $this->id)));
817
+
818
+				echo '<div class="'.$calendar_class.'" '
819
+									. 'data-calendar-id="'.$this->id.'" '
820
+									. 'data-timezone="'.$this->timezone.'" '
821
+									. 'data-offset="'.$this->offset.'" '
822
+									. 'data-week-start="'.$this->week_starts.'" '
823
+									. 'data-calendar-start="'.$this->start.'" '
824
+									. 'data-calendar-end="'.$this->end.'" '
825
+									. 'data-events-first="'.$this->earliest_event.'" '
826
+									. 'data-events-last="'.$this->latest_event.'"'
827 827
 									. '>';
828 828
 
829
-				do_action( 'simcal_calendar_html_before', $this->id );
829
+				do_action('simcal_calendar_html_before', $this->id);
830 830
 
831 831
 				$view->html();
832 832
 
833
-				do_action( 'simcal_calendar_html_after', $this->id );
833
+				do_action('simcal_calendar_html_after', $this->id);
834 834
 
835 835
 				//$settings = get_option( 'simple-calendar_settings_calendars' );
836
-				$poweredby = get_post_meta( $this->id, '_poweredby', true );
836
+				$poweredby = get_post_meta($this->id, '_poweredby', true);
837 837
 
838
-				if ( 'yes' == $poweredby ) {
838
+				if ('yes' == $poweredby) {
839 839
 					$align = is_rtl() ? 'left' : 'right';
840
-					echo '<small class="simcal-powered simcal-align-' . $align .'">' .
841
-					     sprintf( __( 'Powered by <a href="%s" target="_blank">Simple Calendar</a>', 'google-calendar-events' ), simcal_get_url( 'home' ) ) .
840
+					echo '<small class="simcal-powered simcal-align-'.$align.'">'.
841
+					     sprintf(__('Powered by <a href="%s" target="_blank">Simple Calendar</a>', 'google-calendar-events'), simcal_get_url('home')).
842 842
 					     '</small>';
843 843
 				}
844 844
 
Please login to merge, or discard this patch.
includes/feeds/google.php 2 patches
Indentation   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -108,7 +108,7 @@
 block discarded – undo
108 108
 			// Google query args.
109 109
 			$this->google_calendar_id       = $this->esc_google_calendar_id( get_post_meta( $this->post_id, '_google_calendar_id', true ) );
110 110
 			$this->google_events_recurring  = esc_attr( get_post_meta( $this->post_id, '_google_events_recurring', true ) );
111
-            // note that google_search_query is used in a URL param and not as HTML output, so don't use esc_attr() on it
111
+			// note that google_search_query is used in a URL param and not as HTML output, so don't use esc_attr() on it
112 112
 			$this->google_search_query      = get_post_meta( $this->post_id, '_google_events_search_query', true );
113 113
 			$this->google_max_results       = max( absint( get_post_meta( $this->post_id, '_google_events_max_results', true ) ), 1 );
114 114
 
Please login to merge, or discard this patch.
Spacing   +100 added lines, -100 removed lines patch added patch discarded remove patch
@@ -12,7 +12,7 @@  discard block
 block discarded – undo
12 12
 use SimpleCalendar\Abstracts\Feed;
13 13
 use SimpleCalendar\Feeds\Admin\Google_Admin as Admin;
14 14
 
15
-if ( ! defined( 'ABSPATH' ) ) {
15
+if ( ! defined('ABSPATH')) {
16 16
 	exit;
17 17
 }
18 18
 
@@ -90,35 +90,35 @@  discard block
 block discarded – undo
90 90
 	 * @param string|Calendar $calendar
91 91
 	 * @param bool $load_admin
92 92
 	 */
93
-	public function __construct( $calendar = '', $load_admin = true ) {
93
+	public function __construct($calendar = '', $load_admin = true) {
94 94
 
95
-		parent::__construct( $calendar );
95
+		parent::__construct($calendar);
96 96
 
97 97
 		$this->type = 'google';
98
-		$this->name = __( 'Google Calendar', 'google-calendar-events' );
98
+		$this->name = __('Google Calendar', 'google-calendar-events');
99 99
 
100 100
 		// Google client config.
101
-		$settings = get_option( 'simple-calendar_settings_feeds' );
102
-		$this->google_api_key = isset( $settings['google']['api_key'] ) ? esc_attr( $settings['google']['api_key'] ) : '';
103
-		$this->google_client_scopes = array( \Google_Service_Calendar::CALENDAR_READONLY );
101
+		$settings = get_option('simple-calendar_settings_feeds');
102
+		$this->google_api_key = isset($settings['google']['api_key']) ? esc_attr($settings['google']['api_key']) : '';
103
+		$this->google_client_scopes = array(\Google_Service_Calendar::CALENDAR_READONLY);
104 104
 		$this->google_client = $this->get_client();
105 105
 
106
-		if ( $this->post_id > 0 ) {
106
+		if ($this->post_id > 0) {
107 107
 
108 108
 			// Google query args.
109
-			$this->google_calendar_id       = $this->esc_google_calendar_id( get_post_meta( $this->post_id, '_google_calendar_id', true ) );
110
-			$this->google_events_recurring  = esc_attr( get_post_meta( $this->post_id, '_google_events_recurring', true ) );
109
+			$this->google_calendar_id       = $this->esc_google_calendar_id(get_post_meta($this->post_id, '_google_calendar_id', true));
110
+			$this->google_events_recurring  = esc_attr(get_post_meta($this->post_id, '_google_events_recurring', true));
111 111
             // note that google_search_query is used in a URL param and not as HTML output, so don't use esc_attr() on it
112
-			$this->google_search_query      = get_post_meta( $this->post_id, '_google_events_search_query', true );
113
-			$this->google_max_results       = max( absint( get_post_meta( $this->post_id, '_google_events_max_results', true ) ), 1 );
112
+			$this->google_search_query      = get_post_meta($this->post_id, '_google_events_search_query', true);
113
+			$this->google_max_results       = max(absint(get_post_meta($this->post_id, '_google_events_max_results', true)), 1);
114 114
 
115
-			if ( ! is_admin() || defined( 'DOING_AJAX' ) ) {
116
-				$this->events = ! empty( $this->google_api_key ) ? $this->get_events() : array();
115
+			if ( ! is_admin() || defined('DOING_AJAX')) {
116
+				$this->events = ! empty($this->google_api_key) ? $this->get_events() : array();
117 117
 			}
118 118
 		}
119 119
 
120
-		if ( is_admin() && $load_admin ) {
121
-			$admin = new Admin( $this, $this->google_api_key, $this->google_calendar_id );
120
+		if (is_admin() && $load_admin) {
121
+			$admin = new Admin($this, $this->google_api_key, $this->google_calendar_id);
122 122
 			$this->settings = $admin->settings_fields();
123 123
 		}
124 124
 	}
@@ -132,8 +132,8 @@  discard block
 block discarded – undo
132 132
 	 *
133 133
 	 * @return string
134 134
 	 */
135
-	public function esc_google_calendar_id( $id ) {
136
-		return base64_decode( $id );
135
+	public function esc_google_calendar_id($id) {
136
+		return base64_decode($id);
137 137
 	}
138 138
 
139 139
 	/**
@@ -147,85 +147,85 @@  discard block
 block discarded – undo
147 147
 	 */
148 148
 	public function get_events() {
149 149
 
150
-		$calendar = get_transient( '_simple-calendar_feed_id_' . strval( $this->post_id ) . '_' . $this->type );
150
+		$calendar = get_transient('_simple-calendar_feed_id_'.strval($this->post_id).'_'.$this->type);
151 151
 
152
-		if ( empty( $calendar ) && ! empty( $this->google_calendar_id ) ) {
152
+		if (empty($calendar) && ! empty($this->google_calendar_id)) {
153 153
 
154 154
 			$error = '';
155 155
 
156 156
 			try {
157
-				$response = $this->make_request( $this->google_calendar_id );
158
-			} catch ( \Exception $e ) {
157
+				$response = $this->make_request($this->google_calendar_id);
158
+			} catch (\Exception $e) {
159 159
 				$error .= $e->getMessage();
160 160
 			}
161 161
 
162
-			if ( empty( $error ) && isset( $response['events'] ) && isset( $response['timezone'] ) ) {
162
+			if (empty($error) && isset($response['events']) && isset($response['timezone'])) {
163 163
 
164
-				$calendar = array_merge( $response, array( 'events' => array() ) );
164
+				$calendar = array_merge($response, array('events' => array()));
165 165
 
166 166
 				// If no timezone has been set, use calendar feed.
167
-				if ( 'use_calendar' == $this->timezone_setting ) {
167
+				if ('use_calendar' == $this->timezone_setting) {
168 168
 					$this->timezone = $calendar['timezone'];
169 169
 				}
170 170
 
171
-				$source = isset( $response['title'] ) ? sanitize_text_field( $response['title'] ) : '';
171
+				$source = isset($response['title']) ? sanitize_text_field($response['title']) : '';
172 172
 
173
-				if ( ! empty( $response['events'] ) && is_array( $response['events'] ) ) {
174
-					foreach ( $response['events'] as $event ) {
175
-						if ( $event instanceof \Google_Service_Calendar_Event ) {
173
+				if ( ! empty($response['events']) && is_array($response['events'])) {
174
+					foreach ($response['events'] as $event) {
175
+						if ($event instanceof \Google_Service_Calendar_Event) {
176 176
 
177 177
 							// Visibility and status.
178 178
 							// Public calendars may have private events which can't be properly accessed by simple api key method.
179 179
 							// Also want to skip cancelled events (single occurences deleted from repeating events)
180 180
 							$visibility = $event->getVisibility();
181 181
 							$status = $event->getStatus();
182
-							if ( $this->type == 'google' && ( $visibility == 'private' || $visibility == 'confidential' || $status == 'cancelled' ) ) {
182
+							if ($this->type == 'google' && ($visibility == 'private' || $visibility == 'confidential' || $status == 'cancelled')) {
183 183
 								continue;
184 184
 							}
185 185
 
186 186
 							// Event title & description.
187
-							$title = strip_tags( $event->getSummary() );
188
-							$title = sanitize_text_field( iconv( mb_detect_encoding( $title, mb_detect_order(), true ), 'UTF-8', $title ) );
189
-							$description = wp_kses_post( iconv( mb_detect_encoding( $event->getDescription(), mb_detect_order(), true ), 'UTF-8', $event->getDescription() ) );
187
+							$title = strip_tags($event->getSummary());
188
+							$title = sanitize_text_field(iconv(mb_detect_encoding($title, mb_detect_order(), true), 'UTF-8', $title));
189
+							$description = wp_kses_post(iconv(mb_detect_encoding($event->getDescription(), mb_detect_order(), true), 'UTF-8', $event->getDescription()));
190 190
 
191 191
 							$whole_day = false;
192 192
 
193 193
 							// Event start properties.
194
-							if( 'use_calendar' == $this->timezone_setting ) {
194
+							if ('use_calendar' == $this->timezone_setting) {
195 195
 								$start_timezone = ! $event->getStart()->timeZone ? $calendar['timezone'] : $event->getStart()->timeZone;
196 196
 							} else {
197 197
 								$start_timezone = $this->timezone;
198 198
 							}
199 199
 
200
-							if ( is_null( $event->getStart()->dateTime ) ) {
200
+							if (is_null($event->getStart()->dateTime)) {
201 201
 								// Whole day event.
202
-								$date = Carbon::parse( $event->getStart()->date );
203
-								$google_start = Carbon::createFromDate( $date->year, $date->month, $date->day, $start_timezone )->startOfDay()->addSeconds( 59 );
204
-								$google_start_utc = Carbon::createFromDate( $date->year, $date->month, $date->day, 'UTC' )->startOfDay()->addSeconds( 59 );
202
+								$date = Carbon::parse($event->getStart()->date);
203
+								$google_start = Carbon::createFromDate($date->year, $date->month, $date->day, $start_timezone)->startOfDay()->addSeconds(59);
204
+								$google_start_utc = Carbon::createFromDate($date->year, $date->month, $date->day, 'UTC')->startOfDay()->addSeconds(59);
205 205
 								$whole_day = true;
206 206
 							} else {
207
-								$date = Carbon::parse( $event->getStart()->dateTime );
207
+								$date = Carbon::parse($event->getStart()->dateTime);
208 208
 
209 209
 								// Check if there is an event level timezone
210
-								if( $event->getStart()->timeZone && 'use_calendar' == $this->timezone_setting ) {
210
+								if ($event->getStart()->timeZone && 'use_calendar' == $this->timezone_setting) {
211 211
 
212 212
 									// Get the two different times with the separate timezones so we can check the offsets next
213
-									$google_start1 = Carbon::create( $date->year, $date->month, $date->day, $date->hour, $date->minute, $date->second, $date->timezone );
214
-									$google_start2 = Carbon::create( $date->year, $date->month, $date->day, $date->hour, $date->minute, $date->second, $event->getStart()->timeZone );
213
+									$google_start1 = Carbon::create($date->year, $date->month, $date->day, $date->hour, $date->minute, $date->second, $date->timezone);
214
+									$google_start2 = Carbon::create($date->year, $date->month, $date->day, $date->hour, $date->minute, $date->second, $event->getStart()->timeZone);
215 215
 
216 216
 									// Get the offset in hours
217 217
 									$offset1 = $google_start1->offsetHours;
218 218
 									$offset2 = $google_start2->offsetHours;
219 219
 
220 220
 									// Get the difference between the two timezones
221
-									$total_offset = ( $offset2 - $offset1 );
221
+									$total_offset = ($offset2 - $offset1);
222 222
 
223 223
 									// Add the hours offset to the date hour
224 224
 									$date->hour += $total_offset;
225 225
 								}
226 226
 
227
-								$google_start = Carbon::create( $date->year, $date->month, $date->day, $date->hour, $date->minute, $date->second, $start_timezone );
228
-								$google_start_utc = Carbon::create( $date->year, $date->month, $date->day, $date->hour, $date->minute, $date->second, 'UTC' );
227
+								$google_start = Carbon::create($date->year, $date->month, $date->day, $date->hour, $date->minute, $date->second, $start_timezone);
228
+								$google_start_utc = Carbon::create($date->year, $date->month, $date->day, $date->hour, $date->minute, $date->second, 'UTC');
229 229
 
230 230
 								$this->timezone = $start_timezone;
231 231
 							}
@@ -236,43 +236,43 @@  discard block
 block discarded – undo
236 236
 
237 237
 							$end = $end_utc = $end_timezone = '';
238 238
 							$span = 0;
239
-							if ( false == $event->getEndTimeUnspecified() ) {
239
+							if (false == $event->getEndTimeUnspecified()) {
240 240
 
241 241
 								// Event end properties.
242
-								if( 'use_calendar' == $this->timezone_setting ) {
242
+								if ('use_calendar' == $this->timezone_setting) {
243 243
 									$end_timezone = ! $event->getEnd()->timeZone ? $calendar['timezone'] : $event->getEnd()->timeZone;
244 244
 								} else {
245 245
 									$end_timezone = $this->timezone;
246 246
 								}
247 247
 
248
-								if ( is_null( $event->getEnd()->dateTime ) ) {
248
+								if (is_null($event->getEnd()->dateTime)) {
249 249
 									// Whole day event.
250
-									$date           = Carbon::parse( $event->getEnd()->date );
251
-									$google_end     = Carbon::createFromDate( $date->year, $date->month, $date->day, $end_timezone )->startOfDay()->subSeconds( 59 );
252
-									$google_end_utc = Carbon::createFromDate( $date->year, $date->month, $date->day, 'UTC' )->startOfDay()->subSeconds( 59 );
250
+									$date           = Carbon::parse($event->getEnd()->date);
251
+									$google_end     = Carbon::createFromDate($date->year, $date->month, $date->day, $end_timezone)->startOfDay()->subSeconds(59);
252
+									$google_end_utc = Carbon::createFromDate($date->year, $date->month, $date->day, 'UTC')->startOfDay()->subSeconds(59);
253 253
 								} else {
254
-									$date = Carbon::parse( $event->getEnd()->dateTime );
254
+									$date = Carbon::parse($event->getEnd()->dateTime);
255 255
 
256 256
 									// Check if there is an event level timezone
257
-									if( $event->getEnd()->timeZone && 'use_calendar' == $this->timezone_setting ) {
257
+									if ($event->getEnd()->timeZone && 'use_calendar' == $this->timezone_setting) {
258 258
 
259 259
 										// Get the two different times with the separate timezones so we can check the offsets next
260
-										$google_start1 = Carbon::create( $date->year, $date->month, $date->day, $date->hour, $date->minute, $date->second, $date->timezone );
261
-										$google_start2 = Carbon::create( $date->year, $date->month, $date->day, $date->hour, $date->minute, $date->second, $event->getEnd()->timeZone );
260
+										$google_start1 = Carbon::create($date->year, $date->month, $date->day, $date->hour, $date->minute, $date->second, $date->timezone);
261
+										$google_start2 = Carbon::create($date->year, $date->month, $date->day, $date->hour, $date->minute, $date->second, $event->getEnd()->timeZone);
262 262
 
263 263
 										// Get the offset in hours
264 264
 										$offset1 = $google_start1->offsetHours;
265 265
 										$offset2 = $google_start2->offsetHours;
266 266
 
267 267
 										// Get the difference between the two timezones
268
-										$total_offset = ( $offset2 - $offset1 );
268
+										$total_offset = ($offset2 - $offset1);
269 269
 
270 270
 										// Add the hours offset to the date hour
271 271
 										$date->hour += $total_offset;
272 272
 									}
273 273
 
274
-									$google_end     = Carbon::create( $date->year, $date->month, $date->day, $date->hour, $date->minute, $date->second, $end_timezone );
275
-									$google_end_utc = Carbon::create( $date->year, $date->month, $date->day, $date->hour, $date->minute, $date->second, 'UTC' );
274
+									$google_end     = Carbon::create($date->year, $date->month, $date->day, $date->hour, $date->minute, $date->second, $end_timezone);
275
+									$google_end_utc = Carbon::create($date->year, $date->month, $date->day, $date->hour, $date->minute, $date->second, 'UTC');
276 276
 								}
277 277
 								// End.
278 278
 								$end = $google_end->getTimestamp();
@@ -280,10 +280,10 @@  discard block
 block discarded – undo
280 280
 								$end_utc = $google_end_utc->getTimestamp();
281 281
 
282 282
 								// Count multiple days.
283
-								$span = $google_start->diffInDays( $google_end );
283
+								$span = $google_start->diffInDays($google_end);
284 284
 
285
-								if ( $span == 0 ) {
286
-									if ( ( $google_start->toDateString() !== $google_end->toDateString() ) && $google_end->toTimeString() != '00:00:00' ) {
285
+								if ($span == 0) {
286
+									if (($google_start->toDateString() !== $google_end->toDateString()) && $google_end->toTimeString() != '00:00:00') {
287 287
 										$span = 1;
288 288
 									}
289 289
 								}
@@ -298,19 +298,19 @@  discard block
 block discarded – undo
298 298
 							// Recurring event.
299 299
 							$recurrence = $event->getRecurrence();
300 300
 							$recurring_id = $event->getRecurringEventId();
301
-							if ( ! $recurrence && $recurring_id ) {
301
+							if ( ! $recurrence && $recurring_id) {
302 302
 								$recurrence = true;
303 303
 							}
304 304
 
305 305
 							// Event link.
306
-							if ( 'use_calendar' == $this->timezone_setting ) {
307
-								$link = add_query_arg( array( 'ctz' => $this->timezone ), $event->getHtmlLink() );
306
+							if ('use_calendar' == $this->timezone_setting) {
307
+								$link = add_query_arg(array('ctz' => $this->timezone), $event->getHtmlLink());
308 308
 							} else {
309 309
 								$link = $event->getHtmlLink();
310 310
 							}
311 311
 
312 312
 							// Build the event.
313
-							$calendar['events'][ intval( $start ) ][] = array(
313
+							$calendar['events'][intval($start)][] = array(
314 314
 								'type'           => 'google-calendar',
315 315
 								'source'         => $source,
316 316
 								'title'          => $title,
@@ -338,24 +338,24 @@  discard block
 block discarded – undo
338 338
 						}
339 339
 					}
340 340
 
341
-					if ( ! empty( $calendar['events'] ) ) {
341
+					if ( ! empty($calendar['events'])) {
342 342
 
343
-						ksort( $calendar['events'], SORT_NUMERIC );
343
+						ksort($calendar['events'], SORT_NUMERIC);
344 344
 
345 345
 						set_transient(
346
-							'_simple-calendar_feed_id_' . strval( $this->post_id ) . '_' . $this->type,
346
+							'_simple-calendar_feed_id_'.strval($this->post_id).'_'.$this->type,
347 347
 							$calendar,
348
-							max( absint( $this->cache ), 1 ) // Since a value of 0 means forever we set the minimum here to 1 if the user has set it to be 0
348
+							max(absint($this->cache), 1) // Since a value of 0 means forever we set the minimum here to 1 if the user has set it to be 0
349 349
 						);
350 350
 					}
351 351
 				}
352 352
 
353 353
 			} else {
354 354
 
355
-				$message  = __( 'While trying to retrieve events, Google returned an error:', 'google-calendar-events' );
356
-				$message .= '<br><br>' . $error . '<br><br>';
357
-				$message .= __( 'Please ensure that both your Google Calendar ID and API Key are valid and that the Google Calendar you want to display is public.', 'google-calendar-events' ) . '<br><br>';
358
-				$message .= __( 'Only you can see this notice.', 'google-calendar-events' );
355
+				$message  = __('While trying to retrieve events, Google returned an error:', 'google-calendar-events');
356
+				$message .= '<br><br>'.$error.'<br><br>';
357
+				$message .= __('Please ensure that both your Google Calendar ID and API Key are valid and that the Google Calendar you want to display is public.', 'google-calendar-events').'<br><br>';
358
+				$message .= __('Only you can see this notice.', 'google-calendar-events');
359 359
 
360 360
 				return $message;
361 361
 			}
@@ -363,11 +363,11 @@  discard block
 block discarded – undo
363 363
 		}
364 364
 
365 365
 		// If no timezone has been set, use calendar feed.
366
-		if ( 'use_calendar' == $this->timezone_setting && isset( $calendar['timezone'] ) ) {
366
+		if ('use_calendar' == $this->timezone_setting && isset($calendar['timezone'])) {
367 367
 			$this->timezone = $calendar['timezone'];
368 368
 		}
369 369
 
370
-		return isset( $calendar['events'] ) ? $calendar['events'] : array();
370
+		return isset($calendar['events']) ? $calendar['events'] : array();
371 371
 	}
372 372
 
373 373
 	/**
@@ -383,67 +383,67 @@  discard block
 block discarded – undo
383 383
 	 *
384 384
 	 * @throws \Exception On request failure will throw an exception from Google.
385 385
 	 */
386
-	public function make_request( $id = '', $time_min = 0, $time_max = 0 ) {
386
+	public function make_request($id = '', $time_min = 0, $time_max = 0) {
387 387
 
388 388
 		$calendar = array();
389 389
 		$google = $this->get_service();
390 390
 
391
-		if ( ! is_null( $google ) && ! empty( $id ) ) {
391
+		if ( ! is_null($google) && ! empty($id)) {
392 392
 
393 393
 			// Build the request args.
394 394
 			$args = array();
395 395
 
396 396
 			// Expand recurring events.
397
-			if ( $this->google_events_recurring == 'show' ) {
397
+			if ($this->google_events_recurring == 'show') {
398 398
 				$args['singleEvents'] = true;
399 399
 			}
400 400
 
401 401
 			// Query events using search terms.
402
-			if ( ! empty( $this->google_search_query ) ) {
403
-				$args['q'] = rawurlencode( $this->google_search_query );
402
+			if ( ! empty($this->google_search_query)) {
403
+				$args['q'] = rawurlencode($this->google_search_query);
404 404
 			}
405 405
 
406 406
 			// Max results to query.
407
-			$args['maxResults'] = strval( min( absint( $this->google_max_results ), 2500 ) );
407
+			$args['maxResults'] = strval(min(absint($this->google_max_results), 2500));
408 408
 
409 409
 			// Specify a timezone.
410 410
 			$timezone = '';
411
-			if ( 'use_calendar' != get_post_meta( $this->post_id, '_feed_timezone_setting', true ) ) {
411
+			if ('use_calendar' != get_post_meta($this->post_id, '_feed_timezone_setting', true)) {
412 412
 				$args['timeZone'] = $timezone = $this->timezone;
413 413
 			}
414 414
 
415 415
 			// Lower bound (inclusive) for an event's end time to filter by.
416
-			$earliest_event = intval( $this->time_min );
417
-			if ( $earliest_event > 0 ) {
416
+			$earliest_event = intval($this->time_min);
417
+			if ($earliest_event > 0) {
418 418
 				$timeMin = Carbon::now();
419
-				if ( ! empty( $timezone ) ) {
420
-					$timeMin->setTimezone( $timezone );
419
+				if ( ! empty($timezone)) {
420
+					$timeMin->setTimezone($timezone);
421 421
 				}
422
-				$timeMin->setTimestamp( $earliest_event );
422
+				$timeMin->setTimestamp($earliest_event);
423 423
 				$args['timeMin'] = $timeMin->toRfc3339String();
424 424
 			}
425 425
 
426 426
 			// Upper bound (exclusive) for an event's start time to filter by.
427
-			$latest_event = intval( $this->time_max );
428
-			if ( $latest_event > 0 ) {
427
+			$latest_event = intval($this->time_max);
428
+			if ($latest_event > 0) {
429 429
 				$timeMax = Carbon::now();
430
-				if ( ! empty( $timezone ) ) {
431
-					$timeMax->setTimezone( $timezone );
430
+				if ( ! empty($timezone)) {
431
+					$timeMax->setTimezone($timezone);
432 432
 				}
433
-				$timeMax->setTimestamp( $latest_event );
433
+				$timeMax->setTimestamp($latest_event);
434 434
 				$args['timeMax'] = $timeMax->toRfc3339String();
435 435
 			}
436 436
 
437 437
 			// Query events in calendar.
438
-			$response = $google->events->listEvents( $id, $args );
438
+			$response = $google->events->listEvents($id, $args);
439 439
 
440
-			if ( $response instanceof \Google_Service_Calendar_Events ) {
440
+			if ($response instanceof \Google_Service_Calendar_Events) {
441 441
 				$calendar = array(
442 442
 					'id'            => $id,
443 443
 					'title'         => $response->getSummary(),
444 444
 					'description'   => $response->getDescription(),
445 445
 					'timezone'      => $response->getTimeZone(),
446
-					'url'           => esc_url( '//www.google.com/calendar/embed?src=' . $id ),
446
+					'url'           => esc_url('//www.google.com/calendar/embed?src='.$id),
447 447
 					'events'        => $response->getItems(),
448 448
 				);
449 449
 			}
@@ -463,10 +463,10 @@  discard block
 block discarded – undo
463 463
 	private function get_client() {
464 464
 
465 465
 		$client = new \Google_Client();
466
-		$client->setApplicationName( 'Simple Calendar' );
467
-		$client->setScopes( $this->google_client_scopes );
468
-		$client->setDeveloperKey( $this->google_api_key );
469
-		$client->setAccessType( 'online' );
466
+		$client->setApplicationName('Simple Calendar');
467
+		$client->setScopes($this->google_client_scopes);
468
+		$client->setDeveloperKey($this->google_api_key);
469
+		$client->setAccessType('online');
470 470
 
471 471
 		return $client;
472 472
 	}
@@ -480,7 +480,7 @@  discard block
 block discarded – undo
480 480
 	 * @return null|\Google_Service_Calendar
481 481
 	 */
482 482
 	protected function get_service() {
483
-		return $this->google_client instanceof \Google_Client ? new \Google_Service_Calendar( $this->google_client ) : null;
483
+		return $this->google_client instanceof \Google_Client ? new \Google_Service_Calendar($this->google_client) : null;
484 484
 	}
485 485
 
486 486
 }
Please login to merge, or discard this patch.
includes/functions/shared.php 2 patches
Spacing   +107 added lines, -107 removed lines patch added patch discarded remove patch
@@ -7,7 +7,7 @@  discard block
 block discarded – undo
7 7
  * @package SimpleCalendar/Functions
8 8
  */
9 9
 
10
-if ( ! defined( 'ABSPATH' ) ) {
10
+if ( ! defined('ABSPATH')) {
11 11
 	exit;
12 12
 }
13 13
 
@@ -20,17 +20,17 @@  discard block
 block discarded – undo
20 20
  */
21 21
 function is_simple_calendar() {
22 22
 
23
-	if ( is_singular() ) {
23
+	if (is_singular()) {
24 24
 
25 25
 		global $post, $post_type;
26 26
 
27
-		if ( 'calendar' == $post_type ) {
27
+		if ('calendar' == $post_type) {
28 28
 			return true;
29 29
 		} else {
30
-			if ( false !== get_post_meta( $post->ID, '_simcal_attach_calendar_id', true ) ) {
30
+			if (false !== get_post_meta($post->ID, '_simcal_attach_calendar_id', true)) {
31 31
 				return true;
32 32
 			}
33
-			if ( has_shortcode( $post->post_content, 'calendar' ) ) {
33
+			if (has_shortcode($post->post_content, 'calendar')) {
34 34
 				return true;
35 35
 			}
36 36
 		}
@@ -46,8 +46,8 @@  discard block
 block discarded – undo
46 46
  *
47 47
  * @return string
48 48
  */
49
-function simcal_get_url( $url ) {
50
-	return \SimpleCalendar\plugin()->get_url( $url );
49
+function simcal_get_url($url) {
50
+	return \SimpleCalendar\plugin()->get_url($url);
51 51
 }
52 52
 
53 53
 /**
@@ -71,9 +71,9 @@  discard block
 block discarded – undo
71 71
  *
72 72
  * @return null|\SimpleCalendar\Abstracts\Feed
73 73
  */
74
-function simcal_get_feed( $object ) {
74
+function simcal_get_feed($object) {
75 75
 	$objects = \SimpleCalendar\plugin()->objects;
76
-	return $objects instanceof \SimpleCalendar\Objects ? $objects->get_feed( $object ) : null;
76
+	return $objects instanceof \SimpleCalendar\Objects ? $objects->get_feed($object) : null;
77 77
 }
78 78
 
79 79
 /**
@@ -97,9 +97,9 @@  discard block
 block discarded – undo
97 97
  *
98 98
  * @return null|\SimpleCalendar\Abstracts\Calendar
99 99
  */
100
-function simcal_get_calendar( $object ) {
100
+function simcal_get_calendar($object) {
101 101
 	$objects = \SimpleCalendar\plugin()->objects;
102
-	return $objects instanceof \SimpleCalendar\Objects ? $objects->get_calendar( $object ) : null;
102
+	return $objects instanceof \SimpleCalendar\Objects ? $objects->get_calendar($object) : null;
103 103
 }
104 104
 
105 105
 /**
@@ -112,9 +112,9 @@  discard block
 block discarded – undo
112 112
  *
113 113
  * @return mixed
114 114
  */
115
-function simcal_get_calendar_view( $id = 0, $name = '' ) {
115
+function simcal_get_calendar_view($id = 0, $name = '') {
116 116
 	$objects = \SimpleCalendar\plugin()->objects;
117
-	return $objects instanceof \SimpleCalendar\Objects ? $objects->get_calendar_view( $id, $name ) : false;
117
+	return $objects instanceof \SimpleCalendar\Objects ? $objects->get_calendar_view($id, $name) : false;
118 118
 }
119 119
 
120 120
 /**
@@ -126,11 +126,11 @@  discard block
 block discarded – undo
126 126
  *
127 127
  * @return void
128 128
  */
129
-function simcal_print_calendar( $object ) {
129
+function simcal_print_calendar($object) {
130 130
 
131
-	$calendar = simcal_get_calendar( $object );
131
+	$calendar = simcal_get_calendar($object);
132 132
 
133
-	if ( $calendar instanceof \SimpleCalendar\Abstracts\Calendar ) {
133
+	if ($calendar instanceof \SimpleCalendar\Abstracts\Calendar) {
134 134
 		$calendar->html();
135 135
 	}
136 136
 }
@@ -148,21 +148,21 @@  discard block
 block discarded – undo
148 148
 
149 149
 	$vars = array(
150 150
 		'ajax_url'  => \SimpleCalendar\plugin()->ajax_url(),
151
-		'nonce'     => wp_create_nonce( 'simcal' ),
151
+		'nonce'     => wp_create_nonce('simcal'),
152 152
 		'locale'    => \SimpleCalendar\plugin()->locale,
153 153
 		'text_dir'  => is_rtl() ? 'rtl' : 'ltr',
154 154
 		'months'    => array(
155
-			'full'  => simcal_get_calendar_names_i18n( 'month', 'full' ),
156
-			'short' => simcal_get_calendar_names_i18n( 'month', 'short' ),
155
+			'full'  => simcal_get_calendar_names_i18n('month', 'full'),
156
+			'short' => simcal_get_calendar_names_i18n('month', 'short'),
157 157
 		),
158 158
 		'days'      => array(
159
-			'full'  => simcal_get_calendar_names_i18n( 'day', 'full' ),
160
-			'short' => simcal_get_calendar_names_i18n( 'day', 'short' ),
159
+			'full'  => simcal_get_calendar_names_i18n('day', 'full'),
160
+			'short' => simcal_get_calendar_names_i18n('day', 'short'),
161 161
 		),
162
-		'meridiem' => simcal_get_calendar_names_i18n( 'meridiem' ),
162
+		'meridiem' => simcal_get_calendar_names_i18n('meridiem'),
163 163
 	);
164 164
 
165
-	return array_merge( $vars, apply_filters( 'simcal_common_scripts_variables', array() ) );
165
+	return array_merge($vars, apply_filters('simcal_common_scripts_variables', array()));
166 166
 }
167 167
 
168 168
 /**
@@ -175,31 +175,31 @@  discard block
 block discarded – undo
175 175
  *
176 176
  * @return array Associative array with ids as keys and feed titles as values.
177 177
  */
178
-function simcal_get_calendars( $exclude = '', $cached = true ) {
178
+function simcal_get_calendars($exclude = '', $cached = true) {
179 179
 
180
-	$calendars = get_transient( '_simple-calendar_feed_ids' );
180
+	$calendars = get_transient('_simple-calendar_feed_ids');
181 181
 
182
-	if ( ! $calendars || $cached === false ) {
182
+	if ( ! $calendars || $cached === false) {
183 183
 
184
-		$posts = get_posts( array(
184
+		$posts = get_posts(array(
185 185
 			'post_type' => 'calendar',
186 186
 			'nopaging'  => true,
187
-		) );
187
+		));
188 188
 
189 189
 		$calendars = array();
190
-		foreach ( $posts as $post ) {
191
-			$calendars[ $post->ID ] = $post->post_title;
190
+		foreach ($posts as $post) {
191
+			$calendars[$post->ID] = $post->post_title;
192 192
 		}
193
-		asort( $calendars );
193
+		asort($calendars);
194 194
 
195
-		set_transient( '_simple-calendar_feed_ids', $calendars, 604800 );
195
+		set_transient('_simple-calendar_feed_ids', $calendars, 604800);
196 196
 	}
197 197
 
198
-	if ( ! empty( $exclude ) ) {
199
-		if ( is_numeric( $exclude ) ) {
200
-			unset( $calendars[ intval( $exclude ) ] );
201
-		} elseif ( is_array( $exclude ) ) {
202
-			array_diff_key( $calendars, array_map( 'intval', array_keys( $exclude ) ) );
198
+	if ( ! empty($exclude)) {
199
+		if (is_numeric($exclude)) {
200
+			unset($calendars[intval($exclude)]);
201
+		} elseif (is_array($exclude)) {
202
+			array_diff_key($calendars, array_map('intval', array_keys($exclude)));
203 203
 		}
204 204
 	}
205 205
 
@@ -218,45 +218,45 @@  discard block
 block discarded – undo
218 218
  *
219 219
  * @return array
220 220
  */
221
-function simcal_get_calendar_names_i18n( $group, $style = 'full' ) {
221
+function simcal_get_calendar_names_i18n($group, $style = 'full') {
222 222
 
223 223
 	$names = array();
224 224
 
225
-	if ( in_array( $group, array( 'month', 'day', 'meridiem' ) ) ) {
225
+	if (in_array($group, array('month', 'day', 'meridiem'))) {
226 226
 
227 227
 		$format = '';
228 228
 		$length = 0;
229 229
 
230 230
 		$date = Carbon\Carbon::now();
231 231
 
232
-		if ( 'month' == $group ) {
233
-			$date->month( 0 )->startOfMonth();
232
+		if ('month' == $group) {
233
+			$date->month(0)->startOfMonth();
234 234
 			$format = 'short' == $style ? 'M' : 'F';
235 235
 			$length = 11;
236
-		} elseif ( 'day' == $group ) {
237
-			$date->next( 6 );
236
+		} elseif ('day' == $group) {
237
+			$date->next(6);
238 238
 			$format = 'short' == $style ? 'D' : 'l';
239 239
 			$length = 6;
240
-		} elseif ( 'meridiem' == $group ) {
240
+		} elseif ('meridiem' == $group) {
241 241
 			$date->startOfDay();
242
-			$am = $date->addHour( 1 )->getTimestamp();
243
-			$pm = $date->addHours( 13 )->getTimestamp();
242
+			$am = $date->addHour(1)->getTimestamp();
243
+			$pm = $date->addHours(13)->getTimestamp();
244 244
 			return array(
245
-				'AM' => date_i18n( 'A', $am ),
246
-				'am' => date_i18n( 'a', $am ),
247
-				'PM' => date_i18n( 'A', $pm ),
248
-				'pm' => date_i18n( 'a', $pm ),
245
+				'AM' => date_i18n('A', $am),
246
+				'am' => date_i18n('a', $am),
247
+				'PM' => date_i18n('A', $pm),
248
+				'pm' => date_i18n('a', $pm),
249 249
 			);
250 250
 		}
251 251
 
252 252
 		$i = 0;
253
-		while ( $i <= $length ) {
254
-			if ( 'month' == $group ) {
255
-				$date->addMonths( 1 );
253
+		while ($i <= $length) {
254
+			if ('month' == $group) {
255
+				$date->addMonths(1);
256 256
 			} else {
257
-				$date->addDays( 1 );
257
+				$date->addDays(1);
258 258
 			}
259
-			$names[ strval( $i ) ] = date_i18n( $format, $date->getTimestamp() );
259
+			$names[strval($i)] = date_i18n($format, $date->getTimestamp());
260 260
 			$i++;
261 261
 		}
262 262
 
@@ -274,15 +274,15 @@  discard block
 block discarded – undo
274 274
  */
275 275
 function simcal_default_event_template() {
276 276
 
277
-	$content  = '<strong>' . '[title]' . '</strong>';
277
+	$content  = '<strong>'.'[title]'.'</strong>';
278 278
 	$content .= "\n\n";
279
-	$content .= '[when]' . "\n";
279
+	$content .= '[when]'."\n";
280 280
 	$content .= '[location]';
281 281
 	$content .= "\n";
282
-	$content .= '<div>' . '[description]' . '</div>';
283
-	$content .= "\n" . '[link newwindow="yes"]' . __( 'See more details', 'google-calendar-events' ) . '[/link]';
282
+	$content .= '<div>'.'[description]'.'</div>';
283
+	$content .= "\n".'[link newwindow="yes"]'.__('See more details', 'google-calendar-events').'[/link]';
284 284
 
285
-	return apply_filters( 'simcal_default_event_template', $content );
285
+	return apply_filters('simcal_default_event_template', $content);
286 286
 }
287 287
 
288 288
 /**
@@ -297,21 +297,21 @@  discard block
 block discarded – undo
297 297
  *
298 298
  * @return array
299 299
  */
300
-function simcal_get_date_format_order( $date_format ) {
300
+function simcal_get_date_format_order($date_format) {
301 301
 
302 302
 	$pos = array(
303
-		'd' => strpos( $date_format, strpbrk( $date_format, 'Dj' ) ),
304
-		'm' => strpos( $date_format, strpbrk( $date_format, 'FMmn' ) ),
305
-		'y' => strpos( $date_format, strpbrk( $date_format, 'Yy' ) ),
303
+		'd' => strpos($date_format, strpbrk($date_format, 'Dj')),
304
+		'm' => strpos($date_format, strpbrk($date_format, 'FMmn')),
305
+		'y' => strpos($date_format, strpbrk($date_format, 'Yy')),
306 306
 	);
307 307
 
308 308
 	// @TODO When one date piece is not found, perhaps fallback to ISO standard position.
309 309
 
310 310
 	$order = array();
311
-	foreach ( $pos as $k => $v ) {
312
-		$order[ $k ] = $v;
311
+	foreach ($pos as $k => $v) {
312
+		$order[$k] = $v;
313 313
 	}
314
-	ksort( $order );
314
+	ksort($order);
315 315
 
316 316
 	return $order;
317 317
 }
@@ -327,11 +327,11 @@  discard block
 block discarded – undo
327 327
  */
328 328
 function simcal_get_wp_timezone() {
329 329
 
330
-	$timezone = get_option( 'timezone_string' );
330
+	$timezone = get_option('timezone_string');
331 331
 
332
-	if ( empty( $timezone ) ) {
333
-		$gmt = get_option( 'gmt_offset' );
334
-		$timezone = simcal_get_timezone_from_gmt_offset( $gmt );
332
+	if (empty($timezone)) {
333
+		$gmt = get_option('gmt_offset');
334
+		$timezone = simcal_get_timezone_from_gmt_offset($gmt);
335 335
 	}
336 336
 
337 337
 	return $timezone;
@@ -348,26 +348,26 @@  discard block
 block discarded – undo
348 348
  *
349 349
  * @return null|string
350 350
  */
351
-function simcal_get_timezone_from_gmt_offset( $offset ) {
351
+function simcal_get_timezone_from_gmt_offset($offset) {
352 352
 
353
-	if ( is_numeric( $offset ) ) {
353
+	if (is_numeric($offset)) {
354 354
 
355
-		if ( 0 === intval( $offset ) ) {
355
+		if (0 === intval($offset)) {
356 356
 			return 'UTC';
357 357
 		} else {
358
-			$offset = floatval( $offset ) * 3600;
358
+			$offset = floatval($offset) * 3600;
359 359
 		}
360 360
 
361
-		$timezone = timezone_name_from_abbr( null, $offset, false );
361
+		$timezone = timezone_name_from_abbr(null, $offset, false);
362 362
 		// This is buggy and might return false:
363 363
 		// @see http://php.net/manual/en/function.timezone-name-from-abbr.php#86928
364 364
 		// Therefore:
365
-		if ( false == $timezone ) {
365
+		if (false == $timezone) {
366 366
 
367 367
 			$list = timezone_abbreviations_list();
368
-			foreach ( $list as $abbr ) {
369
-				foreach ( $abbr as $city ) {
370
-					if ( $offset == $city['offset'] ) {
368
+			foreach ($list as $abbr) {
369
+				foreach ($abbr as $city) {
370
+					if ($offset == $city['offset']) {
371 371
 						return $city['timezone_id'];
372 372
 					}
373 373
 				}
@@ -390,8 +390,8 @@  discard block
 block discarded – undo
390 390
  *
391 391
  * @return int Unix time offset
392 392
  */
393
-function simcal_get_timezone_offset( $timezone ) {
394
-	return \Carbon\Carbon::now( $timezone )->offset;
393
+function simcal_get_timezone_offset($timezone) {
394
+	return \Carbon\Carbon::now($timezone)->offset;
395 395
 }
396 396
 
397 397
 /**
@@ -404,8 +404,8 @@  discard block
 block discarded – undo
404 404
  *
405 405
  * @return mixed|string
406 406
  */
407
-function simcal_esc_timezone( $tz, $default = 'UTC' ) {
408
-	return in_array( $tz, timezone_identifiers_list() ) ? $tz : $default;
407
+function simcal_esc_timezone($tz, $default = 'UTC') {
408
+	return in_array($tz, timezone_identifiers_list()) ? $tz : $default;
409 409
 }
410 410
 
411 411
 /**
@@ -417,57 +417,57 @@  discard block
 block discarded – undo
417 417
  *
418 418
  * @return bool
419 419
  */
420
-function simcal_delete_feed_transients( $id = '' ) {
420
+function simcal_delete_feed_transients($id = '') {
421 421
 
422
-	$grouped_ids = get_post_meta( $id, '_grouped_calendars_ids', true );
422
+	$grouped_ids = get_post_meta($id, '_grouped_calendars_ids', true);
423 423
 
424 424
 	// If there are group IDs we need to construct an array to pass along with the grouped IDs + the original $post_id
425
-	if ( is_array( $grouped_ids ) ) {
425
+	if (is_array($grouped_ids)) {
426 426
 		$temp_id = $id;
427 427
 		$id = $grouped_ids;
428 428
 		$id[] = $temp_id;
429 429
 	}
430 430
 
431
-	if ( is_numeric( $id ) ) {
432
-		$id = intval( $id ) > 0 ? absint( $id ) : simcal_get_calendars();
433
-	} elseif ( $id instanceof WP_Post ) {
431
+	if (is_numeric($id)) {
432
+		$id = intval($id) > 0 ? absint($id) : simcal_get_calendars();
433
+	} elseif ($id instanceof WP_Post) {
434 434
 		$id = $id->ID;
435
-	} elseif ( is_array( $id ) ) {
436
-		$id = array_map( 'absint', $id );
435
+	} elseif (is_array($id)) {
436
+		$id = array_map('absint', $id);
437 437
 	} else {
438
-		$id = simcal_get_calendars( '', true );
438
+		$id = simcal_get_calendars('', true);
439 439
 	}
440 440
 
441 441
 	$feed_types = simcal_get_feed_types();
442 442
 
443
-	if ( is_array( $id ) ) {
443
+	if (is_array($id)) {
444 444
 
445
-		$posts = get_posts( array(
445
+		$posts = get_posts(array(
446 446
 				'post_type' => 'calendar',
447 447
 				'fields'    => 'ids',
448 448
 				'post__in'  => $id,
449 449
 				'nopaging'  => true,
450
-		) );
450
+		));
451 451
 
452
-		foreach ( $posts as $post ) {
453
-			$calendar = simcal_get_calendar( $post );
454
-			if ( $calendar instanceof \SimpleCalendar\Abstracts\Calendar ) {
455
-				foreach ( $feed_types as $feed_type ) {
456
-					delete_transient( '_simple-calendar_feed_id_' . strval( $calendar->id ) . '_' . $feed_type );
452
+		foreach ($posts as $post) {
453
+			$calendar = simcal_get_calendar($post);
454
+			if ($calendar instanceof \SimpleCalendar\Abstracts\Calendar) {
455
+				foreach ($feed_types as $feed_type) {
456
+					delete_transient('_simple-calendar_feed_id_'.strval($calendar->id).'_'.$feed_type);
457 457
 				}
458 458
 			}
459 459
 		}
460 460
 
461 461
 	} else {
462 462
 
463
-		$post = get_post( $id );
464
-		$calendar = simcal_get_calendar( $post );
465
-		if ( $calendar instanceof \SimpleCalendar\Abstracts\Calendar ) {
466
-			foreach ( $feed_types as $feed_type ) {
467
-				delete_transient( '_simple-calendar_feed_id_' . strval( $calendar->id ) . '_' . $feed_type );
463
+		$post = get_post($id);
464
+		$calendar = simcal_get_calendar($post);
465
+		if ($calendar instanceof \SimpleCalendar\Abstracts\Calendar) {
466
+			foreach ($feed_types as $feed_type) {
467
+				delete_transient('_simple-calendar_feed_id_'.strval($calendar->id).'_'.$feed_type);
468 468
 			}
469 469
 		}
470 470
 	}
471 471
 
472
-	return delete_transient( '_simple-calendar_feed_ids' );
472
+	return delete_transient('_simple-calendar_feed_ids');
473 473
 }
474 474
\ No newline at end of file
Please login to merge, or discard this patch.
Doc Comments   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -400,7 +400,7 @@
 block discarded – undo
400 400
  * @since  3.0.0
401 401
  *
402 402
  * @param  string $tz
403
- * @param  mixed  $default
403
+ * @param  string  $default
404 404
  *
405 405
  * @return mixed|string
406 406
  */
Please login to merge, or discard this patch.
google-calendar-events.php 1 patch
Spacing   +11 added lines, -11 removed lines patch added patch discarded remove patch
@@ -14,24 +14,24 @@  discard block
 block discarded – undo
14 14
  */
15 15
 
16 16
 // Exit if accessed directly.
17
-if ( ! defined( 'ABSPATH' ) ) {
17
+if ( ! defined('ABSPATH')) {
18 18
 	exit;
19 19
 }
20 20
 
21 21
 // Plugin constants.
22
-$this_plugin_path      = trailingslashit( dirname( __FILE__ ) );
23
-$this_plugin_dir       = plugin_dir_url( __FILE__ );
22
+$this_plugin_path      = trailingslashit(dirname(__FILE__));
23
+$this_plugin_dir       = plugin_dir_url(__FILE__);
24 24
 $this_plugin_constants = array(
25 25
 	'SIMPLE_CALENDAR_VERSION'   => '3.0.15',
26 26
 	'SIMPLE_CALENDAR_MAIN_FILE' => __FILE__,
27 27
 	'SIMPLE_CALENDAR_URL'       => $this_plugin_dir,
28
-	'SIMPLE_CALENDAR_ASSETS'    => $this_plugin_dir . 'assets/',
28
+	'SIMPLE_CALENDAR_ASSETS'    => $this_plugin_dir.'assets/',
29 29
 	'SIMPLE_CALENDAR_PATH'      => $this_plugin_path,
30
-	'SIMPLE_CALENDAR_INC'       => $this_plugin_path . 'includes/',
30
+	'SIMPLE_CALENDAR_INC'       => $this_plugin_path.'includes/',
31 31
 );
32
-foreach ( $this_plugin_constants as $constant => $value ) {
33
-	if ( ! defined( $constant ) ) {
34
-		define( $constant, $value );
32
+foreach ($this_plugin_constants as $constant => $value) {
33
+	if ( ! defined($constant)) {
34
+		define($constant, $value);
35 35
 	}
36 36
 }
37 37
 
@@ -40,7 +40,7 @@  discard block
 block discarded – undo
40 40
 include_once 'includes/wp-requirements.php';
41 41
 
42 42
 // Check plugin requirements before loading plugin.
43
-$this_plugin_checks = new SimCal_WP_Requirements( 'Simple Calendar', plugin_basename( __FILE__ ), array(
43
+$this_plugin_checks = new SimCal_WP_Requirements('Simple Calendar', plugin_basename(__FILE__), array(
44 44
 		'PHP'        => '5.3.3',
45 45
 		'WordPress'  => '4.1',
46 46
 		'Extensions' => array(
@@ -49,8 +49,8 @@  discard block
 block discarded – undo
49 49
 			'json',
50 50
 			'mbstring',
51 51
 		),
52
-	) );
53
-if ( $this_plugin_checks->pass() === false ) {
52
+	));
53
+if ($this_plugin_checks->pass() === false) {
54 54
 	$this_plugin_checks->halt();
55 55
 
56 56
 	return;
Please login to merge, or discard this patch.
includes/browser.php 3 patches
Indentation   +1211 added lines, -1211 removed lines patch added patch discarded remove patch
@@ -42,1214 +42,1214 @@
 block discarded – undo
42 42
 
43 43
 
44 44
 
45
-    class Browser
46
-    {
47
-        private $_agent = '';
48
-        private $_browser_name = '';
49
-        private $_version = '';
50
-        private $_platform = '';
51
-        private $_os = '';
52
-        private $_is_aol = false;
53
-        private $_is_mobile = false;
54
-        private $_is_tablet = false;
55
-        private $_is_robot = false;
56
-        private $_is_facebook = false;
57
-        private $_aol_version = '';
58
-
59
-        const BROWSER_UNKNOWN = 'unknown';
60
-        const VERSION_UNKNOWN = 'unknown';
61
-
62
-        const BROWSER_OPERA = 'Opera'; // http://www.opera.com/
63
-        const BROWSER_OPERA_MINI = 'Opera Mini'; // http://www.opera.com/mini/
64
-        const BROWSER_WEBTV = 'WebTV'; // http://www.webtv.net/pc/
65
-        const BROWSER_IE = 'Internet Explorer'; // http://www.microsoft.com/ie/
66
-        const BROWSER_POCKET_IE = 'Pocket Internet Explorer'; // http://en.wikipedia.org/wiki/Internet_Explorer_Mobile
67
-        const BROWSER_KONQUEROR = 'Konqueror'; // http://www.konqueror.org/
68
-        const BROWSER_ICAB = 'iCab'; // http://www.icab.de/
69
-        const BROWSER_OMNIWEB = 'OmniWeb'; // http://www.omnigroup.com/applications/omniweb/
70
-        const BROWSER_FIREBIRD = 'Firebird'; // http://www.ibphoenix.com/
71
-        const BROWSER_FIREFOX = 'Firefox'; // http://www.mozilla.com/en-US/firefox/firefox.html
72
-        const BROWSER_ICEWEASEL = 'Iceweasel'; // http://www.geticeweasel.org/
73
-        const BROWSER_SHIRETOKO = 'Shiretoko'; // http://wiki.mozilla.org/Projects/shiretoko
74
-        const BROWSER_MOZILLA = 'Mozilla'; // http://www.mozilla.com/en-US/
75
-        const BROWSER_AMAYA = 'Amaya'; // http://www.w3.org/Amaya/
76
-        const BROWSER_LYNX = 'Lynx'; // http://en.wikipedia.org/wiki/Lynx
77
-        const BROWSER_SAFARI = 'Safari'; // http://apple.com
78
-        const BROWSER_IPHONE = 'iPhone'; // http://apple.com
79
-        const BROWSER_IPOD = 'iPod'; // http://apple.com
80
-        const BROWSER_IPAD = 'iPad'; // http://apple.com
81
-        const BROWSER_CHROME = 'Chrome'; // http://www.google.com/chrome
82
-        const BROWSER_ANDROID = 'Android'; // http://www.android.com/
83
-        const BROWSER_GOOGLEBOT = 'GoogleBot'; // http://en.wikipedia.org/wiki/Googlebot
84
-        const BROWSER_SLURP = 'Yahoo! Slurp'; // http://en.wikipedia.org/wiki/Yahoo!_Slurp
85
-        const BROWSER_W3CVALIDATOR = 'W3C Validator'; // http://validator.w3.org/
86
-        const BROWSER_BLACKBERRY = 'BlackBerry'; // http://www.blackberry.com/
87
-        const BROWSER_ICECAT = 'IceCat'; // http://en.wikipedia.org/wiki/GNU_IceCat
88
-        const BROWSER_NOKIA_S60 = 'Nokia S60 OSS Browser'; // http://en.wikipedia.org/wiki/Web_Browser_for_S60
89
-        const BROWSER_NOKIA = 'Nokia Browser'; // * all other WAP-based browsers on the Nokia Platform
90
-        const BROWSER_MSN = 'MSN Browser'; // http://explorer.msn.com/
91
-        const BROWSER_MSNBOT = 'MSN Bot'; // http://search.msn.com/msnbot.htm
92
-        const BROWSER_BINGBOT = 'Bing Bot'; // http://en.wikipedia.org/wiki/Bingbot
93
-
94
-        const BROWSER_NETSCAPE_NAVIGATOR = 'Netscape Navigator'; // http://browser.netscape.com/ (DEPRECATED)
95
-        const BROWSER_GALEON = 'Galeon'; // http://galeon.sourceforge.net/ (DEPRECATED)
96
-        const BROWSER_NETPOSITIVE = 'NetPositive'; // http://en.wikipedia.org/wiki/NetPositive (DEPRECATED)
97
-        const BROWSER_PHOENIX = 'Phoenix'; // http://en.wikipedia.org/wiki/History_of_Mozilla_Firefox (DEPRECATED)
98
-
99
-        const PLATFORM_UNKNOWN = 'unknown';
100
-        const PLATFORM_WINDOWS = 'Windows';
101
-        const PLATFORM_WINDOWS_CE = 'Windows CE';
102
-        const PLATFORM_APPLE = 'Apple';
103
-        const PLATFORM_LINUX = 'Linux';
104
-        const PLATFORM_OS2 = 'OS/2';
105
-        const PLATFORM_BEOS = 'BeOS';
106
-        const PLATFORM_IPHONE = 'iPhone';
107
-        const PLATFORM_IPOD = 'iPod';
108
-        const PLATFORM_IPAD = 'iPad';
109
-        const PLATFORM_BLACKBERRY = 'BlackBerry';
110
-        const PLATFORM_NOKIA = 'Nokia';
111
-        const PLATFORM_FREEBSD = 'FreeBSD';
112
-        const PLATFORM_OPENBSD = 'OpenBSD';
113
-        const PLATFORM_NETBSD = 'NetBSD';
114
-        const PLATFORM_SUNOS = 'SunOS';
115
-        const PLATFORM_OPENSOLARIS = 'OpenSolaris';
116
-        const PLATFORM_ANDROID = 'Android';
117
-
118
-        const OPERATING_SYSTEM_UNKNOWN = 'unknown';
119
-
120
-        public function __construct($userAgent = "")
121
-        {
122
-            $this->reset();
123
-            if ($userAgent != "") {
124
-                $this->setUserAgent($userAgent);
125
-            } else {
126
-                $this->determine();
127
-            }
128
-        }
129
-
130
-        /**
131
-         * Reset all properties
132
-         */
133
-        public function reset()
134
-        {
135
-            $this->_agent = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : "";
136
-            $this->_browser_name = self::BROWSER_UNKNOWN;
137
-            $this->_version = self::VERSION_UNKNOWN;
138
-            $this->_platform = self::PLATFORM_UNKNOWN;
139
-            $this->_os = self::OPERATING_SYSTEM_UNKNOWN;
140
-            $this->_is_aol = false;
141
-            $this->_is_mobile = false;
142
-            $this->_is_tablet = false;
143
-            $this->_is_robot = false;
144
-            $this->_is_facebook = false;
145
-            $this->_aol_version = self::VERSION_UNKNOWN;
146
-        }
147
-
148
-        /**
149
-         * Check to see if the specific browser is valid
150
-         * @param string $browserName
151
-         * @return bool True if the browser is the specified browser
152
-         */
153
-        function isBrowser($browserName)
154
-        {
155
-            return (0 == strcasecmp($this->_browser_name, trim($browserName)));
156
-        }
157
-
158
-        /**
159
-         * The name of the browser.  All return types are from the class contants
160
-         * @return string Name of the browser
161
-         */
162
-        public function getBrowser()
163
-        {
164
-            return $this->_browser_name;
165
-        }
166
-
167
-        /**
168
-         * Set the name of the browser
169
-         * @param $browser string The name of the Browser
170
-         */
171
-        public function setBrowser($browser)
172
-        {
173
-            $this->_browser_name = $browser;
174
-        }
175
-
176
-        /**
177
-         * The name of the platform.  All return types are from the class contants
178
-         * @return string Name of the browser
179
-         */
180
-        public function getPlatform()
181
-        {
182
-            return $this->_platform;
183
-        }
184
-
185
-        /**
186
-         * Set the name of the platform
187
-         * @param string $platform The name of the Platform
188
-         */
189
-        public function setPlatform($platform)
190
-        {
191
-            $this->_platform = $platform;
192
-        }
193
-
194
-        /**
195
-         * The version of the browser.
196
-         * @return string Version of the browser (will only contain alpha-numeric characters and a period)
197
-         */
198
-        public function getVersion()
199
-        {
200
-            return $this->_version;
201
-        }
202
-
203
-        /**
204
-         * Set the version of the browser
205
-         * @param string $version The version of the Browser
206
-         */
207
-        public function setVersion($version)
208
-        {
209
-            $this->_version = preg_replace('/[^0-9,.,a-z,A-Z-]/', '', $version);
210
-        }
211
-
212
-        /**
213
-         * The version of AOL.
214
-         * @return string Version of AOL (will only contain alpha-numeric characters and a period)
215
-         */
216
-        public function getAolVersion()
217
-        {
218
-            return $this->_aol_version;
219
-        }
220
-
221
-        /**
222
-         * Set the version of AOL
223
-         * @param string $version The version of AOL
224
-         */
225
-        public function setAolVersion($version)
226
-        {
227
-            $this->_aol_version = preg_replace('/[^0-9,.,a-z,A-Z]/', '', $version);
228
-        }
229
-
230
-        /**
231
-         * Is the browser from AOL?
232
-         * @return boolean True if the browser is from AOL otherwise false
233
-         */
234
-        public function isAol()
235
-        {
236
-            return $this->_is_aol;
237
-        }
238
-
239
-        /**
240
-         * Is the browser from a mobile device?
241
-         * @return boolean True if the browser is from a mobile device otherwise false
242
-         */
243
-        public function isMobile()
244
-        {
245
-            return $this->_is_mobile;
246
-        }
247
-
248
-        /**
249
-         * Is the browser from a tablet device?
250
-         * @return boolean True if the browser is from a tablet device otherwise false
251
-         */
252
-        public function isTablet()
253
-        {
254
-            return $this->_is_tablet;
255
-        }
256
-
257
-        /**
258
-         * Is the browser from a robot (ex Slurp,GoogleBot)?
259
-         * @return boolean True if the browser is from a robot otherwise false
260
-         */
261
-        public function isRobot()
262
-        {
263
-            return $this->_is_robot;
264
-        }
265
-
266
-        /**
267
-         * Is the browser from facebook?
268
-         * @return boolean True if the browser is from facebook otherwise false
269
-         */
270
-        public function isFacebook()
271
-        {
272
-            return $this->_is_facebook;
273
-        }
274
-
275
-        /**
276
-         * Set the browser to be from AOL
277
-         * @param $isAol
278
-         */
279
-        public function setAol($isAol)
280
-        {
281
-            $this->_is_aol = $isAol;
282
-        }
283
-
284
-        /**
285
-         * Set the Browser to be mobile
286
-         * @param boolean $value is the browser a mobile browser or not
287
-         */
288
-        protected function setMobile($value = true)
289
-        {
290
-            $this->_is_mobile = $value;
291
-        }
292
-
293
-        /**
294
-         * Set the Browser to be tablet
295
-         * @param boolean $value is the browser a tablet browser or not
296
-         */
297
-        protected function setTablet($value = true)
298
-        {
299
-            $this->_is_tablet = $value;
300
-        }
301
-
302
-        /**
303
-         * Set the Browser to be a robot
304
-         * @param boolean $value is the browser a robot or not
305
-         */
306
-        protected function setRobot($value = true)
307
-        {
308
-            $this->_is_robot = $value;
309
-        }
310
-
311
-        /**
312
-         * Set the Browser to be a Facebook request
313
-         * @param boolean $value is the browser a robot or not
314
-         */
315
-        protected function setFacebook($value = true)
316
-        {
317
-            $this->_is_facebook = $value;
318
-        }
319
-
320
-        /**
321
-         * Get the user agent value in use to determine the browser
322
-         * @return string The user agent from the HTTP header
323
-         */
324
-        public function getUserAgent()
325
-        {
326
-            return $this->_agent;
327
-        }
328
-
329
-        /**
330
-         * Set the user agent value (the construction will use the HTTP header value - this will overwrite it)
331
-         * @param string $agent_string The value for the User Agent
332
-         */
333
-        public function setUserAgent($agent_string)
334
-        {
335
-            $this->reset();
336
-            $this->_agent = $agent_string;
337
-            $this->determine();
338
-        }
339
-
340
-        /**
341
-         * Used to determine if the browser is actually "chromeframe"
342
-         * @since 1.7
343
-         * @return boolean True if the browser is using chromeframe
344
-         */
345
-        public function isChromeFrame()
346
-        {
347
-            return (strpos($this->_agent, "chromeframe") !== false);
348
-        }
349
-
350
-        /**
351
-         * Returns a formatted string with a summary of the details of the browser.
352
-         * @return string formatted string with a summary of the browser
353
-         */
354
-        public function __toString()
355
-        {
356
-            return "<strong>Browser Name:</strong> {$this->getBrowser()}<br/>\n" .
357
-            "<strong>Browser Version:</strong> {$this->getVersion()}<br/>\n" .
358
-            "<strong>Browser User Agent String:</strong> {$this->getUserAgent()}<br/>\n" .
359
-            "<strong>Platform:</strong> {$this->getPlatform()}<br/>";
360
-        }
361
-
362
-        /**
363
-         * Protected routine to calculate and determine what the browser is in use (including platform)
364
-         */
365
-        protected function determine()
366
-        {
367
-            $this->checkPlatform();
368
-            $this->checkBrowsers();
369
-            $this->checkForAol();
370
-        }
371
-
372
-        /**
373
-         * Protected routine to determine the browser type
374
-         * @return boolean True if the browser was detected otherwise false
375
-         */
376
-        protected function checkBrowsers()
377
-        {
378
-            return (
379
-                // well-known, well-used
380
-                // Special Notes:
381
-                // (1) Opera must be checked before FireFox due to the odd
382
-                //     user agents used in some older versions of Opera
383
-                // (2) WebTV is strapped onto Internet Explorer so we must
384
-                //     check for WebTV before IE
385
-                // (3) (deprecated) Galeon is based on Firefox and needs to be
386
-                //     tested before Firefox is tested
387
-                // (4) OmniWeb is based on Safari so OmniWeb check must occur
388
-                //     before Safari
389
-                // (5) Netscape 9+ is based on Firefox so Netscape checks
390
-                //     before FireFox are necessary
391
-                $this->checkBrowserWebTv() ||
392
-                $this->checkBrowserInternetExplorer() ||
393
-                $this->checkBrowserOpera() ||
394
-                $this->checkBrowserGaleon() ||
395
-                $this->checkBrowserNetscapeNavigator9Plus() ||
396
-                $this->checkBrowserFirefox() ||
397
-                $this->checkBrowserChrome() ||
398
-                $this->checkBrowserOmniWeb() ||
399
-
400
-                // common mobile
401
-                $this->checkBrowserAndroid() ||
402
-                $this->checkBrowseriPad() ||
403
-                $this->checkBrowseriPod() ||
404
-                $this->checkBrowseriPhone() ||
405
-                $this->checkBrowserBlackBerry() ||
406
-                $this->checkBrowserNokia() ||
407
-
408
-                // common bots
409
-                $this->checkBrowserGoogleBot() ||
410
-                $this->checkBrowserMSNBot() ||
411
-                $this->checkBrowserBingBot() ||
412
-                $this->checkBrowserSlurp() ||
413
-
414
-                // check for facebook external hit when loading URL
415
-                $this->checkFacebookExternalHit() ||
416
-
417
-                // WebKit base check (post mobile and others)
418
-                $this->checkBrowserSafari() ||
419
-
420
-                // everyone else
421
-                $this->checkBrowserNetPositive() ||
422
-                $this->checkBrowserFirebird() ||
423
-                $this->checkBrowserKonqueror() ||
424
-                $this->checkBrowserIcab() ||
425
-                $this->checkBrowserPhoenix() ||
426
-                $this->checkBrowserAmaya() ||
427
-                $this->checkBrowserLynx() ||
428
-                $this->checkBrowserShiretoko() ||
429
-                $this->checkBrowserIceCat() ||
430
-                $this->checkBrowserIceweasel() ||
431
-                $this->checkBrowserW3CValidator() ||
432
-                $this->checkBrowserMozilla() /* Mozilla is such an open standard that you must check it last */
433
-            );
434
-        }
435
-
436
-        /**
437
-         * Determine if the user is using a BlackBerry (last updated 1.7)
438
-         * @return boolean True if the browser is the BlackBerry browser otherwise false
439
-         */
440
-        protected function checkBrowserBlackBerry()
441
-        {
442
-            if (stripos($this->_agent, 'blackberry') !== false) {
443
-                $aresult = explode("/", stristr($this->_agent, "BlackBerry"));
444
-                if (isset($aresult[1])) {
445
-                    $aversion = explode(' ', $aresult[1]);
446
-                    $this->setVersion($aversion[0]);
447
-                    $this->_browser_name = self::BROWSER_BLACKBERRY;
448
-                    $this->setMobile(true);
449
-                    return true;
450
-                }
451
-            }
452
-            return false;
453
-        }
454
-
455
-        /**
456
-         * Determine if the user is using an AOL User Agent (last updated 1.7)
457
-         * @return boolean True if the browser is from AOL otherwise false
458
-         */
459
-        protected function checkForAol()
460
-        {
461
-            $this->setAol(false);
462
-            $this->setAolVersion(self::VERSION_UNKNOWN);
463
-
464
-            if (stripos($this->_agent, 'aol') !== false) {
465
-                $aversion = explode(' ', stristr($this->_agent, 'AOL'));
466
-                if (isset($aversion[1])) {
467
-                    $this->setAol(true);
468
-                    $this->setAolVersion(preg_replace('/[^0-9\.a-z]/i', '', $aversion[1]));
469
-                    return true;
470
-                }
471
-            }
472
-            return false;
473
-        }
474
-
475
-        /**
476
-         * Determine if the browser is the GoogleBot or not (last updated 1.7)
477
-         * @return boolean True if the browser is the GoogletBot otherwise false
478
-         */
479
-        protected function checkBrowserGoogleBot()
480
-        {
481
-            if (stripos($this->_agent, 'googlebot') !== false) {
482
-                $aresult = explode('/', stristr($this->_agent, 'googlebot'));
483
-                if (isset($aresult[1])) {
484
-                    $aversion = explode(' ', $aresult[1]);
485
-                    $this->setVersion(str_replace(';', '', $aversion[0]));
486
-                    $this->_browser_name = self::BROWSER_GOOGLEBOT;
487
-                    $this->setRobot(true);
488
-                    return true;
489
-                }
490
-            }
491
-            return false;
492
-        }
493
-
494
-        /**
495
-         * Determine if the browser is the MSNBot or not (last updated 1.9)
496
-         * @return boolean True if the browser is the MSNBot otherwise false
497
-         */
498
-        protected function checkBrowserMSNBot()
499
-        {
500
-            if (stripos($this->_agent, "msnbot") !== false) {
501
-                $aresult = explode("/", stristr($this->_agent, "msnbot"));
502
-                if (isset($aresult[1])) {
503
-                    $aversion = explode(" ", $aresult[1]);
504
-                    $this->setVersion(str_replace(";", "", $aversion[0]));
505
-                    $this->_browser_name = self::BROWSER_MSNBOT;
506
-                    $this->setRobot(true);
507
-                    return true;
508
-                }
509
-            }
510
-            return false;
511
-        }
512
-
513
-        /**
514
-         * Determine if the browser is the BingBot or not (last updated 1.9)
515
-         * @return boolean True if the browser is the BingBot otherwise false
516
-         */
517
-        protected function checkBrowserBingBot()
518
-        {
519
-            if (stripos($this->_agent, "bingbot") !== false) {
520
-                $aresult = explode("/", stristr($this->_agent, "bingbot"));
521
-                if (isset($aresult[1])) {
522
-                    $aversion = explode(" ", $aresult[1]);
523
-                    $this->setVersion(str_replace(";", "", $aversion[0]));
524
-                    $this->_browser_name = self::BROWSER_BINGBOT;
525
-                    $this->setRobot(true);
526
-                    return true;
527
-                }
528
-            }
529
-            return false;
530
-        }
531
-
532
-        /**
533
-         * Determine if the browser is the W3C Validator or not (last updated 1.7)
534
-         * @return boolean True if the browser is the W3C Validator otherwise false
535
-         */
536
-        protected function checkBrowserW3CValidator()
537
-        {
538
-            if (stripos($this->_agent, 'W3C-checklink') !== false) {
539
-                $aresult = explode('/', stristr($this->_agent, 'W3C-checklink'));
540
-                if (isset($aresult[1])) {
541
-                    $aversion = explode(' ', $aresult[1]);
542
-                    $this->setVersion($aversion[0]);
543
-                    $this->_browser_name = self::BROWSER_W3CVALIDATOR;
544
-                    return true;
545
-                }
546
-            } else if (stripos($this->_agent, 'W3C_Validator') !== false) {
547
-                // Some of the Validator versions do not delineate w/ a slash - add it back in
548
-                $ua = str_replace("W3C_Validator ", "W3C_Validator/", $this->_agent);
549
-                $aresult = explode('/', stristr($ua, 'W3C_Validator'));
550
-                if (isset($aresult[1])) {
551
-                    $aversion = explode(' ', $aresult[1]);
552
-                    $this->setVersion($aversion[0]);
553
-                    $this->_browser_name = self::BROWSER_W3CVALIDATOR;
554
-                    return true;
555
-                }
556
-            } else if (stripos($this->_agent, 'W3C-mobileOK') !== false) {
557
-                $this->_browser_name = self::BROWSER_W3CVALIDATOR;
558
-                $this->setMobile(true);
559
-                return true;
560
-            }
561
-            return false;
562
-        }
563
-
564
-        /**
565
-         * Determine if the browser is the Yahoo! Slurp Robot or not (last updated 1.7)
566
-         * @return boolean True if the browser is the Yahoo! Slurp Robot otherwise false
567
-         */
568
-        protected function checkBrowserSlurp()
569
-        {
570
-            if (stripos($this->_agent, 'slurp') !== false) {
571
-                $aresult = explode('/', stristr($this->_agent, 'Slurp'));
572
-                if (isset($aresult[1])) {
573
-                    $aversion = explode(' ', $aresult[1]);
574
-                    $this->setVersion($aversion[0]);
575
-                    $this->_browser_name = self::BROWSER_SLURP;
576
-                    $this->setRobot(true);
577
-                    $this->setMobile(false);
578
-                    return true;
579
-                }
580
-            }
581
-            return false;
582
-        }
583
-
584
-        /**
585
-         * Determine if the browser is Internet Explorer or not (last updated 1.7)
586
-         * @return boolean True if the browser is Internet Explorer otherwise false
587
-         */
588
-        protected function checkBrowserInternetExplorer()
589
-        {
590
-            //  Test for IE11
591
-            if (stripos($this->_agent, 'Trident/7.0; rv:11.0') !== false) {
592
-                $this->setBrowser(self::BROWSER_IE);
593
-                $this->setVersion('11.0');
594
-                return true;
595
-            } // Test for v1 - v1.5 IE
596
-            else if (stripos($this->_agent, 'microsoft internet explorer') !== false) {
597
-                $this->setBrowser(self::BROWSER_IE);
598
-                $this->setVersion('1.0');
599
-                $aresult = stristr($this->_agent, '/');
600
-                if (preg_match('/308|425|426|474|0b1/i', $aresult)) {
601
-                    $this->setVersion('1.5');
602
-                }
603
-                return true;
604
-            } // Test for versions > 1.5
605
-            else if (stripos($this->_agent, 'msie') !== false && stripos($this->_agent, 'opera') === false) {
606
-                // See if the browser is the odd MSN Explorer
607
-                if (stripos($this->_agent, 'msnb') !== false) {
608
-                    $aresult = explode(' ', stristr(str_replace(';', '; ', $this->_agent), 'MSN'));
609
-                    if (isset($aresult[1])) {
610
-                        $this->setBrowser(self::BROWSER_MSN);
611
-                        $this->setVersion(str_replace(array('(', ')', ';'), '', $aresult[1]));
612
-                        return true;
613
-                    }
614
-                }
615
-                $aresult = explode(' ', stristr(str_replace(';', '; ', $this->_agent), 'msie'));
616
-                if (isset($aresult[1])) {
617
-                    $this->setBrowser(self::BROWSER_IE);
618
-                    $this->setVersion(str_replace(array('(', ')', ';'), '', $aresult[1]));
619
-                    if (stripos($this->_agent, 'IEMobile') !== false) {
620
-                        $this->setBrowser(self::BROWSER_POCKET_IE);
621
-                        $this->setMobile(true);
622
-                    }
623
-                    return true;
624
-                }
625
-            } // Test for versions > IE 10
626
-            else if (stripos($this->_agent, 'trident') !== false) {
627
-                $this->setBrowser(self::BROWSER_IE);
628
-                $result = explode('rv:', $this->_agent);
629
-                if (isset($result[1])) {
630
-                    $this->setVersion(preg_replace('/[^0-9.]+/', '', $result[1]));
631
-                    $this->_agent = str_replace(array("Mozilla", "Gecko"), "MSIE", $this->_agent);
632
-                }
633
-            } // Test for Pocket IE
634
-            else if (stripos($this->_agent, 'mspie') !== false || stripos($this->_agent, 'pocket') !== false) {
635
-                $aresult = explode(' ', stristr($this->_agent, 'mspie'));
636
-                if (isset($aresult[1])) {
637
-                    $this->setPlatform(self::PLATFORM_WINDOWS_CE);
638
-                    $this->setBrowser(self::BROWSER_POCKET_IE);
639
-                    $this->setMobile(true);
640
-
641
-                    if (stripos($this->_agent, 'mspie') !== false) {
642
-                        $this->setVersion($aresult[1]);
643
-                    } else {
644
-                        $aversion = explode('/', $this->_agent);
645
-                        if (isset($aversion[1])) {
646
-                            $this->setVersion($aversion[1]);
647
-                        }
648
-                    }
649
-                    return true;
650
-                }
651
-            }
652
-            return false;
653
-        }
654
-
655
-        /**
656
-         * Determine if the browser is Opera or not (last updated 1.7)
657
-         * @return boolean True if the browser is Opera otherwise false
658
-         */
659
-        protected function checkBrowserOpera()
660
-        {
661
-            if (stripos($this->_agent, 'opera mini') !== false) {
662
-                $resultant = stristr($this->_agent, 'opera mini');
663
-                if (preg_match('/\//', $resultant)) {
664
-                    $aresult = explode('/', $resultant);
665
-                    if (isset($aresult[1])) {
666
-                        $aversion = explode(' ', $aresult[1]);
667
-                        $this->setVersion($aversion[0]);
668
-                    }
669
-                } else {
670
-                    $aversion = explode(' ', stristr($resultant, 'opera mini'));
671
-                    if (isset($aversion[1])) {
672
-                        $this->setVersion($aversion[1]);
673
-                    }
674
-                }
675
-                $this->_browser_name = self::BROWSER_OPERA_MINI;
676
-                $this->setMobile(true);
677
-                return true;
678
-            } else if (stripos($this->_agent, 'opera') !== false) {
679
-                $resultant = stristr($this->_agent, 'opera');
680
-                if (preg_match('/Version\/(1*.*)$/', $resultant, $matches)) {
681
-                    $this->setVersion($matches[1]);
682
-                } else if (preg_match('/\//', $resultant)) {
683
-                    $aresult = explode('/', str_replace("(", " ", $resultant));
684
-                    if (isset($aresult[1])) {
685
-                        $aversion = explode(' ', $aresult[1]);
686
-                        $this->setVersion($aversion[0]);
687
-                    }
688
-                } else {
689
-                    $aversion = explode(' ', stristr($resultant, 'opera'));
690
-                    $this->setVersion(isset($aversion[1]) ? $aversion[1] : "");
691
-                }
692
-                if (stripos($this->_agent, 'Opera Mobi') !== false) {
693
-                    $this->setMobile(true);
694
-                }
695
-                $this->_browser_name = self::BROWSER_OPERA;
696
-                return true;
697
-            } else if (stripos($this->_agent, 'OPR') !== false) {
698
-                $resultant = stristr($this->_agent, 'OPR');
699
-                if (preg_match('/\//', $resultant)) {
700
-                    $aresult = explode('/', str_replace("(", " ", $resultant));
701
-                    if (isset($aresult[1])) {
702
-                        $aversion = explode(' ', $aresult[1]);
703
-                        $this->setVersion($aversion[0]);
704
-                    }
705
-                }
706
-                if (stripos($this->_agent, 'Mobile') !== false) {
707
-                    $this->setMobile(true);
708
-                }
709
-                $this->_browser_name = self::BROWSER_OPERA;
710
-                return true;
711
-            }
712
-            return false;
713
-        }
714
-
715
-        /**
716
-         * Determine if the browser is Chrome or not (last updated 1.7)
717
-         * @return boolean True if the browser is Chrome otherwise false
718
-         */
719
-        protected function checkBrowserChrome()
720
-        {
721
-            if (stripos($this->_agent, 'Chrome') !== false) {
722
-                $aresult = explode('/', stristr($this->_agent, 'Chrome'));
723
-                if (isset($aresult[1])) {
724
-                    $aversion = explode(' ', $aresult[1]);
725
-                    $this->setVersion($aversion[0]);
726
-                    $this->setBrowser(self::BROWSER_CHROME);
727
-                    //Chrome on Android
728
-                    if (stripos($this->_agent, 'Android') !== false) {
729
-                        if (stripos($this->_agent, 'Mobile') !== false) {
730
-                            $this->setMobile(true);
731
-                        } else {
732
-                            $this->setTablet(true);
733
-                        }
734
-                    }
735
-                    return true;
736
-                }
737
-            }
738
-            return false;
739
-        }
740
-
741
-
742
-        /**
743
-         * Determine if the browser is WebTv or not (last updated 1.7)
744
-         * @return boolean True if the browser is WebTv otherwise false
745
-         */
746
-        protected function checkBrowserWebTv()
747
-        {
748
-            if (stripos($this->_agent, 'webtv') !== false) {
749
-                $aresult = explode('/', stristr($this->_agent, 'webtv'));
750
-                if (isset($aresult[1])) {
751
-                    $aversion = explode(' ', $aresult[1]);
752
-                    $this->setVersion($aversion[0]);
753
-                    $this->setBrowser(self::BROWSER_WEBTV);
754
-                    return true;
755
-                }
756
-            }
757
-            return false;
758
-        }
759
-
760
-        /**
761
-         * Determine if the browser is NetPositive or not (last updated 1.7)
762
-         * @return boolean True if the browser is NetPositive otherwise false
763
-         */
764
-        protected function checkBrowserNetPositive()
765
-        {
766
-            if (stripos($this->_agent, 'NetPositive') !== false) {
767
-                $aresult = explode('/', stristr($this->_agent, 'NetPositive'));
768
-                if (isset($aresult[1])) {
769
-                    $aversion = explode(' ', $aresult[1]);
770
-                    $this->setVersion(str_replace(array('(', ')', ';'), '', $aversion[0]));
771
-                    $this->setBrowser(self::BROWSER_NETPOSITIVE);
772
-                    return true;
773
-                }
774
-            }
775
-            return false;
776
-        }
777
-
778
-        /**
779
-         * Determine if the browser is Galeon or not (last updated 1.7)
780
-         * @return boolean True if the browser is Galeon otherwise false
781
-         */
782
-        protected function checkBrowserGaleon()
783
-        {
784
-            if (stripos($this->_agent, 'galeon') !== false) {
785
-                $aresult = explode(' ', stristr($this->_agent, 'galeon'));
786
-                $aversion = explode('/', $aresult[0]);
787
-                if (isset($aversion[1])) {
788
-                    $this->setVersion($aversion[1]);
789
-                    $this->setBrowser(self::BROWSER_GALEON);
790
-                    return true;
791
-                }
792
-            }
793
-            return false;
794
-        }
795
-
796
-        /**
797
-         * Determine if the browser is Konqueror or not (last updated 1.7)
798
-         * @return boolean True if the browser is Konqueror otherwise false
799
-         */
800
-        protected function checkBrowserKonqueror()
801
-        {
802
-            if (stripos($this->_agent, 'Konqueror') !== false) {
803
-                $aresult = explode(' ', stristr($this->_agent, 'Konqueror'));
804
-                $aversion = explode('/', $aresult[0]);
805
-                if (isset($aversion[1])) {
806
-                    $this->setVersion($aversion[1]);
807
-                    $this->setBrowser(self::BROWSER_KONQUEROR);
808
-                    return true;
809
-                }
810
-            }
811
-            return false;
812
-        }
813
-
814
-        /**
815
-         * Determine if the browser is iCab or not (last updated 1.7)
816
-         * @return boolean True if the browser is iCab otherwise false
817
-         */
818
-        protected function checkBrowserIcab()
819
-        {
820
-            if (stripos($this->_agent, 'icab') !== false) {
821
-                $aversion = explode(' ', stristr(str_replace('/', ' ', $this->_agent), 'icab'));
822
-                if (isset($aversion[1])) {
823
-                    $this->setVersion($aversion[1]);
824
-                    $this->setBrowser(self::BROWSER_ICAB);
825
-                    return true;
826
-                }
827
-            }
828
-            return false;
829
-        }
830
-
831
-        /**
832
-         * Determine if the browser is OmniWeb or not (last updated 1.7)
833
-         * @return boolean True if the browser is OmniWeb otherwise false
834
-         */
835
-        protected function checkBrowserOmniWeb()
836
-        {
837
-            if (stripos($this->_agent, 'omniweb') !== false) {
838
-                $aresult = explode('/', stristr($this->_agent, 'omniweb'));
839
-                $aversion = explode(' ', isset($aresult[1]) ? $aresult[1] : "");
840
-                $this->setVersion($aversion[0]);
841
-                $this->setBrowser(self::BROWSER_OMNIWEB);
842
-                return true;
843
-            }
844
-            return false;
845
-        }
846
-
847
-        /**
848
-         * Determine if the browser is Phoenix or not (last updated 1.7)
849
-         * @return boolean True if the browser is Phoenix otherwise false
850
-         */
851
-        protected function checkBrowserPhoenix()
852
-        {
853
-            if (stripos($this->_agent, 'Phoenix') !== false) {
854
-                $aversion = explode('/', stristr($this->_agent, 'Phoenix'));
855
-                if (isset($aversion[1])) {
856
-                    $this->setVersion($aversion[1]);
857
-                    $this->setBrowser(self::BROWSER_PHOENIX);
858
-                    return true;
859
-                }
860
-            }
861
-            return false;
862
-        }
863
-
864
-        /**
865
-         * Determine if the browser is Firebird or not (last updated 1.7)
866
-         * @return boolean True if the browser is Firebird otherwise false
867
-         */
868
-        protected function checkBrowserFirebird()
869
-        {
870
-            if (stripos($this->_agent, 'Firebird') !== false) {
871
-                $aversion = explode('/', stristr($this->_agent, 'Firebird'));
872
-                if (isset($aversion[1])) {
873
-                    $this->setVersion($aversion[1]);
874
-                    $this->setBrowser(self::BROWSER_FIREBIRD);
875
-                    return true;
876
-                }
877
-            }
878
-            return false;
879
-        }
880
-
881
-        /**
882
-         * Determine if the browser is Netscape Navigator 9+ or not (last updated 1.7)
883
-         * NOTE: (http://browser.netscape.com/ - Official support ended on March 1st, 2008)
884
-         * @return boolean True if the browser is Netscape Navigator 9+ otherwise false
885
-         */
886
-        protected function checkBrowserNetscapeNavigator9Plus()
887
-        {
888
-            if (stripos($this->_agent, 'Firefox') !== false && preg_match('/Navigator\/([^ ]*)/i', $this->_agent, $matches)) {
889
-                $this->setVersion($matches[1]);
890
-                $this->setBrowser(self::BROWSER_NETSCAPE_NAVIGATOR);
891
-                return true;
892
-            } else if (stripos($this->_agent, 'Firefox') === false && preg_match('/Netscape6?\/([^ ]*)/i', $this->_agent, $matches)) {
893
-                $this->setVersion($matches[1]);
894
-                $this->setBrowser(self::BROWSER_NETSCAPE_NAVIGATOR);
895
-                return true;
896
-            }
897
-            return false;
898
-        }
899
-
900
-        /**
901
-         * Determine if the browser is Shiretoko or not (https://wiki.mozilla.org/Projects/shiretoko) (last updated 1.7)
902
-         * @return boolean True if the browser is Shiretoko otherwise false
903
-         */
904
-        protected function checkBrowserShiretoko()
905
-        {
906
-            if (stripos($this->_agent, 'Mozilla') !== false && preg_match('/Shiretoko\/([^ ]*)/i', $this->_agent, $matches)) {
907
-                $this->setVersion($matches[1]);
908
-                $this->setBrowser(self::BROWSER_SHIRETOKO);
909
-                return true;
910
-            }
911
-            return false;
912
-        }
913
-
914
-        /**
915
-         * Determine if the browser is Ice Cat or not (http://en.wikipedia.org/wiki/GNU_IceCat) (last updated 1.7)
916
-         * @return boolean True if the browser is Ice Cat otherwise false
917
-         */
918
-        protected function checkBrowserIceCat()
919
-        {
920
-            if (stripos($this->_agent, 'Mozilla') !== false && preg_match('/IceCat\/([^ ]*)/i', $this->_agent, $matches)) {
921
-                $this->setVersion($matches[1]);
922
-                $this->setBrowser(self::BROWSER_ICECAT);
923
-                return true;
924
-            }
925
-            return false;
926
-        }
927
-
928
-        /**
929
-         * Determine if the browser is Nokia or not (last updated 1.7)
930
-         * @return boolean True if the browser is Nokia otherwise false
931
-         */
932
-        protected function checkBrowserNokia()
933
-        {
934
-            if (preg_match("/Nokia([^\/]+)\/([^ SP]+)/i", $this->_agent, $matches)) {
935
-                $this->setVersion($matches[2]);
936
-                if (stripos($this->_agent, 'Series60') !== false || strpos($this->_agent, 'S60') !== false) {
937
-                    $this->setBrowser(self::BROWSER_NOKIA_S60);
938
-                } else {
939
-                    $this->setBrowser(self::BROWSER_NOKIA);
940
-                }
941
-                $this->setMobile(true);
942
-                return true;
943
-            }
944
-            return false;
945
-        }
946
-
947
-        /**
948
-         * Determine if the browser is Firefox or not (last updated 1.7)
949
-         * @return boolean True if the browser is Firefox otherwise false
950
-         */
951
-        protected function checkBrowserFirefox()
952
-        {
953
-            if (stripos($this->_agent, 'safari') === false) {
954
-                if (preg_match("/Firefox[\/ \(]([^ ;\)]+)/i", $this->_agent, $matches)) {
955
-                    $this->setVersion($matches[1]);
956
-                    $this->setBrowser(self::BROWSER_FIREFOX);
957
-                    //Firefox on Android
958
-                    if (stripos($this->_agent, 'Android') !== false) {
959
-                        if (stripos($this->_agent, 'Mobile') !== false) {
960
-                            $this->setMobile(true);
961
-                        } else {
962
-                            $this->setTablet(true);
963
-                        }
964
-                    }
965
-                    return true;
966
-                } else if (preg_match("/Firefox$/i", $this->_agent, $matches)) {
967
-                    $this->setVersion("");
968
-                    $this->setBrowser(self::BROWSER_FIREFOX);
969
-                    return true;
970
-                }
971
-            }
972
-            return false;
973
-        }
974
-
975
-        /**
976
-         * Determine if the browser is Firefox or not (last updated 1.7)
977
-         * @return boolean True if the browser is Firefox otherwise false
978
-         */
979
-        protected function checkBrowserIceweasel()
980
-        {
981
-            if (stripos($this->_agent, 'Iceweasel') !== false) {
982
-                $aresult = explode('/', stristr($this->_agent, 'Iceweasel'));
983
-                if (isset($aresult[1])) {
984
-                    $aversion = explode(' ', $aresult[1]);
985
-                    $this->setVersion($aversion[0]);
986
-                    $this->setBrowser(self::BROWSER_ICEWEASEL);
987
-                    return true;
988
-                }
989
-            }
990
-            return false;
991
-        }
992
-
993
-        /**
994
-         * Determine if the browser is Mozilla or not (last updated 1.7)
995
-         * @return boolean True if the browser is Mozilla otherwise false
996
-         */
997
-        protected function checkBrowserMozilla()
998
-        {
999
-            if (stripos($this->_agent, 'mozilla') !== false && preg_match('/rv:[0-9].[0-9][a-b]?/i', $this->_agent) && stripos($this->_agent, 'netscape') === false) {
1000
-                $aversion = explode(' ', stristr($this->_agent, 'rv:'));
1001
-                preg_match('/rv:[0-9].[0-9][a-b]?/i', $this->_agent, $aversion);
1002
-                $this->setVersion(str_replace('rv:', '', $aversion[0]));
1003
-                $this->setBrowser(self::BROWSER_MOZILLA);
1004
-                return true;
1005
-            } else if (stripos($this->_agent, 'mozilla') !== false && preg_match('/rv:[0-9]\.[0-9]/i', $this->_agent) && stripos($this->_agent, 'netscape') === false) {
1006
-                $aversion = explode('', stristr($this->_agent, 'rv:'));
1007
-                $this->setVersion(str_replace('rv:', '', $aversion[0]));
1008
-                $this->setBrowser(self::BROWSER_MOZILLA);
1009
-                return true;
1010
-            } else if (stripos($this->_agent, 'mozilla') !== false && preg_match('/mozilla\/([^ ]*)/i', $this->_agent, $matches) && stripos($this->_agent, 'netscape') === false) {
1011
-                $this->setVersion($matches[1]);
1012
-                $this->setBrowser(self::BROWSER_MOZILLA);
1013
-                return true;
1014
-            }
1015
-            return false;
1016
-        }
1017
-
1018
-        /**
1019
-         * Determine if the browser is Lynx or not (last updated 1.7)
1020
-         * @return boolean True if the browser is Lynx otherwise false
1021
-         */
1022
-        protected function checkBrowserLynx()
1023
-        {
1024
-            if (stripos($this->_agent, 'lynx') !== false) {
1025
-                $aresult = explode('/', stristr($this->_agent, 'Lynx'));
1026
-                $aversion = explode(' ', (isset($aresult[1]) ? $aresult[1] : ""));
1027
-                $this->setVersion($aversion[0]);
1028
-                $this->setBrowser(self::BROWSER_LYNX);
1029
-                return true;
1030
-            }
1031
-            return false;
1032
-        }
1033
-
1034
-        /**
1035
-         * Determine if the browser is Amaya or not (last updated 1.7)
1036
-         * @return boolean True if the browser is Amaya otherwise false
1037
-         */
1038
-        protected function checkBrowserAmaya()
1039
-        {
1040
-            if (stripos($this->_agent, 'amaya') !== false) {
1041
-                $aresult = explode('/', stristr($this->_agent, 'Amaya'));
1042
-                if (isset($aresult[1])) {
1043
-                    $aversion = explode(' ', $aresult[1]);
1044
-                    $this->setVersion($aversion[0]);
1045
-                    $this->setBrowser(self::BROWSER_AMAYA);
1046
-                    return true;
1047
-                }
1048
-            }
1049
-            return false;
1050
-        }
1051
-
1052
-        /**
1053
-         * Determine if the browser is Safari or not (last updated 1.7)
1054
-         * @return boolean True if the browser is Safari otherwise false
1055
-         */
1056
-        protected function checkBrowserSafari()
1057
-        {
1058
-            if (stripos($this->_agent, 'Safari') !== false
1059
-                && stripos($this->_agent, 'iPhone') === false
1060
-                && stripos($this->_agent, 'iPod') === false
1061
-            ) {
1062
-
1063
-                $aresult = explode('/', stristr($this->_agent, 'Version'));
1064
-                if (isset($aresult[1])) {
1065
-                    $aversion = explode(' ', $aresult[1]);
1066
-                    $this->setVersion($aversion[0]);
1067
-                } else {
1068
-                    $this->setVersion(self::VERSION_UNKNOWN);
1069
-                }
1070
-                $this->setBrowser(self::BROWSER_SAFARI);
1071
-                return true;
1072
-            }
1073
-            return false;
1074
-        }
1075
-
1076
-        /**
1077
-         * Detect if URL is loaded from FacebookExternalHit
1078
-         * @return boolean True if it detects FacebookExternalHit otherwise false
1079
-         */
1080
-        protected function checkFacebookExternalHit()
1081
-        {
1082
-            if (stristr($this->_agent, 'FacebookExternalHit')) {
1083
-                $this->setRobot(true);
1084
-                $this->setFacebook(true);
1085
-                return true;
1086
-            }
1087
-            return false;
1088
-        }
1089
-
1090
-        /**
1091
-         * Detect if URL is being loaded from internal Facebook browser
1092
-         * @return boolean True if it detects internal Facebook browser otherwise false
1093
-         */
1094
-        protected function checkForFacebookIos()
1095
-        {
1096
-            if (stristr($this->_agent, 'FBIOS')) {
1097
-                $this->setFacebook(true);
1098
-                return true;
1099
-            }
1100
-            return false;
1101
-        }
1102
-
1103
-        /**
1104
-         * Detect Version for the Safari browser on iOS devices
1105
-         * @return boolean True if it detects the version correctly otherwise false
1106
-         */
1107
-        protected function getSafariVersionOnIos()
1108
-        {
1109
-            $aresult = explode('/', stristr($this->_agent, 'Version'));
1110
-            if (isset($aresult[1])) {
1111
-                $aversion = explode(' ', $aresult[1]);
1112
-                $this->setVersion($aversion[0]);
1113
-                return true;
1114
-            }
1115
-            return false;
1116
-        }
1117
-
1118
-        /**
1119
-         * Detect Version for the Chrome browser on iOS devices
1120
-         * @return boolean True if it detects the version correctly otherwise false
1121
-         */
1122
-        protected function getChromeVersionOnIos()
1123
-        {
1124
-            $aresult = explode('/', stristr($this->_agent, 'CriOS'));
1125
-            if (isset($aresult[1])) {
1126
-                $aversion = explode(' ', $aresult[1]);
1127
-                $this->setVersion($aversion[0]);
1128
-                $this->setBrowser(self::BROWSER_CHROME);
1129
-                return true;
1130
-            }
1131
-            return false;
1132
-        }
1133
-
1134
-        /**
1135
-         * Determine if the browser is iPhone or not (last updated 1.7)
1136
-         * @return boolean True if the browser is iPhone otherwise false
1137
-         */
1138
-        protected function checkBrowseriPhone()
1139
-        {
1140
-            if (stripos($this->_agent, 'iPhone') !== false) {
1141
-                $this->setVersion(self::VERSION_UNKNOWN);
1142
-                $this->setBrowser(self::BROWSER_IPHONE);
1143
-                $this->getSafariVersionOnIos();
1144
-                $this->getChromeVersionOnIos();
1145
-                $this->checkForFacebookIos();
1146
-                $this->setMobile(true);
1147
-                return true;
1148
-            }
1149
-            return false;
1150
-        }
1151
-
1152
-        /**
1153
-         * Determine if the browser is iPad or not (last updated 1.7)
1154
-         * @return boolean True if the browser is iPad otherwise false
1155
-         */
1156
-        protected function checkBrowseriPad()
1157
-        {
1158
-            if (stripos($this->_agent, 'iPad') !== false) {
1159
-                $this->setVersion(self::VERSION_UNKNOWN);
1160
-                $this->setBrowser(self::BROWSER_IPAD);
1161
-                $this->getSafariVersionOnIos();
1162
-                $this->getChromeVersionOnIos();
1163
-                $this->checkForFacebookIos();
1164
-                $this->setTablet(true);
1165
-                return true;
1166
-            }
1167
-            return false;
1168
-        }
1169
-
1170
-        /**
1171
-         * Determine if the browser is iPod or not (last updated 1.7)
1172
-         * @return boolean True if the browser is iPod otherwise false
1173
-         */
1174
-        protected function checkBrowseriPod()
1175
-        {
1176
-            if (stripos($this->_agent, 'iPod') !== false) {
1177
-                $this->setVersion(self::VERSION_UNKNOWN);
1178
-                $this->setBrowser(self::BROWSER_IPOD);
1179
-                $this->getSafariVersionOnIos();
1180
-                $this->getChromeVersionOnIos();
1181
-                $this->checkForFacebookIos();
1182
-                $this->setMobile(true);
1183
-                return true;
1184
-            }
1185
-            return false;
1186
-        }
1187
-
1188
-        /**
1189
-         * Determine if the browser is Android or not (last updated 1.7)
1190
-         * @return boolean True if the browser is Android otherwise false
1191
-         */
1192
-        protected function checkBrowserAndroid()
1193
-        {
1194
-            if (stripos($this->_agent, 'Android') !== false) {
1195
-                $aresult = explode(' ', stristr($this->_agent, 'Android'));
1196
-                if (isset($aresult[1])) {
1197
-                    $aversion = explode(' ', $aresult[1]);
1198
-                    $this->setVersion($aversion[0]);
1199
-                } else {
1200
-                    $this->setVersion(self::VERSION_UNKNOWN);
1201
-                }
1202
-                if (stripos($this->_agent, 'Mobile') !== false) {
1203
-                    $this->setMobile(true);
1204
-                } else {
1205
-                    $this->setTablet(true);
1206
-                }
1207
-                $this->setBrowser(self::BROWSER_ANDROID);
1208
-                return true;
1209
-            }
1210
-            return false;
1211
-        }
1212
-
1213
-        /**
1214
-         * Determine the user's platform (last updated 1.7)
1215
-         */
1216
-        protected function checkPlatform()
1217
-        {
1218
-            if (stripos($this->_agent, 'windows') !== false) {
1219
-                $this->_platform = self::PLATFORM_WINDOWS;
1220
-            } else if (stripos($this->_agent, 'iPad') !== false) {
1221
-                $this->_platform = self::PLATFORM_IPAD;
1222
-            } else if (stripos($this->_agent, 'iPod') !== false) {
1223
-                $this->_platform = self::PLATFORM_IPOD;
1224
-            } else if (stripos($this->_agent, 'iPhone') !== false) {
1225
-                $this->_platform = self::PLATFORM_IPHONE;
1226
-            } elseif (stripos($this->_agent, 'mac') !== false) {
1227
-                $this->_platform = self::PLATFORM_APPLE;
1228
-            } elseif (stripos($this->_agent, 'android') !== false) {
1229
-                $this->_platform = self::PLATFORM_ANDROID;
1230
-            } elseif (stripos($this->_agent, 'linux') !== false) {
1231
-                $this->_platform = self::PLATFORM_LINUX;
1232
-            } else if (stripos($this->_agent, 'Nokia') !== false) {
1233
-                $this->_platform = self::PLATFORM_NOKIA;
1234
-            } else if (stripos($this->_agent, 'BlackBerry') !== false) {
1235
-                $this->_platform = self::PLATFORM_BLACKBERRY;
1236
-            } elseif (stripos($this->_agent, 'FreeBSD') !== false) {
1237
-                $this->_platform = self::PLATFORM_FREEBSD;
1238
-            } elseif (stripos($this->_agent, 'OpenBSD') !== false) {
1239
-                $this->_platform = self::PLATFORM_OPENBSD;
1240
-            } elseif (stripos($this->_agent, 'NetBSD') !== false) {
1241
-                $this->_platform = self::PLATFORM_NETBSD;
1242
-            } elseif (stripos($this->_agent, 'OpenSolaris') !== false) {
1243
-                $this->_platform = self::PLATFORM_OPENSOLARIS;
1244
-            } elseif (stripos($this->_agent, 'SunOS') !== false) {
1245
-                $this->_platform = self::PLATFORM_SUNOS;
1246
-            } elseif (stripos($this->_agent, 'OS\/2') !== false) {
1247
-                $this->_platform = self::PLATFORM_OS2;
1248
-            } elseif (stripos($this->_agent, 'BeOS') !== false) {
1249
-                $this->_platform = self::PLATFORM_BEOS;
1250
-            } elseif (stripos($this->_agent, 'win') !== false) {
1251
-                $this->_platform = self::PLATFORM_WINDOWS;
1252
-            }
1253
-
1254
-        }
1255
-    }
1256 45
\ No newline at end of file
46
+	class Browser
47
+	{
48
+		private $_agent = '';
49
+		private $_browser_name = '';
50
+		private $_version = '';
51
+		private $_platform = '';
52
+		private $_os = '';
53
+		private $_is_aol = false;
54
+		private $_is_mobile = false;
55
+		private $_is_tablet = false;
56
+		private $_is_robot = false;
57
+		private $_is_facebook = false;
58
+		private $_aol_version = '';
59
+
60
+		const BROWSER_UNKNOWN = 'unknown';
61
+		const VERSION_UNKNOWN = 'unknown';
62
+
63
+		const BROWSER_OPERA = 'Opera'; // http://www.opera.com/
64
+		const BROWSER_OPERA_MINI = 'Opera Mini'; // http://www.opera.com/mini/
65
+		const BROWSER_WEBTV = 'WebTV'; // http://www.webtv.net/pc/
66
+		const BROWSER_IE = 'Internet Explorer'; // http://www.microsoft.com/ie/
67
+		const BROWSER_POCKET_IE = 'Pocket Internet Explorer'; // http://en.wikipedia.org/wiki/Internet_Explorer_Mobile
68
+		const BROWSER_KONQUEROR = 'Konqueror'; // http://www.konqueror.org/
69
+		const BROWSER_ICAB = 'iCab'; // http://www.icab.de/
70
+		const BROWSER_OMNIWEB = 'OmniWeb'; // http://www.omnigroup.com/applications/omniweb/
71
+		const BROWSER_FIREBIRD = 'Firebird'; // http://www.ibphoenix.com/
72
+		const BROWSER_FIREFOX = 'Firefox'; // http://www.mozilla.com/en-US/firefox/firefox.html
73
+		const BROWSER_ICEWEASEL = 'Iceweasel'; // http://www.geticeweasel.org/
74
+		const BROWSER_SHIRETOKO = 'Shiretoko'; // http://wiki.mozilla.org/Projects/shiretoko
75
+		const BROWSER_MOZILLA = 'Mozilla'; // http://www.mozilla.com/en-US/
76
+		const BROWSER_AMAYA = 'Amaya'; // http://www.w3.org/Amaya/
77
+		const BROWSER_LYNX = 'Lynx'; // http://en.wikipedia.org/wiki/Lynx
78
+		const BROWSER_SAFARI = 'Safari'; // http://apple.com
79
+		const BROWSER_IPHONE = 'iPhone'; // http://apple.com
80
+		const BROWSER_IPOD = 'iPod'; // http://apple.com
81
+		const BROWSER_IPAD = 'iPad'; // http://apple.com
82
+		const BROWSER_CHROME = 'Chrome'; // http://www.google.com/chrome
83
+		const BROWSER_ANDROID = 'Android'; // http://www.android.com/
84
+		const BROWSER_GOOGLEBOT = 'GoogleBot'; // http://en.wikipedia.org/wiki/Googlebot
85
+		const BROWSER_SLURP = 'Yahoo! Slurp'; // http://en.wikipedia.org/wiki/Yahoo!_Slurp
86
+		const BROWSER_W3CVALIDATOR = 'W3C Validator'; // http://validator.w3.org/
87
+		const BROWSER_BLACKBERRY = 'BlackBerry'; // http://www.blackberry.com/
88
+		const BROWSER_ICECAT = 'IceCat'; // http://en.wikipedia.org/wiki/GNU_IceCat
89
+		const BROWSER_NOKIA_S60 = 'Nokia S60 OSS Browser'; // http://en.wikipedia.org/wiki/Web_Browser_for_S60
90
+		const BROWSER_NOKIA = 'Nokia Browser'; // * all other WAP-based browsers on the Nokia Platform
91
+		const BROWSER_MSN = 'MSN Browser'; // http://explorer.msn.com/
92
+		const BROWSER_MSNBOT = 'MSN Bot'; // http://search.msn.com/msnbot.htm
93
+		const BROWSER_BINGBOT = 'Bing Bot'; // http://en.wikipedia.org/wiki/Bingbot
94
+
95
+		const BROWSER_NETSCAPE_NAVIGATOR = 'Netscape Navigator'; // http://browser.netscape.com/ (DEPRECATED)
96
+		const BROWSER_GALEON = 'Galeon'; // http://galeon.sourceforge.net/ (DEPRECATED)
97
+		const BROWSER_NETPOSITIVE = 'NetPositive'; // http://en.wikipedia.org/wiki/NetPositive (DEPRECATED)
98
+		const BROWSER_PHOENIX = 'Phoenix'; // http://en.wikipedia.org/wiki/History_of_Mozilla_Firefox (DEPRECATED)
99
+
100
+		const PLATFORM_UNKNOWN = 'unknown';
101
+		const PLATFORM_WINDOWS = 'Windows';
102
+		const PLATFORM_WINDOWS_CE = 'Windows CE';
103
+		const PLATFORM_APPLE = 'Apple';
104
+		const PLATFORM_LINUX = 'Linux';
105
+		const PLATFORM_OS2 = 'OS/2';
106
+		const PLATFORM_BEOS = 'BeOS';
107
+		const PLATFORM_IPHONE = 'iPhone';
108
+		const PLATFORM_IPOD = 'iPod';
109
+		const PLATFORM_IPAD = 'iPad';
110
+		const PLATFORM_BLACKBERRY = 'BlackBerry';
111
+		const PLATFORM_NOKIA = 'Nokia';
112
+		const PLATFORM_FREEBSD = 'FreeBSD';
113
+		const PLATFORM_OPENBSD = 'OpenBSD';
114
+		const PLATFORM_NETBSD = 'NetBSD';
115
+		const PLATFORM_SUNOS = 'SunOS';
116
+		const PLATFORM_OPENSOLARIS = 'OpenSolaris';
117
+		const PLATFORM_ANDROID = 'Android';
118
+
119
+		const OPERATING_SYSTEM_UNKNOWN = 'unknown';
120
+
121
+		public function __construct($userAgent = "")
122
+		{
123
+			$this->reset();
124
+			if ($userAgent != "") {
125
+				$this->setUserAgent($userAgent);
126
+			} else {
127
+				$this->determine();
128
+			}
129
+		}
130
+
131
+		/**
132
+		 * Reset all properties
133
+		 */
134
+		public function reset()
135
+		{
136
+			$this->_agent = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : "";
137
+			$this->_browser_name = self::BROWSER_UNKNOWN;
138
+			$this->_version = self::VERSION_UNKNOWN;
139
+			$this->_platform = self::PLATFORM_UNKNOWN;
140
+			$this->_os = self::OPERATING_SYSTEM_UNKNOWN;
141
+			$this->_is_aol = false;
142
+			$this->_is_mobile = false;
143
+			$this->_is_tablet = false;
144
+			$this->_is_robot = false;
145
+			$this->_is_facebook = false;
146
+			$this->_aol_version = self::VERSION_UNKNOWN;
147
+		}
148
+
149
+		/**
150
+		 * Check to see if the specific browser is valid
151
+		 * @param string $browserName
152
+		 * @return bool True if the browser is the specified browser
153
+		 */
154
+		function isBrowser($browserName)
155
+		{
156
+			return (0 == strcasecmp($this->_browser_name, trim($browserName)));
157
+		}
158
+
159
+		/**
160
+		 * The name of the browser.  All return types are from the class contants
161
+		 * @return string Name of the browser
162
+		 */
163
+		public function getBrowser()
164
+		{
165
+			return $this->_browser_name;
166
+		}
167
+
168
+		/**
169
+		 * Set the name of the browser
170
+		 * @param $browser string The name of the Browser
171
+		 */
172
+		public function setBrowser($browser)
173
+		{
174
+			$this->_browser_name = $browser;
175
+		}
176
+
177
+		/**
178
+		 * The name of the platform.  All return types are from the class contants
179
+		 * @return string Name of the browser
180
+		 */
181
+		public function getPlatform()
182
+		{
183
+			return $this->_platform;
184
+		}
185
+
186
+		/**
187
+		 * Set the name of the platform
188
+		 * @param string $platform The name of the Platform
189
+		 */
190
+		public function setPlatform($platform)
191
+		{
192
+			$this->_platform = $platform;
193
+		}
194
+
195
+		/**
196
+		 * The version of the browser.
197
+		 * @return string Version of the browser (will only contain alpha-numeric characters and a period)
198
+		 */
199
+		public function getVersion()
200
+		{
201
+			return $this->_version;
202
+		}
203
+
204
+		/**
205
+		 * Set the version of the browser
206
+		 * @param string $version The version of the Browser
207
+		 */
208
+		public function setVersion($version)
209
+		{
210
+			$this->_version = preg_replace('/[^0-9,.,a-z,A-Z-]/', '', $version);
211
+		}
212
+
213
+		/**
214
+		 * The version of AOL.
215
+		 * @return string Version of AOL (will only contain alpha-numeric characters and a period)
216
+		 */
217
+		public function getAolVersion()
218
+		{
219
+			return $this->_aol_version;
220
+		}
221
+
222
+		/**
223
+		 * Set the version of AOL
224
+		 * @param string $version The version of AOL
225
+		 */
226
+		public function setAolVersion($version)
227
+		{
228
+			$this->_aol_version = preg_replace('/[^0-9,.,a-z,A-Z]/', '', $version);
229
+		}
230
+
231
+		/**
232
+		 * Is the browser from AOL?
233
+		 * @return boolean True if the browser is from AOL otherwise false
234
+		 */
235
+		public function isAol()
236
+		{
237
+			return $this->_is_aol;
238
+		}
239
+
240
+		/**
241
+		 * Is the browser from a mobile device?
242
+		 * @return boolean True if the browser is from a mobile device otherwise false
243
+		 */
244
+		public function isMobile()
245
+		{
246
+			return $this->_is_mobile;
247
+		}
248
+
249
+		/**
250
+		 * Is the browser from a tablet device?
251
+		 * @return boolean True if the browser is from a tablet device otherwise false
252
+		 */
253
+		public function isTablet()
254
+		{
255
+			return $this->_is_tablet;
256
+		}
257
+
258
+		/**
259
+		 * Is the browser from a robot (ex Slurp,GoogleBot)?
260
+		 * @return boolean True if the browser is from a robot otherwise false
261
+		 */
262
+		public function isRobot()
263
+		{
264
+			return $this->_is_robot;
265
+		}
266
+
267
+		/**
268
+		 * Is the browser from facebook?
269
+		 * @return boolean True if the browser is from facebook otherwise false
270
+		 */
271
+		public function isFacebook()
272
+		{
273
+			return $this->_is_facebook;
274
+		}
275
+
276
+		/**
277
+		 * Set the browser to be from AOL
278
+		 * @param $isAol
279
+		 */
280
+		public function setAol($isAol)
281
+		{
282
+			$this->_is_aol = $isAol;
283
+		}
284
+
285
+		/**
286
+		 * Set the Browser to be mobile
287
+		 * @param boolean $value is the browser a mobile browser or not
288
+		 */
289
+		protected function setMobile($value = true)
290
+		{
291
+			$this->_is_mobile = $value;
292
+		}
293
+
294
+		/**
295
+		 * Set the Browser to be tablet
296
+		 * @param boolean $value is the browser a tablet browser or not
297
+		 */
298
+		protected function setTablet($value = true)
299
+		{
300
+			$this->_is_tablet = $value;
301
+		}
302
+
303
+		/**
304
+		 * Set the Browser to be a robot
305
+		 * @param boolean $value is the browser a robot or not
306
+		 */
307
+		protected function setRobot($value = true)
308
+		{
309
+			$this->_is_robot = $value;
310
+		}
311
+
312
+		/**
313
+		 * Set the Browser to be a Facebook request
314
+		 * @param boolean $value is the browser a robot or not
315
+		 */
316
+		protected function setFacebook($value = true)
317
+		{
318
+			$this->_is_facebook = $value;
319
+		}
320
+
321
+		/**
322
+		 * Get the user agent value in use to determine the browser
323
+		 * @return string The user agent from the HTTP header
324
+		 */
325
+		public function getUserAgent()
326
+		{
327
+			return $this->_agent;
328
+		}
329
+
330
+		/**
331
+		 * Set the user agent value (the construction will use the HTTP header value - this will overwrite it)
332
+		 * @param string $agent_string The value for the User Agent
333
+		 */
334
+		public function setUserAgent($agent_string)
335
+		{
336
+			$this->reset();
337
+			$this->_agent = $agent_string;
338
+			$this->determine();
339
+		}
340
+
341
+		/**
342
+		 * Used to determine if the browser is actually "chromeframe"
343
+		 * @since 1.7
344
+		 * @return boolean True if the browser is using chromeframe
345
+		 */
346
+		public function isChromeFrame()
347
+		{
348
+			return (strpos($this->_agent, "chromeframe") !== false);
349
+		}
350
+
351
+		/**
352
+		 * Returns a formatted string with a summary of the details of the browser.
353
+		 * @return string formatted string with a summary of the browser
354
+		 */
355
+		public function __toString()
356
+		{
357
+			return "<strong>Browser Name:</strong> {$this->getBrowser()}<br/>\n" .
358
+			"<strong>Browser Version:</strong> {$this->getVersion()}<br/>\n" .
359
+			"<strong>Browser User Agent String:</strong> {$this->getUserAgent()}<br/>\n" .
360
+			"<strong>Platform:</strong> {$this->getPlatform()}<br/>";
361
+		}
362
+
363
+		/**
364
+		 * Protected routine to calculate and determine what the browser is in use (including platform)
365
+		 */
366
+		protected function determine()
367
+		{
368
+			$this->checkPlatform();
369
+			$this->checkBrowsers();
370
+			$this->checkForAol();
371
+		}
372
+
373
+		/**
374
+		 * Protected routine to determine the browser type
375
+		 * @return boolean True if the browser was detected otherwise false
376
+		 */
377
+		protected function checkBrowsers()
378
+		{
379
+			return (
380
+				// well-known, well-used
381
+				// Special Notes:
382
+				// (1) Opera must be checked before FireFox due to the odd
383
+				//     user agents used in some older versions of Opera
384
+				// (2) WebTV is strapped onto Internet Explorer so we must
385
+				//     check for WebTV before IE
386
+				// (3) (deprecated) Galeon is based on Firefox and needs to be
387
+				//     tested before Firefox is tested
388
+				// (4) OmniWeb is based on Safari so OmniWeb check must occur
389
+				//     before Safari
390
+				// (5) Netscape 9+ is based on Firefox so Netscape checks
391
+				//     before FireFox are necessary
392
+				$this->checkBrowserWebTv() ||
393
+				$this->checkBrowserInternetExplorer() ||
394
+				$this->checkBrowserOpera() ||
395
+				$this->checkBrowserGaleon() ||
396
+				$this->checkBrowserNetscapeNavigator9Plus() ||
397
+				$this->checkBrowserFirefox() ||
398
+				$this->checkBrowserChrome() ||
399
+				$this->checkBrowserOmniWeb() ||
400
+
401
+				// common mobile
402
+				$this->checkBrowserAndroid() ||
403
+				$this->checkBrowseriPad() ||
404
+				$this->checkBrowseriPod() ||
405
+				$this->checkBrowseriPhone() ||
406
+				$this->checkBrowserBlackBerry() ||
407
+				$this->checkBrowserNokia() ||
408
+
409
+				// common bots
410
+				$this->checkBrowserGoogleBot() ||
411
+				$this->checkBrowserMSNBot() ||
412
+				$this->checkBrowserBingBot() ||
413
+				$this->checkBrowserSlurp() ||
414
+
415
+				// check for facebook external hit when loading URL
416
+				$this->checkFacebookExternalHit() ||
417
+
418
+				// WebKit base check (post mobile and others)
419
+				$this->checkBrowserSafari() ||
420
+
421
+				// everyone else
422
+				$this->checkBrowserNetPositive() ||
423
+				$this->checkBrowserFirebird() ||
424
+				$this->checkBrowserKonqueror() ||
425
+				$this->checkBrowserIcab() ||
426
+				$this->checkBrowserPhoenix() ||
427
+				$this->checkBrowserAmaya() ||
428
+				$this->checkBrowserLynx() ||
429
+				$this->checkBrowserShiretoko() ||
430
+				$this->checkBrowserIceCat() ||
431
+				$this->checkBrowserIceweasel() ||
432
+				$this->checkBrowserW3CValidator() ||
433
+				$this->checkBrowserMozilla() /* Mozilla is such an open standard that you must check it last */
434
+			);
435
+		}
436
+
437
+		/**
438
+		 * Determine if the user is using a BlackBerry (last updated 1.7)
439
+		 * @return boolean True if the browser is the BlackBerry browser otherwise false
440
+		 */
441
+		protected function checkBrowserBlackBerry()
442
+		{
443
+			if (stripos($this->_agent, 'blackberry') !== false) {
444
+				$aresult = explode("/", stristr($this->_agent, "BlackBerry"));
445
+				if (isset($aresult[1])) {
446
+					$aversion = explode(' ', $aresult[1]);
447
+					$this->setVersion($aversion[0]);
448
+					$this->_browser_name = self::BROWSER_BLACKBERRY;
449
+					$this->setMobile(true);
450
+					return true;
451
+				}
452
+			}
453
+			return false;
454
+		}
455
+
456
+		/**
457
+		 * Determine if the user is using an AOL User Agent (last updated 1.7)
458
+		 * @return boolean True if the browser is from AOL otherwise false
459
+		 */
460
+		protected function checkForAol()
461
+		{
462
+			$this->setAol(false);
463
+			$this->setAolVersion(self::VERSION_UNKNOWN);
464
+
465
+			if (stripos($this->_agent, 'aol') !== false) {
466
+				$aversion = explode(' ', stristr($this->_agent, 'AOL'));
467
+				if (isset($aversion[1])) {
468
+					$this->setAol(true);
469
+					$this->setAolVersion(preg_replace('/[^0-9\.a-z]/i', '', $aversion[1]));
470
+					return true;
471
+				}
472
+			}
473
+			return false;
474
+		}
475
+
476
+		/**
477
+		 * Determine if the browser is the GoogleBot or not (last updated 1.7)
478
+		 * @return boolean True if the browser is the GoogletBot otherwise false
479
+		 */
480
+		protected function checkBrowserGoogleBot()
481
+		{
482
+			if (stripos($this->_agent, 'googlebot') !== false) {
483
+				$aresult = explode('/', stristr($this->_agent, 'googlebot'));
484
+				if (isset($aresult[1])) {
485
+					$aversion = explode(' ', $aresult[1]);
486
+					$this->setVersion(str_replace(';', '', $aversion[0]));
487
+					$this->_browser_name = self::BROWSER_GOOGLEBOT;
488
+					$this->setRobot(true);
489
+					return true;
490
+				}
491
+			}
492
+			return false;
493
+		}
494
+
495
+		/**
496
+		 * Determine if the browser is the MSNBot or not (last updated 1.9)
497
+		 * @return boolean True if the browser is the MSNBot otherwise false
498
+		 */
499
+		protected function checkBrowserMSNBot()
500
+		{
501
+			if (stripos($this->_agent, "msnbot") !== false) {
502
+				$aresult = explode("/", stristr($this->_agent, "msnbot"));
503
+				if (isset($aresult[1])) {
504
+					$aversion = explode(" ", $aresult[1]);
505
+					$this->setVersion(str_replace(";", "", $aversion[0]));
506
+					$this->_browser_name = self::BROWSER_MSNBOT;
507
+					$this->setRobot(true);
508
+					return true;
509
+				}
510
+			}
511
+			return false;
512
+		}
513
+
514
+		/**
515
+		 * Determine if the browser is the BingBot or not (last updated 1.9)
516
+		 * @return boolean True if the browser is the BingBot otherwise false
517
+		 */
518
+		protected function checkBrowserBingBot()
519
+		{
520
+			if (stripos($this->_agent, "bingbot") !== false) {
521
+				$aresult = explode("/", stristr($this->_agent, "bingbot"));
522
+				if (isset($aresult[1])) {
523
+					$aversion = explode(" ", $aresult[1]);
524
+					$this->setVersion(str_replace(";", "", $aversion[0]));
525
+					$this->_browser_name = self::BROWSER_BINGBOT;
526
+					$this->setRobot(true);
527
+					return true;
528
+				}
529
+			}
530
+			return false;
531
+		}
532
+
533
+		/**
534
+		 * Determine if the browser is the W3C Validator or not (last updated 1.7)
535
+		 * @return boolean True if the browser is the W3C Validator otherwise false
536
+		 */
537
+		protected function checkBrowserW3CValidator()
538
+		{
539
+			if (stripos($this->_agent, 'W3C-checklink') !== false) {
540
+				$aresult = explode('/', stristr($this->_agent, 'W3C-checklink'));
541
+				if (isset($aresult[1])) {
542
+					$aversion = explode(' ', $aresult[1]);
543
+					$this->setVersion($aversion[0]);
544
+					$this->_browser_name = self::BROWSER_W3CVALIDATOR;
545
+					return true;
546
+				}
547
+			} else if (stripos($this->_agent, 'W3C_Validator') !== false) {
548
+				// Some of the Validator versions do not delineate w/ a slash - add it back in
549
+				$ua = str_replace("W3C_Validator ", "W3C_Validator/", $this->_agent);
550
+				$aresult = explode('/', stristr($ua, 'W3C_Validator'));
551
+				if (isset($aresult[1])) {
552
+					$aversion = explode(' ', $aresult[1]);
553
+					$this->setVersion($aversion[0]);
554
+					$this->_browser_name = self::BROWSER_W3CVALIDATOR;
555
+					return true;
556
+				}
557
+			} else if (stripos($this->_agent, 'W3C-mobileOK') !== false) {
558
+				$this->_browser_name = self::BROWSER_W3CVALIDATOR;
559
+				$this->setMobile(true);
560
+				return true;
561
+			}
562
+			return false;
563
+		}
564
+
565
+		/**
566
+		 * Determine if the browser is the Yahoo! Slurp Robot or not (last updated 1.7)
567
+		 * @return boolean True if the browser is the Yahoo! Slurp Robot otherwise false
568
+		 */
569
+		protected function checkBrowserSlurp()
570
+		{
571
+			if (stripos($this->_agent, 'slurp') !== false) {
572
+				$aresult = explode('/', stristr($this->_agent, 'Slurp'));
573
+				if (isset($aresult[1])) {
574
+					$aversion = explode(' ', $aresult[1]);
575
+					$this->setVersion($aversion[0]);
576
+					$this->_browser_name = self::BROWSER_SLURP;
577
+					$this->setRobot(true);
578
+					$this->setMobile(false);
579
+					return true;
580
+				}
581
+			}
582
+			return false;
583
+		}
584
+
585
+		/**
586
+		 * Determine if the browser is Internet Explorer or not (last updated 1.7)
587
+		 * @return boolean True if the browser is Internet Explorer otherwise false
588
+		 */
589
+		protected function checkBrowserInternetExplorer()
590
+		{
591
+			//  Test for IE11
592
+			if (stripos($this->_agent, 'Trident/7.0; rv:11.0') !== false) {
593
+				$this->setBrowser(self::BROWSER_IE);
594
+				$this->setVersion('11.0');
595
+				return true;
596
+			} // Test for v1 - v1.5 IE
597
+			else if (stripos($this->_agent, 'microsoft internet explorer') !== false) {
598
+				$this->setBrowser(self::BROWSER_IE);
599
+				$this->setVersion('1.0');
600
+				$aresult = stristr($this->_agent, '/');
601
+				if (preg_match('/308|425|426|474|0b1/i', $aresult)) {
602
+					$this->setVersion('1.5');
603
+				}
604
+				return true;
605
+			} // Test for versions > 1.5
606
+			else if (stripos($this->_agent, 'msie') !== false && stripos($this->_agent, 'opera') === false) {
607
+				// See if the browser is the odd MSN Explorer
608
+				if (stripos($this->_agent, 'msnb') !== false) {
609
+					$aresult = explode(' ', stristr(str_replace(';', '; ', $this->_agent), 'MSN'));
610
+					if (isset($aresult[1])) {
611
+						$this->setBrowser(self::BROWSER_MSN);
612
+						$this->setVersion(str_replace(array('(', ')', ';'), '', $aresult[1]));
613
+						return true;
614
+					}
615
+				}
616
+				$aresult = explode(' ', stristr(str_replace(';', '; ', $this->_agent), 'msie'));
617
+				if (isset($aresult[1])) {
618
+					$this->setBrowser(self::BROWSER_IE);
619
+					$this->setVersion(str_replace(array('(', ')', ';'), '', $aresult[1]));
620
+					if (stripos($this->_agent, 'IEMobile') !== false) {
621
+						$this->setBrowser(self::BROWSER_POCKET_IE);
622
+						$this->setMobile(true);
623
+					}
624
+					return true;
625
+				}
626
+			} // Test for versions > IE 10
627
+			else if (stripos($this->_agent, 'trident') !== false) {
628
+				$this->setBrowser(self::BROWSER_IE);
629
+				$result = explode('rv:', $this->_agent);
630
+				if (isset($result[1])) {
631
+					$this->setVersion(preg_replace('/[^0-9.]+/', '', $result[1]));
632
+					$this->_agent = str_replace(array("Mozilla", "Gecko"), "MSIE", $this->_agent);
633
+				}
634
+			} // Test for Pocket IE
635
+			else if (stripos($this->_agent, 'mspie') !== false || stripos($this->_agent, 'pocket') !== false) {
636
+				$aresult = explode(' ', stristr($this->_agent, 'mspie'));
637
+				if (isset($aresult[1])) {
638
+					$this->setPlatform(self::PLATFORM_WINDOWS_CE);
639
+					$this->setBrowser(self::BROWSER_POCKET_IE);
640
+					$this->setMobile(true);
641
+
642
+					if (stripos($this->_agent, 'mspie') !== false) {
643
+						$this->setVersion($aresult[1]);
644
+					} else {
645
+						$aversion = explode('/', $this->_agent);
646
+						if (isset($aversion[1])) {
647
+							$this->setVersion($aversion[1]);
648
+						}
649
+					}
650
+					return true;
651
+				}
652
+			}
653
+			return false;
654
+		}
655
+
656
+		/**
657
+		 * Determine if the browser is Opera or not (last updated 1.7)
658
+		 * @return boolean True if the browser is Opera otherwise false
659
+		 */
660
+		protected function checkBrowserOpera()
661
+		{
662
+			if (stripos($this->_agent, 'opera mini') !== false) {
663
+				$resultant = stristr($this->_agent, 'opera mini');
664
+				if (preg_match('/\//', $resultant)) {
665
+					$aresult = explode('/', $resultant);
666
+					if (isset($aresult[1])) {
667
+						$aversion = explode(' ', $aresult[1]);
668
+						$this->setVersion($aversion[0]);
669
+					}
670
+				} else {
671
+					$aversion = explode(' ', stristr($resultant, 'opera mini'));
672
+					if (isset($aversion[1])) {
673
+						$this->setVersion($aversion[1]);
674
+					}
675
+				}
676
+				$this->_browser_name = self::BROWSER_OPERA_MINI;
677
+				$this->setMobile(true);
678
+				return true;
679
+			} else if (stripos($this->_agent, 'opera') !== false) {
680
+				$resultant = stristr($this->_agent, 'opera');
681
+				if (preg_match('/Version\/(1*.*)$/', $resultant, $matches)) {
682
+					$this->setVersion($matches[1]);
683
+				} else if (preg_match('/\//', $resultant)) {
684
+					$aresult = explode('/', str_replace("(", " ", $resultant));
685
+					if (isset($aresult[1])) {
686
+						$aversion = explode(' ', $aresult[1]);
687
+						$this->setVersion($aversion[0]);
688
+					}
689
+				} else {
690
+					$aversion = explode(' ', stristr($resultant, 'opera'));
691
+					$this->setVersion(isset($aversion[1]) ? $aversion[1] : "");
692
+				}
693
+				if (stripos($this->_agent, 'Opera Mobi') !== false) {
694
+					$this->setMobile(true);
695
+				}
696
+				$this->_browser_name = self::BROWSER_OPERA;
697
+				return true;
698
+			} else if (stripos($this->_agent, 'OPR') !== false) {
699
+				$resultant = stristr($this->_agent, 'OPR');
700
+				if (preg_match('/\//', $resultant)) {
701
+					$aresult = explode('/', str_replace("(", " ", $resultant));
702
+					if (isset($aresult[1])) {
703
+						$aversion = explode(' ', $aresult[1]);
704
+						$this->setVersion($aversion[0]);
705
+					}
706
+				}
707
+				if (stripos($this->_agent, 'Mobile') !== false) {
708
+					$this->setMobile(true);
709
+				}
710
+				$this->_browser_name = self::BROWSER_OPERA;
711
+				return true;
712
+			}
713
+			return false;
714
+		}
715
+
716
+		/**
717
+		 * Determine if the browser is Chrome or not (last updated 1.7)
718
+		 * @return boolean True if the browser is Chrome otherwise false
719
+		 */
720
+		protected function checkBrowserChrome()
721
+		{
722
+			if (stripos($this->_agent, 'Chrome') !== false) {
723
+				$aresult = explode('/', stristr($this->_agent, 'Chrome'));
724
+				if (isset($aresult[1])) {
725
+					$aversion = explode(' ', $aresult[1]);
726
+					$this->setVersion($aversion[0]);
727
+					$this->setBrowser(self::BROWSER_CHROME);
728
+					//Chrome on Android
729
+					if (stripos($this->_agent, 'Android') !== false) {
730
+						if (stripos($this->_agent, 'Mobile') !== false) {
731
+							$this->setMobile(true);
732
+						} else {
733
+							$this->setTablet(true);
734
+						}
735
+					}
736
+					return true;
737
+				}
738
+			}
739
+			return false;
740
+		}
741
+
742
+
743
+		/**
744
+		 * Determine if the browser is WebTv or not (last updated 1.7)
745
+		 * @return boolean True if the browser is WebTv otherwise false
746
+		 */
747
+		protected function checkBrowserWebTv()
748
+		{
749
+			if (stripos($this->_agent, 'webtv') !== false) {
750
+				$aresult = explode('/', stristr($this->_agent, 'webtv'));
751
+				if (isset($aresult[1])) {
752
+					$aversion = explode(' ', $aresult[1]);
753
+					$this->setVersion($aversion[0]);
754
+					$this->setBrowser(self::BROWSER_WEBTV);
755
+					return true;
756
+				}
757
+			}
758
+			return false;
759
+		}
760
+
761
+		/**
762
+		 * Determine if the browser is NetPositive or not (last updated 1.7)
763
+		 * @return boolean True if the browser is NetPositive otherwise false
764
+		 */
765
+		protected function checkBrowserNetPositive()
766
+		{
767
+			if (stripos($this->_agent, 'NetPositive') !== false) {
768
+				$aresult = explode('/', stristr($this->_agent, 'NetPositive'));
769
+				if (isset($aresult[1])) {
770
+					$aversion = explode(' ', $aresult[1]);
771
+					$this->setVersion(str_replace(array('(', ')', ';'), '', $aversion[0]));
772
+					$this->setBrowser(self::BROWSER_NETPOSITIVE);
773
+					return true;
774
+				}
775
+			}
776
+			return false;
777
+		}
778
+
779
+		/**
780
+		 * Determine if the browser is Galeon or not (last updated 1.7)
781
+		 * @return boolean True if the browser is Galeon otherwise false
782
+		 */
783
+		protected function checkBrowserGaleon()
784
+		{
785
+			if (stripos($this->_agent, 'galeon') !== false) {
786
+				$aresult = explode(' ', stristr($this->_agent, 'galeon'));
787
+				$aversion = explode('/', $aresult[0]);
788
+				if (isset($aversion[1])) {
789
+					$this->setVersion($aversion[1]);
790
+					$this->setBrowser(self::BROWSER_GALEON);
791
+					return true;
792
+				}
793
+			}
794
+			return false;
795
+		}
796
+
797
+		/**
798
+		 * Determine if the browser is Konqueror or not (last updated 1.7)
799
+		 * @return boolean True if the browser is Konqueror otherwise false
800
+		 */
801
+		protected function checkBrowserKonqueror()
802
+		{
803
+			if (stripos($this->_agent, 'Konqueror') !== false) {
804
+				$aresult = explode(' ', stristr($this->_agent, 'Konqueror'));
805
+				$aversion = explode('/', $aresult[0]);
806
+				if (isset($aversion[1])) {
807
+					$this->setVersion($aversion[1]);
808
+					$this->setBrowser(self::BROWSER_KONQUEROR);
809
+					return true;
810
+				}
811
+			}
812
+			return false;
813
+		}
814
+
815
+		/**
816
+		 * Determine if the browser is iCab or not (last updated 1.7)
817
+		 * @return boolean True if the browser is iCab otherwise false
818
+		 */
819
+		protected function checkBrowserIcab()
820
+		{
821
+			if (stripos($this->_agent, 'icab') !== false) {
822
+				$aversion = explode(' ', stristr(str_replace('/', ' ', $this->_agent), 'icab'));
823
+				if (isset($aversion[1])) {
824
+					$this->setVersion($aversion[1]);
825
+					$this->setBrowser(self::BROWSER_ICAB);
826
+					return true;
827
+				}
828
+			}
829
+			return false;
830
+		}
831
+
832
+		/**
833
+		 * Determine if the browser is OmniWeb or not (last updated 1.7)
834
+		 * @return boolean True if the browser is OmniWeb otherwise false
835
+		 */
836
+		protected function checkBrowserOmniWeb()
837
+		{
838
+			if (stripos($this->_agent, 'omniweb') !== false) {
839
+				$aresult = explode('/', stristr($this->_agent, 'omniweb'));
840
+				$aversion = explode(' ', isset($aresult[1]) ? $aresult[1] : "");
841
+				$this->setVersion($aversion[0]);
842
+				$this->setBrowser(self::BROWSER_OMNIWEB);
843
+				return true;
844
+			}
845
+			return false;
846
+		}
847
+
848
+		/**
849
+		 * Determine if the browser is Phoenix or not (last updated 1.7)
850
+		 * @return boolean True if the browser is Phoenix otherwise false
851
+		 */
852
+		protected function checkBrowserPhoenix()
853
+		{
854
+			if (stripos($this->_agent, 'Phoenix') !== false) {
855
+				$aversion = explode('/', stristr($this->_agent, 'Phoenix'));
856
+				if (isset($aversion[1])) {
857
+					$this->setVersion($aversion[1]);
858
+					$this->setBrowser(self::BROWSER_PHOENIX);
859
+					return true;
860
+				}
861
+			}
862
+			return false;
863
+		}
864
+
865
+		/**
866
+		 * Determine if the browser is Firebird or not (last updated 1.7)
867
+		 * @return boolean True if the browser is Firebird otherwise false
868
+		 */
869
+		protected function checkBrowserFirebird()
870
+		{
871
+			if (stripos($this->_agent, 'Firebird') !== false) {
872
+				$aversion = explode('/', stristr($this->_agent, 'Firebird'));
873
+				if (isset($aversion[1])) {
874
+					$this->setVersion($aversion[1]);
875
+					$this->setBrowser(self::BROWSER_FIREBIRD);
876
+					return true;
877
+				}
878
+			}
879
+			return false;
880
+		}
881
+
882
+		/**
883
+		 * Determine if the browser is Netscape Navigator 9+ or not (last updated 1.7)
884
+		 * NOTE: (http://browser.netscape.com/ - Official support ended on March 1st, 2008)
885
+		 * @return boolean True if the browser is Netscape Navigator 9+ otherwise false
886
+		 */
887
+		protected function checkBrowserNetscapeNavigator9Plus()
888
+		{
889
+			if (stripos($this->_agent, 'Firefox') !== false && preg_match('/Navigator\/([^ ]*)/i', $this->_agent, $matches)) {
890
+				$this->setVersion($matches[1]);
891
+				$this->setBrowser(self::BROWSER_NETSCAPE_NAVIGATOR);
892
+				return true;
893
+			} else if (stripos($this->_agent, 'Firefox') === false && preg_match('/Netscape6?\/([^ ]*)/i', $this->_agent, $matches)) {
894
+				$this->setVersion($matches[1]);
895
+				$this->setBrowser(self::BROWSER_NETSCAPE_NAVIGATOR);
896
+				return true;
897
+			}
898
+			return false;
899
+		}
900
+
901
+		/**
902
+		 * Determine if the browser is Shiretoko or not (https://wiki.mozilla.org/Projects/shiretoko) (last updated 1.7)
903
+		 * @return boolean True if the browser is Shiretoko otherwise false
904
+		 */
905
+		protected function checkBrowserShiretoko()
906
+		{
907
+			if (stripos($this->_agent, 'Mozilla') !== false && preg_match('/Shiretoko\/([^ ]*)/i', $this->_agent, $matches)) {
908
+				$this->setVersion($matches[1]);
909
+				$this->setBrowser(self::BROWSER_SHIRETOKO);
910
+				return true;
911
+			}
912
+			return false;
913
+		}
914
+
915
+		/**
916
+		 * Determine if the browser is Ice Cat or not (http://en.wikipedia.org/wiki/GNU_IceCat) (last updated 1.7)
917
+		 * @return boolean True if the browser is Ice Cat otherwise false
918
+		 */
919
+		protected function checkBrowserIceCat()
920
+		{
921
+			if (stripos($this->_agent, 'Mozilla') !== false && preg_match('/IceCat\/([^ ]*)/i', $this->_agent, $matches)) {
922
+				$this->setVersion($matches[1]);
923
+				$this->setBrowser(self::BROWSER_ICECAT);
924
+				return true;
925
+			}
926
+			return false;
927
+		}
928
+
929
+		/**
930
+		 * Determine if the browser is Nokia or not (last updated 1.7)
931
+		 * @return boolean True if the browser is Nokia otherwise false
932
+		 */
933
+		protected function checkBrowserNokia()
934
+		{
935
+			if (preg_match("/Nokia([^\/]+)\/([^ SP]+)/i", $this->_agent, $matches)) {
936
+				$this->setVersion($matches[2]);
937
+				if (stripos($this->_agent, 'Series60') !== false || strpos($this->_agent, 'S60') !== false) {
938
+					$this->setBrowser(self::BROWSER_NOKIA_S60);
939
+				} else {
940
+					$this->setBrowser(self::BROWSER_NOKIA);
941
+				}
942
+				$this->setMobile(true);
943
+				return true;
944
+			}
945
+			return false;
946
+		}
947
+
948
+		/**
949
+		 * Determine if the browser is Firefox or not (last updated 1.7)
950
+		 * @return boolean True if the browser is Firefox otherwise false
951
+		 */
952
+		protected function checkBrowserFirefox()
953
+		{
954
+			if (stripos($this->_agent, 'safari') === false) {
955
+				if (preg_match("/Firefox[\/ \(]([^ ;\)]+)/i", $this->_agent, $matches)) {
956
+					$this->setVersion($matches[1]);
957
+					$this->setBrowser(self::BROWSER_FIREFOX);
958
+					//Firefox on Android
959
+					if (stripos($this->_agent, 'Android') !== false) {
960
+						if (stripos($this->_agent, 'Mobile') !== false) {
961
+							$this->setMobile(true);
962
+						} else {
963
+							$this->setTablet(true);
964
+						}
965
+					}
966
+					return true;
967
+				} else if (preg_match("/Firefox$/i", $this->_agent, $matches)) {
968
+					$this->setVersion("");
969
+					$this->setBrowser(self::BROWSER_FIREFOX);
970
+					return true;
971
+				}
972
+			}
973
+			return false;
974
+		}
975
+
976
+		/**
977
+		 * Determine if the browser is Firefox or not (last updated 1.7)
978
+		 * @return boolean True if the browser is Firefox otherwise false
979
+		 */
980
+		protected function checkBrowserIceweasel()
981
+		{
982
+			if (stripos($this->_agent, 'Iceweasel') !== false) {
983
+				$aresult = explode('/', stristr($this->_agent, 'Iceweasel'));
984
+				if (isset($aresult[1])) {
985
+					$aversion = explode(' ', $aresult[1]);
986
+					$this->setVersion($aversion[0]);
987
+					$this->setBrowser(self::BROWSER_ICEWEASEL);
988
+					return true;
989
+				}
990
+			}
991
+			return false;
992
+		}
993
+
994
+		/**
995
+		 * Determine if the browser is Mozilla or not (last updated 1.7)
996
+		 * @return boolean True if the browser is Mozilla otherwise false
997
+		 */
998
+		protected function checkBrowserMozilla()
999
+		{
1000
+			if (stripos($this->_agent, 'mozilla') !== false && preg_match('/rv:[0-9].[0-9][a-b]?/i', $this->_agent) && stripos($this->_agent, 'netscape') === false) {
1001
+				$aversion = explode(' ', stristr($this->_agent, 'rv:'));
1002
+				preg_match('/rv:[0-9].[0-9][a-b]?/i', $this->_agent, $aversion);
1003
+				$this->setVersion(str_replace('rv:', '', $aversion[0]));
1004
+				$this->setBrowser(self::BROWSER_MOZILLA);
1005
+				return true;
1006
+			} else if (stripos($this->_agent, 'mozilla') !== false && preg_match('/rv:[0-9]\.[0-9]/i', $this->_agent) && stripos($this->_agent, 'netscape') === false) {
1007
+				$aversion = explode('', stristr($this->_agent, 'rv:'));
1008
+				$this->setVersion(str_replace('rv:', '', $aversion[0]));
1009
+				$this->setBrowser(self::BROWSER_MOZILLA);
1010
+				return true;
1011
+			} else if (stripos($this->_agent, 'mozilla') !== false && preg_match('/mozilla\/([^ ]*)/i', $this->_agent, $matches) && stripos($this->_agent, 'netscape') === false) {
1012
+				$this->setVersion($matches[1]);
1013
+				$this->setBrowser(self::BROWSER_MOZILLA);
1014
+				return true;
1015
+			}
1016
+			return false;
1017
+		}
1018
+
1019
+		/**
1020
+		 * Determine if the browser is Lynx or not (last updated 1.7)
1021
+		 * @return boolean True if the browser is Lynx otherwise false
1022
+		 */
1023
+		protected function checkBrowserLynx()
1024
+		{
1025
+			if (stripos($this->_agent, 'lynx') !== false) {
1026
+				$aresult = explode('/', stristr($this->_agent, 'Lynx'));
1027
+				$aversion = explode(' ', (isset($aresult[1]) ? $aresult[1] : ""));
1028
+				$this->setVersion($aversion[0]);
1029
+				$this->setBrowser(self::BROWSER_LYNX);
1030
+				return true;
1031
+			}
1032
+			return false;
1033
+		}
1034
+
1035
+		/**
1036
+		 * Determine if the browser is Amaya or not (last updated 1.7)
1037
+		 * @return boolean True if the browser is Amaya otherwise false
1038
+		 */
1039
+		protected function checkBrowserAmaya()
1040
+		{
1041
+			if (stripos($this->_agent, 'amaya') !== false) {
1042
+				$aresult = explode('/', stristr($this->_agent, 'Amaya'));
1043
+				if (isset($aresult[1])) {
1044
+					$aversion = explode(' ', $aresult[1]);
1045
+					$this->setVersion($aversion[0]);
1046
+					$this->setBrowser(self::BROWSER_AMAYA);
1047
+					return true;
1048
+				}
1049
+			}
1050
+			return false;
1051
+		}
1052
+
1053
+		/**
1054
+		 * Determine if the browser is Safari or not (last updated 1.7)
1055
+		 * @return boolean True if the browser is Safari otherwise false
1056
+		 */
1057
+		protected function checkBrowserSafari()
1058
+		{
1059
+			if (stripos($this->_agent, 'Safari') !== false
1060
+				&& stripos($this->_agent, 'iPhone') === false
1061
+				&& stripos($this->_agent, 'iPod') === false
1062
+			) {
1063
+
1064
+				$aresult = explode('/', stristr($this->_agent, 'Version'));
1065
+				if (isset($aresult[1])) {
1066
+					$aversion = explode(' ', $aresult[1]);
1067
+					$this->setVersion($aversion[0]);
1068
+				} else {
1069
+					$this->setVersion(self::VERSION_UNKNOWN);
1070
+				}
1071
+				$this->setBrowser(self::BROWSER_SAFARI);
1072
+				return true;
1073
+			}
1074
+			return false;
1075
+		}
1076
+
1077
+		/**
1078
+		 * Detect if URL is loaded from FacebookExternalHit
1079
+		 * @return boolean True if it detects FacebookExternalHit otherwise false
1080
+		 */
1081
+		protected function checkFacebookExternalHit()
1082
+		{
1083
+			if (stristr($this->_agent, 'FacebookExternalHit')) {
1084
+				$this->setRobot(true);
1085
+				$this->setFacebook(true);
1086
+				return true;
1087
+			}
1088
+			return false;
1089
+		}
1090
+
1091
+		/**
1092
+		 * Detect if URL is being loaded from internal Facebook browser
1093
+		 * @return boolean True if it detects internal Facebook browser otherwise false
1094
+		 */
1095
+		protected function checkForFacebookIos()
1096
+		{
1097
+			if (stristr($this->_agent, 'FBIOS')) {
1098
+				$this->setFacebook(true);
1099
+				return true;
1100
+			}
1101
+			return false;
1102
+		}
1103
+
1104
+		/**
1105
+		 * Detect Version for the Safari browser on iOS devices
1106
+		 * @return boolean True if it detects the version correctly otherwise false
1107
+		 */
1108
+		protected function getSafariVersionOnIos()
1109
+		{
1110
+			$aresult = explode('/', stristr($this->_agent, 'Version'));
1111
+			if (isset($aresult[1])) {
1112
+				$aversion = explode(' ', $aresult[1]);
1113
+				$this->setVersion($aversion[0]);
1114
+				return true;
1115
+			}
1116
+			return false;
1117
+		}
1118
+
1119
+		/**
1120
+		 * Detect Version for the Chrome browser on iOS devices
1121
+		 * @return boolean True if it detects the version correctly otherwise false
1122
+		 */
1123
+		protected function getChromeVersionOnIos()
1124
+		{
1125
+			$aresult = explode('/', stristr($this->_agent, 'CriOS'));
1126
+			if (isset($aresult[1])) {
1127
+				$aversion = explode(' ', $aresult[1]);
1128
+				$this->setVersion($aversion[0]);
1129
+				$this->setBrowser(self::BROWSER_CHROME);
1130
+				return true;
1131
+			}
1132
+			return false;
1133
+		}
1134
+
1135
+		/**
1136
+		 * Determine if the browser is iPhone or not (last updated 1.7)
1137
+		 * @return boolean True if the browser is iPhone otherwise false
1138
+		 */
1139
+		protected function checkBrowseriPhone()
1140
+		{
1141
+			if (stripos($this->_agent, 'iPhone') !== false) {
1142
+				$this->setVersion(self::VERSION_UNKNOWN);
1143
+				$this->setBrowser(self::BROWSER_IPHONE);
1144
+				$this->getSafariVersionOnIos();
1145
+				$this->getChromeVersionOnIos();
1146
+				$this->checkForFacebookIos();
1147
+				$this->setMobile(true);
1148
+				return true;
1149
+			}
1150
+			return false;
1151
+		}
1152
+
1153
+		/**
1154
+		 * Determine if the browser is iPad or not (last updated 1.7)
1155
+		 * @return boolean True if the browser is iPad otherwise false
1156
+		 */
1157
+		protected function checkBrowseriPad()
1158
+		{
1159
+			if (stripos($this->_agent, 'iPad') !== false) {
1160
+				$this->setVersion(self::VERSION_UNKNOWN);
1161
+				$this->setBrowser(self::BROWSER_IPAD);
1162
+				$this->getSafariVersionOnIos();
1163
+				$this->getChromeVersionOnIos();
1164
+				$this->checkForFacebookIos();
1165
+				$this->setTablet(true);
1166
+				return true;
1167
+			}
1168
+			return false;
1169
+		}
1170
+
1171
+		/**
1172
+		 * Determine if the browser is iPod or not (last updated 1.7)
1173
+		 * @return boolean True if the browser is iPod otherwise false
1174
+		 */
1175
+		protected function checkBrowseriPod()
1176
+		{
1177
+			if (stripos($this->_agent, 'iPod') !== false) {
1178
+				$this->setVersion(self::VERSION_UNKNOWN);
1179
+				$this->setBrowser(self::BROWSER_IPOD);
1180
+				$this->getSafariVersionOnIos();
1181
+				$this->getChromeVersionOnIos();
1182
+				$this->checkForFacebookIos();
1183
+				$this->setMobile(true);
1184
+				return true;
1185
+			}
1186
+			return false;
1187
+		}
1188
+
1189
+		/**
1190
+		 * Determine if the browser is Android or not (last updated 1.7)
1191
+		 * @return boolean True if the browser is Android otherwise false
1192
+		 */
1193
+		protected function checkBrowserAndroid()
1194
+		{
1195
+			if (stripos($this->_agent, 'Android') !== false) {
1196
+				$aresult = explode(' ', stristr($this->_agent, 'Android'));
1197
+				if (isset($aresult[1])) {
1198
+					$aversion = explode(' ', $aresult[1]);
1199
+					$this->setVersion($aversion[0]);
1200
+				} else {
1201
+					$this->setVersion(self::VERSION_UNKNOWN);
1202
+				}
1203
+				if (stripos($this->_agent, 'Mobile') !== false) {
1204
+					$this->setMobile(true);
1205
+				} else {
1206
+					$this->setTablet(true);
1207
+				}
1208
+				$this->setBrowser(self::BROWSER_ANDROID);
1209
+				return true;
1210
+			}
1211
+			return false;
1212
+		}
1213
+
1214
+		/**
1215
+		 * Determine the user's platform (last updated 1.7)
1216
+		 */
1217
+		protected function checkPlatform()
1218
+		{
1219
+			if (stripos($this->_agent, 'windows') !== false) {
1220
+				$this->_platform = self::PLATFORM_WINDOWS;
1221
+			} else if (stripos($this->_agent, 'iPad') !== false) {
1222
+				$this->_platform = self::PLATFORM_IPAD;
1223
+			} else if (stripos($this->_agent, 'iPod') !== false) {
1224
+				$this->_platform = self::PLATFORM_IPOD;
1225
+			} else if (stripos($this->_agent, 'iPhone') !== false) {
1226
+				$this->_platform = self::PLATFORM_IPHONE;
1227
+			} elseif (stripos($this->_agent, 'mac') !== false) {
1228
+				$this->_platform = self::PLATFORM_APPLE;
1229
+			} elseif (stripos($this->_agent, 'android') !== false) {
1230
+				$this->_platform = self::PLATFORM_ANDROID;
1231
+			} elseif (stripos($this->_agent, 'linux') !== false) {
1232
+				$this->_platform = self::PLATFORM_LINUX;
1233
+			} else if (stripos($this->_agent, 'Nokia') !== false) {
1234
+				$this->_platform = self::PLATFORM_NOKIA;
1235
+			} else if (stripos($this->_agent, 'BlackBerry') !== false) {
1236
+				$this->_platform = self::PLATFORM_BLACKBERRY;
1237
+			} elseif (stripos($this->_agent, 'FreeBSD') !== false) {
1238
+				$this->_platform = self::PLATFORM_FREEBSD;
1239
+			} elseif (stripos($this->_agent, 'OpenBSD') !== false) {
1240
+				$this->_platform = self::PLATFORM_OPENBSD;
1241
+			} elseif (stripos($this->_agent, 'NetBSD') !== false) {
1242
+				$this->_platform = self::PLATFORM_NETBSD;
1243
+			} elseif (stripos($this->_agent, 'OpenSolaris') !== false) {
1244
+				$this->_platform = self::PLATFORM_OPENSOLARIS;
1245
+			} elseif (stripos($this->_agent, 'SunOS') !== false) {
1246
+				$this->_platform = self::PLATFORM_SUNOS;
1247
+			} elseif (stripos($this->_agent, 'OS\/2') !== false) {
1248
+				$this->_platform = self::PLATFORM_OS2;
1249
+			} elseif (stripos($this->_agent, 'BeOS') !== false) {
1250
+				$this->_platform = self::PLATFORM_BEOS;
1251
+			} elseif (stripos($this->_agent, 'win') !== false) {
1252
+				$this->_platform = self::PLATFORM_WINDOWS;
1253
+			}
1254
+
1255
+		}
1256
+	}
1257 1257
\ No newline at end of file
Please login to merge, or discard this patch.
Spacing   +3 added lines, -3 removed lines patch added patch discarded remove patch
@@ -353,9 +353,9 @@
 block discarded – undo
353 353
          */
354 354
         public function __toString()
355 355
         {
356
-            return "<strong>Browser Name:</strong> {$this->getBrowser()}<br/>\n" .
357
-            "<strong>Browser Version:</strong> {$this->getVersion()}<br/>\n" .
358
-            "<strong>Browser User Agent String:</strong> {$this->getUserAgent()}<br/>\n" .
356
+            return "<strong>Browser Name:</strong> {$this->getBrowser()}<br/>\n".
357
+            "<strong>Browser Version:</strong> {$this->getVersion()}<br/>\n".
358
+            "<strong>Browser User Agent String:</strong> {$this->getUserAgent()}<br/>\n".
359 359
             "<strong>Platform:</strong> {$this->getPlatform()}<br/>";
360 360
         }
361 361
 
Please login to merge, or discard this patch.
Doc Comments   +2 added lines, -2 removed lines patch added patch discarded remove patch
@@ -166,7 +166,7 @@  discard block
 block discarded – undo
166 166
 
167 167
         /**
168 168
          * Set the name of the browser
169
-         * @param $browser string The name of the Browser
169
+         * @param string $browser string The name of the Browser
170 170
          */
171 171
         public function setBrowser($browser)
172 172
         {
@@ -274,7 +274,7 @@  discard block
 block discarded – undo
274 274
 
275 275
         /**
276 276
          * Set the browser to be from AOL
277
-         * @param $isAol
277
+         * @param boolean $isAol
278 278
          */
279 279
         public function setAol($isAol)
280 280
         {
Please login to merge, or discard this patch.
includes/feeds/grouped-calendars.php 1 patch
Spacing   +56 added lines, -56 removed lines patch added patch discarded remove patch
@@ -10,7 +10,7 @@  discard block
 block discarded – undo
10 10
 use SimpleCalendar\Abstracts\Feed;
11 11
 use SimpleCalendar\Feeds\Admin\Grouped_Calendars_Admin;
12 12
 
13
-if ( ! defined( 'ABSPATH' ) ) {
13
+if ( ! defined('ABSPATH')) {
14 14
 	exit;
15 15
 }
16 16
 
@@ -38,22 +38,22 @@  discard block
 block discarded – undo
38 38
 	 *
39 39
 	 * @param string|Calendar $calendar
40 40
 	 */
41
-	public function __construct( $calendar = '' ) {
41
+	public function __construct($calendar = '') {
42 42
 
43
-		parent::__construct( $calendar );
43
+		parent::__construct($calendar);
44 44
 
45 45
 		$this->type = 'grouped-calendars';
46
-		$this->name = __( 'Grouped Calendar', 'google-calendar-events' );
46
+		$this->name = __('Grouped Calendar', 'google-calendar-events');
47 47
 
48
-		if ( $this->post_id > 0 ) {
48
+		if ($this->post_id > 0) {
49 49
 			$this->set_source();
50
-			if ( ! is_admin() || defined( 'DOING_AJAX' ) ) {
50
+			if ( ! is_admin() || defined('DOING_AJAX')) {
51 51
 				$this->events = $this->get_events();
52 52
 			}
53 53
 		}
54 54
 
55
-		if ( is_admin() && ! defined( 'DOING_AJAX' ) ) {
56
-			new Grouped_Calendars_Admin( $this );
55
+		if (is_admin() && ! defined('DOING_AJAX')) {
56
+			new Grouped_Calendars_Admin($this);
57 57
 		}
58 58
 	}
59 59
 
@@ -64,38 +64,38 @@  discard block
 block discarded – undo
64 64
 	 *
65 65
 	 * @param array $ids Array of calendar ids.
66 66
 	 */
67
-	public function set_source( $ids = array() ) {
67
+	public function set_source($ids = array()) {
68 68
 
69
-		$source = get_post_meta( $this->post_id, '_grouped_calendars_source', true );
69
+		$source = get_post_meta($this->post_id, '_grouped_calendars_source', true);
70 70
 
71
-		if ( 'ids' == $source ) {
71
+		if ('ids' == $source) {
72 72
 
73
-			if ( empty( $ids ) ) {
74
-				$ids = get_post_meta( $this->post_id, '_grouped_calendars_ids', true );
73
+			if (empty($ids)) {
74
+				$ids = get_post_meta($this->post_id, '_grouped_calendars_ids', true);
75 75
 			}
76 76
 
77
-			$this->calendars_ids = ! empty( $ids ) && is_array( $ids ) ? array_map( 'absint', $ids ) : array();
77
+			$this->calendars_ids = ! empty($ids) && is_array($ids) ? array_map('absint', $ids) : array();
78 78
 
79
-		} elseif ( 'category' == $source ) {
79
+		} elseif ('category' == $source) {
80 80
 
81
-			$categories = get_post_meta( $this->post_id, '_grouped_calendars_category', true );
81
+			$categories = get_post_meta($this->post_id, '_grouped_calendars_category', true);
82 82
 
83
-			if ( $categories && is_array( $categories ) ) {
83
+			if ($categories && is_array($categories)) {
84 84
 
85 85
 				$tax_query = array(
86 86
 					'taxonomy' => 'calendar_category',
87 87
 					'field'    => 'term_id',
88
-					'terms'    => array_map( 'absint', $categories ),
88
+					'terms'    => array_map('absint', $categories),
89 89
 				);
90 90
 
91
-				$calendars = get_posts( array(
91
+				$calendars = get_posts(array(
92 92
 					'post_type' => 'calendar',
93
-					'tax_query' => array( $tax_query ),
93
+					'tax_query' => array($tax_query),
94 94
 					'nopaging'  => true,
95 95
 					'fields'    => 'ids',
96
-				) );
96
+				));
97 97
 
98
-				$this->calendars_ids = ! empty( $calendars ) && is_array( $calendars ) ? $calendars : array();
98
+				$this->calendars_ids = ! empty($calendars) && is_array($calendars) ? $calendars : array();
99 99
 			}
100 100
 
101 101
 		}
@@ -111,57 +111,57 @@  discard block
 block discarded – undo
111 111
 	public function get_events() {
112 112
 
113 113
 		$ids    = $this->calendars_ids;
114
-		$events = get_transient( '_simple-calendar_feed_id_' . strval( $this->post_id ) . '_' . $this->type );
114
+		$events = get_transient('_simple-calendar_feed_id_'.strval($this->post_id).'_'.$this->type);
115 115
 
116
-		if ( empty( $events ) && ! empty( $ids ) && is_array( $ids ) ) {
116
+		if (empty($events) && ! empty($ids) && is_array($ids)) {
117 117
 
118 118
 			$events = array();
119 119
 
120
-			foreach ( $ids as $cal_id ) {
120
+			foreach ($ids as $cal_id) {
121 121
 
122
-				$calendar = simcal_get_calendar( intval( $cal_id ) );
122
+				$calendar = simcal_get_calendar(intval($cal_id));
123 123
 
124
-				simcal_delete_feed_transients( $cal_id );
124
+				simcal_delete_feed_transients($cal_id);
125 125
 
126
-				if ( $calendar instanceof Calendar ) {
126
+				if ($calendar instanceof Calendar) {
127 127
 
128 128
 					// Sometimes the calendars might have events at the same time from different calendars
129 129
 					// When merging the arrays together some of the events will be lost because the keys are the same and one will overwrite the other
130 130
 					// This snippet checks if the key already exists in the master events array and if it does it subtracts 1 from it to make the key unique and then unsets the original key.
131
-					foreach( $calendar->events as $k => $v ) {
132
-						$calendar->events[ $this->update_array_timestamp( $events, $k ) ] = $v;
131
+					foreach ($calendar->events as $k => $v) {
132
+						$calendar->events[$this->update_array_timestamp($events, $k)] = $v;
133 133
 					}
134 134
 
135
-					$events = is_array( $calendar->events ) ? $events + $calendar->events : $events;
135
+					$events = is_array($calendar->events) ? $events + $calendar->events : $events;
136 136
 				}
137 137
 
138 138
 			}
139 139
 
140
-			if ( ! empty( $events ) ) {
140
+			if ( ! empty($events)) {
141 141
 
142 142
 				// Trim events to set the earliest one as specified in feed settings.
143
-				$earliest_event = intval( $this->time_min );
144
-				if ( $earliest_event > 0 ) {
145
-					$events = $this->array_filter_key( $events, array( $this, 'filter_events_before' ) );
143
+				$earliest_event = intval($this->time_min);
144
+				if ($earliest_event > 0) {
145
+					$events = $this->array_filter_key($events, array($this, 'filter_events_before'));
146 146
 				}
147 147
 
148 148
 				// Trim events to set the latest one as specified in feed settings.
149
-				$latest_event = intval( $this->time_max );
150
-				if ( $latest_event > 0 ) {
151
-					$events = $this->array_filter_key( $events, array( $this, 'filter_events_after' ) );
149
+				$latest_event = intval($this->time_max);
150
+				if ($latest_event > 0) {
151
+					$events = $this->array_filter_key($events, array($this, 'filter_events_after'));
152 152
 				}
153 153
 
154 154
 				set_transient(
155
-					'_simple-calendar_feed_id_' . strval( $this->post_id ) . '_' . $this->type,
155
+					'_simple-calendar_feed_id_'.strval($this->post_id).'_'.$this->type,
156 156
 					$events,
157
-					absint( $this->cache )
157
+					absint($this->cache)
158 158
 				);
159 159
 			}
160 160
 
161 161
 		}
162 162
 	
163 163
 		// Sort events by start time before returning
164
-		uasort( $events, array( $this, 'sort_by_start_time' ) );
164
+		uasort($events, array($this, 'sort_by_start_time'));
165 165
 
166 166
 		return $events;
167 167
 	}
@@ -169,10 +169,10 @@  discard block
 block discarded – undo
169 169
 	/*
170 170
 	 * Recursive function to adjust the timestamp array indices that are the same.
171 171
 	 */
172
-	public function update_array_timestamp( $arr, $i ) {
172
+	public function update_array_timestamp($arr, $i) {
173 173
 
174
-		if ( array_key_exists( $i, $arr ) ) {
175
-			$i = $this->update_array_timestamp( $arr, $i - 1 );
174
+		if (array_key_exists($i, $arr)) {
175
+			$i = $this->update_array_timestamp($arr, $i - 1);
176 176
 		}
177 177
 
178 178
 		return $i;
@@ -184,12 +184,12 @@  discard block
 block discarded – undo
184 184
 	 * @since  3.0.13
185 185
 	 * @access private
186 186
 	 */
187
-	private function sort_by_start_time( $a, $b ) {
188
-		if ( $a == $b ) {
187
+	private function sort_by_start_time($a, $b) {
188
+		if ($a == $b) {
189 189
 			return 0;
190 190
 		}
191 191
 
192
-		return ( $a[0]->start < $b[0]->start ) ? -1 : 1;
192
+		return ($a[0]->start < $b[0]->start) ? -1 : 1;
193 193
 	}
194 194
 
195 195
 
@@ -207,9 +207,9 @@  discard block
 block discarded – undo
207 207
 	 *
208 208
 	 * @return array
209 209
 	 */
210
-	private function array_filter_key( array $array, $callback ) {
211
-		$matched_keys = array_filter( array_keys( $array ), $callback );
212
-		return array_intersect_key( $array, array_flip( $matched_keys ) );
210
+	private function array_filter_key(array $array, $callback) {
211
+		$matched_keys = array_filter(array_keys($array), $callback);
212
+		return array_intersect_key($array, array_flip($matched_keys));
213 213
 	}
214 214
 
215 215
 	/**
@@ -222,9 +222,9 @@  discard block
 block discarded – undo
222 222
 	 *
223 223
 	 * @return bool
224 224
 	 */
225
-	private function filter_events_before( $event ) {
226
-		if ( $this->time_min !== 0 ) {
227
-			return intval( $event ) > intval( $this->time_min );
225
+	private function filter_events_before($event) {
226
+		if ($this->time_min !== 0) {
227
+			return intval($event) > intval($this->time_min);
228 228
 		}
229 229
 		return true;
230 230
 	}
@@ -239,9 +239,9 @@  discard block
 block discarded – undo
239 239
 	 *
240 240
 	 * @return bool
241 241
 	 */
242
-	private function filter_events_after( $event ) {
243
-		if ( $this->time_max !== 0 ) {
244
-			return intval( $event ) < intval( $this->time_max );
242
+	private function filter_events_after($event) {
243
+		if ($this->time_max !== 0) {
244
+			return intval($event) < intval($this->time_max);
245 245
 		}
246 246
 		return true;
247 247
 	}
Please login to merge, or discard this patch.
includes/objects.php 1 patch
Spacing   +87 added lines, -87 removed lines patch added patch discarded remove patch
@@ -8,7 +8,7 @@  discard block
 block discarded – undo
8 8
 
9 9
 use SimpleCalendar\Abstracts as Object;
10 10
 
11
-if ( ! defined( 'ABSPATH' ) ) {
11
+if ( ! defined('ABSPATH')) {
12 12
 	exit;
13 13
 }
14 14
 
@@ -31,27 +31,27 @@  discard block
 block discarded – undo
31 31
 	public function __construct() {
32 32
 
33 33
 		// Add default feed type.
34
-		add_filter( 'simcal_get_feed_types', function( $feed_types ) {
35
-			return array_merge( $feed_types, array(
34
+		add_filter('simcal_get_feed_types', function($feed_types) {
35
+			return array_merge($feed_types, array(
36 36
 				'google',
37 37
 				'grouped-calendars',
38
-			) );
39
-		}, 10, 1 );
38
+			));
39
+		}, 10, 1);
40 40
 
41 41
 		// Add default calendar type.
42
-		add_filter( 'simcal_get_calendar_types', function( $calendar_types ) {
43
-			return array_merge( $calendar_types, array(
42
+		add_filter('simcal_get_calendar_types', function($calendar_types) {
43
+			return array_merge($calendar_types, array(
44 44
 				'default-calendar' => array(
45 45
 					'grid',
46 46
 					'list',
47 47
 				),
48
-			) );
49
-		}, 10, 1 );
48
+			));
49
+		}, 10, 1);
50 50
 
51 51
 		// Add default admin objects.
52
-		if ( $is_admin = is_admin() ) {
53
-			add_filter( 'simcal_get_admin_pages', function( $admin_pages ) {
54
-				return array_merge( $admin_pages, array(
52
+		if ($is_admin = is_admin()) {
53
+			add_filter('simcal_get_admin_pages', function($admin_pages) {
54
+				return array_merge($admin_pages, array(
55 55
 					'add-ons' => array(
56 56
 						'add-ons',
57 57
 					),
@@ -63,11 +63,11 @@  discard block
 block discarded – undo
63 63
 					'tools' => array(
64 64
 						'system-status',
65 65
 					),
66
-				) );
67
-			}, 10, 1 );
66
+				));
67
+			}, 10, 1);
68 68
 		}
69 69
 
70
-		do_action( 'simcal_load_objects', $is_admin );
70
+		do_action('simcal_load_objects', $is_admin);
71 71
 	}
72 72
 
73 73
 	/**
@@ -78,8 +78,8 @@  discard block
 block discarded – undo
78 78
 	 * @return array
79 79
 	 */
80 80
 	public function get_feed_types() {
81
-		$array = apply_filters( 'simcal_get_feed_types', array() );
82
-		ksort( $array );
81
+		$array = apply_filters('simcal_get_feed_types', array());
82
+		ksort($array);
83 83
 		return $array;
84 84
 	}
85 85
 
@@ -91,8 +91,8 @@  discard block
 block discarded – undo
91 91
 	 * @return array
92 92
 	 */
93 93
 	public function get_calendar_types() {
94
-		$array = apply_filters( 'simcal_get_calendar_types', array() );
95
-		ksort( $array );
94
+		$array = apply_filters('simcal_get_calendar_types', array());
95
+		ksort($array);
96 96
 		return $array;
97 97
 	}
98 98
 
@@ -104,7 +104,7 @@  discard block
 block discarded – undo
104 104
 	 * @return array
105 105
 	 */
106 106
 	public function get_admin_pages() {
107
-		return apply_filters( 'simcal_get_admin_pages', array() );
107
+		return apply_filters('simcal_get_admin_pages', array());
108 108
 	}
109 109
 
110 110
 	/**
@@ -118,30 +118,30 @@  discard block
 block discarded – undo
118 118
 	 *
119 119
 	 * @return null|Object\Calendar
120 120
 	 */
121
-	public function get_calendar( $object ) {
121
+	public function get_calendar($object) {
122 122
 
123
-		if ( is_string( $object ) ) {
124
-			return ! empty( $object ) ? $this->get_object( $object, 'calendar', '' ) : null;
123
+		if (is_string($object)) {
124
+			return ! empty($object) ? $this->get_object($object, 'calendar', '') : null;
125 125
 		}
126 126
 
127
-		if ( is_object( $object ) ) {
128
-			if ( $object instanceof Object\Calendar ) {
129
-				return $this->get_object( $object->type, 'feed', $object );
130
-			} elseif ( $object instanceof \WP_Post ) {
131
-				if ( $type = wp_get_object_terms( $object->ID, 'calendar_type' ) ) {
132
-					$name = sanitize_title( current( $type )->name );
133
-					return $this->get_object( $name, 'calendar', $object );
127
+		if (is_object($object)) {
128
+			if ($object instanceof Object\Calendar) {
129
+				return $this->get_object($object->type, 'feed', $object);
130
+			} elseif ($object instanceof \WP_Post) {
131
+				if ($type = wp_get_object_terms($object->ID, 'calendar_type')) {
132
+					$name = sanitize_title(current($type)->name);
133
+					return $this->get_object($name, 'calendar', $object);
134 134
 				}
135
-			} elseif ( isset( $object->type ) && isset( $object->id ) ) {
136
-				return $this->get_object( $object->type, 'calendar', $object->id );
135
+			} elseif (isset($object->type) && isset($object->id)) {
136
+				return $this->get_object($object->type, 'calendar', $object->id);
137 137
 			}
138 138
 		}
139 139
 
140
-		if ( is_int( $object ) ) {
141
-			$post = get_post( $object );
142
-			if ( $post && ( $type = wp_get_object_terms( $post->ID, 'calendar_type' ) ) ) {
143
-				$name = sanitize_title( current( $type )->name );
144
-				return $this->get_object( $name, 'calendar', $post );
140
+		if (is_int($object)) {
141
+			$post = get_post($object);
142
+			if ($post && ($type = wp_get_object_terms($post->ID, 'calendar_type'))) {
143
+				$name = sanitize_title(current($type)->name);
144
+				return $this->get_object($name, 'calendar', $post);
145 145
 			}
146 146
 		}
147 147
 
@@ -158,20 +158,20 @@  discard block
 block discarded – undo
158 158
 	 *
159 159
 	 * @return null|Object\Calendar_View
160 160
 	 */
161
-	public function get_calendar_view( $id = 0, $name = '' ) {
161
+	public function get_calendar_view($id = 0, $name = '') {
162 162
 
163
-		if ( ! $name && $id > 0 ) {
163
+		if ( ! $name && $id > 0) {
164 164
 
165
-			$calendar_view = get_post_meta( $id, '_calendar_view', true );
165
+			$calendar_view = get_post_meta($id, '_calendar_view', true);
166 166
 
167
-			if ( $terms = wp_get_object_terms( $id, 'calendar_type' ) ) {
168
-				$calendar_type = sanitize_title( current( $terms )->name );
169
-				$name = isset( $calendar_view[ $calendar_type ] ) ? $calendar_type . '-' . $calendar_view[ $calendar_type ] : '';
167
+			if ($terms = wp_get_object_terms($id, 'calendar_type')) {
168
+				$calendar_type = sanitize_title(current($terms)->name);
169
+				$name = isset($calendar_view[$calendar_type]) ? $calendar_type.'-'.$calendar_view[$calendar_type] : '';
170 170
 			}
171 171
 
172 172
 		}
173 173
 
174
-		return $name ? $this->get_object( $name, 'calendar-view', '' ) : null;
174
+		return $name ? $this->get_object($name, 'calendar-view', '') : null;
175 175
 	}
176 176
 
177 177
 	/**
@@ -185,41 +185,41 @@  discard block
 block discarded – undo
185 185
 	 *
186 186
 	 * @return null|Object\Feed
187 187
 	 */
188
-	public function get_feed( $object ) {
188
+	public function get_feed($object) {
189 189
 
190
-		if ( is_string( $object ) ) {
191
-			return ! empty( $object ) ? $this->get_object( $object, 'feed', '' ) : null;
190
+		if (is_string($object)) {
191
+			return ! empty($object) ? $this->get_object($object, 'feed', '') : null;
192 192
 		}
193 193
 
194
-		if ( is_object( $object ) ) {
195
-			if ( $object instanceof Object\Calendar ) {
194
+		if (is_object($object)) {
195
+			if ($object instanceof Object\Calendar) {
196 196
 				$feed_name = '';
197
-				if ( empty( $object->feed ) ) {
198
-					if ( $feed_type = wp_get_object_terms( $object->id, 'feed_type' ) ) {
199
-						$feed_name = sanitize_title( current( $feed_type )->name );
197
+				if (empty($object->feed)) {
198
+					if ($feed_type = wp_get_object_terms($object->id, 'feed_type')) {
199
+						$feed_name = sanitize_title(current($feed_type)->name);
200 200
 					}
201 201
 				} else {
202 202
 					$feed_name = $object->feed;
203 203
 				}
204
-				return $this->get_object( $feed_name, 'feed', $object );
205
-			} elseif ( $object instanceof \WP_Post ) {
206
-				$calendar = $this->get_calendar( $object );
204
+				return $this->get_object($feed_name, 'feed', $object);
205
+			} elseif ($object instanceof \WP_Post) {
206
+				$calendar = $this->get_calendar($object);
207 207
 
208
-				if ( isset( $calendar->feed ) ) {
209
-					return $this->get_object( $calendar->feed, 'feed', $calendar );
208
+				if (isset($calendar->feed)) {
209
+					return $this->get_object($calendar->feed, 'feed', $calendar);
210 210
 				} else {
211 211
 					return null;
212 212
 				}
213 213
 
214 214
 
215
-			} elseif ( isset( $object->feed ) && isset( $object->id ) ) {
216
-				return $this->get_object( $object->feed, 'feed', $object );
215
+			} elseif (isset($object->feed) && isset($object->id)) {
216
+				return $this->get_object($object->feed, 'feed', $object);
217 217
 			}
218 218
 		}
219 219
 
220
-		if ( is_int( $object ) ) {
221
-			$calendar = $this->get_calendar( $object );
222
-			return isset( $calendar->feed ) ? $this->get_object( $calendar->feed, 'feed', $calendar ) : null;
220
+		if (is_int($object)) {
221
+			$calendar = $this->get_calendar($object);
222
+			return isset($calendar->feed) ? $this->get_object($calendar->feed, 'feed', $calendar) : null;
223 223
 		}
224 224
 
225 225
 		return null;
@@ -235,13 +235,13 @@  discard block
 block discarded – undo
235 235
 	 *
236 236
 	 * @return null|Object\Field
237 237
 	 */
238
-	public function get_field( $args, $name = '' ) {
238
+	public function get_field($args, $name = '') {
239 239
 
240
-		if ( empty( $name ) ) {
241
-			$name = isset( $args['type'] ) ? $args['type'] : false;
240
+		if (empty($name)) {
241
+			$name = isset($args['type']) ? $args['type'] : false;
242 242
 		}
243 243
 
244
-		return $name ? $this->get_object( $name, 'field', $args ) : null;
244
+		return $name ? $this->get_object($name, 'field', $args) : null;
245 245
 	}
246 246
 
247 247
 	/**
@@ -253,8 +253,8 @@  discard block
 block discarded – undo
253 253
 	 *
254 254
 	 * @return null|Object\Admin_Page
255 255
 	 */
256
-	public function get_admin_page( $name ) {
257
-		return $name ? $this->get_object( $name, 'admin-page' ) : null;
256
+	public function get_admin_page($name) {
257
+		return $name ? $this->get_object($name, 'admin-page') : null;
258 258
 	}
259 259
 
260 260
 	/**
@@ -269,7 +269,7 @@  discard block
 block discarded – undo
269 269
 	 *
270 270
 	 * @return null|Object
271 271
 	 */
272
-	private function get_object( $name, $type, $args = '' ) {
272
+	private function get_object($name, $type, $args = '') {
273 273
 
274 274
 		$types = array(
275 275
 			'admin-page',
@@ -279,11 +279,11 @@  discard block
 block discarded – undo
279 279
 			'field',
280 280
 		);
281 281
 
282
-		if ( in_array( $type, $types ) ) {
282
+		if (in_array($type, $types)) {
283 283
 
284
-			$class_name = $this->make_class_name( $name, $type );
285
-			$parent     = '\\' . __NAMESPACE__ . '\Abstracts\\' . implode( '_', array_map( 'ucfirst', explode( '-', $type ) ) );
286
-			$class      = class_exists( $class_name ) ? new $class_name( $args ) : false;
284
+			$class_name = $this->make_class_name($name, $type);
285
+			$parent     = '\\'.__NAMESPACE__.'\Abstracts\\'.implode('_', array_map('ucfirst', explode('-', $type)));
286
+			$class      = class_exists($class_name) ? new $class_name($args) : false;
287 287
 
288 288
 			return $class instanceof $parent ? $class : null;
289 289
 		}
@@ -305,25 +305,25 @@  discard block
 block discarded – undo
305 305
 	 *
306 306
 	 * @return string The class name complete with its full namespace.
307 307
 	 */
308
-	private function make_class_name( $name, $type ) {
309
-
310
-		if ( 'calendar' == $type ) {
311
-			$namespace = '\\' . __NAMESPACE__ . '\Calendars\\';
312
-		} elseif ( 'calendar-view' == $type ) {
313
-			$namespace = '\\' . __NAMESPACE__ . '\Calendars\Views\\';
314
-		} elseif ( 'feed' == $type ) {
315
-			$namespace = '\\' . __NAMESPACE__ . '\Feeds\\';
316
-		} elseif ( 'field' == $type ) {
317
-			$namespace = '\\' . __NAMESPACE__ . '\Admin\Fields\\';
318
-		} elseif ( 'admin-page' == $type ) {
319
-			$namespace = '\\' . __NAMESPACE__ . '\Admin\Pages\\';
308
+	private function make_class_name($name, $type) {
309
+
310
+		if ('calendar' == $type) {
311
+			$namespace = '\\'.__NAMESPACE__.'\Calendars\\';
312
+		} elseif ('calendar-view' == $type) {
313
+			$namespace = '\\'.__NAMESPACE__.'\Calendars\Views\\';
314
+		} elseif ('feed' == $type) {
315
+			$namespace = '\\'.__NAMESPACE__.'\Feeds\\';
316
+		} elseif ('field' == $type) {
317
+			$namespace = '\\'.__NAMESPACE__.'\Admin\Fields\\';
318
+		} elseif ('admin-page' == $type) {
319
+			$namespace = '\\'.__NAMESPACE__.'\Admin\Pages\\';
320 320
 		} else {
321 321
 			return '';
322 322
 		}
323 323
 
324
-		$class_name = implode( '_', array_map( 'ucfirst', explode( '-', $name ) ) );
324
+		$class_name = implode('_', array_map('ucfirst', explode('-', $name)));
325 325
 
326
-		return $namespace . $class_name;
326
+		return $namespace.$class_name;
327 327
 	}
328 328
 
329 329
 }
Please login to merge, or discard this patch.