PluginProbe
MaxButtons – Create buttons / 6.28
MaxButtons – Create buttons v6.28
6.23 6.24 6.25 6.26 6.26.1 6.27 6.28 6.3 6.4 6.5 6.6 6.7 6.8 6.9 7.0 7.1 7.1.1 7.1.2 7.1.3 7.10 7.11 7.13 7.13.1 7.13.2 7.13.3 All 100 releases
← All changes | blocks/basic.php +390 -322 6.36.28 View file →
@@ -1,114 +1,123 @@
1 1 <?php
2 +namespace MaxButtons;
2 3 defined('ABSPATH') or die('No direct access permitted');
3 4
4 -$blockClass["basic"] = "basicBlock";
5 -$blockOrder[0][] = "basic";
5 +$blockClass["basic"] = "basicBlock";
6 +$blockOrder[0][] = "basic";
6 7
7 -use MaxButtons\maxBlocks as maxBlocks;
8 -use MaxButtons\maxField as maxField;
9 -
10 -class basicBlock extends maxBlock
8 +
9 +class basicBlock extends maxBlock
11 10 {
12 - protected $blockname = "basic";
11 + protected $blockname = "basic";
13 12 protected $fields = array("name" => array("default" => ''),
14 - "status" => array("default" => "publish"),
13 + "status" => array("default" => "publish"),
15 14 "description" => array("default" => ''),
16 15 "url" => array("default" => ''),
17 - // "text" => array("default" => ''),
16 + 'link_title' => array('default' => ''),
17 + // "text" => array("default" => ''),
18 18 "new_window" => array("default" => 0),
19 19 "nofollow" => array("default" => 0)
20 - );
21 - protected $protocols = array("http","https",'ftp', 'ftps', 'mailto', 'news', 'irc', 'gopher', 'nntp', 'feed', 'telnet', 'mms', 'rtsp', 'svn', 'tel', 'sms', 'callto', 'fax', 'xmpp', "javascript"); // allowed url protocols for esc_url functions
22 -
20 + );
21 + protected $protocols = array("http","https",'ftp', 'ftps', 'mailto', 'news', 'irc', 'gopher', 'nntp', 'feed', 'telnet', 'mms', 'rtsp', 'svn', 'tel', 'sms', 'callto', 'fax', 'xmpp', "javascript", 'file', 'ms-windows-store', 'steam', 'webcal'); // allowed url protocols for esc_url functions
23 22
23 +
24 24 function __construct()
25 25 {
26 - parent::__construct();
26 + parent::__construct();
27 + $extra_protocols = get_option('maxbuttons_protocol');
28 + $extra_protocols = array_map('trim', array_filter(explode(',', $extra_protocols)));
29 +
30 + if (is_array($extra_protocols) && count($extra_protocols) > 0)
31 + {
32 + $this->protocols = array_merge($this->protocols, $extra_protocols);
33 + }
27 34 }
28 -
29 35
36 +
30 37 public function parse_css($css, $mode = 'normal')
31 38 {
32 - $data = $this->data[$this->blockname];
33 -
39 + // emtpy string init is not like by PHP 7.1
40 + if (! is_array($css))
41 + $css = array();
42 +
43 + $data = $this->data[$this->blockname];
44 +
34 45 $css["maxbutton"]["normal"]["position"] = "relative";
35 46 $css["maxbutton"]["normal"]["text-decoration"] = "none";
36 47 // $css["maxbutton"]["normal"]["white-space"] = "nowrap"; // hinders correct rendering of oneline-multilines
37 - $css["maxbutton"]["normal"]["display"] = "inline-block";
48 + $css["maxbutton"]["normal"]["display"] = "inline-block";
38 49
39 - /*if (isset($data["url"]) && $data["url"] == '') // don't show clickable anchor if there is no URL.
50 + /*if (isset($data["url"]) && $data["url"] == '') // don't show clickable anchor if there is no URL.
40 51 {
41 - $css["maxbutton"]["normal"]["cursor"] = 'default';
42 - // $css[":hover"]["cursor"] = 'default';
43 - } */
52 + $css["maxbutton"]["normal"]["cursor"] = 'default';
53 + // $css[":hover"]["cursor"] = 'default';
54 + } */
44 55
45 - return $css;
46 -
56 + return $css;
57 +
47 58 }
48 -
49 59
50 -
51 60 public function save_fields($data, $post)
52 - {
53 - // Possible solution:
61 + {
62 + // Possible solution:
54 63 // $post["url"] = isset($post["url"]) ? urldecode(urldecode($post["url"])) : '';
55 -
56 - $description = false;
57 64
58 - if (isset($post["description"]) && $post["description"] != '')
65 + $description = false;
66 +
67 + if (isset($post["description"]) && $post["description"] != '')
59 68 {
60 - $description = str_replace("\n", '-nwline-', $post["description"]);
61 - $description = sanitize_text_field($description);
62 - $description = str_replace('-nwline-', "\n", $description);
63 -
69 + $description = str_replace("\n", '-nwline-', $post["description"]);
70 + $description = sanitize_text_field($description);
71 + $description = str_replace('-nwline-', "\n", $description);
72 +
64 73 }
65 -
74 +
66 75 $data = parent::save_fields($data, $post);
67 76
68 77 // bypass sanitize for description - causing the end of line-breaks
69 - if ($description)
70 - $data["basic"]["description"] = $description;
71 -
78 + if ($description)
79 + $data["basic"]["description"] = $description;
80 +
72 81 // bypassing sanitize text field - causes problems with URLs and spaces
73 - $url = isset($post["url"]) ? trim($post["url"]) : '';
74 -
75 - $parsed_url = parse_url($url);
76 - $rawEncode = array("query","fragment");
82 + $url = isset($post["url"]) ? trim($post["url"]) : '';
83 +
84 + $parsed_url = parse_url($url);
85 + $rawEncode = array("query","fragment");
77 86 foreach($rawEncode as $item)
78 87 {
79 - if (isset($parsed_url[$item]))
88 + if (isset($parsed_url[$item]))
80 89 {
81 - $parsed_url[$item] = rawurlencode($parsed_url[$item]);
90 + $parsed_url[$item] = rawurlencode($parsed_url[$item]);
82 91 }
83 92 }
84 -
85 - $url = $this->unParseURL($parsed_url);
86 -
87 - $url = str_replace(" ", "%20", trim($url) );
88 -
93 +
94 + $url = $this->unParseURL($parsed_url);
95 +
96 + $url = str_replace(" ", "%20", trim($url) );
97 +
89 98 if (! $this->checkRelative($parsed_url))
90 99 $url = esc_url_raw($url, $this->protocols); // str replace - known WP issue with spaces
91 -
100 +
92 101 $data[$this->blockname]["url"] = $url;
93 -
94 - if (isset($post["name"]))
95 - $data["name"] = sanitize_text_field($post["name"]);
96 - if (isset($post["status"]))
97 - $data["status"] = sanitize_text_field($post["status"]); // for conversion old - new.
102 +
103 + if (isset($post["name"]))
104 + $data["name"] = sanitize_text_field($post["name"]);
105 + if (isset($post["status"]))
106 + $data["status"] = sanitize_text_field($post["status"]); // for conversion old - new.
98 107 return $data;
99 108 }
100 -
109 +
101 110 protected function unparseURL($parsed_url)
102 111 {
103 112 // Don't add // to these schemes
104 - $noslash_schemes = array('javascript', 'mailto', 'tel', 'sms');
113 + $noslash_schemes = array('javascript', 'mailto', 'tel', 'sms');
105 114 if (isset($parsed_url['scheme']) && in_array($parsed_url['scheme'], $noslash_schemes) )
106 115 $scheme = $parsed_url["scheme"] . ":";
107 - else
116 + else
108 117 $scheme = isset($parsed_url['scheme']) ? $parsed_url['scheme'] . '://' : '';
109 -
110 -
118 +
119 +
111 120 $host = isset($parsed_url['host']) ? $parsed_url['host'] : '';
112 121 $port = isset($parsed_url['port']) ? ':' . $parsed_url['port'] : '';
113 122 $user = isset($parsed_url['user']) ? $parsed_url['user'] : '';
114 123 $pass = isset($parsed_url['pass']) ? ':' . $parsed_url['pass'] : '';
@@ -117,341 +126,400 @@
117 126 $query = isset($parsed_url['query']) ? '?' . $parsed_url['query'] : '';
118 127 $fragment = isset($parsed_url['fragment']) ? '#' . $parsed_url['fragment'] : '';
119 128 return "$scheme$user$pass$host$port$path$query$fragment";
120 129 }
121 -
130 +
122 131 /* Check for a relative URL that gets killed by esc_url ( if there is no / first ) */
123 - protected function checkRelative($parsed_url)
132 + protected function checkRelative($parsed_url)
124 133 {
125 134 if (! isset($parsed_url['host']) && ! isset($parsed_url['scheme']) )
126 135 {
127 136 if (isset($parsed_url['path']) && $parsed_url['path'] !== '' && substr($parsed_url['path'], 0,1) !== '/')
128 137 {
129 - return true;
138 + return true;
130 139 }
131 140 }
132 -
133 141 return false;
134 -
135 142 }
136 143
137 144 public function parse_button($domObj, $mode = 'normal')
138 145 {
139 -
140 - $data = $this->data[$this->blockname];
141 -
142 - $button_id = $this->data["id"];
143 -
144 - $anchor = $domObj->find("a",0);
145 -
146 -
147 - if (isset($data["nofollow"]) && $data["nofollow"] == 1)
148 - $anchor->rel = "nofollow";
149 - // $buttonAttrs[] = "rel=nofollow";
150 - if (isset($data["new_window"]) && $data["new_window"] == 1)
151 - $anchor->target = "_blank";
152 -
153 - if (isset($data["url"]) && $data["url"] != '')
146 +
147 + $data = $this->data[$this->blockname];
148 + $button_id = $this->data["id"];
149 + $rels = array();
150 +
151 + $anchor = $domObj->find("a",0);
152 +
153 + if (isset($data["nofollow"]) && $data["nofollow"] == 1)
154 154 {
155 - $url = $data["url"];
156 - $parsed_url = parse_url($url);
157 -
155 + $rels[] = 'nofollow';
156 + $rels[] = 'noopener';
157 + }
158 + // $anchor->rel = "nofollow";
159 + // $buttonAttrs[] = "rel=nofollow";
160 +
161 + if (isset($data["new_window"]) && $data["new_window"] == 1)
162 + {
163 + $anchor->target = "_blank";
164 + if (! in_array('noopener', $rels))
165 + $rels[] = 'noopener';
166 + }
167 + if (isset($data['link_title']) && strlen($data['link_title']) > 0)
168 + $anchor->title = $data['link_title'];
169 +
170 + $rels = apply_filters('mb/button/rel', $rels);
171 +
172 + if (count($rels) > 0)
173 + {
174 + $anchor->rel = implode(' ', $rels);
175 + }
176 +
177 + if (isset($data["url"]) && $data["url"] != '')
178 + {
179 + $url = $data["url"];
180 + $parsed_url = parse_url($url);
181 +
158 182 if (! $this->checkRelative($parsed_url))
159 183 $url = esc_url($url, $this->protocols);
160 -
184 +
161 185 $url = rawurldecode($url); // removes the + from a URL part.
162 - $url = apply_filters('mb-url', $url, $data['url']); // passes processed url / raw url.
163 - $url = apply_filters('mb-url-' . $button_id, $url, $data['url']);
164 -
165 -
186 + $url = apply_filters('mb-url', $url, $data['url']); // passes processed url / raw url.
187 + $url = apply_filters('mb-url-' . $button_id, $url, $data['url']);
188 +
189 +
166 190 $anchor->href = $url;
167 - //do_shortcode( esc_url($url, $this->protocols) );
168 -
191 + //do_shortcode( esc_url($url, $this->protocols) );
192 +
169 193 }
170 - else // fixing an iOS problem which renders anchors without URL wrongly.
194 + else // fixing an iOS problem which renders anchors without URL wrongly.
171 195 {
172 196 $anchor->href = 'javascript:void(0);';
173 - }
174 -
175 -
176 - return $domObj;
177 -
178 - }
197 + }
179 198
199 +
200 + return $domObj;
201 +
202 + }
203 +
180 204 public function map_fields($map)
181 205 {
182 -
183 - $map["url"]["attr"] = "href";
184 -// $map["text"]["func"] = "updateAnchorText";
185 -
186 - return $map;
206 +
207 + $map["url"]["attr"] = "href";
208 + $map["link_title"]["attr"] = "title";
209 +
210 +// $map["text"]["func"] = "updateAnchorText";
211 +
212 + return $map;
187 213 }
188 214
189 - public function admin_fields()
215 + public function admin_fields()
190 216 {
191 - //parent::admin_fields();
192 -
193 - //$data = $this->data[$this->blockname];
194 - // On it's way out this
195 - /*foreach($this->fields as $field => $options)
196 - {
197 - $default = (isset($options["default"])) ? $options["default"] : '';
198 - ${$field} = (isset($data[$field])) ? $data[$field] : $default;
199 -
200 - } */
201 - $icon_url = MB()->get_plugin_url() . 'images/icons/' ;
217 +
218 + $icon_url = MB()->get_plugin_url() . 'images/icons/';
219 + $admin = MB()->getClass('admin');
202 220 ?>
203 221
204 222 <div class="mb_tab option-container mb_tab">
205 223 <div class="title"><?php _e('Basics', 'maxbuttons') ?></div>
206 224 <div class="inside basic">
207 - <?php
208 -
225 + <?php
226 + $color_copy_self = __("Replace color from other field", "maxbuttons");
227 + $color_copy_move = __("Copy Color to other field", "maxbuttons");
228 +
209 229 // Name
210 - $field_name = new maxField() ;
211 - $field_name->label = __('Button Name', 'maxbuttons');
230 + $field_name = new maxField() ;
231 + $field_name->label = __('Button Name', 'maxbuttons');
212 232 // $field_name->note = __('Something that you can quickly identify the button with.', 'maxbuttons');
213 - $field_name->value = maxBlocks::getValue('name');
214 - $field_name->id = 'name';
215 - $field_name->name = $field_name->id;
216 - $field_name->placeholder = __("Button Name","maxbuttons");
217 - $field_name->output('start','end');
218 -
219 -
220 - // URL
221 - $field_url = new maxField();
233 + $field_name->value = maxBlocks::getValue('name');
234 + $field_name->id = 'name';
235 + $field_name->name = $field_name->id;
236 + $field_name->placeholder = __("Button Name","maxbuttons");
237 + // $field_name->output('start','end');
238 +
239 + $admin->addField($field_name, 'start', 'end');
240 +
241 + // URL
242 + $field_url = new maxField();
222 243 $field_url->label = __('URL', 'maxbuttons');
223 244 // $field_url->note = __('The link when the button is clicked.', 'maxbuttons');
224 245 $field_url->value = rawurldecode(maxBlocks::getValue('url') );
225 - $field_url->id = 'url';
226 - $field_url->placeholder = __("http://","maxbuttons");
227 - $field_url->name = $field_url->id;
228 -
229 - $field_url->output('start','end');
230 -
246 + $field_url->id = 'url';
247 + $field_url->placeholder = __("http://","maxbuttons");
248 + $field_url->name = $field_url->id;
249 +
250 + //$field_url->output('start','end');
251 + $admin->addField($field_url,'start', 'end');
252 +
231 253 // Spacer
232 - $fspacer = new maxField('spacer');
233 - $fspacer->label = '&nbsp';
234 - $fspacer->name = 'url_options';
235 - $fspacer->output('start');
236 -
254 + $fspacer = new maxField('spacer');
255 + $fspacer->name = 'url_options';
256 + $fspacer->label = '&nbsp;';
257 + // $fspacer->output('start');
258 +
259 + $admin->addField($fspacer, 'start');
260 +
237 261 // New Window
238 - $fwindow = new maxField('checkbox');
239 - $fwindow->label = __('Open in New Window', 'maxbuttons');
240 - $fwindow->name = 'new_window';
241 - $fwindow->id = $fwindow->name;
262 + $fwindow = new maxField('checkbox');
263 + $fwindow->label = __('Open in New Window', 'maxbuttons');
264 + $fwindow->name = 'new_window';
265 + $fwindow->id = $fwindow->name;
242 266 $fwindow->value = 1;
243 - //$fwindow->inputclass = 'check_button';
244 - $fwindow->checked = checked( maxBlocks::getValue('new_window'), 1, false);
245 -
246 - $fwindow->output();
247 -
248 - // NoRel
249 - $ffollow = new maxField('checkbox');
267 + //$fwindow->inputclass = 'check_button';
268 + $fwindow->checked = checked( maxBlocks::getValue('new_window'), 1, false);
269 +
270 + //$fwindow->output('','');
271 + $admin->addField($fwindow);
272 +
273 + // NoRel
274 + $ffollow = new maxField('checkbox');
250 275 $ffollow->label = __('Use rel="nofollow"', 'maxbuttons');
251 - $ffollow->value = 1;
252 - $ffollow->name = 'nofollow';
253 - $ffollow->id = $ffollow->name;
254 - $ffollow->checked = checked( maxBlocks::getValue('nofollow'), 1, false);
255 -
256 - $ffollow->output('','end');
257 -
258 - // TEXT
259 - $field_text = new maxField();
260 - $field_text->label = __('Text','maxbuttons');
261 - $field_text->name = 'text';
262 - $field_text->id = 'text';
276 + $ffollow->value = 1;
277 + $ffollow->name = 'nofollow';
278 + $ffollow->id = $ffollow->name;
279 + $ffollow->checked = checked( maxBlocks::getValue('nofollow'), 1, false);
280 +
281 + //$ffollow->output('','end');
282 + $admin->addField($ffollow, '','end');
283 + // TITLE
284 +
285 + $field_title = new maxField();
286 + $field_title->label = __('Button Tooltip', 'maxbuttons');
287 + $field_title->name = 'link_title'; // title is too generic
288 + $field_title->id = $field_title->name;
289 + $field_title->value = maxBlocks::getValue('link_title');
290 +
291 + //$field_title->output('start','end');
292 + $admin->addField($field_title, 'start', 'end');
293 +
294 + // TEXT
295 + $field_text = new maxField();
296 + $field_text->label = __('Text','maxbuttons');
297 + $field_text->name = 'text';
298 + $field_text->id = 'text';
263 299 $field_text->value = maxBlocks::getValue('text') ;
264 -
265 - $field_text->output('start','end');
266 -
300 +
301 + // $field_text->output('start','end');
302 + $admin->addField($field_text, 'start', 'end');
303 +
267 304 // FONTS
268 - $fonts = MB()->getClass('admin')->loadFonts();
269 -
270 - $field_font = new maxField('generic');
271 - $field_font->label = __('Font','maxbuttons');
272 - $field_font->name = 'font';
273 - $field_font->id = $field_font->name;
274 - $field_font->value= maxBlocks::getValue('font');
275 - $field_font->content = maxUtils::selectify($field_font->name, $fonts, $field_font->value);
276 -
277 - $field_font->output('start');
305 + $fonts = MB()->getClass('admin')->loadFonts();
306 +
307 + $field_font = new maxField('generic');
308 + $field_font->label = __('Font','maxbuttons');
309 + $field_font->name = 'font';
310 + $field_font->id = $field_font->name;
311 + $field_font->value= maxBlocks::getValue('font');
312 + $field_font->content = maxUtils::selectify($field_font->name, $fonts, $field_font->value);
313 +
314 + //$field_font->output('start');
315 + $admin->addField($field_font,'start');
278 316 ?>
279 317
280 - <?php
318 + <?php
281 319 // FONT SIZE
282 - //global $maxbuttons_font_sizes;
283 - $sizes = apply_filters('mb/editor/fontsizes', maxUtils::generate_font_sizes(10,50) );
284 -
285 -
286 - $field_size = new maxField('number');
287 - // $field_size->label = '';
288 - $field_size->name = 'font_size';
320 + //global $maxbuttons_font_sizes;
321 + $sizes = apply_filters('mb/editor/fontsizes', maxUtils::generate_font_sizes(10,50) );
322 +
323 +
324 + $field_size = new maxField('number');
325 + // $field_size->label = '';
326 + $field_size->name = 'font_size';
289 327 $field_size->id= $field_size->name;
290 - $field_size->inputclass = 'tiny';
291 - $field_size->min = 8;
292 - $field_size->value = maxUtils::strip_px(maxBlocks::getValue('font_size'));
293 - //$field_size->content = maxUtils::selectify($field_size->name, $sizes, $field_size->value, '', 'small');
294 -
295 - $field_size->output();
328 + $field_size->inputclass = 'tiny';
329 + $field_size->min = 8;
330 + $field_size->value = maxUtils::strip_px(maxBlocks::getValue('font_size'));
331 + //$field_size->content = maxUtils::selectify($field_size->name, $sizes, $field_size->value, '', 'small');
296 332
333 + //$field_size->output();
334 + $admin->addField($field_size);
335 +
297 336 // Font style checkboxes
298 - $fweight = new maxField('checkbox');
299 - $fweight->icon = 'dashicons-editor-bold';
337 + $fweight = new maxField('checkbox');
338 + $fweight->icon = 'dashicons-editor-bold';
300 339 $fweight->title = __("Bold",'maxbuttons');
301 - $fweight->id = 'check_fweight';
302 - $fweight->name = 'font_weight';
303 - $fweight->value = 'bold';
340 + $fweight->id = 'check_fweight';
341 + $fweight->name = 'font_weight';
342 + $fweight->value = 'bold';
304 343 $fweight->inputclass = 'check_button icon';
305 344 $fweight->checked = checked( maxBlocks::getValue('font_weight'), 'bold', false);
306 -
307 - $fweight->output('group_start');
308 -
309 - $fstyle = new maxField('checkbox');
310 - $fstyle->icon = 'dashicons-editor-italic';
345 +
346 + // $fweight->output('group_start');
347 + $admin->addField($fweight, 'group_start');
348 +
349 + $fstyle = new maxField('checkbox');
350 + $fstyle->icon = 'dashicons-editor-italic';
311 351 $fstyle->title = __("Italic",'maxbuttons');
312 - $fstyle->id = 'check_fstyle';
313 - $fstyle->name = 'font_style';
314 - $fstyle->value = 'italic';
315 - $fstyle->inputclass = 'check_button icon';
352 + $fstyle->id = 'check_fstyle';
353 + $fstyle->name = 'font_style';
354 + $fstyle->value = 'italic';
355 + $fstyle->inputclass = 'check_button icon';
316 356 $fstyle->checked = checked( maxBlocks::getValue('font_style'), 'italic', false);
317 -
318 - $fstyle->output('','group_end');
319 -
320 -
321 - $falign_left = new maxField('radio');
322 - $falign_left->icon = 'dashicons-editor-alignleft';
323 - $falign_left->title = __('Align left','maxbuttons');
324 - $falign_left->id = 'radio_talign_left';
325 - $falign_left->name = 'text_align';
326 - $falign_left->value = 'left';
327 - $falign_left->inputclass = 'check_button icon';
328 - $falign_left->checked = checked ( maxblocks::getValue('text_align'), 'left', false);
329 -
330 - $falign_left->output('group_start');
331 357
332 - $falign_center = new maxField('radio');
333 - $falign_center->icon = 'dashicons-editor-aligncenter';
334 - $falign_center->title = __('Align center','maxbuttons');
335 - $falign_center->id = 'radio_talign_center';
336 - $falign_center->name = 'text_align';
337 - $falign_center->value = 'center';
338 - $falign_center->inputclass = 'check_button icon';
339 - $falign_center->checked = checked( maxblocks::getValue('text_align'), 'center', false);
340 -
341 - $falign_center->output();
358 + //$fstyle->output('','group_end');
359 + $admin->addField($fstyle, '', 'group_end');
342 360
343 - $falign_right = new maxField('radio');
344 - $falign_right->icon = 'dashicons-editor-alignright';
345 - $falign_right->title = __('Align right','maxbuttons');
346 - $falign_right->id = 'radio_talign_right';
347 - $falign_right->name = 'text_align';
348 - $falign_right->value = 'right';
349 - $falign_right->inputclass = 'check_button icon';
350 - $falign_right->checked = checked( maxblocks::getValue('text_align'), 'right', false);
351 -
352 - $falign_right->output('', array('group_end','end') );
353 -
361 + $falign_left = new maxField('radio');
362 + $falign_left->icon = 'dashicons-editor-alignleft';
363 + $falign_left->title = __('Align left','maxbuttons');
364 + $falign_left->id = 'radio_talign_left';
365 + $falign_left->name = 'text_align';
366 + $falign_left->value = 'left';
367 + $falign_left->inputclass = 'check_button icon';
368 + $falign_left->checked = checked ( maxblocks::getValue('text_align'), 'left', false);
369 +
370 + //$falign_left->output('group_start');
371 + $admin->addField($falign_left, 'group_start');
372 +
373 + $falign_center = new maxField('radio');
374 + $falign_center->icon = 'dashicons-editor-aligncenter';
375 + $falign_center->title = __('Align center','maxbuttons');
376 + $falign_center->id = 'radio_talign_center';
377 + $falign_center->name = 'text_align';
378 + $falign_center->value = 'center';
379 + $falign_center->inputclass = 'check_button icon';
380 + $falign_center->checked = checked( maxblocks::getValue('text_align'), 'center', false);
381 +
382 + //$falign_center->output();
383 + $admin->addField($falign_center);
384 +
385 + $falign_right = new maxField('radio');
386 + $falign_right->icon = 'dashicons-editor-alignright';
387 + $falign_right->title = __('Align right','maxbuttons');
388 + $falign_right->id = 'radio_talign_right';
389 + $falign_right->name = 'text_align';
390 + $falign_right->value = 'right';
391 + $falign_right->inputclass = 'check_button icon';
392 + $falign_right->checked = checked( maxblocks::getValue('text_align'), 'right', false);
393 +
394 + //$falign_right->output('', array('group_end','end') );
395 + $admin->addField($falign_right, '', array('group_end','end') );
396 +
354 397 // Padding - trouble
355 - $ptop = new maxField('number');
356 - $ptop->label = __('Padding', 'maxbuttons');
398 + $ptop = new maxField('number');
399 + $ptop->label = __('Padding', 'maxbuttons');
357 400 $ptop->id = 'padding_top';
358 - $ptop->name = $ptop->id;
359 - $ptop->min = 0;
401 + $ptop->name = $ptop->id;
402 + $ptop->min = 0;
360 403 $ptop->inputclass = 'tiny';
361 - $ptop->before_input = '<img src="' . $icon_url . 'p_top.png" title="' . __("Padding Top","maxbuttons") . '" >';
362 - $ptop->value = maxUtils::strip_px(maxBlocks::getValue('padding_top'));
363 -
364 - $ptop->output('start');
365 -
366 - $pright = new maxField('number');
404 + $ptop->before_input = '<img src="' . $icon_url . 'p_top.png" title="' . __("Padding Top","maxbuttons") . '" >';
405 + $ptop->value = maxUtils::strip_px(maxBlocks::getValue('padding_top'));
406 +
407 + //$ptop->output('start');
408 + $admin->addField($ptop,'start');
409 +
410 + $pright = new maxField('number');
367 411 $pright->id = 'padding_right';
368 - $pright->name = $pright->id;
412 + $pright->name = $pright->id;
369 413 $pright->min = 0;
370 - $pright->inputclass = 'tiny';
371 - $pright->before_input = '<img src="' . $icon_url . 'p_right.png" class="icon padding" title="' . __("Padding Right","maxbuttons") . '" >';
372 - $pright->value = maxUtils::strip_px(maxBlocks::getValue('padding_right'));
373 -
374 - $pright->output();
414 + $pright->inputclass = 'tiny';
415 + $pright->before_input = '<img src="' . $icon_url . 'p_right.png" class="icon padding" title="' . __("Padding Right","maxbuttons") . '" >';
416 + $pright->value = maxUtils::strip_px(maxBlocks::getValue('padding_right'));
375 417
376 - $pbottom = new maxField('number');
418 + //$pright->output();
419 + $admin->addField($pright);
420 +
421 + $pbottom = new maxField('number');
377 422 $pbottom->id = 'padding_bottom';
378 - $pbottom->name = $pbottom->id;
379 - $pbottom->min = 0;
380 - $pbottom->inputclass = 'tiny';
381 - $pbottom->before_input = '<img src="' . $icon_url . 'p_bottom.png" class="icon padding" title="' . __("Padding Bottom","maxbuttons") . '" >';
382 - $pbottom->value = maxUtils::strip_px(maxBlocks::getValue('padding_bottom'));
383 -
384 - $pbottom->output();
385 -
386 - $pleft = new maxField('number');
423 + $pbottom->name = $pbottom->id;
424 + $pbottom->min = 0;
425 + $pbottom->inputclass = 'tiny';
426 + $pbottom->before_input = '<img src="' . $icon_url . 'p_bottom.png" class="icon padding" title="' . __("Padding Bottom","maxbuttons") . '" >';
427 + $pbottom->value = maxUtils::strip_px(maxBlocks::getValue('padding_bottom'));
428 +
429 + //$pbottom->output();
430 + $admin->addField($pbottom);
431 +
432 + $pleft = new maxField('number');
387 433 $pleft->id = 'padding_left';
388 - $pleft->name = $pleft->id;
389 - $pleft->min = 0;
390 - $pleft->inputclass = 'tiny';
391 - $pleft->before_input = '<img src="' . $icon_url . 'p_left.png" class="icon padding" title="' . __("Padding Left","maxbuttons") . '" >';
392 - $pleft->value = maxUtils::strip_px(maxBlocks::getValue('padding_left'));
393 -
394 - $pleft->output('','end');
395 -
396 -
434 + $pleft->name = $pleft->id;
435 + $pleft->min = 0;
436 + $pleft->inputclass = 'tiny';
437 + $pleft->before_input = '<img src="' . $icon_url . 'p_left.png" class="icon padding" title="' . __("Padding Left","maxbuttons") . '" >';
438 + $pleft->value = maxUtils::strip_px(maxBlocks::getValue('padding_left'));
439 +
440 + //$pleft->output('','end');
441 + $admin->addField($pleft,'', 'end');
442 +
443 +
397 444 // Text Color
398 - $fcolor = new maxField('color');
399 - $fcolor->id = 'text_color';
400 - $fcolor->name = $fcolor->id;
401 - $fcolor->value = maxBlocks::getColorValue('text_color');
402 - $fcolor->label = __('Text Color','maxbuttons');
403 - $fcolor->output('start');
404 -
405 - // Text Color Hover
406 - $fcolor_hover = new maxField('color');
407 - $fcolor_hover->id = 'text_color_hover';
408 - $fcolor_hover->name = $fcolor_hover->id;
409 - $fcolor_hover->value = maxBlocks::getColorValue('text_color_hover');
410 - $fcolor_hover->label = __('Text Color Hover','maxbuttons');
411 - $fcolor_hover->output('','end');
412 -
413 - // Dimension : width
414 - $field_width = new maxField('number');
415 - $field_width->label = __('Button Width','maxbuttons');
416 - $field_width->name = 'button_width';
417 - $field_width->id = $field_width->name;
418 - $field_width->inputclass = 'small';
445 + $fcolor = new maxField('color');
446 + $fcolor->id = 'text_color';
447 + $fcolor->name = $fcolor->id;
448 + $fcolor->value = maxBlocks::getColorValue('text_color');
449 + $fcolor->label = __('Text Color','maxbuttons');
450 + $fcolor->copycolor = true;
451 + $fcolor->bindto = 'text_color_hover';
452 + $fcolor->copypos = 'right';
453 + $fcolor->right_title = $color_copy_move;
454 + $fcolor->left_title = $color_copy_self;
455 +
456 + // $fcolor->output('start');
457 + $admin->addField($fcolor, 'start');
458 +
459 + // Text Color Hover
460 + $fcolor_hover = new maxField('color');
461 + $fcolor_hover->id = 'text_color_hover';
462 + $fcolor_hover->name = $fcolor_hover->id;
463 + $fcolor_hover->value = maxBlocks::getColorValue('text_color_hover');
464 + $fcolor_hover->label = __('Text Color Hover','maxbuttons');
465 + $fcolor_hover->copycolor = true;
466 + $fcolor_hover->bindto = $fcolor->id;
467 + $fcolor_hover->copypos = 'left';
468 + $fcolor_hover->right_title = $color_copy_self;
469 + $fcolor_hover->left_title = $color_copy_move;
470 + //$fcolor_hover->output('','end');
471 +
472 + $admin->addField($fcolor_hover, '','end');
473 +
474 + // Dimension : width
475 + $field_width = new maxField('number');
476 + $field_width->label = __('Button Width','maxbuttons');
477 + $field_width->name = 'button_width';
478 + $field_width->id = $field_width->name;
479 + $field_width->inputclass = 'small';
419 480 $field_width->min = 0;
420 - $field_width->value= maxUtils::strip_px(maxBlocks::getValue('button_width')); // strippx?
421 - $field_width->output('start');
422 -
423 - // Dimension : height
424 - $field_height = new maxField('number');
425 - $field_height->label = __('Button Height','maxbuttons');
426 - $field_height->name = 'button_height';
427 - $field_height->id = $field_height->name;
428 - $field_height->inputclass = 'small';
481 + $field_width->value= maxUtils::strip_px(maxBlocks::getValue('button_width')); // strippx?
482 + //$field_width->output('start');
483 +
484 + $admin->addField($field_width, 'start');
485 +
486 + // Dimension : height
487 + $field_height = new maxField('number');
488 + $field_height->label = __('Button Height','maxbuttons');
489 + $field_height->name = 'button_height';
490 + $field_height->id = $field_height->name;
491 + $field_height->inputclass = 'small';
429 492 $field_height->min = 0;
430 - $field_height->value= maxUtils::strip_px(maxBlocks::getValue('button_height')); // strippx?
431 - $field_height->output('','end');
432 -
493 + $field_height->value= maxUtils::strip_px(maxBlocks::getValue('button_height')); // strippx?
494 + //$field_height->output('','end');
495 +
496 + $admin->addField($field_height, '', 'end');
497 +
433 498 // Description
434 - $description_hide = get_option('maxbuttons_hidedescription');
435 - if ($description_hide == 1)
436 - $field_desc = new maxField('hidden');
499 + $description_hide = get_option('maxbuttons_hidedescription');
500 + if ($description_hide == 1)
501 + $field_desc = new maxField('hidden');
437 502 else
438 - $field_desc = new maxField('textarea');
439 -
503 + $field_desc = new maxField('textarea');
504 +
440 505 $field_desc->label = __('Description', 'maxbuttons');
441 - $field_desc->name = 'description';
442 - $field_desc->id = $field_desc->name;
443 - $field_desc->esc_function = 'esc_textarea';
444 - $field_desc->value = maxBlocks::getValue('description') ;
445 - $field_desc->placeholder = __('Brief explanation about how and where the button is used.','maxbuttons');
446 - $field_desc->output('start','end');
447 -
448 - ?>
449 -
506 + $field_desc->name = 'description';
507 + $field_desc->id = $field_desc->name;
508 + $field_desc->esc_function = 'esc_textarea';
509 + $field_desc->value = maxBlocks::getValue('description') ;
510 + $field_desc->placeholder = __('Brief explanation about how and where the button is used.','maxbuttons');
511 + //$field_desc->output('start','end');
450 512
513 + $admin->addField($field_desc, 'start', 'end');
514 +
515 + $admin->display_fields();
516 + ?>
517 +
518 +
451 519 </div>
452 520 </div>
453 521 <?php } // admin_display
454 -
455 - } // class
456 -
522 +
523 + } // class
524 +
457 525 ?>