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 +389 -331 6.76.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,351 +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->name = 'url_options';
254 + $fspacer = new maxField('spacer');
255 + $fspacer->name = 'url_options';
234 256 $fspacer->label = '&nbsp;';
235 - $fspacer->output('start');
236 -
237 -
257 + // $fspacer->output('start');
258 +
259 + $admin->addField($fspacer, 'start');
260 +
238 261 // New Window
239 - $fwindow = new maxField('checkbox');
240 - $fwindow->label = __('Open in New Window', 'maxbuttons');
241 - $fwindow->name = 'new_window';
242 - $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;
243 266 $fwindow->value = 1;
244 - //$fwindow->inputclass = 'check_button';
245 - $fwindow->checked = checked( maxBlocks::getValue('new_window'), 1, false);
246 -
247 - $fwindow->output('','');
248 -
249 - //$fspacer->name ='rel_options';
250 - //$fspacer->output('start');
251 -
252 - // NoRel
253 - $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');
254 275 $ffollow->label = __('Use rel="nofollow"', 'maxbuttons');
255 - $ffollow->value = 1;
256 - $ffollow->name = 'nofollow';
257 - $ffollow->id = $ffollow->name;
258 - $ffollow->checked = checked( maxBlocks::getValue('nofollow'), 1, false);
259 -
260 - $ffollow->output('','end');
261 -
262 - // TEXT
263 - $field_text = new maxField();
264 - $field_text->label = __('Text','maxbuttons');
265 - $field_text->name = 'text';
266 - $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';
267 299 $field_text->value = maxBlocks::getValue('text') ;
268 -
269 - $field_text->output('start','end');
270 -
300 +
301 + // $field_text->output('start','end');
302 + $admin->addField($field_text, 'start', 'end');
303 +
271 304 // FONTS
272 - $fonts = MB()->getClass('admin')->loadFonts();
273 -
274 - $field_font = new maxField('generic');
275 - $field_font->label = __('Font','maxbuttons');
276 - $field_font->name = 'font';
277 - $field_font->id = $field_font->name;
278 - $field_font->value= maxBlocks::getValue('font');
279 - $field_font->content = maxUtils::selectify($field_font->name, $fonts, $field_font->value);
280 -
281 - $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');
282 316 ?>
283 317
284 - <?php
318 + <?php
285 319 // FONT SIZE
286 - //global $maxbuttons_font_sizes;
287 - $sizes = apply_filters('mb/editor/fontsizes', maxUtils::generate_font_sizes(10,50) );
288 -
289 -
290 - $field_size = new maxField('number');
291 - // $field_size->label = '';
292 - $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';
293 327 $field_size->id= $field_size->name;
294 - $field_size->inputclass = 'tiny';
295 - $field_size->min = 8;
296 - $field_size->value = maxUtils::strip_px(maxBlocks::getValue('font_size'));
297 - //$field_size->content = maxUtils::selectify($field_size->name, $sizes, $field_size->value, '', 'small');
298 -
299 - $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');
300 332
333 + //$field_size->output();
334 + $admin->addField($field_size);
335 +
301 336 // Font style checkboxes
302 - $fweight = new maxField('checkbox');
303 - $fweight->icon = 'dashicons-editor-bold';
337 + $fweight = new maxField('checkbox');
338 + $fweight->icon = 'dashicons-editor-bold';
304 339 $fweight->title = __("Bold",'maxbuttons');
305 - $fweight->id = 'check_fweight';
306 - $fweight->name = 'font_weight';
307 - $fweight->value = 'bold';
340 + $fweight->id = 'check_fweight';
341 + $fweight->name = 'font_weight';
342 + $fweight->value = 'bold';
308 343 $fweight->inputclass = 'check_button icon';
309 344 $fweight->checked = checked( maxBlocks::getValue('font_weight'), 'bold', false);
310 -
311 - $fweight->output('group_start');
312 -
313 - $fstyle = new maxField('checkbox');
314 - $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';
315 351 $fstyle->title = __("Italic",'maxbuttons');
316 - $fstyle->id = 'check_fstyle';
317 - $fstyle->name = 'font_style';
318 - $fstyle->value = 'italic';
319 - $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';
320 356 $fstyle->checked = checked( maxBlocks::getValue('font_style'), 'italic', false);
321 -
322 - $fstyle->output('','group_end');
323 -
324 -
325 - $falign_left = new maxField('radio');
326 - $falign_left->icon = 'dashicons-editor-alignleft';
327 - $falign_left->title = __('Align left','maxbuttons');
328 - $falign_left->id = 'radio_talign_left';
329 - $falign_left->name = 'text_align';
330 - $falign_left->value = 'left';
331 - $falign_left->inputclass = 'check_button icon';
332 - $falign_left->checked = checked ( maxblocks::getValue('text_align'), 'left', false);
333 -
334 - $falign_left->output('group_start');
335 357
336 - $falign_center = new maxField('radio');
337 - $falign_center->icon = 'dashicons-editor-aligncenter';
338 - $falign_center->title = __('Align center','maxbuttons');
339 - $falign_center->id = 'radio_talign_center';
340 - $falign_center->name = 'text_align';
341 - $falign_center->value = 'center';
342 - $falign_center->inputclass = 'check_button icon';
343 - $falign_center->checked = checked( maxblocks::getValue('text_align'), 'center', false);
344 -
345 - $falign_center->output();
358 + //$fstyle->output('','group_end');
359 + $admin->addField($fstyle, '', 'group_end');
346 360
347 - $falign_right = new maxField('radio');
348 - $falign_right->icon = 'dashicons-editor-alignright';
349 - $falign_right->title = __('Align right','maxbuttons');
350 - $falign_right->id = 'radio_talign_right';
351 - $falign_right->name = 'text_align';
352 - $falign_right->value = 'right';
353 - $falign_right->inputclass = 'check_button icon';
354 - $falign_right->checked = checked( maxblocks::getValue('text_align'), 'right', false);
355 -
356 - $falign_right->output('', array('group_end','end') );
357 -
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 +
358 397 // Padding - trouble
359 - $ptop = new maxField('number');
360 - $ptop->label = __('Padding', 'maxbuttons');
398 + $ptop = new maxField('number');
399 + $ptop->label = __('Padding', 'maxbuttons');
361 400 $ptop->id = 'padding_top';
362 - $ptop->name = $ptop->id;
363 - $ptop->min = 0;
401 + $ptop->name = $ptop->id;
402 + $ptop->min = 0;
364 403 $ptop->inputclass = 'tiny';
365 - $ptop->before_input = '<img src="' . $icon_url . 'p_top.png" title="' . __("Padding Top","maxbuttons") . '" >';
366 - $ptop->value = maxUtils::strip_px(maxBlocks::getValue('padding_top'));
367 -
368 - $ptop->output('start');
369 -
370 - $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');
371 411 $pright->id = 'padding_right';
372 - $pright->name = $pright->id;
412 + $pright->name = $pright->id;
373 413 $pright->min = 0;
374 - $pright->inputclass = 'tiny';
375 - $pright->before_input = '<img src="' . $icon_url . 'p_right.png" class="icon padding" title="' . __("Padding Right","maxbuttons") . '" >';
376 - $pright->value = maxUtils::strip_px(maxBlocks::getValue('padding_right'));
377 -
378 - $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'));
379 417
380 - $pbottom = new maxField('number');
418 + //$pright->output();
419 + $admin->addField($pright);
420 +
421 + $pbottom = new maxField('number');
381 422 $pbottom->id = 'padding_bottom';
382 - $pbottom->name = $pbottom->id;
383 - $pbottom->min = 0;
384 - $pbottom->inputclass = 'tiny';
385 - $pbottom->before_input = '<img src="' . $icon_url . 'p_bottom.png" class="icon padding" title="' . __("Padding Bottom","maxbuttons") . '" >';
386 - $pbottom->value = maxUtils::strip_px(maxBlocks::getValue('padding_bottom'));
387 -
388 - $pbottom->output();
389 -
390 - $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');
391 433 $pleft->id = 'padding_left';
392 - $pleft->name = $pleft->id;
393 - $pleft->min = 0;
394 - $pleft->inputclass = 'tiny';
395 - $pleft->before_input = '<img src="' . $icon_url . 'p_left.png" class="icon padding" title="' . __("Padding Left","maxbuttons") . '" >';
396 - $pleft->value = maxUtils::strip_px(maxBlocks::getValue('padding_left'));
397 -
398 - $pleft->output('','end');
399 -
400 -
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 +
401 444 // Text Color
402 - $fcolor = new maxField('color');
403 - $fcolor->id = 'text_color';
404 - $fcolor->name = $fcolor->id;
405 - $fcolor->value = maxBlocks::getColorValue('text_color');
406 - $fcolor->label = __('Text Color','maxbuttons');
407 - $fcolor->copycolor = true;
408 - $fcolor->bindto = 'text_color_hover';
409 - $fcolor->copypos = 'right';
410 - $fcolor->output('start');
411 -
412 - // Text Color Hover
413 - $fcolor_hover = new maxField('color');
414 - $fcolor_hover->id = 'text_color_hover';
415 - $fcolor_hover->name = $fcolor_hover->id;
416 - $fcolor_hover->value = maxBlocks::getColorValue('text_color_hover');
417 - $fcolor_hover->label = __('Text Color Hover','maxbuttons');
418 - $fcolor_hover->copycolor = true;
419 - $fcolor_hover->bindto = $fcolor->id;
420 - $fcolor_hover->copypos = 'left';
421 - $fcolor_hover->output('','end');
422 -
423 - // Dimension : width
424 - $field_width = new maxField('number');
425 - $field_width->label = __('Button Width','maxbuttons');
426 - $field_width->name = 'button_width';
427 - $field_width->id = $field_width->name;
428 - $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';
429 480 $field_width->min = 0;
430 - $field_width->value= maxUtils::strip_px(maxBlocks::getValue('button_width')); // strippx?
431 - $field_width->output('start');
432 -
433 - // Dimension : height
434 - $field_height = new maxField('number');
435 - $field_height->label = __('Button Height','maxbuttons');
436 - $field_height->name = 'button_height';
437 - $field_height->id = $field_height->name;
438 - $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';
439 492 $field_height->min = 0;
440 - $field_height->value= maxUtils::strip_px(maxBlocks::getValue('button_height')); // strippx?
441 - $field_height->output('','end');
442 -
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 +
443 498 // Description
444 - $description_hide = get_option('maxbuttons_hidedescription');
445 - if ($description_hide == 1)
446 - $field_desc = new maxField('hidden');
499 + $description_hide = get_option('maxbuttons_hidedescription');
500 + if ($description_hide == 1)
501 + $field_desc = new maxField('hidden');
447 502 else
448 - $field_desc = new maxField('textarea');
449 -
503 + $field_desc = new maxField('textarea');
504 +
450 505 $field_desc->label = __('Description', 'maxbuttons');
451 - $field_desc->name = 'description';
452 - $field_desc->id = $field_desc->name;
453 - $field_desc->esc_function = 'esc_textarea';
454 - $field_desc->value = maxBlocks::getValue('description') ;
455 - $field_desc->placeholder = __('Brief explanation about how and where the button is used.','maxbuttons');
456 - $field_desc->output('start','end');
457 -
458 - ?>
459 -
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');
460 512
513 + $admin->addField($field_desc, 'start', 'end');
514 +
515 + $admin->display_fields();
516 + ?>
517 +
518 +
461 519 </div>
462 520 </div>
463 521 <?php } // admin_display
464 -
465 - } // class
466 -
522 +
523 + } // class
524 +
467 525 ?>