PluginProbe
Boxzilla – WordPress Popup Builder / 3.2
Boxzilla – WordPress Popup Builder v3.2
3.4.11 3.4.10 3.4.9 3.4.3 3.4.4 3.4.5 3.4.6 3.4.7 3.4.8 trunk 3.0 3.0.1 3.0.2 3.0.3 3.1 3.1.1 3.1.10 3.1.11 3.1.12 3.1.13 3.1.14 3.1.15 3.1.16 3.1.17 3.1.18 All 72 releases
← All changes | src/class-box.php +205 -209 3.4.43.2 View file →
@@ -3,206 +3,203 @@
3 3 namespace Boxzilla;
4 4
5 5 use WP_Post;
6 6
7 -class Box
8 -{
9 - /**
10 - * @var int
11 - */
12 - public $ID;
7 +class Box {
13 8
14 - /**
15 - * @var array
16 - */
17 - public $options = [];
9 + /**
10 + * @var int
11 + */
12 + public $ID;
18 13
19 - /**
20 - * @var string
21 - */
22 - public $title = '';
14 + /**
15 + * @var array
16 + */
17 + public $options = array();
23 18
24 - /**
25 - * @var string
26 - */
27 - protected $content = '';
19 + /**
20 + * @var string
21 + */
22 + public $title = '';
28 23
29 - /**
30 - * @var bool
31 - */
32 - public $enabled = false;
24 + /**
25 + * @var string
26 + */
27 + protected $content = '';
33 28
29 + /**
30 + * @var bool
31 + */
32 + public $enabled = false;
33 +
34 34 /**
35 35 * @var WP_Post
36 36 */
37 37 private $post;
38 38
39 - /**
40 - * @param WP_Post|int $post
41 - */
42 - public function __construct($post)
43 - {
39 + /**
40 + * @param WP_Post|int $post
41 + */
42 + public function __construct( $post ) {
44 43
45 - // fetch post if it hasn't been fetched yet
46 - if (! $post instanceof WP_Post) {
47 - $post = get_post($post);
48 - }
44 + // fetch post if it hasn't been fetched yet
45 + if( ! $post instanceof WP_Post ) {
46 + $post = get_post( $post );
47 + }
49 48
50 - // store ref to post
51 - $this->post = $post;
49 + // store ref to post
50 + $this->post = $post;
52 51
53 - // store ID in property for quick access
54 - $this->ID = $post->ID;
52 + // store ID in property for quick access
53 + $this->ID = $post->ID;
55 54
56 - // store title in property
57 - $this->title = $post->post_title;
55 + // store title in property
56 + $this->title = $post->post_title;
58 57
59 - // store content in property
60 - $this->content = $post->post_content;
58 + // store content in property
59 + $this->content = $post->post_content;
61 60
62 - // is this box enabled?
63 - $this->enabled = $post->post_status === 'publish';
61 + // is this box enabled?
62 + $this->enabled = ( $post->post_status === 'publish' );
64 63
65 - // load and store options in property
66 - $this->options = $this->load_options();
67 - }
64 + // load and store options in property
65 + $this->options = $this->load_options();
66 + }
68 67
69 - /**
70 - * Get the options for this box.
71 - **
72 - * @return array Array of box options
73 - */
74 - protected function load_options()
75 - {
76 - $defaults = [
77 - 'css' => [
78 - 'background_color' => '',
79 - 'color' => '',
80 - 'width' => '',
81 - 'border_color' => '',
82 - 'border_width' => '',
83 - 'border_style' => '',
84 - 'position' => 'bottom-right',
85 - ],
86 - 'rules' => [
87 - 0 => [
88 - 'condition' => '',
89 - 'value' => '',
90 - ],
91 - ],
92 - 'rules_comparision' => 'any',
93 - 'cookie' => [
94 - 'triggered' => 0,
95 - 'dismissed' => 0,
96 - ],
97 - 'trigger' => 'percentage',
98 - 'trigger_percentage' => 65,
99 - 'trigger_element' => '',
100 - 'trigger_time_on_site' => 0,
101 - 'trigger_time_on_page' => 0,
102 - 'animation' => 'fade',
103 - 'auto_hide' => 0,
104 - 'screen_size_condition' => [
68 + /**
69 + * Get the options for this box.
70 + **
71 + * @return array Array of box options
72 + */
73 + protected function load_options() {
74 +
75 + static $defaults = array(
76 + 'css' => array(
77 + 'background_color' => '',
78 + 'color' => '',
79 + 'width' => '',
80 + 'border_color' => '',
81 + 'border_width' => '',
82 + 'border_style' => '',
83 + 'position' => 'bottom-right',
84 + ),
85 + 'rules' => array(
86 + 0 => array(
87 + 'condition' => '',
88 + 'value' => '',
89 + ),
90 + ),
91 + 'rules_comparision' => 'any',
92 + 'cookie' => array(
93 + 'triggered' => 0,
94 + 'dismissed' => 0,
95 + ),
96 + 'trigger' => 'percentage',
97 + 'trigger_percentage' => 65,
98 + 'trigger_element' => '',
99 + 'trigger_time_on_site' => 0,
100 + 'trigger_time_on_page' => 0,
101 + 'animation' => 'fade',
102 + 'auto_hide' => 0,
103 + 'screen_size_condition' => array(
105 104 'condition' => 'larger',
106 - 'value' => 0,
107 - ],
108 - 'closable' => 1,
109 - 'show_close_icon' => 1,
110 - ];
111 - $box = $this;
105 + 'value' => 0,
106 + ),
107 + 'closable' => 1,
108 + 'show_close_icon' => 1,
109 + );
110 + $box = $this;
112 111
113 - $options = get_post_meta($this->ID, 'boxzilla_options', true);
114 - $options = is_array($options) ? $options : [];
112 + $options = get_post_meta( $this->ID, 'boxzilla_options', true );
113 + $options = is_array( $options ) ? $options : array();
115 114
116 - // merge options with default options
117 - $options = array_replace_recursive($defaults, $options);
118 115
119 - // allow others to filter the final array of options
120 - /**
121 - * Filter the options for a given box
122 - *
123 - * @param array $options
124 - * @param Box $box
125 - */
126 - $options = apply_filters('boxzilla_box_options', $options, $box);
116 + // merge options with default options
117 + $options = array_replace_recursive( $defaults, $options );
127 118
128 - return $options;
129 - }
119 + // allow others to filter the final array of options
120 + /**
121 + * Filter the options for a given box
122 + *
123 + * @param array $options
124 + * @param Box $box
125 + */
126 + $options = apply_filters( 'boxzilla_box_options', $options, $box );
130 127
131 - /**
132 - * @return bool
133 - */
134 - public function is_enabled()
135 - {
136 - return $this->enabled;
137 - }
128 + return $options;
129 + }
138 130
139 - /**
140 - * Get the options for this box
141 - *
142 - * @return array
143 - */
144 - public function get_options()
145 - {
146 - return $this->options;
147 - }
131 + /**
132 + * @return bool
133 + */
134 + public function is_enabled() {
135 + return $this->enabled;
136 + }
148 137
149 - /**
150 - * Get the close / hide icon for this box
151 - *
152 - * @return string
153 - */
154 - public function get_close_icon()
155 - {
156 - if (! $this->options['show_close_icon']) {
157 - return '';
138 + /**
139 + * Get the options for this box
140 + *
141 + * @return array
142 + */
143 + public function get_options() {
144 + return $this->options;
145 + }
146 +
147 + /**
148 + * Get the close / hide icon for this box
149 + *
150 + * @return string
151 + */
152 + public function get_close_icon() {
153 +
154 + if( ! $this->options['show_close_icon'] ) {
155 + return '';
158 156 }
159 157
160 - $box = $this;
161 - $html = '×';
158 + $box = $this;
159 + $html = '×';
162 160
163 - /**
164 - * Filters the HTML for the close icon.
165 - *
166 - * @param string $html
167 - * @param Box $box
168 - */
169 - $close_icon = (string) apply_filters('boxzilla_box_close_icon', $html, $box);
161 + /**
162 + * Filters the HTML for the close icon.
163 + *
164 + * @param string $html
165 + * @param Box $box
166 + */
167 + $close_icon = (string) apply_filters( 'boxzilla_box_close_icon', $html, $box );
170 168
171 - return $close_icon;
172 - }
169 + return $close_icon;
170 + }
173 171
174 - /**
175 - * Get the content of this box
176 - *
177 - * @return string
178 - */
179 - public function get_content()
180 - {
181 - $content = $this->content;
182 - $box = $this;
172 + /**
173 + * Get the content of this box
174 + *
175 + * @return string
176 + */
177 + public function get_content() {
178 + $content = $this->content;
179 + $box = $this;
183 180
184 - // replace boxzilla specific shortcodes
185 - $close_link = "<a href=\"javascript:Boxzilla.dismiss({$this->ID});\">";
181 + // replace boxzilla specific shortcodes
182 + $close_link = sprintf('<a href="javascript:Boxzilla.dismiss(%d);">', $this->ID );
186 183
187 - $replacements = [
188 - '[boxzilla_close]' => $close_link, // accept underscore and dash here for consistency with other shortcode
189 - '[boxzilla-close]' => $close_link,
184 + $replacements = array(
185 + '[boxzilla_close]' => $close_link, // accept underscore and dash here for consistency with other shortcode
186 + '[boxzilla-close]' => $close_link,
190 187 '[/boxzilla_close]' => '</a>',
191 188 '[/boxzilla-close]' => '</a>',
192 - ];
189 + );
193 190
194 - $content = str_replace(array_keys($replacements), array_values($replacements), $content);
191 + $content = str_replace( array_keys( $replacements ), array_values( $replacements ), $content );
195 192
196 193 /**
197 - * Filters the HTML for the box content
198 - *
199 - * @param string $content
200 - * @param Box $box
201 - */
202 - $content = apply_filters('boxzilla_box_content', $content, $box);
203 - return $content;
204 - }
194 + * Filters the HTML for the box content
195 + *
196 + * @param string $content
197 + * @param Box $box
198 + */
199 + $content = apply_filters( 'boxzilla_box_content', $content, $box );
200 + return $content;
201 + }
205 202
206 203 /**
207 204 * Get options object for JS script.
208 205 *
@@ -207,62 +204,61 @@
207 204 * Get options object for JS script.
208 205 *
209 206 * @return array
210 207 */
211 - public function get_client_options()
212 - {
213 - $box = $this;
208 + public function get_client_options() {
209 + $box = $this;
214 210
215 - $trigger = false;
216 - if ($box->options['trigger']) {
217 - $trigger = [
218 - 'method' => $this->options['trigger'],
219 - ];
211 + $trigger = false;
212 + if( $box->options['trigger'] ) {
213 + $trigger = array(
214 + 'method' => $this->options['trigger']
215 + );
220 216
221 - if (isset($this->options[ 'trigger_' . $this->options['trigger'] ])) {
222 - $trigger['value'] = $this->options[ 'trigger_' . $this->options['trigger'] ];
223 - }
224 - }
217 + if( isset( $this->options[ 'trigger_' . $this->options['trigger'] ] ) ) {
218 + $trigger['value'] = $this->options[ 'trigger_' . $this->options['trigger'] ];
219 + }
220 + }
225 221
226 - // build screenWidthCondition object (or null)
227 - $screen_width_condition = null;
228 - if ($box->options['screen_size_condition']['value'] > 0) {
229 - $screen_width_condition = [
222 + // build screenWidthCondition object (or null)
223 + $screen_width_condition = null;
224 + if( $box->options['screen_size_condition']['value'] > 0 ) {
225 + $screen_width_condition = array(
230 226 'condition' => $box->options['screen_size_condition']['condition'],
231 - 'value' => intval($box->options['screen_size_condition']['value']),
232 - ];
227 + 'value' => intval( $box->options['screen_size_condition']['value'] ),
228 + );
233 229 }
234 230
235 - $post = $this->post;
236 - $client_options = [
237 - 'id' => $box->ID,
238 - 'icon' => $box->get_close_icon(),
239 - 'content' => '', // we grab this later from an HTML element
240 - 'css' => array_filter($box->options['css']),
241 - 'trigger' => $trigger,
242 - 'animation' => $box->options['animation'],
243 - 'cookie' => [
244 - 'triggered' => absint($box->options['cookie']['triggered']),
245 - 'dismissed' => absint($box->options['cookie']['dismissed']),
246 - ],
247 - 'rehide' => (bool) $box->options['auto_hide'],
248 - 'position' => $box->options['css']['position'],
231 + $client_options = array(
232 + 'id' => $box->ID,
233 + 'icon' => $box->get_close_icon(),
234 + 'content' => $box->get_content(),
235 + 'css' => array_filter( $box->options['css'] ),
236 + 'trigger' => $trigger,
237 + 'animation' => $box->options['animation'],
238 + 'cookie' => array(
239 + 'triggered' => absint( $box->options['cookie']['triggered'] ),
240 + 'dismissed' => absint( $box->options['cookie']['dismissed'] ),
241 + ),
242 + 'rehide' => (bool) $box->options['auto_hide'],
243 + 'position' => $box->options['css']['position'],
249 244 'screenWidthCondition' => $screen_width_condition,
250 - 'closable' => ! ! $box->options['closable'],
251 - 'post' => [
252 - 'id' => $post->ID,
253 - 'title' => $post->post_title,
254 - 'slug' => $post->post_name,
255 - ],
256 - ];
245 + 'closable' => !!$box->options['closable'],
246 + 'post' => array(
247 + 'id' => $this->post->ID,
248 + 'title' => $this->post->post_title,
249 + 'slug' => $this->post->post_name,
250 + ),
251 + );
257 252
258 - /**
259 - * Filter the final options for the JS Boxzilla client.
260 - *
261 - * @param array $client_options
262 - * @param Box $box
263 - */
264 - $client_options = apply_filters('boxzilla_box_client_options', $client_options, $box);
253 + /**
254 + * Filter the final options for the JS Boxzilla client.
255 + *
256 + * @param array $client_options
257 + * @param Box $box
258 + */
259 + $client_options = apply_filters( 'boxzilla_box_client_options', $client_options, $box );
265 260
266 - return $client_options;
267 - }
268 -}
261 + return $client_options;
262 + }
263 +
264 +}