Easy Modal - Version 2.0.10

Version Description

Download this release

Release Info

Developer danieliser
Plugin Icon 128x128 Easy Modal
Version 2.0.10
Comparing to
See all releases

Code changes from version 2.0.9 to 2.0.10

assets/scripts/easy-modal-site.js CHANGED
@@ -718,14 +718,13 @@ jQuery(document).ready(function () {
718
  $this.emodal('open');
719
  });
720
  jQuery('.' + $this.attr('id')).css('cursor', 'pointer');
721
- });
722
 
723
- // Reset Videos
724
- jQuery('.emodal')
725
  .on('emodalBeforeClose', function (e) {
726
  var $this = jQuery(this);
727
  var settings = $this.data('emodal');
728
- if (jQuery('#' + settings.overlay.attr.id).is(":visible")) {
729
  jQuery('#' + settings.overlay.attr.id)
730
  .fadeOut(settings.close.close_speed, function () {
731
  var vids = jQuery('iframe', $this).filter('[src*="youtube"],[src*="vimeo"]').each(function () {
718
  $this.emodal('open');
719
  });
720
  jQuery('.' + $this.attr('id')).css('cursor', 'pointer');
721
+ })
722
 
723
+ // Reset Videos
 
724
  .on('emodalBeforeClose', function (e) {
725
  var $this = jQuery(this);
726
  var settings = $this.data('emodal');
727
+ if (settings.meta.display.overlay_disabled && jQuery('#' + settings.overlay.attr.id).is(":visible")) {
728
  jQuery('#' + settings.overlay.attr.id)
729
  .fadeOut(settings.close.close_speed, function () {
730
  var vids = jQuery('iframe', $this).filter('[src*="youtube"],[src*="vimeo"]').each(function () {
classes/admin.php CHANGED
@@ -31,6 +31,9 @@
31
  add_filter ('pre_set_site_transient_update_plugins', array(&$this, 'transient_update_plugins'));
32
  add_filter ('pre_set_transient_update_plugins', array(&$this, 'transient_update_plugins'));
33
 
 
 
 
34
  if(is_emodal_admin_page())
35
  {
36
  add_action('admin_init', array($this, 'admin_init'));
@@ -123,6 +126,60 @@
123
  }
124
  return $links;
125
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
126
  }
127
 
128
  add_filter('emodal_admin_current_controller', 'emodal_admin_current_controller', 1);
31
  add_filter ('pre_set_site_transient_update_plugins', array(&$this, 'transient_update_plugins'));
32
  add_filter ('pre_set_transient_update_plugins', array(&$this, 'transient_update_plugins'));
33
 
34
+ add_action('admin_init', array($this, 'reset_emodal_db'));
35
+
36
+
37
  if(is_emodal_admin_page())
38
  {
39
  add_action('admin_init', array($this, 'admin_init'));
126
  }
127
  return $links;
128
  }
129
+ public function reset_emodal_db() {
130
+
131
+
132
+ if( isset( $_POST['reset_emodal_db'] ) ) {
133
+
134
+ // run a quick security check
135
+ if( ! check_admin_referer( EMCORE_NONCE, EMCORE_NONCE ) )
136
+ return; // get out if we didn't click the Activate button
137
+
138
+ global $wpdb;
139
+
140
+ $wpdb->query( "DELETE FROM $wpdb->em_modal_metas" );
141
+ $wpdb->query( "DELETE FROM $wpdb->em_modals" );
142
+ $wpdb->query( "DELETE FROM $wpdb->em_theme_metas" );
143
+ $wpdb->query( "DELETE FROM $wpdb->em_themes" );
144
+
145
+ do_action('emodal_reset_db');
146
+
147
+ }
148
+
149
+
150
+ if( isset( $_POST['migrate_emodal_db'] ) ) {
151
+
152
+ // run a quick security check
153
+ if( ! check_admin_referer( EMCORE_NONCE, EMCORE_NONCE ) )
154
+ return; // get out if we didn't click the Activate button
155
+
156
+ if(emodal_get_option('EasyModal_Version'))
157
+ {
158
+ new EModal_Migrate_Pre_V2;
159
+
160
+ do_action('emodal_migrate_db');
161
+ }
162
+
163
+ }
164
+
165
+
166
+ if( isset( $_POST['uninstall_emodal_db'] ) ) {
167
+
168
+ // run a quick security check
169
+ if( ! check_admin_referer( EMCORE_NONCE, EMCORE_NONCE ) )
170
+ return; // get out if we didn't click the Activate button
171
+
172
+ $wpdb->query( "DROP TABLE IF EXISTS `$wpdb->em_modal_metas`;" );
173
+ $wpdb->query( "DROP TABLE IF EXISTS `$wpdb->em_modals`;" );
174
+ $wpdb->query( "DROP TABLE IF EXISTS `$wpdb->em_theme_metas`;" );
175
+ $wpdb->query( "DROP TABLE IF EXISTS `$wpdb->em_themes`;" );
176
+
177
+ do_action('emodal_uninstall');
178
+
179
+ emodal_update_option('emodal_uninstalled', true);
180
+ }
181
+ }
182
+
183
  }
184
 
185
  add_filter('emodal_admin_current_controller', 'emodal_admin_current_controller', 1);
classes/admin/notice.php CHANGED
@@ -15,7 +15,7 @@
15
  }
16
  public static function render_notices()
17
  {
18
- foreach(static::get_messages() as $key => $message)
19
  {
20
  ?><div class="<?php esc_html_e($message['type']);?>">
21
  <p><?php esc_html_e($message['message']);?></p>
15
  }
16
  public static function render_notices()
17
  {
18
+ foreach(EModal_Admin_Notice::get_messages() as $key => $message)
19
  {
20
  ?><div class="<?php esc_html_e($message['type']);?>">
21
  <p><?php esc_html_e($message['message']);?></p>
classes/controller/admin/settings.php CHANGED
@@ -24,7 +24,7 @@
24
  }
25
  public function action_edit()
26
  {
27
- if($this->check_post_nonce())
28
  {
29
  $EModal_License = new EModal_License;
30
  $EModal_License->check_license(empost('license.key'));
24
  }
25
  public function action_edit()
26
  {
27
+ if($this->check_post_nonce() && isset($_POST['publish']))
28
  {
29
  $EModal_License = new EModal_License;
30
  $EModal_License->check_license(empost('license.key'));
classes/model.php CHANGED
@@ -1,4 +1,5 @@
1
  <?php class EModal_Model {
 
2
  protected $_table_name = '';
3
  protected $_pk = 'id';
4
  protected $_data = array();
@@ -8,9 +9,8 @@
8
  {
9
  global $wpdb;
10
  $table_name = $wpdb->prefix . $this->_table_name;
11
- $class_name = strtolower(get_called_class());
12
 
13
- $this->_data = apply_filters("{$class_name}_fields", $this->_default_fields);
14
 
15
  if($id && is_numeric($id))
16
  {
@@ -22,7 +22,7 @@
22
  }
23
  else
24
  {
25
- $this->set_fields(apply_filters("{$class_name}_defaults", array()));
26
  }
27
  return $this;
28
  }
@@ -30,7 +30,7 @@
30
  {
31
  global $wpdb;
32
  $table_name = $wpdb->prefix . $this->_table_name;
33
- $class_name = strtolower(get_called_class());
34
  if(!$query)
35
  {
36
  $query = "SELECT * FROM $table_name";
@@ -41,7 +41,7 @@
41
  $results = array();
42
  foreach($rows as $row)
43
  {
44
- $model = new $class_name;
45
  $model->process_load($row);
46
  $results[] = $model;
47
  }
1
  <?php class EModal_Model {
2
+ protected $_class_name = 'EModal_Model';
3
  protected $_table_name = '';
4
  protected $_pk = 'id';
5
  protected $_data = array();
9
  {
10
  global $wpdb;
11
  $table_name = $wpdb->prefix . $this->_table_name;
 
12
 
13
+ $this->_data = apply_filters("{$this->_class_name}_fields", $this->_default_fields);
14
 
15
  if($id && is_numeric($id))
16
  {
22
  }
23
  else
24
  {
25
+ $this->set_fields(apply_filters("{$this->_class_name}_defaults", array()));
26
  }
27
  return $this;
28
  }
30
  {
31
  global $wpdb;
32
  $table_name = $wpdb->prefix . $this->_table_name;
33
+
34
  if(!$query)
35
  {
36
  $query = "SELECT * FROM $table_name";
41
  $results = array();
42
  foreach($rows as $row)
43
  {
44
+ $model = new $this->_class_name;
45
  $model->process_load($row);
46
  $results[] = $model;
47
  }
classes/model/modal.php CHANGED
@@ -1,4 +1,5 @@
1
  <?php class EModal_Model_Modal extends EModal_Model {
 
2
  protected $_table_name = 'em_modals';
3
  protected $meta;
4
  protected $_default_fields = array(
@@ -68,9 +69,12 @@ function get_all_modals($where = "is_active = 1"){
68
  $modals[$modal->id] = $modal;
69
  $modal_ids[] = $modal->id;
70
  }
71
- foreach($EModal_Model_Modal_Meta->load("SELECT * FROM {$wpdb->prefix}em_modal_metas WHERE modal_id IN (".implode(',', $modal_ids).")") as $meta)
72
  {
73
- $modals[$meta->modal_id]->meta->process_load($meta->as_array());
 
 
 
74
  }
75
  return $modals;
76
  }}
1
  <?php class EModal_Model_Modal extends EModal_Model {
2
+ protected $_class_name = 'EModal_Model_Modal';
3
  protected $_table_name = 'em_modals';
4
  protected $meta;
5
  protected $_default_fields = array(
69
  $modals[$modal->id] = $modal;
70
  $modal_ids[] = $modal->id;
71
  }
72
+ if(count($modals))
73
  {
74
+ foreach($EModal_Model_Modal_Meta->load("SELECT * FROM {$wpdb->prefix}em_modal_metas WHERE modal_id IN (".implode(',', $modal_ids).")") as $meta)
75
+ {
76
+ $modals[$meta->modal_id]->meta->process_load($meta->as_array());
77
+ }
78
  }
79
  return $modals;
80
  }}
classes/model/modal/meta.php CHANGED
@@ -1,4 +1,5 @@
1
  <?php class EModal_Model_Modal_Meta extends EModal_Model {
 
2
  protected $_table_name = 'em_modal_metas';
3
  protected $_pk = 'modal_id';
4
  protected $_default_fields = array(
1
  <?php class EModal_Model_Modal_Meta extends EModal_Model {
2
+ protected $_class_name = 'EModal_Model_Modal_Meta';
3
  protected $_table_name = 'em_modal_metas';
4
  protected $_pk = 'modal_id';
5
  protected $_default_fields = array(
classes/model/theme.php CHANGED
@@ -1,4 +1,5 @@
1
  <?php class EModal_Model_Theme extends EModal_Model {
 
2
  protected $_table_name = 'em_themes';
3
  protected $meta;
4
  protected $_default_fields = array(
1
  <?php class EModal_Model_Theme extends EModal_Model {
2
+ protected $_class_name = 'EModal_Model_Theme';
3
  protected $_table_name = 'em_themes';
4
  protected $meta;
5
  protected $_default_fields = array(
classes/model/theme/meta.php CHANGED
@@ -1,4 +1,5 @@
1
  <?php class EModal_Model_Theme_Meta extends EModal_Model {
 
2
  protected $_table_name = 'em_theme_metas';
3
  protected $_pk = 'theme_id';
4
  protected $_default_fields = array(
1
  <?php class EModal_Model_Theme_Meta extends EModal_Model {
2
+ protected $_class_name = 'EModal_Model_Theme_Meta';
3
  protected $_table_name = 'em_theme_metas';
4
  protected $_pk = 'theme_id';
5
  protected $_default_fields = array(
easy-modal.php CHANGED
@@ -4,7 +4,7 @@ Plugin Name: Easy Modal
4
  Plugin URI: http://easy-modal.com
5
  Description: Easily create & style modals with any content. Theme editor to quickly style your modals. Add forms, social media boxes, videos & more.
6
  Author: Wizard Internet Solutions
7
- Version: 2.0.9
8
  Author URI: http://wizardinternetsolutions.com
9
  Text Domain: easy-modal
10
  */
@@ -21,7 +21,7 @@ if (!defined('EMCORE_URL'))
21
  if (!defined('EMCORE_NONCE'))
22
  define('EMCORE_NONCE', EMCORE_SLUG.'_nonce' );
23
  if (!defined('EMCORE_VERSION'))
24
- define('EMCORE_VERSION', '2.0.9' );
25
  if (!defined('EMCORE_DB_VERSION'))
26
  define('EMCORE_DB_VERSION', '1' );
27
  if (!defined('EMCORE_API_URL'))
@@ -34,12 +34,15 @@ class EModal {
34
  {
35
  $this->initialize_db_tables();
36
 
 
37
  register_activation_hook( __FILE__, array($this,'activate') );
38
  register_activation_hook( __FILE__, array($this,'install_data') );
39
 
40
-
41
- add_action('plugins_loaded', array($this, 'activate'));
42
- add_action('emodal_db_update', array($this,'install'), 1);
 
 
43
 
44
  if (is_admin())
45
  new EModal_Admin;
@@ -57,6 +60,10 @@ class EModal {
57
  add_filter('plugins_api', array($this, 'inject_addons'), 10, 3);
58
 
59
  }
 
 
 
 
60
  public function inject_addons($response, $action, $args) {
61
 
62
  $addon_list = EModal_License::available_addons();
@@ -200,7 +207,7 @@ class EModal {
200
  )$charset_collate;";
201
  dbDelta( $sql );
202
 
203
- if(!$current_version)
204
  {
205
  $this->install_data();
206
  }
4
  Plugin URI: http://easy-modal.com
5
  Description: Easily create & style modals with any content. Theme editor to quickly style your modals. Add forms, social media boxes, videos & more.
6
  Author: Wizard Internet Solutions
7
+ Version: 2.0.10
8
  Author URI: http://wizardinternetsolutions.com
9
  Text Domain: easy-modal
10
  */
21
  if (!defined('EMCORE_NONCE'))
22
  define('EMCORE_NONCE', EMCORE_SLUG.'_nonce' );
23
  if (!defined('EMCORE_VERSION'))
24
+ define('EMCORE_VERSION', '2.0.10' );
25
  if (!defined('EMCORE_DB_VERSION'))
26
  define('EMCORE_DB_VERSION', '1' );
27
  if (!defined('EMCORE_API_URL'))
34
  {
35
  $this->initialize_db_tables();
36
 
37
+ register_deactivation_hook( __FILE__, array($this,'deactivate') );
38
  register_activation_hook( __FILE__, array($this,'activate') );
39
  register_activation_hook( __FILE__, array($this,'install_data') );
40
 
41
+ if(!emodal_get_option('emodal_uninstalled'))
42
+ {
43
+ add_action('plugins_loaded', array($this, 'activate'));
44
+ add_action('emodal_db_update', array($this,'install'), 1);
45
+ }
46
 
47
  if (is_admin())
48
  new EModal_Admin;
60
  add_filter('plugins_api', array($this, 'inject_addons'), 10, 3);
61
 
62
  }
63
+ public function deactivate()
64
+ {
65
+ emodal_delete_option('emodal_uninstalled');
66
+ }
67
  public function inject_addons($response, $action, $args) {
68
 
69
  $addon_list = EModal_License::available_addons();
207
  )$charset_collate;";
208
  dbDelta( $sql );
209
 
210
+ if(!$current_version && !emodal_get_option('EasyModal_Version'))
211
  {
212
  $this->install_data();
213
  }
includes/admin/addon-pro-tab.php DELETED
@@ -1,39 +0,0 @@
1
- <?php
2
- add_filter('emodal_admin_addons_tabs', 'emodal_admin_addons_pro_tab', 10);
3
- function emodal_admin_addons_pro_tab($tabs)
4
- {
5
- $tabs[] = array( 'id' => 'pro', 'label' => __('Pro', EMCORE_SLUG) );
6
- return $tabs;
7
- }
8
-
9
- add_action('emodal_admin_addons_tab_pro', 'emodal_admin_addons_pro_tab_content', 10);
10
- function emodal_admin_addons_pro_tab_content()
11
- {
12
- $addons = EModal_License::available_addons();?>
13
- <ul class="addons-available">
14
- <?php foreach($addons as $addon) :?>
15
- <li class="available-addon-inner">
16
- <img class="addon-thumbnail" src="<?php esc_attr_e($addon->image)?>">
17
-
18
- <h3><?php esc_html_e($addon->name)?></h3><?php
19
- if(!empty($addon->download_url))
20
- {
21
- ?><span class="action-links"><a class="button install" href="<?php echo esc_url( wp_nonce_url( admin_url('update.php?action=install-plugin&plugin='.$addon->slug.'/'.$addon->slug.'.php') ) );?>"><?php _e('Install', EMCORE_SLUG);?></a></span><?php
22
- } else {
23
- ?><div class="addon-upgrade"><span class="action-links"><?php
24
- if($addon->required_license == 'developer')
25
- {
26
- _e('This Add-On is available to Easy Modal Developer license holders.', EMCORE_SLUG);
27
- }
28
- else
29
- {
30
- _e('This Add-On is available to Easy Modal Pro license holders.', EMCORE_SLUG);
31
- }
32
- ?></span></div>
33
- <span class="action-links"><a class="button button" target="_blank" href="https://easy-modal.com/pricing"><?php _e('Upgrade Now', EMCORE_SLUG);?></a></span><?php
34
- }?>
35
- <p><?php esc_html_e($addon->description)?></p>
36
- </li>
37
- <?php endforeach;?>
38
- </ul><?php
39
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/admin/settings-form-general-tab.php CHANGED
@@ -50,5 +50,32 @@ function emodal_admin_settings_form_general_tab_license()
50
  }?>
51
  <img style="max-width:623px;width:100%;" src="<?php esc_attr_e($box_src.'.jpg');?>"/>
52
  </td>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
53
  </tr><?php
54
  }
50
  }?>
51
  <img style="max-width:623px;width:100%;" src="<?php esc_attr_e($box_src.'.jpg');?>"/>
52
  </td>
53
+ </tr>
54
+ <tr class="form-field">
55
+ <th scope="row">
56
+ <label><?php _e('Reset Easy Modal Database', EMCORE_SLUG);?></label>
57
+ </th>
58
+ <td>
59
+ <button type="submit" name="reset_emodal_db">Reset</button>
60
+ <p class="description"><?php _e('Use this to reset the database and remove all modals.' , EMCORE_SLUG)?></p>
61
+ </td>
62
+ </tr>
63
+ <tr class="form-field">
64
+ <th scope="row">
65
+ <label><?php _e('Import Old Easy Modal Settings', EMCORE_SLUG);?></label>
66
+ </th>
67
+ <td>
68
+ <button type="submit" name="migrate_emodal_db">Import</button>
69
+ <p class="description"><?php _e('Use this to import your modals and themes from your older version of easy modal.' , EMCORE_SLUG)?></p>
70
+ </td>
71
+ </tr>
72
+ <tr class="form-field">
73
+ <th scope="row">
74
+ <label><?php _e('Uninstall Easy Modal Settings', EMCORE_SLUG);?></label>
75
+ </th>
76
+ <td>
77
+ <button type="submit" name="uninstall_emodal_db">Uninstall</button>
78
+ <p class="description"><?php _e('Use this to reset the database and remove all modals, themes and database tables.' , EMCORE_SLUG)?></p>
79
+ </td>
80
  </tr><?php
81
  }
includes/updates/plugin-update-checker.php CHANGED
@@ -8,6 +8,10 @@
8
  * http://www.gnu.org/licenses/gpl.html
9
  */
10
 
 
 
 
 
11
  if ( !class_exists('PluginUpdateChecker_1_5') ):
12
 
13
  /**
8
  * http://www.gnu.org/licenses/gpl.html
9
  */
10
 
11
+ /*
12
+ Note for wp.org admins. This is not called in the free hosted version and is simply used for hooking in addons to one update system rather than including it in each plugin.
13
+ */
14
+
15
  if ( !class_exists('PluginUpdateChecker_1_5') ):
16
 
17
  /**
init.php CHANGED
@@ -54,9 +54,6 @@ if(is_admin())
54
  // Settings Tabs
55
  require EMCORE_DIR.'/includes/admin/settings-form-general-tab.php';
56
 
57
- // Addons Tabs
58
- require EMCORE_DIR.'/includes/admin/addon-pro-tab.php';
59
-
60
  // Help Tabs
61
  require EMCORE_DIR.'/includes/admin/help-general-tab.php';
62
 
54
  // Settings Tabs
55
  require EMCORE_DIR.'/includes/admin/settings-form-general-tab.php';
56
 
 
 
 
57
  // Help Tabs
58
  require EMCORE_DIR.'/includes/admin/help-general-tab.php';
59
 
readme.txt CHANGED
@@ -6,7 +6,7 @@ Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_i
6
  Tags: modal,modal box,modal form,modal window,popup,popup box,popup form,popup window,ajax forms
7
  Requires at least: 3.4
8
  Tested up to: 3.9.2
9
- Stable tag: 2.0.9
10
  Make a pop up - any pop up. Logins, Auto Exits, Scroll Pops, Age Verification Pops. Theme, customize, make a glorious pop up!
11
  == Description ==
12
  Make a pop up - any pop up - Logins, Auto Exits, Scroll Pops, Age Verification Pops - use EasyModal's ultimate theme capabilities and customization options to make glorious pop ups that increase your site's usability and conversion rates.
@@ -88,6 +88,58 @@ To be notified of plugin updates, [follow us on Twitter](https://twitter.com/Eas
88
 
89
  == Changelog ==
90
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
91
  = v2.0 =
92
  * Bug
93
  * Most bugs from previous versions have been addressed!
6
  Tags: modal,modal box,modal form,modal window,popup,popup box,popup form,popup window,ajax forms
7
  Requires at least: 3.4
8
  Tested up to: 3.9.2
9
+ Stable tag: 2.0.10
10
  Make a pop up - any pop up. Logins, Auto Exits, Scroll Pops, Age Verification Pops. Theme, customize, make a glorious pop up!
11
  == Description ==
12
  Make a pop up - any pop up - Logins, Auto Exits, Scroll Pops, Age Verification Pops - use EasyModal's ultimate theme capabilities and customization options to make glorious pop ups that increase your site's usability and conversion rates.
88
 
89
  == Changelog ==
90
 
91
+ = v2.0.10 =
92
+ * Bug
93
+ * Removed unused files.
94
+ * Check for count of modals before looking up meta.
95
+ * Added note for wp.org admins.
96
+ * If old modals exist dont create demo data.
97
+ * Fixed issue with JS error when overlay was disabled.
98
+ * Fixed bugs for PHP 5.2 computability.
99
+ * Improvement
100
+ * Added Reset, Migrate from v1.3 and earlier, and Uninstall functionality to settings page.
101
+
102
+ = v2.0.9 =
103
+ * Bug
104
+ * Patched bug in migration.
105
+
106
+ = v2.0.8 =
107
+ * Bug
108
+ * Bug fix "class not found".
109
+
110
+ = v2.0.7 =
111
+ * Bug
112
+ * Fixed Typos
113
+ * Added min-width:1em to close button
114
+ * Removed class modal from modals. Conflict with bootstrap css. All styles under emodal class now.
115
+
116
+ = v2.0.6 =
117
+ * Bug
118
+ * Bug in migration for pro users.
119
+ * Removed preview button until its functional.
120
+
121
+ = v2.0.5 =
122
+ * Bug
123
+ * Bugs in addons page fixed.
124
+ * Fixed bug in site JS.
125
+
126
+ = v2.0.4 =
127
+ * Bug
128
+ * Fixed api request args bug.
129
+
130
+ = v2.0.3 =
131
+ * Bug
132
+ * Fixed bug in easy modal admin page detection.
133
+ * Replaced get_option with emodal_get_option for multisite compatiblity.
134
+
135
+ = v2.0.2 =
136
+ * Bug
137
+ * Fixed migration failure bug.
138
+
139
+ = v2.0.1 =
140
+ * Bug
141
+ * Fixed whitespace bug in sidebar.php
142
+
143
  = v2.0 =
144
  * Bug
145
  * Most bugs from previous versions have been addressed!