WordPress Button Plugin MaxButtons - Version 7.1

Version Description

  • Vertical align now working
  • Fixed issue with selecting buttons via SiteOrigin Page Builder
Download this release

Release Info

Developer basszje
Plugin Icon 128x128 WordPress Button Plugin MaxButtons
Version 7.1
Comparing to
See all releases

Code changes from version 7.0 to 7.1

assets/integrations/shortcake/shortcake.php CHANGED
@@ -40,7 +40,7 @@ class mbCake
40
 
41
  $button_id = $match[2];
42
 
43
- $button = new maxButton();
44
  $button->set($button_id);
45
 
46
  $button->parse_button();
40
 
41
  $button_id = $match[2];
42
 
43
+ $button = MB()->getClass('button');
44
  $button->set($button_id);
45
 
46
  $button->parse_button();
assets/integrations/siteorigins_builder/fields/maxbutton.class.php CHANGED
@@ -51,12 +51,16 @@ class MaxButton_Widget_Field_MaxButton extends \SiteOrigin_Widget_Field_Base {
51
  */
52
  private $parent_repeater;
53
 
 
 
54
  public function __construct( $base_name, $element_id, $element_name, $field_options, $for_widget, $parent_container = array() ) {
55
  parent::__construct( $base_name, $element_id, $element_name, $field_options );
56
 
57
  $this->for_widget = $for_widget;
58
  $this->parent_repeater = $parent_container;
59
 
 
 
60
  }
61
 
62
  protected function get_default_options() {
@@ -67,23 +71,30 @@ class MaxButton_Widget_Field_MaxButton extends \SiteOrigin_Widget_Field_Base {
67
  );
68
  }
69
 
 
 
70
  protected function render_field( $value, $instance ) {
71
- //$buttons = MB()
72
  $nonce = wp_create_nonce('maxajax');
 
73
  ?>
74
  <script language="javascript">
75
  function insertSOPageBuilder(id)
76
  {
 
77
  var button = jQuery('.media-buttons .maxbutton-' + id).parents('.shortcode-container').children().clone();
78
- jQuery("#SOP_selected").html(button);
79
- jQuery('#sop_selected_button').val(id);
 
80
  return false;
81
 
82
  }
83
  </script>
84
- <button class="button-primary maxbutton_media_button" data-nonce="<?php echo $nonce ?>" data-callback='insertSOPageBuilder'><?php _e("Select a Button"); ?></button>
85
- <p><?php _e('Selected Button', 'maxbuttons') ?></p>
86
- <div id='SOP_selected'><?php
 
 
 
87
  $button= MB()->getClass('button');
88
 
89
  if (intval($value) > 0)
@@ -91,11 +102,12 @@ class MaxButton_Widget_Field_MaxButton extends \SiteOrigin_Widget_Field_Base {
91
  $button->set($value);
92
  $button->display(array('load_css' => 'inline') );
93
  }
 
94
 
95
- ?> </div>
96
-
97
- <input type="hidden" id="sop_selected_button" value="<?php echo esc_attr( is_array( $value ) ? '-1' : $value ) ?>" name="<?php echo esc_attr( $this->element_name ) ?>" class="siteorigin-widget-input" />
98
 
 
 
99
  <?php
100
  }
101
 
51
  */
52
  private $parent_repeater;
53
 
54
+ protected static $field_count = 0;
55
+
56
  public function __construct( $base_name, $element_id, $element_name, $field_options, $for_widget, $parent_container = array() ) {
57
  parent::__construct( $base_name, $element_id, $element_name, $field_options );
58
 
59
  $this->for_widget = $for_widget;
60
  $this->parent_repeater = $parent_container;
61
 
62
+ static::$field_count++;
63
+
64
  }
65
 
66
  protected function get_default_options() {
71
  );
72
  }
73
 
74
+ /** It looks like all of those fields are rendered every thing for every block, but they don't change. So there is a need to keep them apart */
75
+
76
  protected function render_field( $value, $instance ) {
 
77
  $nonce = wp_create_nonce('maxajax');
78
+
79
  ?>
80
  <script language="javascript">
81
  function insertSOPageBuilder(id)
82
  {
83
+ var mbbutton_number = '<?php echo $this->element_id ?>';
84
  var button = jQuery('.media-buttons .maxbutton-' + id).parents('.shortcode-container').children().clone();
85
+
86
+ jQuery('.mbselected.' + mbbutton_number).find(".the_button").html(button);
87
+ jQuery('.mbselected.' + mbbutton_number).find(".sop_button_id").val(id);
88
  return false;
89
 
90
  }
91
  </script>
92
+ <button class="button-primary maxbutton_media_button" id="mbbutton-<?php echo static::$field_count ?>" data-nonce="<?php echo $nonce ?>" data-callback='insertSOPageBuilder'><?php _e("Select a Button"); ?></button>
93
+
94
+ <p><h3><?php _e('Selected Button', 'maxbuttons') ?></h3></p>
95
+ <div class='mbselected <?php echo $this->element_id ?>'>
96
+ <span class='the_button'>
97
+ <?php
98
  $button= MB()->getClass('button');
99
 
100
  if (intval($value) > 0)
102
  $button->set($value);
103
  $button->display(array('load_css' => 'inline') );
104
  }
105
+ //echo "<P>" . $number . ' -- ' . static::$field_count . ' ' . $this->element_id . " (rnd/fc)</p>"
106
 
107
+ ?> </span>
 
 
108
 
109
+ <input type="hidden" class='sop_button_id' value="<?php echo esc_attr( is_array( $value ) ? '-1' : $value ) ?>" name="<?php echo esc_attr( $this->element_name ) ?>" class="siteorigin-widget-input" />
110
+ </div>
111
  <?php
112
  }
113
 
assets/libraries/font-awesome-5/fa-config.js CHANGED
@@ -1,5 +1,5 @@
1
  window.FontAwesomeConfig = {
2
- // autoReplaceSvg: false,
3
  keepOriginalSource : true,
4
  replacementClass: 'svg-mbp-fa',
5
  observeMutations: true,
1
  window.FontAwesomeConfig = {
2
+ autoReplaceSvg: true,
3
  keepOriginalSource : true,
4
  replacementClass: 'svg-mbp-fa',
5
  observeMutations: true,
blocks/advanced.php CHANGED
@@ -175,7 +175,7 @@ class advancedBlock extends maxBlock
175
  if (isset($this->data["id"]) && $this->data['id'] > 0)
176
  {
177
  $id = $this->data["id"];
178
- $b = new maxButton();
179
 
180
  $b->set($id);
181
  $b->parse_button();
175
  if (isset($this->data["id"]) && $this->data['id'] > 0)
176
  {
177
  $id = $this->data["id"];
178
+ $b = MB()->getClass('button');
179
 
180
  $b->set($id);
181
  $b->parse_button();
blocks/basic.php CHANGED
@@ -46,7 +46,7 @@ class basicBlock extends maxBlock
46
  $css["maxbutton"]["normal"]["text-decoration"] = "none";
47
  // $css["maxbutton"]["normal"]["white-space"] = "nowrap"; // hinders correct rendering of oneline-multilines
48
  $css["maxbutton"]["normal"]["display"] = "inline-block";
49
- $css["maxbuttons"]["normal"]["vertical-align"] = 'middle';
50
 
51
  /*if (isset($data["url"]) && $data["url"] == '') // don't show clickable anchor if there is no URL.
52
  {
46
  $css["maxbutton"]["normal"]["text-decoration"] = "none";
47
  // $css["maxbutton"]["normal"]["white-space"] = "nowrap"; // hinders correct rendering of oneline-multilines
48
  $css["maxbutton"]["normal"]["display"] = "inline-block";
49
+ $css["maxbutton"]["normal"]["vertical-align"] = 'middle';
50
 
51
  /*if (isset($data["url"]) && $data["url"] == '') // don't show clickable anchor if there is no URL.
52
  {
blocks/tpl/button.tpl CHANGED
@@ -2,6 +2,7 @@
2
  <div class='input %%name%%' {if:conditional}data-show="%%conditional%%"{/if:conditional}>
3
  <button id='%%id%%' type='button' class='button {if:inputclass}%%inputclass%%{/if:inputclass}'
4
  {if:modal}data-modal='%%modal%%'{/if:modal}
 
5
  {if:disabled} disabled {/if:disabled}
6
  > %%button_label%% </button>
7
 
2
  <div class='input %%name%%' {if:conditional}data-show="%%conditional%%"{/if:conditional}>
3
  <button id='%%id%%' type='button' class='button {if:inputclass}%%inputclass%%{/if:inputclass}'
4
  {if:modal}data-modal='%%modal%%'{/if:modal}
5
+ {if:dataaction}data-action='%%dataaction%%'{/if:dataaction}
6
  {if:disabled} disabled {/if:disabled}
7
  > %%button_label%% </button>
8
 
changelog.txt CHANGED
@@ -1,53 +1,225 @@
1
- = 4.22.1 =
2
 
3
- * Removed Splinfo getExtension call since it's not compatible with all PHP 5.3 installations
4
 
5
- = 4.22 =
6
 
7
- * Major upgrade of user interface
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8
  * Major cleanup of styling code
9
  * Description now handles multiple lines correctly
10
 
11
- = 4.21 =
12
 
13
  * Cleaner user interface at font options
14
- * Check if jquery function exists on front.
15
 
16
- = 4.20 =
17
 
18
  * Tested for WordPress 4.5
19
  * Moved old error modals in social sharing to new modal
20
- * New copy dialog
21
 
22
- = 4.19 =
23
 
24
- * Fixed: Relative URL's without starting slash no longer are prepended with default scheme
25
- * Tel: and sms: URL's not accepted in URL field
26
 
27
- = 4.18 =
28
 
29
  * Fixed problem responsive settings not correctly enabling / disabling options
30
  * Button editor now warns when moving away without saving
31
 
32
- = 4.17 =
33
 
34
  * Moving from leanModal to better popup code
35
  * Fixed Modal background and CSS error on delete button / view CSS
36
  * Put Font style options (italics) back
37
 
38
- = 4.16 =
39
 
40
  * Version number added to JS scripts to prevent browser caching on updates
41
- * Tweaks to the main CSS class statement to avoid clutter
42
- * Fix for Cloudflare's email obfuscation in combination with responsive buttons.
43
 
44
 
45
- = 4.15 =
46
 
47
  * Option to add custom class names
48
  * Added changes to increase plugin page speed performance
49
 
50
- = 4.14 =
51
 
52
  * Buttons in Shortcake didn't show Font Awesome buttons correctly
53
  * Fixed bug in Shortcake rendering with ID's over 10
@@ -55,130 +227,130 @@
55
  * Fixed paging and popup issues in button add dialog
56
  * Made previous / next buttons in button add dialog more clear
57
 
58
- = 4.13 =
59
 
60
- * New option: Custom rel (Advanced) - for targeting popups
61
- * Upgraded to Font Awesome 4.5.0
62
  * Fixed remove collection link not working
63
 
64
- = 4.12 =
65
 
66
  * SO Pagebuilder : Fixed callbacks
67
- * Shortcake : Fixed faulty callback when mixing add button functionality
68
  * Social Share: fixed caching problem on blog pages results in same share URL's
69
- * Social Share: fixed no image sharing with Pinterest.
70
- * Editor: Fixed Javascript crash when clicking No in Delete button dialog
71
 
72
 
73
- = 4.11.1 =
74
 
75
  * Fixed possible crash due to extra return characters in the plugin causing WordPress to malfunction.
76
 
77
- = 4.11 =
78
 
79
- * Fixed SiteOrigin PageBuilder error when adding button
80
  * Shortcake integration
81
  * Add button dialog improvements
82
 
83
 
84
- = 4.10 =
85
 
86
- * Removed Twitter share count since Twitter doesn't support this anymore.
87
- * Fixed issue with color picker
88
  * Color picker window much larger now
89
  * Add button interface now available in SiteOrigin editor widget
90
 
91
- = 4.09 =
92
 
93
  * Several issues were fixed with upgrading the plugin and database tables
94
  * Fixed link in edit post/page screen when having no buttons
95
- * Fixed integration crash with new version of SiteOrigin Page Builder
96
 
97
 
98
  = 4.08 =
99
 
100
  * Fixed conflict with WPMU Popup Pro
101
  * New shortcode tag style="inline" - this forces the button style to load in document. This can be useful with JS-heavy sites who don't properly
102
- load wp_footer();
103
 
104
- = 4.07 =
105
 
106
- * Fixed problem with URL encodings
107
- * Fixed issue with Siteorigin widget not selecting button
108
  * Changes in styling ( WP 4.4. update )
109
 
110
- = 4.06 =
111
 
112
- * Default button updated
113
 
114
- = 4.05 =
115
 
116
  * Integration with SiteOrigin Page Builder
117
 
118
- = 4.04 =
119
 
120
  * Updates to the color picker interface.
121
 
122
  = 4.03 =
123
 
124
- * Shortcode examples popup no longer expands the editor window
125
- * Small fixes to title bar
126
 
127
- = 4.02 =
128
 
129
  * Fixed message in button inserter incorrectly stating no buttons are found.
130
  * Javascript hardening to prevent conflicts in rare cases
131
  * Better Settings interface
132
 
133
- = 4.01 =
134
 
135
  * Add check for function 'maybe_convert_table_to_utf8mb4' which doesn't exists before WP 4.2.0
136
  * Several interface fixes
137
 
138
 
139
- = 4.0.2 =
140
 
141
  * Fixed issue that could cause database save to fail on button edit.
142
  * Security validation on bulk edit form added
143
-
144
 
145
- = 4.0.1 =
 
146
 
147
  * Changed few PHP calls which possibly were causing crashes on older versions.
148
  * Bug in internal social sharing block function.
149
 
150
- = 4.0 =
151
 
152
- * Social sharing [BETA]
153
  * Fixed possible conflicts with colpick.js
154
  * Fixed problem in URL with mailto: scheme
155
- * Fixed issue with enconding URL's.
156
 
157
- = 3.19 =
158
 
159
- * Added possibility for bulk editing - at own risk
160
- * Changed URL handling in certain cases to better URL encode the non-domain part.
161
 
162
- = 3.18 =
163
 
164
- * New filter for button url
165
- * By default overview shows your latest buttons.
166
- * Overview now sortable by button id
167
 
168
 
169
- = 3.17 =
170
 
171
- * Position and size of preview window updated to be less in the way
172
  * Small layout and text updates
173
 
174
 
175
- = 3.16.1 =
176
 
177
  * Backward compatibility of layout changes
178
 
179
-
180
 
181
- = 3.16 =
 
182
 
183
  * Fixed update box running through page title
184
  * Fixed rating screen in some cases could not be closed
@@ -189,28 +361,28 @@ load wp_footer();
189
 
190
  * Fixed save crash in case of custom responsive settings due to debug information
191
 
192
- = 3.15 =
193
 
194
  * Small validation fix on custom responsive field
195
  * Fixed rare bug occurence in SCSS parser
196
 
197
- = 3.14 =
198
 
199
  * Fixed crash on servers without character encoding module enabled
200
  * Attempts to upgrade utf-8 table to utf-8mb4 (plugin activation)
201
- * Groups CSS statements without repeating <style> tag.
202
 
203
- = 3.13.1 =
204
 
205
  * Fixed issue with font size not being displayed correctly in editor
206
 
207
- = 3.13 =
208
 
209
- * Fixed checkbox size on Chrome
210
  * Fixed several layout issues
211
  * Fixed issue with non-latin button names in the css declaration of button
212
  * Paging buttons now disabled if there are no more pages to browse
213
- * Updated SCSS parser to latest version
214
 
215
 
216
  = 3.12.1 =
@@ -218,77 +390,77 @@ load wp_footer();
218
  * Fixed responsive bug with multiple custom settings
219
  * Fixed checkbox interface bug with responsive settings
220
  * Fixed CSS parse errors with multiple responsive queries
221
-
222
-
223
- = 3.12 =
224
 
225
- * Moved from serialize to json_encode
 
 
 
226
  * ID on button is now unique
227
 
228
- = 3.11 =
229
 
230
  * Better checking of number values in interface
231
  * Button name is now also a class on the button ( for custom work )
232
- * CSS output can now be compressed ( minified )
233
 
234
- = 3.10 =
235
 
236
  * Fixed: Now possible to add javascript to button URL field
237
  * Fixed: Several JS plugin conflicts ( notably with Sidekick )
238
- * Fixed: Now able to add spaces to URL
239
 
240
- = 3.09 =
241
 
242
  * Responsiveness bug fixes
243
  * Fixed - custom sizes now allow width or height to be zero or not set
244
  * Fixed rare bug when dbDelta was not properly loaded during installation
245
 
246
 
247
- = 3.08 =
248
 
249
  * Text align now defaults to empty
250
- * New color picker fixing several bugs
251
- * Fixed Divi themes / sitebuilder issue with add button
252
  * Fixed small interface issue with paging and zero buttons
253
  * Fixed interface issue with bulk actions notices
254
  * Fixed various small unset variable issues
255
 
256
 
257
- = 3.07 =
258
 
259
- * Added Text align option
260
  * Fixed interface issue with removing responsive parts
261
- * Fixed URL Escaping issue
262
 
263
- = 3.06 =
264
 
265
  * Added German translation
266
 
267
- = 3.05 =
268
 
269
- * Better detection if all needed database fields are present
270
- * Updates to the plugin styles
271
- * Fixed a bug on the support page when allow_url_fopen is off
272
  * Some shortcode examples in button editor
273
- * Fixed a bug in responsive data handling
274
  * Responsive items now can be hidden per screen size
275
 
276
- = 3.04.2 =
277
 
278
  * Reworked add button interface in the post editor
279
 
280
- = 3.04.1 =
281
 
282
- * Version numbering change to allow better version management in WP
283
  * Improved: Wordpress style pagination
284
  * Improved: The button editor interface now warns before permanently deleting a button
285
  * Fixed: Layout issue in button overview disrupting interface
286
  * Fixed: Support area not showing correctly and deprecated error on mysql info.
287
- * Fixed: Close button didn't show in the external css dialog
288
 
289
- = 3.04 =
290
 
291
- * New : Pagination
292
 
293
  * Fixed : Issue in parser causing issues when saving buttons
294
  * Fixed : Button list can now display buttons from cache
@@ -296,58 +468,58 @@ load wp_footer();
296
  * Several smaller issues and interface hardening
297
  * Updated several links
298
 
299
- = 3.03 =
300
 
301
- * Fixed: Text shadow and border shadow were still showing with zero width.
302
- * Fixed: Migrate script from old version moves button id correctly.
303
  * Fixed: Link to buttons missing on plugins page
304
 
305
 
306
- = 3.02 =
307
 
308
- * Fixed: IK Facebook plugin jamming the colorpicker
309
  * Fixed: Bug where hover cursor wouldn't show up when url was added via shortcode
310
  * Fixed: Moving table to UTF-8 in settings works again
311
 
312
  * Option for remigration of settings from old to new table in case upgrade didn't complete
313
  * Added PHP 5.3 requirement in readme
314
- * Added checks for both PHP version, and if activation did run.
315
  * Removed default 'white-space: nowrap'.
316
  * Tested with WP 4.2
317
 
318
- = 3.01 =
319
 
320
  * Code rebuilt
321
- * Major performance enhancements
322
- * Responsive module
323
- * Dimensions, set width and height
324
 
325
- = 3.0 =
326
 
327
  * Beta release of new codebase
328
 
329
- = 1.37 =
330
 
331
  * Fixed two XSS vulnerabilities
332
 
333
- = 1.36 =
334
 
335
  * Minor tweaks and updates
336
 
337
 
338
- = 1.35 =
339
 
340
- * Better description for certain options
341
- * New icon for WP-repository
342
 
343
- = 1.34 =
344
 
345
  * Fixed UI issue in edit posts screen.
346
 
347
- = 1.33 =
348
- * Buttons list is now sortable by Button name.
349
 
350
- = 1.32 =
351
  * Setting to remove 'add button' interface from editor
352
 
353
  = 1.31 =
@@ -380,7 +552,7 @@ load wp_footer();
380
  * Added Permissions so more than admin can use the buttons if desired.
381
 
382
  = 1.24.3 =
383
- * Small CSS tweaks including adding box-sizing and more border-style options.
384
  * Updated some of the notifications.
385
 
386
  = 1.24.2 =
1
+ = 6.11.1 =
2
 
3
+ * Removed holiday sale
4
 
5
+ = 6.11 =
6
 
7
+ * Shortcode options in add button dialog
8
+ * Fixed crash when running PHP 7.1.0
9
+
10
+ = 6.10 =
11
+
12
+ * Fixed color issue with preview color running one click behind
13
+ * Fixed issue with hover gradients, when gradients are off
14
+ * Fixed text shadow issue in CSS output
15
+
16
+ = 6.9 =
17
+
18
+ * Tested for WP 4.7
19
+ * Improved copy colors
20
+
21
+ = 6.8 =
22
+
23
+ * Fixed several smaller bugs in responsive
24
+ * Fixed smaller layout issues ( consistency )
25
+ * Upgraded SCSSPHP parser to 0.40
26
+ * Fixed 'undefined variable' in responsive
27
+
28
+ = 6.7 =
29
+
30
+ * Button height in responsive settings
31
+ * Fixed responsive bug regarding hiding option
32
+ * Responsive settings updated
33
+ * Add Button Dialog updated (more clear)
34
+ * Colorpicker slightly bigger
35
+
36
+ = 6.6 =
37
+
38
+ * Improved tab index on button editor.
39
+ * Fixed Copy Color button position in Chrome
40
+ * Fixed minor CSS issues
41
+
42
+ = 6.5 =
43
+
44
+ * Gradient background color option can be switched on and off
45
+ * New material switches to replace the checkboxes
46
+
47
+ = 6.4 =
48
+
49
+ * Copy colors feature added
50
+ * Fixed several small issues with the color picker
51
+
52
+ = 6.3 =
53
+
54
+ * Updated Features page
55
+
56
+
57
+ = 6.2 =
58
+
59
+ * Improved visibility of the color picker
60
+ * Fixed possible rendering issue with Box Shadow
61
+ * Fixed: in rare case the button could overlay the action buttons in the overview
62
+
63
+ = 6.1 =
64
+
65
+ * Several updates to the Color Picker
66
+ * Box Shadow spread option added
67
+ * Fixed conflict with important and box shadow setting
68
+
69
+ = 6.0 =
70
+
71
+ * Version 6 milestone
72
+ * Fixed small styling issue in header
73
+ * Updated link in plugin
74
+
75
+ = 5.13 =
76
+
77
+ * Fixed several notices when creating new buttons
78
+ * Buttons will now always have 'pointer' cursor
79
+
80
+ = 5.12 =
81
+
82
+ * Replaced color picker with WordPress default color picker
83
+ * Border radius can be locked to change all sides at onces.
84
+ * Cleanup of JS functions.
85
+
86
+ = 5.11 =
87
+
88
+ * Improvements to layout for small and mobile views
89
+ * Optimizations to modal on resizing
90
+ * Social icons for Eyeem added
91
+
92
+ = 5.10 =
93
+
94
+ * Fixed issue with background when using gradients
95
+ * Collection name is shown in button overview when button is in collection
96
+ * Database checks and failovers improved
97
+ * Several small updates to styling and layout
98
+ * Fixed display issue showing pack name / description when empty
99
+
100
+ = 5.9 =
101
+
102
+ * Greatly improved modal layouts
103
+ * Fixed - Social Share : non-existing buttons will not show.
104
+ * Child-spans now inherit background settings from parent anchor
105
+
106
+ = 5.8 =
107
+
108
+ * Fixed - Social Share remove button visible again
109
+ * Fixed - Social Share button without attached network no longer open as popup by default.
110
+ * Fixed - Custom Media Queries disabled after saving
111
+ * Description field can now be hidden via settings
112
+ * Various layout optimizations
113
+ * Tested for version 4.6
114
+
115
+ = 5.7 =
116
+
117
+ * Fixed omission in button clear function causing not to clear fully
118
+ * Fixed typo in Social Share shortcode
119
+ * Fixed social share bug, not correctly removing counts in certain situations
120
+ * Fixed social share icons not having cursor pointer
121
+ * Fixed Text Shadow bug with buttons having only shadow top set.
122
+ * Inline loading of social share collections
123
+
124
+ = 5.6 =
125
+
126
+ * Updated Social Share welcome message
127
+ * Updated Readme text
128
+ * Tested for WP 4.5.3
129
+
130
+ = 5.5 =
131
+
132
+ * Fixed CSS in review notice
133
+ * Fixed title issue with support topic titles
134
+ * Fixed small outlining issues in button editor
135
+
136
+ = 5.4 =
137
+
138
+ * Colorpicker code enhanced
139
+ * Updated container options interface
140
+
141
+ = 5.3 =
142
+
143
+ * Increased performance for shortcode when having an URL in shortcode.
144
+ * Fixed bug Border Shadow not showing when blur is zero.
145
+ * Fixed bug Text Shadow not showing when blur is zero.
146
+ * Fixed issue Text not displaying in preview when button was saved without text
147
+ * Minified all Javascript in plugin for faster performance.
148
+
149
+
150
+ = 5.2 =
151
+
152
+ * Fixed version check to enhance database upgrades
153
+ * Fixed Add buttons dialog in Beaver Builder
154
+ * Extra check for social sharing not to load on WP login pages
155
+
156
+ = 5.1 =
157
+
158
+ * Better pagination and display on Add Button dialog
159
+ * Fixed certain Social Share default values .
160
+ * Made number fields slightly larger
161
+ * Tested up to 4.5.2
162
+
163
+ = 5.0 =
164
+
165
+ * New button editor interface
166
+ * Removed maximum length of text fields
167
+ * Performance: Javascript loading streamlined
168
+ * Fixed: Removal of social sharing collections
169
+ * Improved social share picker
170
+ * Fixed Window resize bug in popups
171
+ * Fixed Array Bug in Social block
172
+
173
+ = 4.22.1 =
174
+
175
+ * Removed Splinfo getExtension call since it's not compatible with all PHP 5.3 installations
176
+
177
+ = 4.22 =
178
+
179
+ * Major upgrade of user interface
180
  * Major cleanup of styling code
181
  * Description now handles multiple lines correctly
182
 
183
+ = 4.21 =
184
 
185
  * Cleaner user interface at font options
186
+ * Check if jquery function exists on front.
187
 
188
+ = 4.20 =
189
 
190
  * Tested for WordPress 4.5
191
  * Moved old error modals in social sharing to new modal
192
+ * New copy dialog
193
 
194
+ = 4.19 =
195
 
196
+ * Fixed: Relative URL's without starting slash no longer are prepended with default scheme
197
+ * Tel: and sms: URL's not accepted in URL field
198
 
199
+ = 4.18 =
200
 
201
  * Fixed problem responsive settings not correctly enabling / disabling options
202
  * Button editor now warns when moving away without saving
203
 
204
+ = 4.17 =
205
 
206
  * Moving from leanModal to better popup code
207
  * Fixed Modal background and CSS error on delete button / view CSS
208
  * Put Font style options (italics) back
209
 
210
+ = 4.16 =
211
 
212
  * Version number added to JS scripts to prevent browser caching on updates
213
+ * Tweaks to the main CSS class statement to avoid clutter
214
+ * Fix for Cloudflare's email obfuscation in combination with responsive buttons.
215
 
216
 
217
+ = 4.15 =
218
 
219
  * Option to add custom class names
220
  * Added changes to increase plugin page speed performance
221
 
222
+ = 4.14 =
223
 
224
  * Buttons in Shortcake didn't show Font Awesome buttons correctly
225
  * Fixed bug in Shortcake rendering with ID's over 10
227
  * Fixed paging and popup issues in button add dialog
228
  * Made previous / next buttons in button add dialog more clear
229
 
230
+ = 4.13 =
231
 
232
+ * New option: Custom rel (Advanced) - for targeting popups
233
+ * Upgraded to Font Awesome 4.5.0
234
  * Fixed remove collection link not working
235
 
236
+ = 4.12 =
237
 
238
  * SO Pagebuilder : Fixed callbacks
239
+ * Shortcake : Fixed faulty callback when mixing add button functionality
240
  * Social Share: fixed caching problem on blog pages results in same share URL's
241
+ * Social Share: fixed no image sharing with Pinterest.
242
+ * Editor: Fixed Javascript crash when clicking No in Delete button dialog
243
 
244
 
245
+ = 4.11.1 =
246
 
247
  * Fixed possible crash due to extra return characters in the plugin causing WordPress to malfunction.
248
 
249
+ = 4.11 =
250
 
251
+ * Fixed SiteOrigin PageBuilder error when adding button
252
  * Shortcake integration
253
  * Add button dialog improvements
254
 
255
 
256
+ = 4.10 =
257
 
258
+ * Removed Twitter share count since Twitter doesn't support this anymore.
259
+ * Fixed issue with color picker
260
  * Color picker window much larger now
261
  * Add button interface now available in SiteOrigin editor widget
262
 
263
+ = 4.09 =
264
 
265
  * Several issues were fixed with upgrading the plugin and database tables
266
  * Fixed link in edit post/page screen when having no buttons
267
+ * Fixed integration crash with new version of SiteOrigin Page Builder
268
 
269
 
270
  = 4.08 =
271
 
272
  * Fixed conflict with WPMU Popup Pro
273
  * New shortcode tag style="inline" - this forces the button style to load in document. This can be useful with JS-heavy sites who don't properly
274
+ load wp_footer();
275
 
276
+ = 4.07 =
277
 
278
+ * Fixed problem with URL encodings
279
+ * Fixed issue with Siteorigin widget not selecting button
280
  * Changes in styling ( WP 4.4. update )
281
 
282
+ = 4.06 =
283
 
284
+ * Default button updated
285
 
286
+ = 4.05 =
287
 
288
  * Integration with SiteOrigin Page Builder
289
 
290
+ = 4.04 =
291
 
292
  * Updates to the color picker interface.
293
 
294
  = 4.03 =
295
 
296
+ * Shortcode examples popup no longer expands the editor window
297
+ * Small fixes to title bar
298
 
299
+ = 4.02 =
300
 
301
  * Fixed message in button inserter incorrectly stating no buttons are found.
302
  * Javascript hardening to prevent conflicts in rare cases
303
  * Better Settings interface
304
 
305
+ = 4.01 =
306
 
307
  * Add check for function 'maybe_convert_table_to_utf8mb4' which doesn't exists before WP 4.2.0
308
  * Several interface fixes
309
 
310
 
311
+ = 4.0.2 =
312
 
313
  * Fixed issue that could cause database save to fail on button edit.
314
  * Security validation on bulk edit form added
 
315
 
316
+
317
+ = 4.0.1 =
318
 
319
  * Changed few PHP calls which possibly were causing crashes on older versions.
320
  * Bug in internal social sharing block function.
321
 
322
+ = 4.0 =
323
 
324
+ * Social sharing [BETA]
325
  * Fixed possible conflicts with colpick.js
326
  * Fixed problem in URL with mailto: scheme
327
+ * Fixed issue with enconding URL's.
328
 
329
+ = 3.19 =
330
 
331
+ * Added possibility for bulk editing - at own risk
332
+ * Changed URL handling in certain cases to better URL encode the non-domain part.
333
 
334
+ = 3.18 =
335
 
336
+ * New filter for button url
337
+ * By default overview shows your latest buttons.
338
+ * Overview now sortable by button id
339
 
340
 
341
+ = 3.17 =
342
 
343
+ * Position and size of preview window updated to be less in the way
344
  * Small layout and text updates
345
 
346
 
347
+ = 3.16.1 =
348
 
349
  * Backward compatibility of layout changes
350
 
 
351
 
352
+
353
+ = 3.16 =
354
 
355
  * Fixed update box running through page title
356
  * Fixed rating screen in some cases could not be closed
361
 
362
  * Fixed save crash in case of custom responsive settings due to debug information
363
 
364
+ = 3.15 =
365
 
366
  * Small validation fix on custom responsive field
367
  * Fixed rare bug occurence in SCSS parser
368
 
369
+ = 3.14 =
370
 
371
  * Fixed crash on servers without character encoding module enabled
372
  * Attempts to upgrade utf-8 table to utf-8mb4 (plugin activation)
373
+ * Groups CSS statements without repeating <style> tag.
374
 
375
+ = 3.13.1 =
376
 
377
  * Fixed issue with font size not being displayed correctly in editor
378
 
379
+ = 3.13 =
380
 
381
+ * Fixed checkbox size on Chrome
382
  * Fixed several layout issues
383
  * Fixed issue with non-latin button names in the css declaration of button
384
  * Paging buttons now disabled if there are no more pages to browse
385
+ * Updated SCSS parser to latest version
386
 
387
 
388
  = 3.12.1 =
390
  * Fixed responsive bug with multiple custom settings
391
  * Fixed checkbox interface bug with responsive settings
392
  * Fixed CSS parse errors with multiple responsive queries
 
 
 
393
 
394
+
395
+ = 3.12 =
396
+
397
+ * Moved from serialize to json_encode
398
  * ID on button is now unique
399
 
400
+ = 3.11 =
401
 
402
  * Better checking of number values in interface
403
  * Button name is now also a class on the button ( for custom work )
404
+ * CSS output can now be compressed ( minified )
405
 
406
+ = 3.10 =
407
 
408
  * Fixed: Now possible to add javascript to button URL field
409
  * Fixed: Several JS plugin conflicts ( notably with Sidekick )
410
+ * Fixed: Now able to add spaces to URL
411
 
412
+ = 3.09 =
413
 
414
  * Responsiveness bug fixes
415
  * Fixed - custom sizes now allow width or height to be zero or not set
416
  * Fixed rare bug when dbDelta was not properly loaded during installation
417
 
418
 
419
+ = 3.08 =
420
 
421
  * Text align now defaults to empty
422
+ * New color picker fixing several bugs
423
+ * Fixed Divi themes / sitebuilder issue with add button
424
  * Fixed small interface issue with paging and zero buttons
425
  * Fixed interface issue with bulk actions notices
426
  * Fixed various small unset variable issues
427
 
428
 
429
+ = 3.07 =
430
 
431
+ * Added Text align option
432
  * Fixed interface issue with removing responsive parts
433
+ * Fixed URL Escaping issue
434
 
435
+ = 3.06 =
436
 
437
  * Added German translation
438
 
439
+ = 3.05 =
440
 
441
+ * Better detection if all needed database fields are present
442
+ * Updates to the plugin styles
443
+ * Fixed a bug on the support page when allow_url_fopen is off
444
  * Some shortcode examples in button editor
445
+ * Fixed a bug in responsive data handling
446
  * Responsive items now can be hidden per screen size
447
 
448
+ = 3.04.2 =
449
 
450
  * Reworked add button interface in the post editor
451
 
452
+ = 3.04.1 =
453
 
454
+ * Version numbering change to allow better version management in WP
455
  * Improved: Wordpress style pagination
456
  * Improved: The button editor interface now warns before permanently deleting a button
457
  * Fixed: Layout issue in button overview disrupting interface
458
  * Fixed: Support area not showing correctly and deprecated error on mysql info.
459
+ * Fixed: Close button didn't show in the external css dialog
460
 
461
+ = 3.04 =
462
 
463
+ * New : Pagination
464
 
465
  * Fixed : Issue in parser causing issues when saving buttons
466
  * Fixed : Button list can now display buttons from cache
468
  * Several smaller issues and interface hardening
469
  * Updated several links
470
 
471
+ = 3.03 =
472
 
473
+ * Fixed: Text shadow and border shadow were still showing with zero width.
474
+ * Fixed: Migrate script from old version moves button id correctly.
475
  * Fixed: Link to buttons missing on plugins page
476
 
477
 
478
+ = 3.02 =
479
 
480
+ * Fixed: IK Facebook plugin jamming the colorpicker
481
  * Fixed: Bug where hover cursor wouldn't show up when url was added via shortcode
482
  * Fixed: Moving table to UTF-8 in settings works again
483
 
484
  * Option for remigration of settings from old to new table in case upgrade didn't complete
485
  * Added PHP 5.3 requirement in readme
486
+ * Added checks for both PHP version, and if activation did run.
487
  * Removed default 'white-space: nowrap'.
488
  * Tested with WP 4.2
489
 
490
+ = 3.01 =
491
 
492
  * Code rebuilt
493
+ * Major performance enhancements
494
+ * Responsive module
495
+ * Dimensions, set width and height
496
 
497
+ = 3.0 =
498
 
499
  * Beta release of new codebase
500
 
501
+ = 1.37 =
502
 
503
  * Fixed two XSS vulnerabilities
504
 
505
+ = 1.36 =
506
 
507
  * Minor tweaks and updates
508
 
509
 
510
+ = 1.35 =
511
 
512
+ * Better description for certain options
513
+ * New icon for WP-repository
514
 
515
+ = 1.34 =
516
 
517
  * Fixed UI issue in edit posts screen.
518
 
519
+ = 1.33 =
520
+ * Buttons list is now sortable by Button name.
521
 
522
+ = 1.32 =
523
  * Setting to remove 'add button' interface from editor
524
 
525
  = 1.31 =
552
  * Added Permissions so more than admin can use the buttons if desired.
553
 
554
  = 1.24.3 =
555
+ * Small CSS tweaks including adding box-sizing and more border-style options.
556
  * Updated some of the notifications.
557
 
558
  = 1.24.2 =
classes/admin-class.php CHANGED
@@ -252,7 +252,7 @@ class maxButtonsAdmin
252
  $args["paged" ] = $paged;
253
 
254
 
255
- $button = new MaxButton();
256
  $buttons = $admin->getButtons($args);
257
 
258
  echo "<div id='maxbuttons'><div class='preview-buttons'>";
252
  $args["paged" ] = $paged;
253
 
254
 
255
+ $button = MB()->getClass('button');
256
  $buttons = $admin->getButtons($args);
257
 
258
  echo "<div id='maxbuttons'><div class='preview-buttons'>";
classes/buttons.php CHANGED
@@ -1,103 +1,103 @@
1
- <?php
2
  namespace MaxButtons;
3
- /** Buttons class - handles paging issues and sanity check for individual buttons
4
  */
5
- class maxButtons
6
  {
7
- protected static $loadedButtons = array(); // loaded button in current scope
8
- /*
9
-
10
  array [ index ] [ button_id ] [data - document_id, done (bool )
11
  */
12
- protected static $documentArray = array(); // given out document ID's
13
-
14
- // override to give out next document id. This is useful when buttons are set but not displayed directly.
15
  protected static $doNext = false;
16
- protected static $current_doc_id = null;
17
- protected static $current_button_id = null;
18
-
19
- protected static $instance = null;
20
-
21
-
22
  public static function getInstance()
23
  {
24
- if (is_null(self::$instance))
25
- self::$instance = new maxButtons();
26
-
27
- return self::$instance;
28
  }
29
-
30
  static function buttonLoad($args)
31
  {
32
 
33
- $button_id = $args["button_id"];
34
- self::$loadedButtons[] = $button_id;
35
- $document_id = self::getDocumentID(array("button_id" => $button_id));
36
- self::$documentArray[] = array($button_id => array('document_id' => $document_id , 'done' => false));
37
 
38
  }
39
-
40
- static function forceNextID()
41
  {
42
  self::$doNext = true;
43
  self::$current_doc_id = null;
44
- self::$current_button_id = null;
45
  }
46
-
47
  static function getDocumentID($args)
48
  {
49
- $button_id = $args["button_id"];
50
-
51
- if (! is_null(self::$current_doc_id) && self::$current_button_id == $button_id )
52
  return self::$current_doc_id;
53
-
54
-
55
  if (self::$doNext == false)
56
  {
57
- foreach(self::$documentArray as $index => $ids)
58
  {
59
  foreach($ids as $doc_button_id => $doc_vars)
60
  {
61
- if ($doc_button_id == $button_id)
62
- {
63
- if (! $doc_vars["done"])
64
- return $doc_vars["document_id"];
65
  }
66
-
67
  }
68
-
69
  }
70
- }
71
- // if not found in documentarray make a new one
72
- $loaded = self::$loadedButtons;
73
- end($loaded);
74
- $i = 0;
75
-
76
- foreach($loaded as $btn_id)
77
  {
78
  if ($btn_id == $button_id)
79
- $i++;
80
  }
81
  $i--; // minus the current added button..
82
-
83
  //$index = key($loaded); // find last index
84
- if ($i == 0)
85
- $document_id = $button_id;
86
  else
87
- $document_id = $button_id . "_" . $i;
88
-
89
  self::$doNext = false;
90
  self::$current_doc_id = $document_id;
91
- self::$current_button_id = $button_id;
92
- return $document_id;
93
-
94
  }
95
 
96
  static function buttonDone($args)
97
  {
98
- $button_id = $args["button_id"];
99
- $document_id = $args["document_id"];
100
-
101
  foreach(self::$documentArray as $index => $data)
102
  {
103
  foreach($data as $doc_button_id => $doc_data)
@@ -106,55 +106,55 @@ class maxButtons
106
  {
107
  self::$documentArray[$index][$button_id]["done"] = true;
108
  }
109
-
110
  }
111
-
112
  }
113
-
114
  }
115
-
116
- public static function ajax_action()
117
  {
118
- $action = sanitize_text_field($_POST['button_action']);
119
  $check = wp_verify_nonce($_POST['nonce'], 'button-' . $action);
120
- $button_id = intval($_POST["button_id"]);
121
- $button = new maxButton();
122
-
123
- if (! $check)
124
- exit('Invalid Nonce');
125
-
126
  switch($action)
127
  {
128
- case "delete":
129
- $button->delete($button_id);
130
- $redirect_url = admin_url() . 'admin.php?page=maxbuttons-controller&action=list&message=1delete';
131
  break;
132
-
133
- case "trash":
134
- $result = $button->set($button_id);
135
  if ($result)
136
- $button->setStatus('trash');
137
- $redirect_url = admin_url() . 'admin.php?page=maxbuttons-controller&action=list&message=1';
138
- break;
139
- case "restore":
140
  $set = $button->set($button_id,'','trash');
141
- $button->setStatus("publish");
142
  $redirect_url = admin_url() . 'admin.php?page=maxbuttons-controller&action=list&status=trash&message=1restore';
143
  break;
144
- case "copy":
145
- $button->set($button_id);
146
- $new_id = $button->copy();
147
  $redirect_url = admin_url() . 'admin.php?page=maxbuttons-controller&action=button&id=' . $new_id;
148
  break;
149
-
150
  }
151
-
152
  if (isset($redirect_url)) {
153
- $response = array('redirection' => $redirect_url);
154
  echo json_encode($response);
155
  exit();
156
  }
157
-
158
  exit(true);
159
  }
160
 
1
+ <?php
2
  namespace MaxButtons;
3
+ /** Buttons class - handles paging issues and sanity check for individual buttons
4
  */
5
+ class maxButtons
6
  {
7
+ protected static $loadedButtons = array(); // loaded button in current scope
8
+ /*
9
+
10
  array [ index ] [ button_id ] [data - document_id, done (bool )
11
  */
12
+ protected static $documentArray = array(); // given out document ID's
13
+
14
+ // override to give out next document id. This is useful when buttons are set but not displayed directly.
15
  protected static $doNext = false;
16
+ protected static $current_doc_id = null;
17
+ protected static $current_button_id = null;
18
+
19
+ protected static $instance = null;
20
+
21
+
22
  public static function getInstance()
23
  {
24
+ if (is_null(self::$instance))
25
+ self::$instance = MB()->getClass('button');
26
+
27
+ return self::$instance;
28
  }
29
+
30
  static function buttonLoad($args)
31
  {
32
 
33
+ $button_id = $args["button_id"];
34
+ self::$loadedButtons[] = $button_id;
35
+ $document_id = self::getDocumentID(array("button_id" => $button_id));
36
+ self::$documentArray[] = array($button_id => array('document_id' => $document_id , 'done' => false));
37
 
38
  }
39
+
40
+ static function forceNextID()
41
  {
42
  self::$doNext = true;
43
  self::$current_doc_id = null;
44
+ self::$current_button_id = null;
45
  }
46
+
47
  static function getDocumentID($args)
48
  {
49
+ $button_id = $args["button_id"];
50
+
51
+ if (! is_null(self::$current_doc_id) && self::$current_button_id == $button_id )
52
  return self::$current_doc_id;
53
+
54
+
55
  if (self::$doNext == false)
56
  {
57
+ foreach(self::$documentArray as $index => $ids)
58
  {
59
  foreach($ids as $doc_button_id => $doc_vars)
60
  {
61
+ if ($doc_button_id == $button_id)
62
+ {
63
+ if (! $doc_vars["done"])
64
+ return $doc_vars["document_id"];
65
  }
66
+
67
  }
68
+
69
  }
70
+ }
71
+ // if not found in documentarray make a new one
72
+ $loaded = self::$loadedButtons;
73
+ end($loaded);
74
+ $i = 0;
75
+
76
+ foreach($loaded as $btn_id)
77
  {
78
  if ($btn_id == $button_id)
79
+ $i++;
80
  }
81
  $i--; // minus the current added button..
82
+
83
  //$index = key($loaded); // find last index
84
+ if ($i == 0)
85
+ $document_id = $button_id;
86
  else
87
+ $document_id = $button_id . "_" . $i;
88
+
89
  self::$doNext = false;
90
  self::$current_doc_id = $document_id;
91
+ self::$current_button_id = $button_id;
92
+ return $document_id;
93
+
94
  }
95
 
96
  static function buttonDone($args)
97
  {
98
+ $button_id = $args["button_id"];
99
+ $document_id = $args["document_id"];
100
+
101
  foreach(self::$documentArray as $index => $data)
102
  {
103
  foreach($data as $doc_button_id => $doc_data)
106
  {
107
  self::$documentArray[$index][$button_id]["done"] = true;
108
  }
109
+
110
  }
111
+
112
  }
113
+
114
  }
115
+
116
+ public static function ajax_action()
117
  {
118
+ $action = sanitize_text_field($_POST['button_action']);
119
  $check = wp_verify_nonce($_POST['nonce'], 'button-' . $action);
120
+ $button_id = intval($_POST["button_id"]);
121
+ $button = MB()->getClass('button');
122
+
123
+ if (! $check)
124
+ exit('Invalid Nonce');
125
+
126
  switch($action)
127
  {
128
+ case "delete":
129
+ $button->delete($button_id);
130
+ $redirect_url = admin_url() . 'admin.php?page=maxbuttons-controller&action=list&message=1delete';
131
  break;
132
+
133
+ case "trash":
134
+ $result = $button->set($button_id);
135
  if ($result)
136
+ $button->setStatus('trash');
137
+ $redirect_url = admin_url() . 'admin.php?page=maxbuttons-controller&action=list&message=1';
138
+ break;
139
+ case "restore":
140
  $set = $button->set($button_id,'','trash');
141
+ $button->setStatus("publish");
142
  $redirect_url = admin_url() . 'admin.php?page=maxbuttons-controller&action=list&status=trash&message=1restore';
143
  break;
144
+ case "copy":
145
+ $button->set($button_id);
146
+ $new_id = $button->copy();
147
  $redirect_url = admin_url() . 'admin.php?page=maxbuttons-controller&action=button&id=' . $new_id;
148
  break;
149
+
150
  }
151
+
152
  if (isset($redirect_url)) {
153
+ $response = array('redirection' => $redirect_url);
154
  echo json_encode($response);
155
  exit();
156
  }
157
+
158
  exit(true);
159
  }
160
 
classes/installation.php CHANGED
@@ -62,7 +62,7 @@ class maxInstall
62
  static::upgradeUTF();
63
  static::updateFA();
64
 
65
- $button = new maxButton();
66
  $button->reset_cache(); //refresh cache
67
 
68
  update_option(MAXBUTTONS_VERSION_KEY, MAXBUTTONS_VERSION_NUM);
@@ -186,7 +186,7 @@ class maxInstall
186
  $wpdb->insert($table, array("id" => $id));
187
 
188
  //$data = apply_filters("mb-migration-data",$data, $row);
189
- $button = new maxButton();
190
  $button->set($id);
191
  $button->save($data);
192
  }
@@ -318,7 +318,7 @@ class maxInstall
318
  require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
319
 
320
  $table_name = maxUtils::get_table_name();
321
- $button = new maxButton();
322
  $blocks = $button->getBlocks();
323
 
324
  // IMPORTANT: There MUST be two spaces between the PRIMARY KEY keywords
62
  static::upgradeUTF();
63
  static::updateFA();
64
 
65
+ $button = MB()->getClass('button');
66
  $button->reset_cache(); //refresh cache
67
 
68
  update_option(MAXBUTTONS_VERSION_KEY, MAXBUTTONS_VERSION_NUM);
186
  $wpdb->insert($table, array("id" => $id));
187
 
188
  //$data = apply_filters("mb-migration-data",$data, $row);
189
+ $button = MB()->getClass('button');
190
  $button->set($id);
191
  $button->save($data);
192
  }
318
  require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
319
 
320
  $table_name = maxUtils::get_table_name();
321
+ $button = MB()->getClass('button');
322
  $blocks = $button->getBlocks();
323
 
324
  // IMPORTANT: There MUST be two spaces between the PRIMARY KEY keywords
classes/maxbuttons-class.php CHANGED
@@ -120,7 +120,6 @@ class maxButtonsPlugin
120
  "collections" => "maxCollections",
121
  "collection" => "maxCollection",
122
  "pack" => "maxPack",
123
-
124
  );
125
 
126
  $this->mainClasses = $classes;
@@ -375,7 +374,7 @@ class maxButtonsPlugin
375
  }
376
 
377
  $version = MAXBUTTONS_VERSION_NUM;
378
- $this->load_library('fontawesome');
379
 
380
  wp_enqueue_style('wp-color-picker');
381
  wp_enqueue_style('maxbuttons-css', $this->plugin_url . 'assets/css/style.css', array(), $version);
@@ -471,7 +470,7 @@ class maxButtonsPlugin
471
  if (! $this->debug_mode)
472
  $js_url .= 'min/';
473
 
474
- $this->load_library('fontawesome');
475
 
476
  wp_register_script('mb-media-button', $js_url . 'maxbuttons_media_button.js', array('jquery', 'maxbuttons-modal'), $version, true);
477
  $this->load_modal_script();
120
  "collections" => "maxCollections",
121
  "collection" => "maxCollection",
122
  "pack" => "maxPack",
 
123
  );
124
 
125
  $this->mainClasses = $classes;
374
  }
375
 
376
  $version = MAXBUTTONS_VERSION_NUM;
377
+ //$this->load_library('fontawesome');
378
 
379
  wp_enqueue_style('wp-color-picker');
380
  wp_enqueue_style('maxbuttons-css', $this->plugin_url . 'assets/css/style.css', array(), $version);
470
  if (! $this->debug_mode)
471
  $js_url .= 'min/';
472
 
473
+ //$this->load_library('fontawesome');
474
 
475
  wp_register_script('mb-media-button', $js_url . 'maxbuttons_media_button.js', array('jquery', 'maxbuttons-modal'), $version, true);
476
  $this->load_modal_script();
includes/maxbuttons-button.php CHANGED
@@ -2,7 +2,7 @@
2
  namespace MaxButtons;
3
  defined('ABSPATH') or die('No direct access permitted');
4
 
5
- $button = MB()->getClass("button"); //new maxButton();
6
  $button_id = 0;
7
 
8
  if ($_POST) {
2
  namespace MaxButtons;
3
  defined('ABSPATH') or die('No direct access permitted');
4
 
5
+ $button = MB()->getClass("button");
6
  $button_id = 0;
7
 
8
  if ($_POST) {
includes/maxbuttons-list-trash.php CHANGED
@@ -4,19 +4,19 @@ defined('ABSPATH') or die('No direct access permitted');
4
 
5
  $result = '';
6
 
7
- exit("Not used");
8
 
9
- $button = new maxButton();
10
 
11
  if ($_POST) {
12
  if (isset($_POST['button-id']) && isset($_POST['bulk-action-select'])) {
13
  if ($_POST['bulk-action-select'] == 'restore') {
14
  $count = 0;
15
-
16
  foreach ($_POST['button-id'] as $id) {
17
  $button->set($id);
18
- $button->setStatus('publish');
19
-
20
  //maxbuttons_button_restore($id);
21
  $count++;
22
  }
@@ -24,15 +24,15 @@ if ($_POST) {
24
  if ($count == 1) {
25
  $result = __('Restored 1 button.', 'maxbuttons');
26
  }
27
-
28
  if ($count > 1) {
29
  $result = __('Restored ', 'maxbuttons') . $count . __(' buttons.', 'maxbuttons');
30
  }
31
  }
32
-
33
  if ($_POST['bulk-action-select'] == 'delete') {
34
  $count = 0;
35
-
36
  foreach ($_POST['button-id'] as $id) {
37
  $button->delete($id);
38
  $count++;
@@ -41,7 +41,7 @@ if ($_POST) {
41
  if ($count == 1) {
42
  $result = __('Deleted 1 button.', 'maxbuttons');
43
  }
44
-
45
  if ($count > 1) {
46
  $result = __('Deleted ', 'maxbuttons') . $count . __(' buttons.', 'maxbuttons');
47
  }
@@ -60,26 +60,26 @@ if (isset($_GET['message']) && $_GET['message'] == '1delete') {
60
 
61
 
62
  $args = array();
63
- if (isset($_GET["orderby"]))
64
- $args["orderby"] = $_GET["orderby"];
65
- if (isset($_GET["order"]))
66
- $args["order"] = $_GET["order"];
67
 
68
  $mbadmin = MB()->getClass('admin');
69
 
70
- $args["status"] = "trash";
71
  $args["limit"] = -1;
72
 
73
  //$published_buttons = $mbadmin->getButtons($args);
74
  $published_buttons_count = $mbadmin->getButtonCount($args);
75
 
76
  $trashed_buttons = $mbadmin->getButtons($args);
77
- $trashed_buttons_count = $mbadmin->getButtonCount($args);
 
 
78
 
79
- $pagination = $mbadmin->getButtonPages($args);
80
 
81
 
82
-
83
  ?>
84
 
85
  <script type="text/javascript">
@@ -94,7 +94,7 @@ $pagination = $mbadmin->getButtonPages($args);
94
  }
95
  });
96
  });
97
-
98
  <?php if ($result != '') { ?>
99
  jQuery("#maxbuttons .message").show();
100
  <?php } ?>
@@ -106,15 +106,15 @@ $pagination = $mbadmin->getButtonPages($args);
106
  <div class="icon32">
107
  <a href="https://maxbuttons.com" target="_blank"><img src="<?php echo MAXBUTTONS_PLUGIN_URL ?>/images/mb-32.png" alt="MaxButtons" /></a>
108
  </div>
109
-
110
  <h2 class="title"><?php _e('MaxButtons: Button List', 'maxbuttons') ?></h2>
111
-
112
  <div class="logo">
113
- <?php do_action("mb-display-logo"); ?>
114
  </div>
115
-
116
  <div class="clear"></div>
117
- <?php do_action('mb-display-tabs'); ?>
118
 
119
  <div class="form-actions">
120
  <a class="button-primary" href="<?php echo admin_url() ?>admin.php?page=maxbuttons-controller&action=button"><?php _e('Add New', 'maxbuttons') ?></a>
@@ -123,13 +123,13 @@ $pagination = $mbadmin->getButtonPages($args);
123
  <?php if ($result != '') { ?>
124
  <div class="message"><?php echo $result ?></div>
125
  <?php } ?>
126
-
127
  <p class="status">
128
  <a href="<?php echo admin_url() ?>admin.php?page=maxbuttons-controller&action=list"><?php _e('All', 'maxbuttons') ?></a> <span class="count">(<?php echo $published_buttons_count ?>)</span>
129
  <span class="separator">|</span>
130
  <strong><?php _e('Trash', 'maxbuttons') ?></strong> <span class="count">(<?php echo $trashed_buttons_count ?>)</span>
131
  </p>
132
-
133
  <form method="post">
134
  <select name="bulk-action-select" id="bulk-action-select">
135
  <option value=""><?php _e('Bulk Actions', 'maxbuttons') ?></option>
@@ -137,8 +137,8 @@ $pagination = $mbadmin->getButtonPages($args);
137
  <option value="delete"><?php _e('Delete Permanently', 'maxbuttons') ?></option>
138
  </select>
139
  <input type="submit" class="button" value="<?php _e('Apply', 'maxbuttons') ?>" />
140
-
141
- <div class="button-list">
142
  <table cellpadding="0" cellspacing="0" width="100%">
143
  <tr>
144
  <th><input type="checkbox" name="bulk-action-all" id="bulk-action-all" /></th>
@@ -147,10 +147,10 @@ $pagination = $mbadmin->getButtonPages($args);
147
  <th><?php _e('Shortcode', 'maxbuttons') ?></th>
148
  <th><?php _e('Actions', 'maxbuttons') ?></th>
149
  </tr>
150
- <?php foreach ($trashed_buttons as $b) {
151
-
152
- $id = $b["id"];
153
- $button->set($id,'','trash');
154
  ?>
155
  <tr>
156
  <td valign="center">
@@ -159,7 +159,7 @@ $pagination = $mbadmin->getButtonPages($args);
159
  <td>
160
  <div class="shortcode-container">
161
  <?php//echo do_shortcode('[maxbutton id="' . $id . '" externalcss="false" ignorecontainer="true"]') ?>
162
- <?php $button->display( array("preview" => true, "preview_part" => "full") ); ?>
163
  </div>
164
  </td>
165
  <td>
@@ -182,7 +182,6 @@ $pagination = $mbadmin->getButtonPages($args);
182
  </form>
183
  </div>
184
  <div class="ad-wrap">
185
- <?php do_action("mb-display-ads"); ?>
186
- </div>
187
  </div>
188
-
4
 
5
  $result = '';
6
 
7
+ exit("Not used");
8
 
9
+ $button = MB()->getClass('button');
10
 
11
  if ($_POST) {
12
  if (isset($_POST['button-id']) && isset($_POST['bulk-action-select'])) {
13
  if ($_POST['bulk-action-select'] == 'restore') {
14
  $count = 0;
15
+
16
  foreach ($_POST['button-id'] as $id) {
17
  $button->set($id);
18
+ $button->setStatus('publish');
19
+
20
  //maxbuttons_button_restore($id);
21
  $count++;
22
  }
24
  if ($count == 1) {
25
  $result = __('Restored 1 button.', 'maxbuttons');
26
  }
27
+
28
  if ($count > 1) {
29
  $result = __('Restored ', 'maxbuttons') . $count . __(' buttons.', 'maxbuttons');
30
  }
31
  }
32
+
33
  if ($_POST['bulk-action-select'] == 'delete') {
34
  $count = 0;
35
+
36
  foreach ($_POST['button-id'] as $id) {
37
  $button->delete($id);
38
  $count++;
41
  if ($count == 1) {
42
  $result = __('Deleted 1 button.', 'maxbuttons');
43
  }
44
+
45
  if ($count > 1) {
46
  $result = __('Deleted ', 'maxbuttons') . $count . __(' buttons.', 'maxbuttons');
47
  }
60
 
61
 
62
  $args = array();
63
+ if (isset($_GET["orderby"]))
64
+ $args["orderby"] = $_GET["orderby"];
65
+ if (isset($_GET["order"]))
66
+ $args["order"] = $_GET["order"];
67
 
68
  $mbadmin = MB()->getClass('admin');
69
 
70
+ $args["status"] = "trash";
71
  $args["limit"] = -1;
72
 
73
  //$published_buttons = $mbadmin->getButtons($args);
74
  $published_buttons_count = $mbadmin->getButtonCount($args);
75
 
76
  $trashed_buttons = $mbadmin->getButtons($args);
77
+ $trashed_buttons_count = $mbadmin->getButtonCount($args);
78
+
79
+ $pagination = $mbadmin->getButtonPages($args);
80
 
 
81
 
82
 
 
83
  ?>
84
 
85
  <script type="text/javascript">
94
  }
95
  });
96
  });
97
+
98
  <?php if ($result != '') { ?>
99
  jQuery("#maxbuttons .message").show();
100
  <?php } ?>
106
  <div class="icon32">
107
  <a href="https://maxbuttons.com" target="_blank"><img src="<?php echo MAXBUTTONS_PLUGIN_URL ?>/images/mb-32.png" alt="MaxButtons" /></a>
108
  </div>
109
+
110
  <h2 class="title"><?php _e('MaxButtons: Button List', 'maxbuttons') ?></h2>
111
+
112
  <div class="logo">
113
+ <?php do_action("mb-display-logo"); ?>
114
  </div>
115
+
116
  <div class="clear"></div>
117
+ <?php do_action('mb-display-tabs'); ?>
118
 
119
  <div class="form-actions">
120
  <a class="button-primary" href="<?php echo admin_url() ?>admin.php?page=maxbuttons-controller&action=button"><?php _e('Add New', 'maxbuttons') ?></a>
123
  <?php if ($result != '') { ?>
124
  <div class="message"><?php echo $result ?></div>
125
  <?php } ?>
126
+
127
  <p class="status">
128
  <a href="<?php echo admin_url() ?>admin.php?page=maxbuttons-controller&action=list"><?php _e('All', 'maxbuttons') ?></a> <span class="count">(<?php echo $published_buttons_count ?>)</span>
129
  <span class="separator">|</span>
130
  <strong><?php _e('Trash', 'maxbuttons') ?></strong> <span class="count">(<?php echo $trashed_buttons_count ?>)</span>
131
  </p>
132
+
133
  <form method="post">
134
  <select name="bulk-action-select" id="bulk-action-select">
135
  <option value=""><?php _e('Bulk Actions', 'maxbuttons') ?></option>
137
  <option value="delete"><?php _e('Delete Permanently', 'maxbuttons') ?></option>
138
  </select>
139
  <input type="submit" class="button" value="<?php _e('Apply', 'maxbuttons') ?>" />
140
+
141
+ <div class="button-list">
142
  <table cellpadding="0" cellspacing="0" width="100%">
143
  <tr>
144
  <th><input type="checkbox" name="bulk-action-all" id="bulk-action-all" /></th>
147
  <th><?php _e('Shortcode', 'maxbuttons') ?></th>
148
  <th><?php _e('Actions', 'maxbuttons') ?></th>
149
  </tr>
150
+ <?php foreach ($trashed_buttons as $b) {
151
+
152
+ $id = $b["id"];
153
+ $button->set($id,'','trash');
154
  ?>
155
  <tr>
156
  <td valign="center">
159
  <td>
160
  <div class="shortcode-container">
161
  <?php//echo do_shortcode('[maxbutton id="' . $id . '" externalcss="false" ignorecontainer="true"]') ?>
162
+ <?php $button->display( array("preview" => true, "preview_part" => "full") ); ?>
163
  </div>
164
  </td>
165
  <td>
182
  </form>
183
  </div>
184
  <div class="ad-wrap">
185
+ <?php do_action("mb-display-ads"); ?>
186
+ </div>
187
  </div>
 
includes/maxbuttons-settings.php CHANGED
@@ -4,7 +4,7 @@ defined('ABSPATH') or die('No direct access permitted');
4
 
5
  // settings for this page are registered in register_setting ( main class )
6
 
7
- $button = new maxButton(); // To load maxfield templates
8
 
9
  if(isset($_POST['alter_charset'])) {
10
 
@@ -23,7 +23,7 @@ if(isset($_POST['alter_charset'])) {
23
 
24
  if (isset($_POST["reset_cache"]))
25
  {
26
- $button = new maxButton();
27
  $button->reset_cache();
28
 
29
  }
@@ -41,7 +41,7 @@ if (isset($_POST["replace"]) && check_admin_referer('mb_bulk_edit', 'bulk_edit')
41
  $replace = sanitize_text_field($_POST["replace"]);
42
  $field = sanitize_text_field($_POST["replace_field"]);
43
 
44
- $button = new maxButton();
45
 
46
  if ($field == '')
47
  exit("FATAL");
4
 
5
  // settings for this page are registered in register_setting ( main class )
6
 
7
+ $button = MB()->getClass('button'); // To load maxfield templates
8
 
9
  if(isset($_POST['alter_charset'])) {
10
 
23
 
24
  if (isset($_POST["reset_cache"]))
25
  {
26
+ $button = MB()->getClass('button');
27
  $button->reset_cache();
28
 
29
  }
41
  $replace = sanitize_text_field($_POST["replace"]);
42
  $field = sanitize_text_field($_POST["replace_field"]);
43
 
44
+ $button = MB()->getClass('button');
45
 
46
  if ($field == '')
47
  exit("FATAL");
js/maxajax.js CHANGED
@@ -3,7 +3,9 @@
3
  /* Get the standard AJAX vars for this plugin */
4
 
5
  function maxAjax() {
6
-
 
 
7
  }
8
 
9
  maxAjax.prototype.init = function()
@@ -26,11 +28,21 @@ maxAjax.prototype.ajaxInit = function()
26
  return data;
27
  }
28
 
 
 
 
 
 
 
 
 
29
  maxAjax.prototype.ajaxForm = function (e)
30
  {
31
  e.preventDefault();
32
 
33
  var target = $(e.target);
 
 
34
  var form = $(target).parents('form');
35
  var action = $(target).data('action');
36
 
@@ -41,7 +53,7 @@ maxAjax.prototype.ajaxForm = function (e)
41
 
42
  $(document).trigger('maxajax_formpost_' + action, [data,target]);
43
 
44
- this.showSpinner(target);
45
 
46
  this.ajaxPost(data);
47
  }
@@ -50,7 +62,16 @@ maxAjax.prototype.ajaxForm = function (e)
50
  maxAjax.prototype.ajaxCall = function (e)
51
  {
52
  e.preventDefault();
53
- var target = e.target;
 
 
 
 
 
 
 
 
 
54
 
55
  var param = false;
56
  var plugin_action = $(target).data('action');
@@ -68,7 +89,9 @@ maxAjax.prototype.ajaxCall = function (e)
68
  data['param'] = param;
69
  data['post'] = $('form').serialize(); // send it all
70
 
71
- this.showSpinner(target);
 
 
72
 
73
  this.ajaxPost(data);
74
  }
@@ -105,7 +128,6 @@ maxAjax.prototype.ajaxPost = function(data, successHandler, errorHandler)
105
  var errorHandler = function (r,s,o,) { self.defaultErrorHandler(r,s,o,action) } ;
106
  }
107
 
108
-
109
  $.ajax({
110
  type: "POST",
111
  url: maxajax.ajax_url,
3
  /* Get the standard AJAX vars for this plugin */
4
 
5
  function maxAjax() {
6
+ this.spinnerFunction = this.showSpinner;
7
+ this.successHandler = this.defaultSuccesHandler;
8
+ this.errorHandler = this.defaultErrorHandler;
9
  }
10
 
11
  maxAjax.prototype.init = function()
28
  return data;
29
  }
30
 
31
+ maxAjax.prototype.setFunction = function(type, new_function)
32
+ {
33
+ if (type == 'spinner')
34
+ {
35
+ this.spinnerFunction = new_function;
36
+ }
37
+ }
38
+
39
  maxAjax.prototype.ajaxForm = function (e)
40
  {
41
  e.preventDefault();
42
 
43
  var target = $(e.target);
44
+
45
+
46
  var form = $(target).parents('form');
47
  var action = $(target).data('action');
48
 
53
 
54
  $(document).trigger('maxajax_formpost_' + action, [data,target]);
55
 
56
+ this.spinnerFunction(target);
57
 
58
  this.ajaxPost(data);
59
  }
62
  maxAjax.prototype.ajaxCall = function (e)
63
  {
64
  e.preventDefault();
65
+ var target = $(e.target);
66
+
67
+ if (! $(target).hasClass('.mb-ajax-action') && ! $(target).hasClass('.mb-ajax-action-change') )
68
+ {
69
+ if ($(target).parents('.mb-ajax-action'). length > 0)
70
+ target = $(e.target).parents('.mb-ajax-action');
71
+
72
+ if ($(target).parents('.mb-ajax-action-change'). length > 0)
73
+ target = $(e.target).parents('.mb-ajax-action');
74
+ }
75
 
76
  var param = false;
77
  var plugin_action = $(target).data('action');
89
  data['param'] = param;
90
  data['post'] = $('form').serialize(); // send it all
91
 
92
+ var spinnerFunc = this.spinnerFunction;
93
+
94
+ this.spinnerFunction(target);
95
 
96
  this.ajaxPost(data);
97
  }
128
  var errorHandler = function (r,s,o,) { self.defaultErrorHandler(r,s,o,action) } ;
129
  }
130
 
 
131
  $.ajax({
132
  type: "POST",
133
  url: maxajax.ajax_url,
js/maxmodal.js CHANGED
@@ -258,7 +258,7 @@
258
  }
259
  catch(err)
260
  {
261
-
262
  console.log('MB Modal Callback Error: ' + err.message);
263
  console.log('MB Mobdal tried calling: ' + funcName);
264
  }
258
  }
259
  catch(err)
260
  {
261
+ ex
262
  console.log('MB Modal Callback Error: ' + err.message);
263
  console.log('MB Mobdal tried calling: ' + funcName);
264
  }
js/min/maxajax.js CHANGED
@@ -3,7 +3,9 @@
3
  /* Get the standard AJAX vars for this plugin */
4
 
5
  function maxAjax() {
6
-
 
 
7
  }
8
 
9
  maxAjax.prototype.init = function()
@@ -26,11 +28,21 @@ maxAjax.prototype.ajaxInit = function()
26
  return data;
27
  }
28
 
 
 
 
 
 
 
 
 
29
  maxAjax.prototype.ajaxForm = function (e)
30
  {
31
  e.preventDefault();
32
 
33
  var target = $(e.target);
 
 
34
  var form = $(target).parents('form');
35
  var action = $(target).data('action');
36
 
@@ -41,7 +53,7 @@ maxAjax.prototype.ajaxForm = function (e)
41
 
42
  $(document).trigger('maxajax_formpost_' + action, [data,target]);
43
 
44
- this.showSpinner(target);
45
 
46
  this.ajaxPost(data);
47
  }
@@ -50,7 +62,16 @@ maxAjax.prototype.ajaxForm = function (e)
50
  maxAjax.prototype.ajaxCall = function (e)
51
  {
52
  e.preventDefault();
53
- var target = e.target;
 
 
 
 
 
 
 
 
 
54
 
55
  var param = false;
56
  var plugin_action = $(target).data('action');
@@ -68,7 +89,9 @@ maxAjax.prototype.ajaxCall = function (e)
68
  data['param'] = param;
69
  data['post'] = $('form').serialize(); // send it all
70
 
71
- this.showSpinner(target);
 
 
72
 
73
  this.ajaxPost(data);
74
  }
@@ -105,7 +128,6 @@ maxAjax.prototype.ajaxPost = function(data, successHandler, errorHandler)
105
  var errorHandler = function (r,s,o,) { self.defaultErrorHandler(r,s,o,action) } ;
106
  }
107
 
108
-
109
  $.ajax({
110
  type: "POST",
111
  url: maxajax.ajax_url,
3
  /* Get the standard AJAX vars for this plugin */
4
 
5
  function maxAjax() {
6
+ this.spinnerFunction = this.showSpinner;
7
+ this.successHandler = this.defaultSuccesHandler;
8
+ this.errorHandler = this.defaultErrorHandler;
9
  }
10
 
11
  maxAjax.prototype.init = function()
28
  return data;
29
  }
30
 
31
+ maxAjax.prototype.setFunction = function(type, new_function)
32
+ {
33
+ if (type == 'spinner')
34
+ {
35
+ this.spinnerFunction = new_function;
36
+ }
37
+ }
38
+
39
  maxAjax.prototype.ajaxForm = function (e)
40
  {
41
  e.preventDefault();
42
 
43
  var target = $(e.target);
44
+
45
+
46
  var form = $(target).parents('form');
47
  var action = $(target).data('action');
48
 
53
 
54
  $(document).trigger('maxajax_formpost_' + action, [data,target]);
55
 
56
+ this.spinnerFunction(target);
57
 
58
  this.ajaxPost(data);
59
  }
62
  maxAjax.prototype.ajaxCall = function (e)
63
  {
64
  e.preventDefault();
65
+ var target = $(e.target);
66
+
67
+ if (! $(target).hasClass('.mb-ajax-action') && ! $(target).hasClass('.mb-ajax-action-change') )
68
+ {
69
+ if ($(target).parents('.mb-ajax-action'). length > 0)
70
+ target = $(e.target).parents('.mb-ajax-action');
71
+
72
+ if ($(target).parents('.mb-ajax-action-change'). length > 0)
73
+ target = $(e.target).parents('.mb-ajax-action');
74
+ }
75
 
76
  var param = false;
77
  var plugin_action = $(target).data('action');
89
  data['param'] = param;
90
  data['post'] = $('form').serialize(); // send it all
91
 
92
+ var spinnerFunc = this.spinnerFunction;
93
+
94
+ this.spinnerFunction(target);
95
 
96
  this.ajaxPost(data);
97
  }
128
  var errorHandler = function (r,s,o,) { self.defaultErrorHandler(r,s,o,action) } ;
129
  }
130
 
 
131
  $.ajax({
132
  type: "POST",
133
  url: maxajax.ajax_url,
js/min/maxmodal.js CHANGED
@@ -1 +1 @@
1
- function maxModal(){}maxModal.prototype={currentModal:null,modals:[],controls:[],parent:"#maxbuttons",multiple:!1,windowHeight:!1,windowWidth:!1,setWidth:!1,setHeight:!1,target:!1},maxModal.prototype.init=function(){this.windowHeight=$(window).height(),this.windowWidth=$(window).width(),$(document).off("click",".maxmodal"),$(document).on("click",".maxmodal",$.proxy(this.buildModal,this)),$(window).on("resize",$.proxy(this.checkResize,this))},maxModal.prototype.focus=function(){this.currentModal.show()},maxModal.prototype.get=function(){return this.currentModal},maxModal.prototype.show=function(){$(".maxmodal_overlay").remove(),$("body").removeClass("max-modal-active"),this.writeOverlay(),this.setWidth&&this.currentModal.width(this.setWidth),this.setHeight&&this.currentModal.height(this.setHeight);var t=this.currentModal.height(),o=this.currentModal.width(),e=(this.windowHeight-t)/2,a=(this.windowWidth-o)/2;e<30&&(e=30),t>this.windowHeight&&this.currentModal.height(this.windowHeight-e-5+"px"),this.currentModal.css("left",a+"px"),this.currentModal.css("top",e+"px"),this.currentModal.css("height",t),this.currentModal.show(),$(".maxmodal_overlay").show(),$("body").addClass("max-modal-active"),$(document).off("keydown",$.proxy(this.keyPressHandler,this)),$(document).on("keydown",$.proxy(this.keyPressHandler,this)),this.currentModal.focus()},maxModal.prototype.keyPressHandler=function(t){27===t.keyCode&&this.close()},maxModal.prototype.checkResize=function(){this.windowHeight=$(window).height(),this.windowWidth=$(window).width(),null!==this.currentModal&&(this.currentModal.removeAttr("style"),this.currentModal.find(".modal_content").removeAttr("style"),this.show())},maxModal.prototype.close=function(){this.currentModal.trigger("modal_close",[this]),this.currentModal.remove(),this.currentModal=null,$(".maxmodal_overlay").remove(),$("body").removeClass("max-modal-active"),$(document).off("keydown",$.proxy(this.keyPressHandler,this))},maxModal.prototype.fadeOut=function(t){void 0==typeof t&&(t=600);var o=this;this.currentModal.fadeOut(t,function(){o.close()})},maxModal.prototype.setTitle=function(t){this.currentModal.find(".modal_title").text(t)},maxModal.prototype.setControls=function(t){var o=this.currentModal.find(".modal_content"),e=$('<div class="controls">');for(i=0;i<this.controls.length;i++)e.append(this.controls[i]);void 0!==t&&e.append(t),o.append(e),$(this.currentModal).find(".modal_close").off("click"),$(this.currentModal).find(".modal_close").on("click",$.proxy(this.close,this))},maxModal.prototype.addControl=function(t,o,e){var a="";switch(t){case"yes":a=modaltext.yes;break;case"ok":a=modaltext.ok;break;case"no":a=modaltext.no;break;case"cancel":a=modaltext.cancel;break;case"insert":a=mbtrans.insert}var i=$('<a class="button-primary '+t+'">'+a+"</a>");i.on("click",o,e),this.controls.push(i)},maxModal.prototype.setContent=function(t){this.currentModal.find(".modal_content").html(t)},maxModal.prototype.buildModal=function(t){t.preventDefault();var o=$(t.target);void 0===o.data("modal")&&(o=o.parents(".maxmodal")),this.target=o;var e=o.data("modal"),a=$("#"+e);void 0!==a.data("width")?this.setWidth=a.data("width"):this.setWidth=!1,void 0!==a.data("height")?this.setHeight=a.data("height"):this.setHeight=!1;var i=$(a).find(".title").text(),d=$(a).find(".controls").html(),s=$(a).find(".content").html();if(this.newModal(e),this.setTitle(i),this.setContent(s),this.setControls(d),void 0!==$(a).data("load")){var l=a.data("load")+"(modal)",n=new Function("modal",l);try{n(this)}catch(t){console.log("MB Modal Callback Error: "+t.message),console.log("MB Mobdal tried calling: "+l)}}this.show()},maxModal.prototype.newModal=function(t){null!==this.currentModal&&this.close();var o=$('<div class="max-modal '+t+'" > \t\t\t\t\t\t <div class="modal_header"> \t\t\t\t\t\t\t <div class="modal_close dashicons dashicons-no"></div><h3 class="modal_title"></h3> \t\t\t\t\t\t </div> \t\t\t\t\t\t <div class="inner modal_content"></div>\t\t\t\t\t </div>');return $(this.parent).length>0?$(this.parent).append(o):$("body").append(o),$(o).draggable({handle:".modal_header"}),this.modals.push(o),this.currentModal=o,this.controls=[],this},maxModal.prototype.writeOverlay=function(){$(this.parent).append('<div class="maxmodal_overlay"></div>'),$(".maxmodal_overlay").on("click",$.proxy(this.close,this))};
1
+ function maxModal(){}maxModal.prototype={currentModal:null,modals:[],controls:[],parent:"#maxbuttons",multiple:!1,windowHeight:!1,windowWidth:!1,setWidth:!1,setHeight:!1,target:!1},maxModal.prototype.init=function(){this.windowHeight=$(window).height(),this.windowWidth=$(window).width(),$(document).off("click",".maxmodal"),$(document).on("click",".maxmodal",$.proxy(this.buildModal,this)),$(window).on("resize",$.proxy(this.checkResize,this))},maxModal.prototype.focus=function(){this.currentModal.show()},maxModal.prototype.get=function(){return this.currentModal},maxModal.prototype.show=function(){$(".maxmodal_overlay").remove(),$("body").removeClass("max-modal-active"),this.writeOverlay(),this.setWidth&&this.currentModal.width(this.setWidth),this.setHeight&&this.currentModal.height(this.setHeight);var t=this.currentModal.height(),o=this.currentModal.width(),e=(this.windowHeight-t)/2,a=(this.windowWidth-o)/2;e<30&&(e=30),t>this.windowHeight&&this.currentModal.height(this.windowHeight-e-5+"px"),this.currentModal.css("left",a+"px"),this.currentModal.css("top",e+"px"),this.currentModal.css("height",t),this.currentModal.show(),$(".maxmodal_overlay").show(),$("body").addClass("max-modal-active"),$(document).off("keydown",$.proxy(this.keyPressHandler,this)),$(document).on("keydown",$.proxy(this.keyPressHandler,this)),this.currentModal.focus()},maxModal.prototype.keyPressHandler=function(t){27===t.keyCode&&this.close()},maxModal.prototype.checkResize=function(){this.windowHeight=$(window).height(),this.windowWidth=$(window).width(),null!==this.currentModal&&(this.currentModal.removeAttr("style"),this.currentModal.find(".modal_content").removeAttr("style"),this.show())},maxModal.prototype.close=function(){this.currentModal.trigger("modal_close",[this]),this.currentModal.remove(),this.currentModal=null,$(".maxmodal_overlay").remove(),$("body").removeClass("max-modal-active"),$(document).off("keydown",$.proxy(this.keyPressHandler,this))},maxModal.prototype.fadeOut=function(t){void 0==typeof t&&(t=600);var o=this;this.currentModal.fadeOut(t,function(){o.close()})},maxModal.prototype.setTitle=function(t){this.currentModal.find(".modal_title").text(t)},maxModal.prototype.setControls=function(t){var o=this.currentModal.find(".modal_content"),e=$('<div class="controls">');for(i=0;i<this.controls.length;i++)e.append(this.controls[i]);void 0!==t&&e.append(t),o.append(e),$(this.currentModal).find(".modal_close").off("click"),$(this.currentModal).find(".modal_close").on("click",$.proxy(this.close,this))},maxModal.prototype.addControl=function(t,o,e){var a="";switch(t){case"yes":a=modaltext.yes;break;case"ok":a=modaltext.ok;break;case"no":a=modaltext.no;break;case"cancel":a=modaltext.cancel;break;case"insert":a=mbtrans.insert}var i=$('<a class="button-primary '+t+'">'+a+"</a>");i.on("click",o,e),this.controls.push(i)},maxModal.prototype.setContent=function(t){this.currentModal.find(".modal_content").html(t)},maxModal.prototype.buildModal=function(t){t.preventDefault();var o=$(t.target);void 0===o.data("modal")&&(o=o.parents(".maxmodal")),this.target=o;var e=o.data("modal"),a=$("#"+e);void 0!==a.data("width")?this.setWidth=a.data("width"):this.setWidth=!1,void 0!==a.data("height")?this.setHeight=a.data("height"):this.setHeight=!1;var i=$(a).find(".title").text(),d=$(a).find(".controls").html(),s=$(a).find(".content").html();if(this.newModal(e),this.setTitle(i),this.setContent(s),this.setControls(d),void 0!==$(a).data("load")){var l=a.data("load")+"(modal)",n=new Function("modal",l);try{n(this)}catch(t){ex,console.log("MB Modal Callback Error: "+t.message),console.log("MB Mobdal tried calling: "+l)}}this.show()},maxModal.prototype.newModal=function(t){null!==this.currentModal&&this.close();var o=$('<div class="max-modal '+t+'" > \t\t\t\t\t\t <div class="modal_header"> \t\t\t\t\t\t\t <div class="modal_close dashicons dashicons-no"></div><h3 class="modal_title"></h3> \t\t\t\t\t\t </div> \t\t\t\t\t\t <div class="inner modal_content"></div>\t\t\t\t\t </div>');return $(this.parent).length>0?$(this.parent).append(o):$("body").append(o),$(o).draggable({handle:".modal_header"}),this.modals.push(o),this.currentModal=o,this.controls=[],this},maxModal.prototype.writeOverlay=function(){$(this.parent).append('<div class="maxmodal_overlay"></div>'),$(".maxmodal_overlay").on("click",$.proxy(this.close,this))};
maxbuttons.php CHANGED
@@ -3,7 +3,7 @@
3
  Plugin Name: MaxButtons
4
  Plugin URI: http://maxbuttons.com
5
  Description: The best WordPress button generator. This is the free version; the Pro version <a href="http://maxbuttons.com/?ref=mbfree">can be found here</a>.
6
- Version: 7.0
7
  Author: Max Foundry
8
  Author URI: http://maxfoundry.com
9
  Text Domain: maxbuttons
@@ -16,9 +16,9 @@ namespace MaxButtons;
16
  if (! defined('MAXBUTTONS_ROOT_FILE'))
17
  define("MAXBUTTONS_ROOT_FILE", __FILE__);
18
  if (! defined('MAXBUTTONS_VERSION_NUM'))
19
- define('MAXBUTTONS_VERSION_NUM', '7.0');
20
 
21
- define('MAXBUTTONS_RELEASE',"19 Mar 2018");
22
 
23
 
24
  if (! function_exists('MaxButtons\maxbutton_double_load'))
3
  Plugin Name: MaxButtons
4
  Plugin URI: http://maxbuttons.com
5
  Description: The best WordPress button generator. This is the free version; the Pro version <a href="http://maxbuttons.com/?ref=mbfree">can be found here</a>.
6
+ Version: 7.1
7
  Author: Max Foundry
8
  Author URI: http://maxfoundry.com
9
  Text Domain: maxbuttons
16
  if (! defined('MAXBUTTONS_ROOT_FILE'))
17
  define("MAXBUTTONS_ROOT_FILE", __FILE__);
18
  if (! defined('MAXBUTTONS_VERSION_NUM'))
19
+ define('MAXBUTTONS_VERSION_NUM', '7.1');
20
 
21
+ define('MAXBUTTONS_RELEASE',"10 Apr 2018");
22
 
23
 
24
  if (! function_exists('MaxButtons\maxbutton_double_load'))
readme.txt CHANGED
@@ -2,21 +2,24 @@
2
  Contributors: maxfoundry, basszje, arcware, johnbhartley
3
  Tags: wordpress button plugin, share button, wordpress buttons, css3 button generator, responsive buttons, css wordpress button
4
  Requires at least: 4.8
5
- Tested up to: 4.9.4
6
  Requires PHP: 5.3
7
- Stable tag: 7.0
8
 
9
  WordPress button plugin so powerful and easy to use anyone can create beautiful buttons, share buttons and social icons.
10
 
11
  == Description ==
12
- [MaxButtons](https://maxbuttons.com/?utm_source=repowp1&utm_medium=mbrepo&utm_content=mbr_maxbuttons&utm_campaign=mbr_maxbuttons) is a powerful WordPress button, share button and social icon plugin. It to creates great-looking CSS3 WordPress buttons on any post or page on your site. Our button editor makes it a snap to generate awesome responsive buttons in very little time. The social share buttons and social icon features allow you to use or modify prebuilt social share and social icons to your delight.
13
 
14
- MaxButtons [WordPress button plugin](https://www.maxbuttons.com/#CSS3/?utm_source=repowbp&utm_medium=mbrepo&utm_content=wordpress_button_plugin&utm_campaign=repowbp) has been going strong for over 6 years and was the first button plugin for WordPress. MaxButtons has earned over 600 5 star reviews and over 1.5 million downloads. Here are couple of our favorites:
15
 
16
  > “The best plugin of its kind” - by celito
17
 
18
  > “This plugin makes creating buttons sooooo easy.” - by ncrocker202
19
 
 
 
 
20
  > “Easy, clear, and robust. I'm a programmer and can write CSS till the cows come home, but why? Just get it, install it and use it. Then, when you're impressed, buy the pro version” - by jleahy
21
 
22
  Max Foundry also makes the WordPress Gallery plugin [MaxGalleria](https://maxgalleria.com) and [WordPress Media Folders](https://maxgalleria.com/downloads/media-library-plus-pro/) plugin for real WordPress Media Library folders and [Welcome Mat Pro](https://welcomemat.io).
@@ -29,18 +32,16 @@ Max Foundry also makes the WordPress Gallery plugin [MaxGalleria](https://maxgal
29
  = WordPress Buttons =
30
 
31
  * [Create WordPress Buttons](https://maxbuttons.com/create-wordpress-button/?utm_source=repocreate&utm_medium=mbrepo&utm_content=how-to-create&utm_campaign=repocreate)
32
- * Getting [Social Icons](https://maxbuttons.com/?utm_source=repoicons1&utm_medium=mbrepo&utm_content=social_sharing&utm_campaign=repoicons1) on your WordPress site.
33
- * [Share Buttons](https://maxbuttons.com/?utm_source=reposhare&utm_medium=mbrepo&utm_content=social_sharing&utm_campaign=reposhare) on your WordPress site.
34
- * What is a [CSS3 Button Generator](https://maxbuttons.com/?utm_source=repocss3&utm_medium=mbrepo&utm_content=what-is-generator&utm_campaign=repocss3)?
35
  * [WordPress button](https://maxbuttons.com/product-category/button-packs/?utm_source=repolibs&utm_medium=mbrepo&utm_content=button_pack&utm_campaign=repolibs) library and button sets can make my designers and developers more productive.
36
 
37
  = MaxButtons =
38
 
39
  * No coding, the plugin takes care of everything
40
- * Includes 5 beautiful, configurable Social Share sets
41
  * Button shortcodes for ease of use
42
  * Create unlimited number of buttons
43
- * Live preview window instantly updated as you customize your buttons
44
  * Color picker for unlimited color combinations
45
  * Works with all modern browsers, degrades gracefully for others
46
  * Fully CSS3 compliant with text shadowing, box shadowing, gradients, etc.
@@ -73,22 +74,21 @@ Plus email and print icons.
73
 
74
  In addition to promoting your content through MaxButtons share buttons you can also use share buttons to promote your social network profiles. Simply select a social icon or make a button, include the link to your profile and post the button shortcode on your page. Social icons are easy with MaxButtons!
75
 
76
-
77
  = MaxButtons Pro =
78
 
79
  Take your buttons to the next level with [MaxButtons Pro](https://www.maxbuttons.com/pricing/?utm_source=repombp&utm_medium=mbrepo&utm_content=MBPro&utm_campaign=repombp)!
80
 
81
  Our premium WordPress plugin for buttons, share buttons and social icons brings you the [best WordPress button plugin](https://maxbuttons.com/?utm_source=mprepo&utm_medium=mbrepo&utm_content=best_css3_button&utm_campaign=repobestcss3) through continuous feature updating. Upgrading to the Pro version allows you to add icons and images to your custom WordPress buttons. The Pro features allow you to do so much more!
82
 
83
- * **Icon Support** - Add icons to your buttons and customize placement and size.
84
  * **Multi-line text** - Add a second line of text and stylize with font, size and placement.
85
  * **Google Fonts** - We have included the entire set to help your buttons stand out with beautiful typography.
86
  * **Button Packs** - Ready to use, value priced button sets that make any site good great.
87
- * **Google Analytics** Event Tracking for WordPress Buttons. The best way to see you users’ interactions with buttons in Google Analytics. No coding needed.
88
  * **Import/Export** - Useful for backing up and/or moving your buttons. Also, use any of the great free icons listed on our site.
89
  * Include images in buttons.
90
  * **Button Search** - for easier management of large button sets.
91
- * **Font Awesome** - easiest WordPress integration
92
  * **Visual Composer** - Integrated with Visual Composer
93
  * **Contact Form 7** Integration
94
  * **Beaver Builder** Integration
@@ -251,6 +251,11 @@ Secondly, please use latin only characters for button name ( Basic settings) and
251
 
252
  == Changelog ==
253
 
 
 
 
 
 
254
  = 7.0 =
255
 
256
  * Removed old Social Share from base plugin. Use WordPress Share Buttons ( http://wordpress.org/plugins/share-button/ )
@@ -387,189 +392,17 @@ Secondly, please use latin only characters for button name ( Basic settings) and
387
  * Fixed lower save button not working in social share
388
  * Fixed layout issue in Social Share
389
 
390
- = 6.11.1 =
391
-
392
- * Removed holiday sale
393
-
394
- = 6.11 =
395
-
396
- * Shortcode options in add button dialog
397
- * Fixed crash when running PHP 7.1.0
398
-
399
- = 6.10 =
400
-
401
- * Fixed color issue with preview color running one click behind
402
- * Fixed issue with hover gradients, when gradients are off
403
- * Fixed text shadow issue in CSS output
404
-
405
- = 6.9 =
406
-
407
- * Tested for WP 4.7
408
- * Improved copy colors
409
-
410
- = 6.8 =
411
-
412
- * Fixed several smaller bugs in responsive
413
- * Fixed smaller layout issues ( consistency )
414
- * Upgraded SCSSPHP parser to 0.40
415
- * Fixed 'undefined variable' in responsive
416
-
417
- = 6.7 =
418
-
419
- * Button height in responsive settings
420
- * Fixed responsive bug regarding hiding option
421
- * Responsive settings updated
422
- * Add Button Dialog updated (more clear)
423
- * Colorpicker slightly bigger
424
-
425
- = 6.6 =
426
-
427
- * Improved tab index on button editor.
428
- * Fixed Copy Color button position in Chrome
429
- * Fixed minor CSS issues
430
-
431
- = 6.5 =
432
-
433
- * Gradient background color option can be switched on and off
434
- * New material switches to replace the checkboxes
435
-
436
- = 6.4 =
437
-
438
- * Copy colors feature added
439
- * Fixed several small issues with the color picker
440
-
441
- = 6.3 =
442
-
443
- * Updated Features page
444
-
445
-
446
- = 6.2 =
447
-
448
- * Improved visibility of the color picker
449
- * Fixed possible rendering issue with Box Shadow
450
- * Fixed: in rare case the button could overlay the action buttons in the overview
451
-
452
- = 6.1 =
453
-
454
- * Several updates to the Color Picker
455
- * Box Shadow spread option added
456
- * Fixed conflict with important and box shadow setting
457
-
458
- = 6.0 =
459
-
460
- * Version 6 milestone
461
- * Fixed small styling issue in header
462
- * Updated link in plugin
463
-
464
- = 5.13 =
465
-
466
- * Fixed several notices when creating new buttons
467
- * Buttons will now always have 'pointer' cursor
468
-
469
- = 5.12 =
470
 
471
- * Replaced color picker with WordPress default color picker
472
- * Border radius can be locked to change all sides at onces.
473
- * Cleanup of JS functions.
474
-
475
- = 5.11 =
476
-
477
- * Improvements to layout for small and mobile views
478
- * Optimizations to modal on resizing
479
- * Social icons for Eyeem added
480
-
481
- = 5.10 =
482
-
483
- * Fixed issue with background when using gradients
484
- * Collection name is shown in button overview when button is in collection
485
- * Database checks and failovers improved
486
- * Several small updates to styling and layout
487
- * Fixed display issue showing pack name / description when empty
488
-
489
- = 5.9 =
490
-
491
- * Greatly improved modal layouts
492
- * Fixed - Social Share : non-existing buttons will not show.
493
- * Child-spans now inherit background settings from parent anchor
494
-
495
- = 5.8 =
496
-
497
- * Fixed - Social Share remove button visible again
498
- * Fixed - Social Share button without attached network no longer open as popup by default.
499
- * Fixed - Custom Media Queries disabled after saving
500
- * Description field can now be hidden via settings
501
- * Various layout optimizations
502
- * Tested for version 4.6
503
-
504
- = 5.7 =
505
-
506
- * Fixed omission in button clear function causing not to clear fully
507
- * Fixed typo in Social Share shortcode
508
- * Fixed social share bug, not correctly removing counts in certain situations
509
- * Fixed social share icons not having cursor pointer
510
- * Fixed Text Shadow bug with buttons having only shadow top set.
511
- * Inline loading of social share collections
512
-
513
- = 5.6 =
514
-
515
- * Updated Social Share welcome message
516
- * Updated Readme text
517
- * Tested for WP 4.5.3
518
-
519
- = 5.5 =
520
-
521
- * Fixed CSS in review notice
522
- * Fixed title issue with support topic titles
523
- * Fixed small outlining issues in button editor
524
-
525
- = 5.4 =
526
-
527
- * Colorpicker code enhanced
528
- * Updated container options interface
529
-
530
- = 5.3 =
531
-
532
- * Increased performance for shortcode when having an URL in shortcode.
533
- * Fixed bug Border Shadow not showing when blur is zero.
534
- * Fixed bug Text Shadow not showing when blur is zero.
535
- * Fixed issue Text not displaying in preview when button was saved without text
536
- * Minified all Javascript in plugin for faster performance.
537
-
538
-
539
- = 5.2 =
540
-
541
- * Fixed version check to enhance database upgrades
542
- * Fixed Add buttons dialog in Beaver Builder
543
- * Extra check for social sharing not to load on WP login pages
544
-
545
- = 5.1 =
546
-
547
- * Better pagination and display on Add Button dialog
548
- * Fixed certain Social Share default values .
549
- * Made number fields slightly larger
550
- * Tested up to 4.5.2
551
-
552
- = 5.0 =
553
-
554
- * New button editor interface
555
- * Removed maximum length of text fields
556
- * Performance: Javascript loading streamlined
557
- * Fixed: Removal of social sharing collections
558
- * Improved social share picker
559
- * Fixed Window resize bug in popups
560
- * Fixed Array Bug in Social block
561
 
 
562
 
563
- == Upgrade Notice ==
564
 
565
  = 3.19 =
566
 
567
  URL handling has been changed. If you use non-usual URL's in your buttons please let us know directly if you encounter any problems.
568
 
569
- = 4.0 =
570
-
571
- This major update includes new Social sharing features. If you run into issues please let us know via support. Experiences are also welcome!
572
-
573
  = 3.0 =
574
  Attention! This is a big upgrade from 2.x. Before installation it's adviced take a backup. In case your buttons don't appear after upgrading,
575
  please try to deactivate and activate the plugin again
2
  Contributors: maxfoundry, basszje, arcware, johnbhartley
3
  Tags: wordpress button plugin, share button, wordpress buttons, css3 button generator, responsive buttons, css wordpress button
4
  Requires at least: 4.8
5
+ Tested up to: 4.9.5
6
  Requires PHP: 5.3
7
+ Stable tag: 7.1
8
 
9
  WordPress button plugin so powerful and easy to use anyone can create beautiful buttons, share buttons and social icons.
10
 
11
  == Description ==
12
+ [MaxButtons](https://maxbuttons.com/?utm_source=repowp1&utm_medium=mbrepo&utm_content=mbr_maxbuttons&utm_campaign=mbr_maxbuttons) is a powerful WordPress button, share button and social icon plugin. Create great looking CSS3 WordPress buttons in a minute. Easy to understand. Our button editor with live preview makes it a snap to generate awesome responsive buttons in very little time. The social share buttons and social icon features allow you to add social options to your website in minutes.
13
 
14
+ MaxButtons [WordPress button plugin](https://www.maxbuttons.com/#CSS3/?utm_source=repowbp&utm_medium=mbrepo&utm_content=wordpress_button_plugin&utm_campaign=repowbp) has been going strong for over 6 years and was the first button plugin for WordPress. MaxButtons has earned over 600 5-star reviews and over 1.5 million downloads. Here are couple of our favorites:
15
 
16
  > “The best plugin of its kind” - by celito
17
 
18
  > “This plugin makes creating buttons sooooo easy.” - by ncrocker202
19
 
20
+ > Why aren’t all plugins like this?!?
21
+ MaxButtons easily solved my problem with lots of options when creating the button and a live view of what it was going to look like. It would have done the job for me there and then but being able to adjust the text AND link with shortcodes on my page made modifications a breeze. - by discgosforth
22
+
23
  > “Easy, clear, and robust. I'm a programmer and can write CSS till the cows come home, but why? Just get it, install it and use it. Then, when you're impressed, buy the pro version” - by jleahy
24
 
25
  Max Foundry also makes the WordPress Gallery plugin [MaxGalleria](https://maxgalleria.com) and [WordPress Media Folders](https://maxgalleria.com/downloads/media-library-plus-pro/) plugin for real WordPress Media Library folders and [Welcome Mat Pro](https://welcomemat.io).
32
  = WordPress Buttons =
33
 
34
  * [Create WordPress Buttons](https://maxbuttons.com/create-wordpress-button/?utm_source=repocreate&utm_medium=mbrepo&utm_content=how-to-create&utm_campaign=repocreate)
35
+ * Getting [Social Icons](https://maxbuttons.com/wordpress-share-buttons/?utm_source=repoicons1&utm_medium=mbrepo&utm_content=social_sharing&utm_campaign=repoicons1) on your WordPress site.
36
+ * [Share Buttons](http://wordpress.org/plugins/share-button/) on your WordPress site.
 
37
  * [WordPress button](https://maxbuttons.com/product-category/button-packs/?utm_source=repolibs&utm_medium=mbrepo&utm_content=button_pack&utm_campaign=repolibs) library and button sets can make my designers and developers more productive.
38
 
39
  = MaxButtons =
40
 
41
  * No coding, the plugin takes care of everything
 
42
  * Button shortcodes for ease of use
43
  * Create unlimited number of buttons
44
+ * Live preview window instantly updates as you customize your buttons
45
  * Color picker for unlimited color combinations
46
  * Works with all modern browsers, degrades gracefully for others
47
  * Fully CSS3 compliant with text shadowing, box shadowing, gradients, etc.
74
 
75
  In addition to promoting your content through MaxButtons share buttons you can also use share buttons to promote your social network profiles. Simply select a social icon or make a button, include the link to your profile and post the button shortcode on your page. Social icons are easy with MaxButtons!
76
 
 
77
  = MaxButtons Pro =
78
 
79
  Take your buttons to the next level with [MaxButtons Pro](https://www.maxbuttons.com/pricing/?utm_source=repombp&utm_medium=mbrepo&utm_content=MBPro&utm_campaign=repombp)!
80
 
81
  Our premium WordPress plugin for buttons, share buttons and social icons brings you the [best WordPress button plugin](https://maxbuttons.com/?utm_source=mprepo&utm_medium=mbrepo&utm_content=best_css3_button&utm_campaign=repobestcss3) through continuous feature updating. Upgrading to the Pro version allows you to add icons and images to your custom WordPress buttons. The Pro features allow you to do so much more!
82
 
83
+ * **Icon Support** - Add icons and images to your buttons and customize placement and size.
84
  * **Multi-line text** - Add a second line of text and stylize with font, size and placement.
85
  * **Google Fonts** - We have included the entire set to help your buttons stand out with beautiful typography.
86
  * **Button Packs** - Ready to use, value priced button sets that make any site good great.
87
+ * **Google Analytics** [Event Tracking for WordPress Buttons](https://maxbuttons.com/google-analytics-event-tracking/). The best way to see you users’ interactions with buttons in Google Analytics. No coding needed.
88
  * **Import/Export** - Useful for backing up and/or moving your buttons. Also, use any of the great free icons listed on our site.
89
  * Include images in buttons.
90
  * **Button Search** - for easier management of large button sets.
91
+ * **Font Awesome 5** - Largest icon collection, fastest served
92
  * **Visual Composer** - Integrated with Visual Composer
93
  * **Contact Form 7** Integration
94
  * **Beaver Builder** Integration
251
 
252
  == Changelog ==
253
 
254
+ = 7.1 =
255
+
256
+ * Vertical align now working
257
+ * Fixed issue with selecting buttons via SiteOrigin Page Builder
258
+
259
  = 7.0 =
260
 
261
  * Removed old Social Share from base plugin. Use WordPress Share Buttons ( http://wordpress.org/plugins/share-button/ )
392
  * Fixed lower save button not working in social share
393
  * Fixed layout issue in Social Share
394
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
395
 
396
+ == Upgrade Notice ==
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
397
 
398
+ = 4.0 =
399
 
400
+ This major update includes new Social sharing features. If you run into issues please let us know via support. Experiences are also welcome!
401
 
402
  = 3.19 =
403
 
404
  URL handling has been changed. If you use non-usual URL's in your buttons please let us know directly if you encounter any problems.
405
 
 
 
 
 
406
  = 3.0 =
407
  Attention! This is a big upgrade from 2.x. Before installation it's adviced take a backup. In case your buttons don't appear after upgrading,
408
  please try to deactivate and activate the plugin again