Gwolle Guestbook - Version 4.0.0

Version Description

  • 2020-04-28
  • Many CSS ids and classes have changed, please review your custom CSS.
  • Plugin supports multiple forms on one page now.
  • Fix serialized options.
  • Add pause on hover for super-simple-slider.
  • Fix updating of datetime on admin editor.
  • Fix double class attributes in form.
  • Run timeout function only once, set timout to 1 second.
  • Remove separators from BBcode icons.
  • Add loading="lazy" attribute to bbcode images.
  • Add filters 'gwolle_gb_author_origin_prefill', 'gwolle_gb_author_content_prefill' and 'gwolle_gb_author_content_label'.
  • Deprecate 'gwolle_gb_content_label' filter.
  • Update strings for add-on.
Download this release

Release Info

Developer mpol
Plugin Icon 128x128 Gwolle Guestbook
Version 4.0.0
Comparing to
See all releases

Code changes from version 3.1.9 to 4.0.0

Files changed (56) hide show
  1. add-on/gb-add-on.php +33 -6
  2. add-on/index.html +0 -0
  3. admin/css/gwolle-gb-admin.css +4 -1
  4. admin/gb-ajax-management.php +2 -2
  5. admin/gb-page-add-on.php +10 -6
  6. admin/gb-page-editor.php +24 -22
  7. admin/gb-page-entries.php +3 -3
  8. admin/gb-page-export.php +3 -3
  9. admin/gb-page-gwolle-gb.php +10 -5
  10. admin/gb-page-import.php +2 -2
  11. admin/gb-page-settings.php +8 -10
  12. admin/gb-upgrade.php +16 -2
  13. admin/gwolle-gb-hooks.php +38 -1
  14. admin/js/gwolle-gb-admin.js +4 -19
  15. admin/tabs/gb-admintab.php +2 -2
  16. admin/tabs/gb-antispamtab.php +10 -10
  17. admin/tabs/gb-debugtab.php +3 -5
  18. admin/tabs/gb-emailtab.php +8 -8
  19. admin/tabs/gb-formtab.php +16 -16
  20. admin/tabs/gb-readingtab.php +17 -17
  21. admin/tabs/gb-uninstalltab.php +6 -5
  22. changelog-v0.txt → changelog/changelog-v0.txt +0 -0
  23. changelog-v1.txt → changelog/changelog-v1.txt +0 -0
  24. changelog-v2.txt → changelog/changelog-v2.txt +0 -0
  25. changelog/changelog-v3.txt +89 -0
  26. changelog/index.html +0 -0
  27. docs/filters/gwolle_gb_author_content_label.txt +25 -0
  28. docs/filters/gwolle_gb_author_content_prefill.txt +25 -0
  29. docs/filters/gwolle_gb_author_email_prefill.txt +1 -1
  30. docs/filters/gwolle_gb_author_name_prefill.txt +1 -1
  31. docs/filters/gwolle_gb_author_origin_prefill.txt +25 -0
  32. docs/filters/gwolle_gb_author_website_prefill.txt +1 -1
  33. docs/filters/gwolle_gb_button.txt +2 -2
  34. docs/filters/gwolle_gb_content_label.txt +1 -0
  35. docs/filters/gwolle_gb_entry_save.txt +2 -2
  36. frontend/css/gwolle-gb-frontend.css +78 -88
  37. frontend/gb-form-posthandling.php +3 -3
  38. frontend/gb-form.php +49 -41
  39. frontend/gb-read.php +5 -5
  40. frontend/gb-shortcodes.php +3 -3
  41. frontend/gwolle_gb-entry.php +9 -5
  42. frontend/js/gwolle-gb-frontend.js +93 -77
  43. frontend/js/sss/sss.js +46 -31
  44. frontend/markitup/jquery.markitup.js +5 -8
  45. frontend/markitup/style.css +16 -15
  46. functions/gb-akismet.php +2 -2
  47. functions/gb-bbcode_emoji.php +1 -1
  48. functions/gb-class-entry.php +33 -27
  49. functions/gb-debug.php +2 -2
  50. functions/gb-settings.php +4 -3
  51. functions/gb-stop-forum-spam.php +1 -1
  52. gwolle-gb-hooks.php +1 -1
  53. gwolle-gb.php +3 -7
  54. lang/gwolle-gb-da_DK.mo +0 -0
  55. lang/gwolle-gb-da_DK.po +0 -1997
  56. readme.txt +27 -18
add-on/gb-add-on.php CHANGED
@@ -1,7 +1,8 @@
1
  <?php
2
  /*
3
  * These strings are not used for the main plugin, but for the Commercial Add-On at:
4
- * http://www.mojomarketplace.com/item/gwolle-gb-add-on
 
5
  */
6
 
7
 
@@ -92,6 +93,10 @@ Entry content:
92
  /* translators: Commercial Add-On metabox line */
93
  esc_html__('Email author', 'gwolle-gb');
94
 
 
 
 
 
95
  // function gwolle_gb_addon_form_starrating( $output ) {
96
  /* translators: Commercial Add-On */
97
  esc_html__('Rating', 'gwolle-gb');
@@ -116,6 +121,8 @@ Entry content:
116
 
117
  // function gwolle_gb_addon_page_settingstab_form() {
118
  /* translators: Commercial Add-On */
 
 
119
  esc_html_e('Configure the extra fields that you want.', 'gwolle-gb');
120
  /* translators: Commercial Add-On */
121
  esc_html_e('The slug of the field is where your data is attached to. Only change the slug if you know what you are doing.', 'gwolle-gb');
@@ -135,7 +142,24 @@ Entry content:
135
  esc_html__('Delete this meta field?', 'gwolle-gb' );
136
  /* translators: Commercial Add-On */
137
  esc_html__('Delete this string row?', 'gwolle-gb' );
138
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
139
 
140
  // function gwolle_gb_addon_page_settingstab_misc() {
141
  /* translators: Settings page, option for preview */
@@ -154,6 +178,12 @@ Entry content:
154
  esc_html_e('Show author email in Metabox.', 'gwolle-gb');
155
  /* translators: Commercial Add-On */
156
  esc_html_e('The email address of the author will be added to the metabox.', 'gwolle-gb');
 
 
 
 
 
 
157
  /* translators: Settings page, option for delete link */
158
  esc_html_e('Delete link', 'gwolle-gb');
159
  /* translators: Commercial Add-On */
@@ -164,7 +194,6 @@ Entry content:
164
  esc_html_e('Show delete link in Metabox for author.', 'gwolle-gb');
165
  /* translators: Commercial Add-On */
166
  esc_html_e('A link to delete the entry will be added to the metabox. Only visible for moderators and the author.', 'gwolle-gb');
167
-
168
  /* translators: Commercial Add-On, option for auto anonymize */
169
  esc_html_e('Auto Anonymize', 'gwolle-gb');
170
  /* translators: Commercial Add-On, option for auto anonymize */
@@ -175,8 +204,6 @@ Entry content:
175
  esc_html_e('Be very carefull with this option.', 'gwolle-gb');
176
  /* translators: Commercial Add-On, option for auto anonymize */
177
  esc_html_e('Auto Anonymize entries older than:', 'gwolle-gb');
178
-
179
-
180
  /* translators: Commercial Add-On */
181
  esc_html_e('Auto Delete', 'gwolle-gb');
182
  /* translators: Commercial Add-On */
@@ -283,5 +310,5 @@ Entry content:
283
  __( 'When visitors report an entry as abusive, the entry ID will be stored in a cookie in the browser. Also, the IP address will be saved temporarily in the database together with the number of reports.', 'gwolle-gb' );
284
 
285
  /* translators: %s is the name of the meta field */
286
- $error_message = sprintf( esc_html__('The %s field was not filled in, even though it is mandatory.', 'gwolle-gb'), $name );
287
  }
1
  <?php
2
  /*
3
  * These strings are not used for the main plugin, but for the Commercial Add-On at:
4
+ * https://zenoweb.nl/downloads/gwolle-guestbook-add-on/
5
+ * https://www.mojomarketplace.com/item/gwolle-gb-add-on
6
  */
7
 
8
 
93
  /* translators: Commercial Add-On metabox line */
94
  esc_html__('Email author', 'gwolle-gb');
95
 
96
+ //function gwolle_gb_entry_metabox_lines_like_ajax( $gb_metabox, $entry ) {
97
+ /* translators: Commercial Add-On metabox line */
98
+ esc_attr__('Like this entry', 'gwolle-gb');
99
+
100
  // function gwolle_gb_addon_form_starrating( $output ) {
101
  /* translators: Commercial Add-On */
102
  esc_html__('Rating', 'gwolle-gb');
121
 
122
  // function gwolle_gb_addon_page_settingstab_form() {
123
  /* translators: Commercial Add-On */
124
+ esc_html_e('version', 'gwolle-gb');
125
+ /* translators: Commercial Add-On */
126
  esc_html_e('Configure the extra fields that you want.', 'gwolle-gb');
127
  /* translators: Commercial Add-On */
128
  esc_html_e('The slug of the field is where your data is attached to. Only change the slug if you know what you are doing.', 'gwolle-gb');
142
  esc_html__('Delete this meta field?', 'gwolle-gb' );
143
  /* translators: Commercial Add-On */
144
  esc_html__('Delete this string row?', 'gwolle-gb' );
145
+ /* translators: Commercial Add-On */
146
+ esc_html__('The slug %s is a reserved slug, please use a different slug.', 'gwolle-gb');
147
+ /* translators: Commercial Add-On */
148
+ esc_html_e('Type:', 'gwolle-gb');
149
+ /* translators: Commercial Add-On */
150
+ esc_html_e('Text', 'gwolle-gb');
151
+ /* translators: Commercial Add-On */
152
+ esc_html_e('Checkbox', 'gwolle-gb');
153
+ /* translators: Commercial Add-On */
154
+ esc_html_e('Radio buttons', 'gwolle-gb');
155
+ /* translators: Commercial Add-On */
156
+ esc_html_e('Select dropdown', 'gwolle-gb');
157
+ /* translators: Commercial Add-On */
158
+ esc_html_e('Textarea', 'gwolle-gb');
159
+ /* translators: Commercial Add-On */
160
+ esc_html_e('Enter options for the radio buttons or select dropdown.', 'gwolle-gb');
161
+ /* translators: Commercial Add-On */
162
+ esc_html_e( 'Use one option on each line. When the meta field is saved, it will be saved with this value.', 'gwolle-gb' );
163
 
164
  // function gwolle_gb_addon_page_settingstab_misc() {
165
  /* translators: Settings page, option for preview */
178
  esc_html_e('Show author email in Metabox.', 'gwolle-gb');
179
  /* translators: Commercial Add-On */
180
  esc_html_e('The email address of the author will be added to the metabox.', 'gwolle-gb');
181
+ /* translators: Settings page, option for likes */
182
+ esc_html_e('Likes', 'gwolle-gb');
183
+ /* translators: Settings page, option for likes */
184
+ esc_html_e('Enable likes for entries.', 'gwolle-gb');
185
+ /* translators: Settings page, option for likes */
186
+ esc_html_e('This will enable likes, people can add a like to an entry and see the number of likes that were given.', 'gwolle-gb');
187
  /* translators: Settings page, option for delete link */
188
  esc_html_e('Delete link', 'gwolle-gb');
189
  /* translators: Commercial Add-On */
194
  esc_html_e('Show delete link in Metabox for author.', 'gwolle-gb');
195
  /* translators: Commercial Add-On */
196
  esc_html_e('A link to delete the entry will be added to the metabox. Only visible for moderators and the author.', 'gwolle-gb');
 
197
  /* translators: Commercial Add-On, option for auto anonymize */
198
  esc_html_e('Auto Anonymize', 'gwolle-gb');
199
  /* translators: Commercial Add-On, option for auto anonymize */
204
  esc_html_e('Be very carefull with this option.', 'gwolle-gb');
205
  /* translators: Commercial Add-On, option for auto anonymize */
206
  esc_html_e('Auto Anonymize entries older than:', 'gwolle-gb');
 
 
207
  /* translators: Commercial Add-On */
208
  esc_html_e('Auto Delete', 'gwolle-gb');
209
  /* translators: Commercial Add-On */
310
  __( 'When visitors report an entry as abusive, the entry ID will be stored in a cookie in the browser. Also, the IP address will be saved temporarily in the database together with the number of reports.', 'gwolle-gb' );
311
 
312
  /* translators: %s is the name of the meta field */
313
+ esc_html__('The %s field was not filled in, even though it is mandatory.', 'gwolle-gb');
314
  }
add-on/index.html ADDED
File without changes
admin/css/gwolle-gb-admin.css CHANGED
@@ -8,7 +8,7 @@
8
  clear: both;
9
  }
10
 
11
- .gwolle_gb_hide {
12
  display: none;
13
  }
14
 
@@ -275,6 +275,9 @@ form.gwolle_gb_options.active {
275
  width: 100px;
276
  }
277
 
 
 
 
278
 
279
  /*
280
  * Dashboard Widget
8
  clear: both;
9
  }
10
 
11
+ .gwolle-gb-hide {
12
  display: none;
13
  }
14
 
275
  width: 100px;
276
  }
277
 
278
+ .gwolle_gb_options .form-table td {
279
+ vertical-align: top;
280
+ }
281
 
282
  /*
283
  * Dashboard Widget
admin/gb-ajax-management.php CHANGED
@@ -219,14 +219,14 @@ function gwolle_gb_ajax_javascript() {
219
  jQuery( 'input#istrash' ).prop('checked', false);
220
 
221
  jQuery( 'input#remove' ).prop('checked', false);
222
- jQuery( 'label.gwolle_gb_remove' ).addClass('gwolle_gb_hide');
223
  break;
224
  case 'trash':
225
  jQuery( '.entry-icons' ).addClass('trash').removeClass('notrash');
226
  jQuery( '.gwolle_gb_actions' ).addClass('trash').removeClass('notrash');
227
  jQuery( 'input#istrash' ).prop('checked', true);
228
 
229
- jQuery( 'label.gwolle_gb_remove' ).removeClass('gwolle_gb_hide');
230
  break;
231
  }
232
 
219
  jQuery( 'input#istrash' ).prop('checked', false);
220
 
221
  jQuery( 'input#remove' ).prop('checked', false);
222
+ jQuery( 'label.gwolle_gb_remove' ).addClass('gwolle-gb-hide');
223
  break;
224
  case 'trash':
225
  jQuery( '.entry-icons' ).addClass('trash').removeClass('notrash');
226
  jQuery( '.gwolle_gb_actions' ).addClass('trash').removeClass('notrash');
227
  jQuery( 'input#istrash' ).prop('checked', true);
228
 
229
+ jQuery( 'label.gwolle_gb_remove' ).removeClass('gwolle-gb-hide');
230
  break;
231
  }
232
 
admin/gb-page-add-on.php CHANGED
@@ -81,6 +81,7 @@ function gwolle_gb_addon_features() {
81
  <li>' . esc_html__('Social Media Sharing (optional).', 'gwolle-gb').'</li>
82
  <li>' . esc_html__('Star Ratings, with voting and display and Rich Snippets for SEO (optional).','gwolle-gb').'</li>
83
  <li>' . esc_html__('Average star rating per guestbook, including a widget.','gwolle-gb').'</li>
 
84
  <li>' . esc_html__('Preview for the frontend form.','gwolle-gb').'</li>
85
  <li>' . esc_html__('Preview for the admin editor form.','gwolle-gb').'</li>
86
  <li>' . esc_html__('Admin reply on the frontend with AJAX.','gwolle-gb').'</li>
@@ -99,16 +100,19 @@ function gwolle_gb_addon_features() {
99
 
100
 
101
  /*
102
- * Metabox with the link to the marketplace for the add-on.
103
  */
104
  function gwolle_gb_addon_buy() {
105
  ?>
106
  <h3><?php esc_html_e('Buy the Add-On.', 'gwolle-gb'); ?></h3>
107
  <p><?php
108
- $link = '<a href="http://www.mojomarketplace.com/item/gwolle-gb-add-on" target="_blank">';
109
  /* translators: %s is a link */
110
- echo sprintf( esc_html__( 'You can buy this add-on at the %sMOJO Marketplace%s for only $ 9.', 'gwolle-gb' ), $link, '</a>' ); ?><br />
111
- <?php esc_html_e('Support for the add-on is also at the MOJO Marketplace website.','gwolle-gb'); ?>
 
 
 
112
  </p>
113
  <?php
114
  }
@@ -121,14 +125,14 @@ function gwolle_gb_addon_demo() {
121
  ?>
122
  <h3><?php esc_html_e('Demo with the Add-On.', 'gwolle-gb'); ?></h3>
123
  <p><?php
124
- $link = '<a href="http://demo.zenoweb.nl/wordpress-plugins/gwolle-guestbook-the-add-on/" target="_blank">';
125
  /* translators: %s is a link */
126
  echo sprintf( esc_html__( 'The demo site of this plugin is available with the add-on enabled at %sthe demo site%s.', 'gwolle-gb' ), $link, '</a>' ); ?>
127
  </p>
128
 
129
  <h3><?php esc_html_e('Demo without the Add-On.', 'gwolle-gb'); ?></h3>
130
  <p><?php
131
- $link = '<a href="http://demo.zenoweb.nl/wordpress-plugins/gwolle-gb/" target="_blank">';
132
  /* translators: %s is a link */
133
  echo sprintf( esc_html__( 'For comparison you can also see the %sdemo site without the add-on%s enabled.', 'gwolle-gb' ), $link, '</a>' ); ?>
134
  </p>
81
  <li>' . esc_html__('Social Media Sharing (optional).', 'gwolle-gb').'</li>
82
  <li>' . esc_html__('Star Ratings, with voting and display and Rich Snippets for SEO (optional).','gwolle-gb').'</li>
83
  <li>' . esc_html__('Average star rating per guestbook, including a widget.','gwolle-gb').'</li>
84
+ <li>' . esc_html__('Like an entry and view likes for each entry.','gwolle-gb').'</li>
85
  <li>' . esc_html__('Preview for the frontend form.','gwolle-gb').'</li>
86
  <li>' . esc_html__('Preview for the admin editor form.','gwolle-gb').'</li>
87
  <li>' . esc_html__('Admin reply on the frontend with AJAX.','gwolle-gb').'</li>
100
 
101
 
102
  /*
103
+ * Metabox with the link to the webshop for the add-on.
104
  */
105
  function gwolle_gb_addon_buy() {
106
  ?>
107
  <h3><?php esc_html_e('Buy the Add-On.', 'gwolle-gb'); ?></h3>
108
  <p><?php
109
+ $link = '<a href="https://zenoweb.nl/downloads/gwolle-guestbook-add-on/" target="_blank">';
110
  /* translators: %s is a link */
111
+ echo sprintf( esc_html__( 'You can buy this add-on at the %sZenoWeb Webshop%s for only $ 9.', 'gwolle-gb' ), $link, '</a>' ); ?><br />
112
+ <?php
113
+ $link = '<a href="https://zenoweb.nl/forums/forum/guestbook-add-on/" target="_blank">';
114
+ /* translators: %s is a link */
115
+ echo sprintf( esc_html__('Support for the add-on is also at the %sZenoWeb Support Forum%s.','gwolle-gb'), $link, '</a>' ); ?>
116
  </p>
117
  <?php
118
  }
125
  ?>
126
  <h3><?php esc_html_e('Demo with the Add-On.', 'gwolle-gb'); ?></h3>
127
  <p><?php
128
+ $link = '<a href="https://demo.zenoweb.nl/wordpress-plugins/gwolle-guestbook-the-add-on/" target="_blank">';
129
  /* translators: %s is a link */
130
  echo sprintf( esc_html__( 'The demo site of this plugin is available with the add-on enabled at %sthe demo site%s.', 'gwolle-gb' ), $link, '</a>' ); ?>
131
  </p>
132
 
133
  <h3><?php esc_html_e('Demo without the Add-On.', 'gwolle-gb'); ?></h3>
134
  <p><?php
135
+ $link = '<a href="https://demo.zenoweb.nl/wordpress-plugins/gwolle-gb/" target="_blank">';
136
  /* translators: %s is a link */
137
  echo sprintf( esc_html__( 'For comparison you can also see the %sdemo site without the add-on%s enabled.', 'gwolle-gb' ), $link, '</a>' ); ?>
138
  </p>
admin/gb-page-editor.php CHANGED
@@ -62,7 +62,7 @@ function gwolle_gb_page_editor() {
62
  ?>
63
  <div class="wrap gwolle_gb">
64
  <div id="icon-gwolle-gb"><br /></div>
65
- <h1><?php echo $sectionHeading; ?></h1>
66
 
67
  <?php
68
  if ( $gwolle_gb_messages ) {
@@ -73,7 +73,7 @@ function gwolle_gb_page_editor() {
73
  }
74
  ?>
75
 
76
- <form name="gwolle_gb_editor" id="gwolle_gb_editor" method="POST" action="" accept-charset="UTF-8">
77
  <input type="hidden" name="gwolle_gb_page" value="editor" />
78
  <input type="hidden" name="entry_id" value="<?php echo $entry->get_id(); ?>" />
79
 
@@ -140,7 +140,7 @@ function gwolle_gb_editor_postbox_content( $entry ) {
140
  gwolle_gb_enqueue_markitup();
141
 
142
  // Emoji symbols
143
- echo '<div class="gwolle_gb_emoji gwolle_gb_hide">';
144
  $emoji = gwolle_gb_get_emoji();
145
  // make it into images for nice colors.
146
  if ( function_exists('wp_staticize_emoji') ) {
@@ -160,7 +160,7 @@ function gwolle_gb_editor_postbox_website( $entry ) {
160
  <input type="url" name="gwolle_gb_author_website" value="<?php echo gwolle_gb_sanitize_output( $entry->get_author_website() ); ?>" id="author_website" placeholder="<?php esc_attr_e('Website', 'gwolle-gb'); ?>" />
161
  <p><?php
162
  /* translators: %s is a code element */
163
- echo sprintf( esc_html__('Example: %shttp://www.example.com/%s', 'gwolle-gb'), '<code>', '</code>' ); ?>
164
  </p>
165
  <?php
166
  }
@@ -187,7 +187,7 @@ function gwolle_gb_editor_postbox_admin_reply( $entry ) {
187
 
188
  <?php
189
  if ( isset($form_setting['form_bbcode_enabled']) && $form_setting['form_bbcode_enabled'] === 'true' ) {
190
- echo '<div class="gwolle_gb_admin_reply_emoji gwolle_gb_hide">';
191
  // Emoji symbols
192
  $emoji = gwolle_gb_get_emoji();
193
  // make it into images for nice colors.
@@ -304,7 +304,7 @@ function gwolle_gb_editor_postbox_icons( $entry ) {
304
 
305
  <?php
306
  $trashclass = '';
307
- if ( $entry->get_istrash() == '0' ) { $trashclass = 'gwolle_gb_hide'; } ?>
308
  <br />
309
  <label for="remove" class="selectit gwolle_gb_remove <?php echo $trashclass; ?>">
310
  <input id="remove" name="remove" type="checkbox" />
@@ -395,7 +395,7 @@ function gwolle_gb_editor_postbox_details( $entry ) {
395
  </span><br />
396
  <?php esc_html_e("Author's IP-address", 'gwolle-gb'); ?>: <span><?php
397
  if (strlen( $entry->get_author_ip() ) > 0) {
398
- echo '<a href="http://www.db.ripe.net/whois?form_type=simple&searchtext=' . $entry->get_author_ip() . '"
399
  title="' . esc_attr__('Whois search for this IP', 'gwolle-gb') . '" target="_blank">
400
  ' . $entry->get_author_ip() . '
401
  </a>';
@@ -474,24 +474,27 @@ function gwolle_gb_editor_meta_inputs( $entry ) {
474
  $date = current_time( 'timestamp' );
475
  }
476
 
477
- $dd = date( 'd', $date );
478
- $mm = date( 'm', $date );
479
- $yy = date( 'Y', $date );
480
- $hh = date( 'H', $date );
481
- $mn = date( 'i', $date );
482
 
483
  // Day
484
  echo '<label><span class="screen-reader-text">' . esc_html__( 'Day', 'gwolle-gb' ) . '</span><input type="text" id="dd" name="dd" value="' . $dd . '" size="2" maxlength="2" autocomplete="off" /></label>';
485
 
486
  // Month
487
- echo '<label for="mm"><span class="screen-reader-text">' . esc_html__( 'Month', 'gwolle-gb' ) . '</span><select id="mm" name="mm">\n';
 
488
  for ( $i = 1; $i < 13; $i = $i +1 ) {
489
  $monthnum = zeroise($i, 2);
490
- echo "\t\t\t" . '<option value="' . $monthnum . '" ' . selected( $monthnum, $mm, false ) . '>';
 
491
  /* translators: 1: month number (01, 02, etc.), 2: month abbreviation */
492
- echo sprintf( esc_html__( '%1$s-%2$s', 'gwolle-gb' ), $monthnum, $wp_locale->get_month_abbrev( $wp_locale->get_month( $i ) ) ) . "</option>\n";
493
  }
494
- echo '</select></label>';
 
495
 
496
  // Year
497
  echo '<label for="yy"><span class="screen-reader-text">' . esc_html__( 'Year', 'gwolle-gb' ) . '</span><input type="text" id="yy" name="yy" value="' . $yy . '" size="4" maxlength="4" autocomplete="off" /></label>';
@@ -503,8 +506,8 @@ function gwolle_gb_editor_meta_inputs( $entry ) {
503
  ?>
504
 
505
  <div class="gwolle_gb_timestamp">
506
- <!-- Clicking OK will place a timestamp here. -->
507
- <input type="hidden" id="gwolle_gb_timestamp" name="gwolle_gb_timestamp" value="" />
508
  </div>
509
  </div>
510
 
@@ -670,11 +673,10 @@ function gwolle_gb_page_editor_update( $entry ) {
670
  }
671
  }
672
 
673
- /* Check if the datetime changed, and update accordingly */
674
  if ( isset($_POST['gwolle_gb_timestamp']) && is_numeric($_POST['gwolle_gb_timestamp']) ) {
675
- if ( $_POST['gwolle_gb_timestamp'] != $entry->get_datetime() ) {
676
- $entry->set_datetime( (int) $_POST['gwolle_gb_timestamp'] );
677
- }
678
  }
679
 
680
  /* Check if the book_id changed, and update accordingly */
62
  ?>
63
  <div class="wrap gwolle_gb">
64
  <div id="icon-gwolle-gb"><br /></div>
65
+ <h1><?php echo $sectionHeading; ?> (Gwolle Guestbook) - v<?php echo GWOLLE_GB_VER; ?></h1>
66
 
67
  <?php
68
  if ( $gwolle_gb_messages ) {
73
  }
74
  ?>
75
 
76
+ <form name="gwolle_gb_editor" id="gwolle_gb_editor" method="POST" action="#" accept-charset="UTF-8">
77
  <input type="hidden" name="gwolle_gb_page" value="editor" />
78
  <input type="hidden" name="entry_id" value="<?php echo $entry->get_id(); ?>" />
79
 
140
  gwolle_gb_enqueue_markitup();
141
 
142
  // Emoji symbols
143
+ echo '<div class="gwolle_gb_emoji gwolle-gb-hide">';
144
  $emoji = gwolle_gb_get_emoji();
145
  // make it into images for nice colors.
146
  if ( function_exists('wp_staticize_emoji') ) {
160
  <input type="url" name="gwolle_gb_author_website" value="<?php echo gwolle_gb_sanitize_output( $entry->get_author_website() ); ?>" id="author_website" placeholder="<?php esc_attr_e('Website', 'gwolle-gb'); ?>" />
161
  <p><?php
162
  /* translators: %s is a code element */
163
+ echo sprintf( esc_html__('Example: %shttps://www.example.com/%s', 'gwolle-gb'), '<code>', '</code>' ); ?>
164
  </p>
165
  <?php
166
  }
187
 
188
  <?php
189
  if ( isset($form_setting['form_bbcode_enabled']) && $form_setting['form_bbcode_enabled'] === 'true' ) {
190
+ echo '<div class="gwolle_gb_admin_reply_emoji gwolle-gb-hide">';
191
  // Emoji symbols
192
  $emoji = gwolle_gb_get_emoji();
193
  // make it into images for nice colors.
304
 
305
  <?php
306
  $trashclass = '';
307
+ if ( $entry->get_istrash() == '0' ) { $trashclass = 'gwolle-gb-hide'; } ?>
308
  <br />
309
  <label for="remove" class="selectit gwolle_gb_remove <?php echo $trashclass; ?>">
310
  <input id="remove" name="remove" type="checkbox" />
395
  </span><br />
396
  <?php esc_html_e("Author's IP-address", 'gwolle-gb'); ?>: <span><?php
397
  if (strlen( $entry->get_author_ip() ) > 0) {
398
+ echo '<a href="https://www.db.ripe.net/whois?form_type=simple&searchtext=' . $entry->get_author_ip() . '"
399
  title="' . esc_attr__('Whois search for this IP', 'gwolle-gb') . '" target="_blank">
400
  ' . $entry->get_author_ip() . '
401
  </a>';
474
  $date = current_time( 'timestamp' );
475
  }
476
 
477
+ $dd = date_i18n( 'd', $date );
478
+ $mm = date_i18n( 'm', $date );
479
+ $yy = date_i18n( 'Y', $date );
480
+ $hh = date_i18n( 'H', $date );
481
+ $mn = date_i18n( 'i', $date );
482
 
483
  // Day
484
  echo '<label><span class="screen-reader-text">' . esc_html__( 'Day', 'gwolle-gb' ) . '</span><input type="text" id="dd" name="dd" value="' . $dd . '" size="2" maxlength="2" autocomplete="off" /></label>';
485
 
486
  // Month
487
+ echo '<label for="mm"><span class="screen-reader-text">' . esc_html__( 'Month', 'gwolle-gb' ) . '</span>
488
+ <select id="mm" name="mm">';
489
  for ( $i = 1; $i < 13; $i = $i +1 ) {
490
  $monthnum = zeroise($i, 2);
491
+ echo '
492
+ <option value="' . $monthnum . '" ' . selected( $monthnum, $mm, false ) . '>';
493
  /* translators: 1: month number (01, 02, etc.), 2: month abbreviation */
494
+ echo sprintf( esc_html__( '%1$s-%2$s', 'gwolle-gb' ), $monthnum, $wp_locale->get_month_abbrev( $wp_locale->get_month( $i ) ) ) . '</option>';
495
  }
496
+ echo '
497
+ </select></label>';
498
 
499
  // Year
500
  echo '<label for="yy"><span class="screen-reader-text">' . esc_html__( 'Year', 'gwolle-gb' ) . '</span><input type="text" id="yy" name="yy" value="' . $yy . '" size="4" maxlength="4" autocomplete="off" /></label>';
506
  ?>
507
 
508
  <div class="gwolle_gb_timestamp">
509
+ <!-- Clicking OK will place a local timestamp here. -->
510
+ <input type="text" id="gwolle_gb_timestamp" name="gwolle_gb_timestamp" value="" />
511
  </div>
512
  </div>
513
 
673
  }
674
  }
675
 
676
+ /* Check if the datetime changed, and update from all input. */
677
  if ( isset($_POST['gwolle_gb_timestamp']) && is_numeric($_POST['gwolle_gb_timestamp']) ) {
678
+ $timestamp = (int) $_POST['gwolle_gb_timestamp'];
679
+ $entry->set_datetime( $timestamp );
 
680
  }
681
 
682
  /* Check if the book_id changed, and update accordingly */
admin/gb-page-entries.php CHANGED
@@ -172,7 +172,7 @@ function gwolle_gb_page_entries() {
172
 
173
  <div class="wrap gwolle_gb">
174
  <div id="icon-gwolle-gb"><br /></div>
175
- <h1><?php esc_html_e('Guestbook entries', 'gwolle-gb'); ?></h1>
176
 
177
  <?php
178
  if ( $gwolle_gb_messages ) {
@@ -182,7 +182,7 @@ function gwolle_gb_page_entries() {
182
  '</div>';
183
  } ?>
184
 
185
- <form name="gwolle_gb_entries" id="gwolle_gb_entries" action="" method="POST" accept-charset="UTF-8">
186
 
187
  <input type="hidden" name="gwolle_gb_page" value="entries" />
188
  <!-- the following fields give us some information used for processing the mass edit -->
@@ -423,7 +423,7 @@ function gwolle_gb_page_entries() {
423
  <span class="visible-icon" title="' . esc_html__('Visible', 'gwolle-gb') . '"></span>
424
  <span class="invisible-icon" title="' . esc_html__('Invisible', 'gwolle-gb') . '"></span>
425
  <span class="spam-icon" title="' . esc_html__('Spam', 'gwolle-gb') . '"></span>
426
- <span class="trash-icon" title="' . /* translators: Is in Trashcan */ esc_html__('In Trash', 'gwolle-gb') . '""></span>';
427
  $admin_reply = gwolle_gb_sanitize_output( $entry->get_admin_reply(), 'admin_reply' );
428
  if ( strlen( trim($admin_reply) ) > 0 ) {
429
  $html_output .= '
172
 
173
  <div class="wrap gwolle_gb">
174
  <div id="icon-gwolle-gb"><br /></div>
175
+ <h1><?php esc_html_e('Guestbook entries', 'gwolle-gb'); ?> (Gwolle Guestbook) - v<?php echo GWOLLE_GB_VER; ?></h1>
176
 
177
  <?php
178
  if ( $gwolle_gb_messages ) {
182
  '</div>';
183
  } ?>
184
 
185
+ <form name="gwolle_gb_entries" id="gwolle_gb_entries" action="#" method="POST" accept-charset="UTF-8">
186
 
187
  <input type="hidden" name="gwolle_gb_page" value="entries" />
188
  <!-- the following fields give us some information used for processing the mass edit -->
423
  <span class="visible-icon" title="' . esc_html__('Visible', 'gwolle-gb') . '"></span>
424
  <span class="invisible-icon" title="' . esc_html__('Invisible', 'gwolle-gb') . '"></span>
425
  <span class="spam-icon" title="' . esc_html__('Spam', 'gwolle-gb') . '"></span>
426
+ <span class="trash-icon" title="' . /* translators: Is in Trashcan */ esc_html__('In Trash', 'gwolle-gb') . '"></span>';
427
  $admin_reply = gwolle_gb_sanitize_output( $entry->get_admin_reply(), 'admin_reply' );
428
  if ( strlen( trim($admin_reply) ) > 0 ) {
429
  $html_output .= '
admin/gb-page-export.php CHANGED
@@ -28,7 +28,7 @@ function gwolle_gb_page_export() {
28
  ?>
29
  <div class="wrap gwolle_gb">
30
  <div id="icon-gwolle-gb"><br /></div>
31
- <h1><?php esc_html_e('Export guestbook entries.', 'gwolle-gb'); ?></h1>
32
 
33
  <div id="poststuff" class="gwolle_gb_export metabox-holder">
34
  <div class="postbox-container">
@@ -253,10 +253,10 @@ function gwolle_gb_export_postbox_user() {
253
  <p><?php esc_html_e('Select one option below, either User ID or Email address', 'gwolle-gb'); ?></p>
254
  <p>
255
  <label for="gwolle_gb_user_id" class="text-info"><?php esc_html_e('User ID', 'gwolle-gb'); ?>:<br />
256
- <input type="text" name="gwolle_gb_user_id" value="" placeholder="<?php esc_html_e('User ID', 'gwolle-gb'); ?>" />
257
  </label><br />
258
  <label for="gwolle_gb_user_email" class="text-info"><?php esc_html_e('User Email', 'gwolle-gb'); ?>:<br />
259
- <input type="text" name="gwolle_gb_user_email" value="" placeholder="<?php esc_html_e('User Email', 'gwolle-gb'); ?>" />
260
  </label>
261
  </p>
262
 
28
  ?>
29
  <div class="wrap gwolle_gb">
30
  <div id="icon-gwolle-gb"><br /></div>
31
+ <h1><?php esc_html_e('Export guestbook entries.', 'gwolle-gb'); ?> (Gwolle Guestbook) - v<?php echo GWOLLE_GB_VER; ?></h1>
32
 
33
  <div id="poststuff" class="gwolle_gb_export metabox-holder">
34
  <div class="postbox-container">
253
  <p><?php esc_html_e('Select one option below, either User ID or Email address', 'gwolle-gb'); ?></p>
254
  <p>
255
  <label for="gwolle_gb_user_id" class="text-info"><?php esc_html_e('User ID', 'gwolle-gb'); ?>:<br />
256
+ <input type="text" name="gwolle_gb_user_id" id="gwolle_gb_user_id" value="" placeholder="<?php esc_html_e('User ID', 'gwolle-gb'); ?>" />
257
  </label><br />
258
  <label for="gwolle_gb_user_email" class="text-info"><?php esc_html_e('User Email', 'gwolle-gb'); ?>:<br />
259
+ <input type="text" name="gwolle_gb_user_email" id="gwolle_gb_user_email" value="" placeholder="<?php esc_html_e('User Email', 'gwolle-gb'); ?>" />
260
  </label>
261
  </p>
262
 
admin/gb-page-gwolle-gb.php CHANGED
@@ -32,12 +32,17 @@ function gwolle_gb_welcome() {
32
 
33
  add_meta_box('gwolle_gb_help', esc_html__('Help', 'gwolle-gb'), 'gwolle_gb_overview_help', 'gwolle_gb_welcome', 'right');
34
  add_meta_box('gwolle_gb_support', esc_html__('Support and Translations', 'gwolle-gb'), 'gwolle_gb_overview_support', 'gwolle_gb_welcome', 'right');
35
- add_meta_box('gwolle_gb_donate', /* translators: Reviews on the plugin page at WordPress.org */ esc_html__('Review', 'gwolle-gb'), 'gwolle_gb_overview_donate', 'gwolle_gb_welcome', 'right');
36
 
37
  ?>
38
  <div class="wrap gwolle_gb">
39
  <div id="icon-gwolle-gb"><br /></div>
40
- <h1><?php esc_html_e('Gwolle Guestbook', 'gwolle-gb'); ?></h1>
 
 
 
 
 
41
 
42
  <?php
43
  $gwolle_gb_messages = gwolle_gb_get_messages();
@@ -203,7 +208,7 @@ function gwolle_gb_overview_notification() {
203
  }
204
  }
205
  } ?>
206
- <form name="gwolle_gb_welcome" method="post" action="">
207
  <?php
208
  settings_fields( 'gwolle_gb_options' );
209
  do_settings_sections( 'gwolle_gb_options' );
@@ -261,7 +266,7 @@ function gwolle_gb_overview_thanks() {
261
  <li><a href="https://akismet.com/tos/" target="_blank">' . esc_html__( 'Akismet', 'gwolle-gb' ) . '</a></li>
262
  <li><a href="https://www.stopforumspam.com" target="_blank">' . esc_html__( 'Stop Forum Spam', 'gwolle-gb' ) . '</a></li>
263
  <li><a href="https://markitup.jaysalvat.com/" target="_blank">' . esc_html__( 'MarkItUp', 'gwolle-gb' ) . '</a></li>
264
- <li><a href="http://supersimpleslider.com/" target="_blank">' . esc_html__( 'Super Simple Slider', 'gwolle-gb' ) . '</a></li>
265
  </ul>';
266
  }
267
 
@@ -326,7 +331,7 @@ function gwolle_gb_overview_support() {
326
  * Metabox with text about wp.org reviews.
327
  * Call for donations is gone.
328
  */
329
- function gwolle_gb_overview_donate() {
330
  ?>
331
  <h3><?php esc_html_e('Review this plugin.', 'gwolle-gb'); ?></h3>
332
  <p><?php
32
 
33
  add_meta_box('gwolle_gb_help', esc_html__('Help', 'gwolle-gb'), 'gwolle_gb_overview_help', 'gwolle_gb_welcome', 'right');
34
  add_meta_box('gwolle_gb_support', esc_html__('Support and Translations', 'gwolle-gb'), 'gwolle_gb_overview_support', 'gwolle_gb_welcome', 'right');
35
+ add_meta_box('gwolle_gb_review', /* translators: Reviews on the plugin page at WordPress.org */ esc_html__('Review', 'gwolle-gb'), 'gwolle_gb_overview_review', 'gwolle_gb_welcome', 'right');
36
 
37
  ?>
38
  <div class="wrap gwolle_gb">
39
  <div id="icon-gwolle-gb"><br /></div>
40
+ <?php
41
+ $heading = esc_html__('Gwolle Guestbook', 'gwolle-gb');
42
+ if ( $heading != 'Gwolle Guestbook' ) { // translated, so we add the real name.
43
+ $heading .= ' (Gwolle Guestbook)';
44
+ } ?>
45
+ <h1><?php echo $heading . ' - v' . GWOLLE_GB_VER; ?></h1>
46
 
47
  <?php
48
  $gwolle_gb_messages = gwolle_gb_get_messages();
208
  }
209
  }
210
  } ?>
211
+ <form name="gwolle_gb_welcome" method="post" action="#">
212
  <?php
213
  settings_fields( 'gwolle_gb_options' );
214
  do_settings_sections( 'gwolle_gb_options' );
266
  <li><a href="https://akismet.com/tos/" target="_blank">' . esc_html__( 'Akismet', 'gwolle-gb' ) . '</a></li>
267
  <li><a href="https://www.stopforumspam.com" target="_blank">' . esc_html__( 'Stop Forum Spam', 'gwolle-gb' ) . '</a></li>
268
  <li><a href="https://markitup.jaysalvat.com/" target="_blank">' . esc_html__( 'MarkItUp', 'gwolle-gb' ) . '</a></li>
269
+ <li><a href="https://supersimpleslider.com/" target="_blank">' . esc_html__( 'Super Simple Slider', 'gwolle-gb' ) . '</a></li>
270
  </ul>';
271
  }
272
 
331
  * Metabox with text about wp.org reviews.
332
  * Call for donations is gone.
333
  */
334
+ function gwolle_gb_overview_review() {
335
  ?>
336
  <h3><?php esc_html_e('Review this plugin.', 'gwolle-gb'); ?></h3>
337
  <p><?php
admin/gb-page-import.php CHANGED
@@ -2,7 +2,7 @@
2
  /*
3
  * Lets the user import guestbook entries from other plugins.
4
  * Currently supported:
5
- * - DMSGuestbook (http://wordpress.org/plugins/dmsguestbook/).
6
  * - WordPress comments from a page, post or just all.
7
  * - Gwolle-GB through a CSV-file.
8
  */
@@ -32,7 +32,7 @@ function gwolle_gb_page_import() {
32
  ?>
33
  <div class="wrap gwolle_gb">
34
  <div id="icon-gwolle-gb"><br /></div>
35
- <h1><?php esc_html_e('Import guestbook entries.', 'gwolle-gb'); ?></h1>
36
 
37
  <?php
38
  $gwolle_gb_messages = gwolle_gb_get_messages();
2
  /*
3
  * Lets the user import guestbook entries from other plugins.
4
  * Currently supported:
5
+ * - DMSGuestbook (https://wordpress.org/plugins/dmsguestbook/).
6
  * - WordPress comments from a page, post or just all.
7
  * - Gwolle-GB through a CSV-file.
8
  */
32
  ?>
33
  <div class="wrap gwolle_gb">
34
  <div id="icon-gwolle-gb"><br /></div>
35
+ <h1><?php esc_html_e('Import guestbook entries.', 'gwolle-gb'); ?> (Gwolle Guestbook) - v<?php echo GWOLLE_GB_VER; ?></h1>
36
 
37
  <?php
38
  $gwolle_gb_messages = gwolle_gb_get_messages();
admin/gb-page-settings.php CHANGED
@@ -34,7 +34,7 @@ function gwolle_gb_page_settings() {
34
  <div class="wrap gwolle_gb">
35
 
36
  <div id="icon-gwolle-gb"><br /></div>
37
- <h1><?php esc_html_e('Settings', 'gwolle-gb'); ?></h1>
38
 
39
  <?php
40
  if ( $gwolle_gb_errors ) {
@@ -65,38 +65,38 @@ function gwolle_gb_page_settings() {
65
  <?php } ?>
66
  </h2>
67
 
68
- <form name="gwolle_gb_options" role="tabpanel" class="gwolle_gb_options gwolle_gb_forms <?php if ($active_tab == 'gwolle_gb_forms') { echo "active";} ?>" method="post" action="">
69
  <?php gwolle_gb_page_settingstab_form(); ?>
70
  </form>
71
 
72
 
73
- <form name="gwolle_gb_options" role="tabpanel" class="gwolle_gb_options gwolle_gb_reading <?php if ($active_tab == 'gwolle_gb_reading') { echo "active";} ?>" method="post" action="">
74
  <?php gwolle_gb_page_settingstab_reading(); ?>
75
  </form>
76
 
77
 
78
- <form name="gwolle_gb_options" role="tabpanel" class="gwolle_gb_options gwolle_gb_admin <?php if ($active_tab == 'gwolle_gb_admin') { echo "active";} ?>" method="post" action="">
79
  <?php gwolle_gb_page_settingstab_admin(); ?>
80
  </form>
81
 
82
 
83
- <form name="gwolle_gb_options" role="tabpanel" class="gwolle_gb_options gwolle_gb_antispam <?php if ($active_tab == 'gwolle_gb_antispam') { echo "active";} ?>" method="post" action="">
84
  <?php gwolle_gb_page_settingstab_antispam(); ?>
85
  </form>
86
 
87
 
88
- <form name="gwolle_gb_options" role="tabpanel" class="gwolle_gb_options gwolle_gb_mail <?php if ($active_tab == 'gwolle_gb_mail') { echo "active";} ?>" method="post" action="">
89
  <?php gwolle_gb_page_settingstab_email(); ?>
90
  </form>
91
 
92
 
93
- <form name="gwolle_gb_options" role="tabpanel" class="gwolle_gb_options gwolle_gb_debug <?php if ($active_tab == 'gwolle_gb_debug') { echo "active";} ?>" method="post" action="">
94
  <?php gwolle_gb_page_settingstab_debug(); ?>
95
  </form>
96
 
97
 
98
  <?php if ( function_exists('is_multisite') && ! is_multisite() ) { ?>
99
- <form name="gwolle_gb_options" role="tabpanel" class="gwolle_gb_options gwolle_gb_uninstall <?php if ($active_tab == 'gwolle_gb_uninstall') { echo "active";} ?>" method="post" action="">
100
  <?php gwolle_gb_page_settingstab_uninstall(); ?>
101
  </form>
102
  <?php } ?>
@@ -195,7 +195,6 @@ function gwolle_gb_page_settings_update() {
195
  $form_setting[$item] = 'false';
196
  }
197
  }
198
- $form_setting = serialize( $form_setting );
199
  update_option( 'gwolle_gb-form', $form_setting );
200
  break;
201
  case 'gwolle_gb_reading':
@@ -273,7 +272,6 @@ function gwolle_gb_page_settings_update() {
273
  $read_setting[$item] = 'false';
274
  }
275
  }
276
- $read_setting = serialize( $read_setting );
277
  update_option( 'gwolle_gb-read', $read_setting );
278
  break;
279
  case 'gwolle_gb_admin':
34
  <div class="wrap gwolle_gb">
35
 
36
  <div id="icon-gwolle-gb"><br /></div>
37
+ <h1><?php esc_html_e('Settings', 'gwolle-gb'); ?> (Gwolle Guestbook) - v<?php echo GWOLLE_GB_VER; ?></h1>
38
 
39
  <?php
40
  if ( $gwolle_gb_errors ) {
65
  <?php } ?>
66
  </h2>
67
 
68
+ <form name="gwolle_gb_options" role="tabpanel" class="gwolle_gb_options gwolle_gb_forms <?php if ($active_tab == 'gwolle_gb_forms') { echo "active";} ?>" method="post" action="#">
69
  <?php gwolle_gb_page_settingstab_form(); ?>
70
  </form>
71
 
72
 
73
+ <form name="gwolle_gb_options" role="tabpanel" class="gwolle_gb_options gwolle_gb_reading <?php if ($active_tab == 'gwolle_gb_reading') { echo "active";} ?>" method="post" action="#">
74
  <?php gwolle_gb_page_settingstab_reading(); ?>
75
  </form>
76
 
77
 
78
+ <form name="gwolle_gb_options" role="tabpanel" class="gwolle_gb_options gwolle_gb_admin <?php if ($active_tab == 'gwolle_gb_admin') { echo "active";} ?>" method="post" action="#">
79
  <?php gwolle_gb_page_settingstab_admin(); ?>
80
  </form>
81
 
82
 
83
+ <form name="gwolle_gb_options" role="tabpanel" class="gwolle_gb_options gwolle_gb_antispam <?php if ($active_tab == 'gwolle_gb_antispam') { echo "active";} ?>" method="post" action="#">
84
  <?php gwolle_gb_page_settingstab_antispam(); ?>
85
  </form>
86
 
87
 
88
+ <form name="gwolle_gb_options" role="tabpanel" class="gwolle_gb_options gwolle_gb_mail <?php if ($active_tab == 'gwolle_gb_mail') { echo "active";} ?>" method="post" action="#">
89
  <?php gwolle_gb_page_settingstab_email(); ?>
90
  </form>
91
 
92
 
93
+ <form name="gwolle_gb_options" role="tabpanel" class="gwolle_gb_options gwolle_gb_debug <?php if ($active_tab == 'gwolle_gb_debug') { echo "active";} ?>" method="post" action="#">
94
  <?php gwolle_gb_page_settingstab_debug(); ?>
95
  </form>
96
 
97
 
98
  <?php if ( function_exists('is_multisite') && ! is_multisite() ) { ?>
99
+ <form name="gwolle_gb_options" role="tabpanel" class="gwolle_gb_options gwolle_gb_uninstall <?php if ($active_tab == 'gwolle_gb_uninstall') { echo "active";} ?>" method="post" action="#">
100
  <?php gwolle_gb_page_settingstab_uninstall(); ?>
101
  </form>
102
  <?php } ?>
195
  $form_setting[$item] = 'false';
196
  }
197
  }
 
198
  update_option( 'gwolle_gb-form', $form_setting );
199
  break;
200
  case 'gwolle_gb_reading':
272
  $read_setting[$item] = 'false';
273
  }
274
  }
 
275
  update_option( 'gwolle_gb-read', $read_setting );
276
  break;
277
  case 'gwolle_gb_admin':
admin/gb-upgrade.php CHANGED
@@ -502,6 +502,22 @@ function gwolle_gb_upgrade() {
502
  ");
503
  }
504
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
505
  /* Upgrade to new shiny db collation. Since WP 4.2 */
506
  require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
507
  if ( function_exists('maybe_convert_table_to_utf8mb4') ) {
@@ -558,7 +574,6 @@ function gwolle_gb_set_defaults() {
558
  'form_recaptcha_enabled' => 'false',
559
  'form_privacy_enabled' => 'false'
560
  );
561
- $defaults = serialize( $defaults );
562
  update_option( 'gwolle_gb-form', $defaults );
563
  }
564
  if ( get_option('gwolle_gb-form_ajax', false) == false ) {
@@ -614,7 +629,6 @@ function gwolle_gb_set_defaults() {
614
  'read_aavatar' => 'false',
615
  'read_editlink' => 'true'
616
  );
617
- $defaults = serialize( $defaults );
618
  update_option( 'gwolle_gb-read', $defaults );
619
  }
620
  if ( get_option('gwolle_gb-refuse-spam', false) == false ) {
502
  ");
503
  }
504
 
505
+ if (version_compare($installed_ver, '4.0.0', '<')) {
506
+ /*
507
+ * 3.1.9->4.0.0
508
+ * Fix serialized options.
509
+ */
510
+ $options = array(
511
+ 'gwolle_gb-form',
512
+ 'gwolle_gb-read',
513
+ );
514
+ foreach ( $options as $option ) {
515
+ $value = get_option( $option, array() );
516
+ $value = maybe_unserialize( $value );
517
+ update_option( $option, $value );
518
+ }
519
+ }
520
+
521
  /* Upgrade to new shiny db collation. Since WP 4.2 */
522
  require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
523
  if ( function_exists('maybe_convert_table_to_utf8mb4') ) {
574
  'form_recaptcha_enabled' => 'false',
575
  'form_privacy_enabled' => 'false'
576
  );
 
577
  update_option( 'gwolle_gb-form', $defaults );
578
  }
579
  if ( get_option('gwolle_gb-form_ajax', false) == false ) {
629
  'read_aavatar' => 'false',
630
  'read_editlink' => 'true'
631
  );
 
632
  update_option( 'gwolle_gb-read', $defaults );
633
  }
634
  if ( get_option('gwolle_gb-refuse-spam', false) == false ) {
admin/gwolle-gb-hooks.php CHANGED
@@ -3,7 +3,7 @@
3
  /*
4
  * WordPress Actions and Filters.
5
  * See the Plugin API in the Codex:
6
- * http://codex.wordpress.org/Plugin_API
7
  */
8
 
9
 
@@ -134,3 +134,40 @@ function gwolle_gb_multisite_uninstall() {
134
  }
135
  }
136
  add_action('admin_init', 'gwolle_gb_multisite_uninstall', 99);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3
  /*
4
  * WordPress Actions and Filters.
5
  * See the Plugin API in the Codex:
6
+ * https://codex.wordpress.org/Plugin_API
7
  */
8
 
9
 
134
  }
135
  }
136
  add_action('admin_init', 'gwolle_gb_multisite_uninstall', 99);
137
+
138
+
139
+ /*
140
+ * Show admin notice when gwolle-gb-addon is active and needs an update.
141
+ * Is dismissable by activating or updating.
142
+ *
143
+ * @since 4.0.0
144
+ */
145
+ function gwolle_gb_deps_admin_notice() {
146
+ $class = 'notice notice-error';
147
+
148
+ if ( ! isset($_GET['page']) ) {
149
+ return;
150
+ }
151
+ $pos = strpos($_GET['page'], 'gwolle-gb');
152
+ if ($pos === false) {
153
+ return;
154
+ }
155
+
156
+ $active = is_plugin_active( 'gwolle-gb-addon/gwolle-gb-addon.php' ); // true or false
157
+ if ( $active ) {
158
+ $zeno_el = '<a href="https://zenoweb.nl/downloads/gwolle-guestbook-add-on/" target="_blank">';
159
+ $zeno_el_close = '</a>';
160
+ $mojo_el = '<a href="https://www.mojomarketplace.com/item/gwolle-gb-add-on" target="_blank">';
161
+ $mojo_el_close = '</a>';
162
+ $required_version = '2.0.0';
163
+
164
+ if ( GWOLLE_GB_ADDON_VER && version_compare( GWOLLE_GB_ADDON_VER, $required_version, '>=' ) ) {
165
+ return; // We have the minimal version.
166
+ }
167
+
168
+ $message = sprintf( esc_html__( 'Gwolle Guestbook: This version of the Gwolle Guestbook Add-On is too old for this version of Gwolle Guestbook, you need at least %s. You have version %s. Go to the %sZenoWeb Webshop%s or to %sMOJO%s and login, download and update the Add-On.', 'gwolle-gb' ), $required_version, GWOLLE_GB_ADDON_VER, $zeno_el, $zeno_el_close, $mojo_el, $mojo_el_close );
169
+ printf( '<div class="%1$s"><p>%2$s</p></div>', esc_attr( $class ), $message );
170
+
171
+ }
172
+ }
173
+ add_action( 'admin_notices', 'gwolle_gb_deps_admin_notice' );
admin/js/gwolle-gb-admin.js CHANGED
@@ -66,12 +66,10 @@ jQuery(document).ready(function($) {
66
  var mn = jQuery("#mn").val();
67
 
68
  var gwolle_date = new Date( yy, mm - 1, dd, hh, mn );
69
- // Calculate offset between UTC and local time, and adjust our time.
70
- date_offset = gwolle_date.getTimezoneOffset() * -60;
71
- var timestamp = Math.round( gwolle_date.getTime() / 1000 ) + date_offset;
72
- jQuery("#gwolle_gb_timestamp").val(timestamp);
73
-
74
- var readable_time = gb_timeconverter( timestamp );
75
  jQuery( 'span.gb-editor-datetime' ).text( readable_time );
76
 
77
  var author_name = jQuery("#gwolle_gb_author_name").val();
@@ -86,19 +84,6 @@ jQuery(document).ready(function($) {
86
  });
87
  });
88
 
89
- /* Convert Unix timestamp to readable time. */
90
- function gb_timeconverter( timestamp ) {
91
- var datetime = new Date( timestamp * 1000 );
92
- var months = ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'];
93
- var year = datetime.getFullYear();
94
- var month = months[datetime.getMonth()];
95
- var date = datetime.getDate();
96
- var hour = datetime.getHours();
97
- var min = datetime.getMinutes();
98
- var readable_time = date + ' ' + month + ' ' + year + ' ' + hour + ':' + min;
99
- return readable_time;
100
- }
101
-
102
 
103
  /*
104
  * Settings Page
66
  var mn = jQuery("#mn").val();
67
 
68
  var gwolle_date = new Date( yy, mm - 1, dd, hh, mn );
69
+ readable_time = gwolle_date.toUTCString();
70
+ readable_time = readable_time.replace(/GMT/i, '');
71
+ var timestamp = Math.round( gwolle_date.getTime() / 1000 );
72
+ jQuery("#gwolle_gb_timestamp").val(timestamp); // local time of the server.
 
 
73
  jQuery( 'span.gb-editor-datetime' ).text( readable_time );
74
 
75
  var author_name = jQuery("#gwolle_gb_author_name").val();
84
  });
85
  });
86
 
 
 
 
 
 
 
 
 
 
 
 
 
 
87
 
88
  /*
89
  * Settings Page
admin/tabs/gb-admintab.php CHANGED
@@ -30,7 +30,7 @@ function gwolle_gb_page_settingstab_admin() {
30
  <table class="form-table">
31
  <tbody>
32
 
33
- <tr valign="top">
34
  <th scope="row"><label for="entries_per_page"><?php esc_html_e('Entries per page in the admin', 'gwolle-gb'); ?></label></th>
35
  <td>
36
  <select name="entries_per_page" id="entries_per_page">
@@ -50,7 +50,7 @@ function gwolle_gb_page_settingstab_admin() {
50
  </td>
51
  </tr>
52
 
53
- <tr valign="top">
54
  <th scope="row"><label for="showEntryIcons"><?php esc_html_e('Entry icons', 'gwolle-gb'); ?></label></th>
55
  <td>
56
  <input type="checkbox" <?php
30
  <table class="form-table">
31
  <tbody>
32
 
33
+ <tr>
34
  <th scope="row"><label for="entries_per_page"><?php esc_html_e('Entries per page in the admin', 'gwolle-gb'); ?></label></th>
35
  <td>
36
  <select name="entries_per_page" id="entries_per_page">
50
  </td>
51
  </tr>
52
 
53
+ <tr>
54
  <th scope="row"><label for="showEntryIcons"><?php esc_html_e('Entry icons', 'gwolle-gb'); ?></label></th>
55
  <td>
56
  <input type="checkbox" <?php
admin/tabs/gb-antispamtab.php CHANGED
@@ -30,7 +30,7 @@ function gwolle_gb_page_settingstab_antispam() {
30
  <table class="form-table">
31
  <tbody>
32
 
33
- <tr valign="top">
34
  <th scope="row"><label for="moderate-entries"><?php /* translators: Settings page, option for moderation */ esc_html_e('Moderate Guestbook', 'gwolle-gb'); ?></label></th>
35
  <td>
36
  <input <?php
@@ -49,7 +49,7 @@ function gwolle_gb_page_settingstab_antispam() {
49
  </td>
50
  </tr>
51
 
52
- <tr valign="top">
53
  <th scope="row"><label for="refuse-spam"><?php /* translators: Settings page, option for refusing spam */ esc_html_e('Refuse Spam', 'gwolle-gb'); ?></label></th>
54
  <td>
55
  <input <?php
@@ -68,7 +68,7 @@ function gwolle_gb_page_settingstab_antispam() {
68
  </td>
69
  </tr>
70
 
71
- <tr valign="top">
72
  <th scope="row"><label for="honeypot"><?php esc_html_e('Honeypot', 'gwolle-gb'); ?></label></th>
73
  <td>
74
  <input <?php
@@ -85,7 +85,7 @@ function gwolle_gb_page_settingstab_antispam() {
85
  </td>
86
  </tr>
87
 
88
- <tr valign="top">
89
  <th scope="row"><label for="gwolle_gb_nonce"><?php esc_html_e('Nonce', 'gwolle-gb'); ?></label></th>
90
  <td>
91
  <input <?php
@@ -110,7 +110,7 @@ function gwolle_gb_page_settingstab_antispam() {
110
  </td>
111
  </tr>
112
 
113
- <tr valign="top">
114
  <th scope="row"><label for="gwolle_gb_longtext"><?php esc_html_e('Long Text', 'gwolle-gb'); ?></label></th>
115
  <td>
116
  <input <?php
@@ -132,7 +132,7 @@ function gwolle_gb_page_settingstab_antispam() {
132
  </td>
133
  </tr>
134
 
135
- <tr valign="top">
136
  <th scope="row"><label for="gwolle_gb_linkchecker"><?php esc_html_e('Link Checker', 'gwolle-gb'); ?></label></th>
137
  <td>
138
  <input <?php
@@ -151,7 +151,7 @@ function gwolle_gb_page_settingstab_antispam() {
151
  </td>
152
  </tr>
153
 
154
- <tr valign="top">
155
  <th scope="row"><label for="gwolle_gb_timeout"><?php esc_html_e('Form Timeout', 'gwolle-gb'); ?></label></th>
156
  <td>
157
  <input <?php
@@ -170,7 +170,7 @@ function gwolle_gb_page_settingstab_antispam() {
170
  </td>
171
  </tr>
172
 
173
- <tr valign="top">
174
  <th scope="row">
175
  <label for="akismet-active"><?php esc_html_e('Akismet', 'gwolle-gb'); ?></label>
176
  </th>
@@ -210,7 +210,7 @@ function gwolle_gb_page_settingstab_antispam() {
210
  </td>
211
  </tr>
212
 
213
- <tr valign="top">
214
  <th scope="row"><label for="gwolle_gb_sfs"><?php esc_html_e('Stop Forum Spam', 'gwolle-gb'); ?></label></th>
215
  <td>
216
  <input <?php
@@ -236,7 +236,7 @@ function gwolle_gb_page_settingstab_antispam() {
236
  $antispam_question = gwolle_gb_sanitize_output( get_option('gwolle_gb-antispam-question') );
237
  $antispam_answer = gwolle_gb_sanitize_output( get_option('gwolle_gb-antispam-answer') );
238
  ?>
239
- <tr valign="top">
240
  <th scope="row"><label for="antispam-question"><?php esc_html_e('Custom Anti-Spam Security Question', 'gwolle-gb'); ?></label></th>
241
  <td>
242
  <div>
30
  <table class="form-table">
31
  <tbody>
32
 
33
+ <tr>
34
  <th scope="row"><label for="moderate-entries"><?php /* translators: Settings page, option for moderation */ esc_html_e('Moderate Guestbook', 'gwolle-gb'); ?></label></th>
35
  <td>
36
  <input <?php
49
  </td>
50
  </tr>
51
 
52
+ <tr>
53
  <th scope="row"><label for="refuse-spam"><?php /* translators: Settings page, option for refusing spam */ esc_html_e('Refuse Spam', 'gwolle-gb'); ?></label></th>
54
  <td>
55
  <input <?php
68
  </td>
69
  </tr>
70
 
71
+ <tr>
72
  <th scope="row"><label for="honeypot"><?php esc_html_e('Honeypot', 'gwolle-gb'); ?></label></th>
73
  <td>
74
  <input <?php
85
  </td>
86
  </tr>
87
 
88
+ <tr>
89
  <th scope="row"><label for="gwolle_gb_nonce"><?php esc_html_e('Nonce', 'gwolle-gb'); ?></label></th>
90
  <td>
91
  <input <?php
110
  </td>
111
  </tr>
112
 
113
+ <tr>
114
  <th scope="row"><label for="gwolle_gb_longtext"><?php esc_html_e('Long Text', 'gwolle-gb'); ?></label></th>
115
  <td>
116
  <input <?php
132
  </td>
133
  </tr>
134
 
135
+ <tr>
136
  <th scope="row"><label for="gwolle_gb_linkchecker"><?php esc_html_e('Link Checker', 'gwolle-gb'); ?></label></th>
137
  <td>
138
  <input <?php
151
  </td>
152
  </tr>
153
 
154
+ <tr>
155
  <th scope="row"><label for="gwolle_gb_timeout"><?php esc_html_e('Form Timeout', 'gwolle-gb'); ?></label></th>
156
  <td>
157
  <input <?php
170
  </td>
171
  </tr>
172
 
173
+ <tr>
174
  <th scope="row">
175
  <label for="akismet-active"><?php esc_html_e('Akismet', 'gwolle-gb'); ?></label>
176
  </th>
210
  </td>
211
  </tr>
212
 
213
+ <tr>
214
  <th scope="row"><label for="gwolle_gb_sfs"><?php esc_html_e('Stop Forum Spam', 'gwolle-gb'); ?></label></th>
215
  <td>
216
  <input <?php
236
  $antispam_question = gwolle_gb_sanitize_output( get_option('gwolle_gb-antispam-question') );
237
  $antispam_answer = gwolle_gb_sanitize_output( get_option('gwolle_gb-antispam-answer') );
238
  ?>
239
+ <tr>
240
  <th scope="row"><label for="antispam-question"><?php esc_html_e('Custom Anti-Spam Security Question', 'gwolle-gb'); ?></label></th>
241
  <td>
242
  <div>
admin/tabs/gb-debugtab.php CHANGED
@@ -31,7 +31,7 @@ function gwolle_gb_page_settingstab_debug() {
31
  <table class="form-table">
32
  <tbody>
33
 
34
- <tr valign="top">
35
  <td scope="row" colspan="2">
36
  <p>
37
  <?php esc_html_e('Please provide this information when posting a support message on the support forum.', 'gwolle-gb'); ?>
@@ -79,7 +79,7 @@ function gwolle_gb_page_settingstab_debug() {
79
  }
80
  ?>
81
 
82
- <tr valign="top">
83
  <th scope="row"><label for="blogdescription"><?php esc_html_e('Test', 'gwolle-gb'); ?></label></th>
84
  <td>
85
  <p>
@@ -91,9 +91,7 @@ function gwolle_gb_page_settingstab_debug() {
91
  </td>
92
  </tr>
93
 
94
- <tr valign="top">
95
- <?php gwolle_gb_debug_info(); ?>
96
- </tr>
97
 
98
  </tbody>
99
  </table>
31
  <table class="form-table">
32
  <tbody>
33
 
34
+ <tr>
35
  <td scope="row" colspan="2">
36
  <p>
37
  <?php esc_html_e('Please provide this information when posting a support message on the support forum.', 'gwolle-gb'); ?>
79
  }
80
  ?>
81
 
82
+ <tr>
83
  <th scope="row"><label for="blogdescription"><?php esc_html_e('Test', 'gwolle-gb'); ?></label></th>
84
  <td>
85
  <p>
91
  </td>
92
  </tr>
93
 
94
+ <?php gwolle_gb_debug_info(); ?>
 
 
95
 
96
  </tbody>
97
  </table>
admin/tabs/gb-emailtab.php CHANGED
@@ -36,7 +36,7 @@ function gwolle_gb_page_settingstab_email() {
36
  $user_ids = explode( ",", $user_ids );
37
  } ?>
38
 
39
- <tr valign="top">
40
  <th scope="row"><label><?php esc_html_e('Subscription status', 'gwolle-gb'); ?></label></th>
41
  <td>
42
  <?php
@@ -49,7 +49,7 @@ function gwolle_gb_page_settingstab_email() {
49
  </td>
50
  </tr>
51
 
52
- <tr valign="top">
53
  <th scope="row"><label for="subscribe"><?php esc_html_e('Subscribe moderators', 'gwolle-gb'); ?></label></th>
54
  <td>
55
  <select name="subscribe" id="subscribe">
@@ -82,7 +82,7 @@ function gwolle_gb_page_settingstab_email() {
82
  </td>
83
  </tr>
84
 
85
- <tr valign="top">
86
  <th scope="row"><label for="unsubscribe"><?php esc_html_e('Unsubscribe moderators', 'gwolle-gb'); ?></label></th>
87
  <td>
88
  <?php
@@ -116,7 +116,7 @@ function gwolle_gb_page_settingstab_email() {
116
  </td>
117
  </tr>
118
 
119
- <tr valign="top">
120
  <th scope="row"><label for="admin_mail_from"><?php /* translators: Setting for SMTP mail from header */ esc_html_e('Send from address', 'gwolle-gb'); ?></label></th>
121
  <td>
122
  <input type="email" name="admin_mail_from" id="admin_mail_from" class="regular-text" value="<?php echo gwolle_gb_sanitize_output( get_option('gwolle_gb-mail-from', false) ); ?>" placeholder="info@example.com" />
@@ -131,7 +131,7 @@ function gwolle_gb_page_settingstab_email() {
131
  </td>
132
  </tr>
133
 
134
- <tr valign="top">
135
  <th scope="row"><label for="adminMailContent"><?php esc_html_e('Admin mail content', 'gwolle-gb'); ?></label></th>
136
  <td>
137
  <?php
@@ -173,7 +173,7 @@ Entry content:
173
  </td>
174
  </tr>
175
 
176
- <tr valign="top">
177
  <th scope="row"><label for="mail_author"><?php esc_html_e('Mail Author', 'gwolle-gb'); ?></label></th>
178
  <td>
179
  <input <?php
@@ -191,7 +191,7 @@ Entry content:
191
  </td>
192
  </tr>
193
 
194
- <tr valign="top">
195
  <th scope="row"><label for="authorMailContent"><?php esc_html_e('Author mail content', 'gwolle-gb'); ?></label></th>
196
  <td>
197
  <?php
@@ -231,7 +231,7 @@ Entry content:
231
  </td>
232
  </tr>
233
 
234
- <tr valign="top">
235
  <th scope="row"><label for="gwolle_gb-mail_admin_replyContent"><?php esc_html_e('Admin Reply mail content', 'gwolle-gb'); ?></label></th>
236
  <td>
237
  <?php
36
  $user_ids = explode( ",", $user_ids );
37
  } ?>
38
 
39
+ <tr>
40
  <th scope="row"><label><?php esc_html_e('Subscription status', 'gwolle-gb'); ?></label></th>
41
  <td>
42
  <?php
49
  </td>
50
  </tr>
51
 
52
+ <tr>
53
  <th scope="row"><label for="subscribe"><?php esc_html_e('Subscribe moderators', 'gwolle-gb'); ?></label></th>
54
  <td>
55
  <select name="subscribe" id="subscribe">
82
  </td>
83
  </tr>
84
 
85
+ <tr>
86
  <th scope="row"><label for="unsubscribe"><?php esc_html_e('Unsubscribe moderators', 'gwolle-gb'); ?></label></th>
87
  <td>
88
  <?php
116
  </td>
117
  </tr>
118
 
119
+ <tr>
120
  <th scope="row"><label for="admin_mail_from"><?php /* translators: Setting for SMTP mail from header */ esc_html_e('Send from address', 'gwolle-gb'); ?></label></th>
121
  <td>
122
  <input type="email" name="admin_mail_from" id="admin_mail_from" class="regular-text" value="<?php echo gwolle_gb_sanitize_output( get_option('gwolle_gb-mail-from', false) ); ?>" placeholder="info@example.com" />
131
  </td>
132
  </tr>
133
 
134
+ <tr>
135
  <th scope="row"><label for="adminMailContent"><?php esc_html_e('Admin mail content', 'gwolle-gb'); ?></label></th>
136
  <td>
137
  <?php
173
  </td>
174
  </tr>
175
 
176
+ <tr>
177
  <th scope="row"><label for="mail_author"><?php esc_html_e('Mail Author', 'gwolle-gb'); ?></label></th>
178
  <td>
179
  <input <?php
191
  </td>
192
  </tr>
193
 
194
+ <tr>
195
  <th scope="row"><label for="authorMailContent"><?php esc_html_e('Author mail content', 'gwolle-gb'); ?></label></th>
196
  <td>
197
  <?php
231
  </td>
232
  </tr>
233
 
234
+ <tr>
235
  <th scope="row"><label for="gwolle_gb-mail_admin_replyContent"><?php esc_html_e('Admin Reply mail content', 'gwolle-gb'); ?></label></th>
236
  <td>
237
  <?php
admin/tabs/gb-formtab.php CHANGED
@@ -30,7 +30,7 @@ function gwolle_gb_page_settingstab_form() {
30
  <table class="form-table">
31
  <tbody>
32
 
33
- <tr valign="top">
34
  <th scope="row"><label for="require_login"><?php esc_html_e('Require Login', 'gwolle-gb'); ?></label></th>
35
  <td>
36
  <input type="checkbox" id="require_login" name="require_login" <?php
@@ -44,7 +44,7 @@ function gwolle_gb_page_settingstab_form() {
44
  </td>
45
  </tr>
46
 
47
- <tr valign="top">
48
  <th scope="row"><label for="labels_float"><?php esc_html_e('Labels float', 'gwolle-gb'); ?></label></th>
49
  <td>
50
  <input type="checkbox" id="labels_float" name="labels_float" <?php
@@ -58,7 +58,7 @@ function gwolle_gb_page_settingstab_form() {
58
  </td>
59
  </tr>
60
 
61
- <tr valign="top">
62
  <th scope="row"><label for="gb_header"><?php esc_html_e('Header Text', 'gwolle-gb'); ?></label></th>
63
  <td><?php
64
  $header = gwolle_gb_sanitize_output( get_option('gwolle_gb-header', false) );
@@ -73,7 +73,7 @@ function gwolle_gb_page_settingstab_form() {
73
  </td>
74
  </tr>
75
 
76
- <tr valign="top">
77
  <th scope="row"><label for="notice"><?php esc_html_e('Notice Text', 'gwolle-gb'); ?></label></th>
78
  <td>
79
  <?php
@@ -99,7 +99,7 @@ We reserve the right to edit, delete, or not publish entries.
99
  </td>
100
  </tr>
101
 
102
- <tr valign="top">
103
  <th scope="row"><label for="form_ajax"><?php esc_html_e('Use AJAX', 'gwolle-gb'); ?></label></th>
104
  <td>
105
  <input type="checkbox" id="form_ajax" name="form_ajax" <?php
@@ -113,7 +113,7 @@ We reserve the right to edit, delete, or not publish entries.
113
  </td>
114
  </tr>
115
 
116
- <tr valign="top">
117
  <th scope="row"><label for="store_ip"><?php esc_html_e('Store IP Address', 'gwolle-gb'); ?></label></th>
118
  <td>
119
  <input type="checkbox" id="store_ip" name="store_ip" <?php
@@ -130,7 +130,7 @@ We reserve the right to edit, delete, or not publish entries.
130
  </td>
131
  </tr>
132
 
133
- <tr valign="top">
134
  <th scope="row"><label for="gb_remove_ip"><?php esc_html_e('Remove IP Address', 'gwolle-gb'); ?></label></th>
135
  <td>
136
  <input type="checkbox" id="gb_remove_ip" name="gb_remove_ip" />
@@ -146,11 +146,11 @@ We reserve the right to edit, delete, or not publish entries.
146
 
147
  <?php $form_setting = gwolle_gb_get_setting( 'form' ); ?>
148
 
149
- <tr valign="top">
150
  <td colspan="3"><h3><?php esc_html_e('Configure the form that is shown to visitors.', 'gwolle-gb'); ?></h3></td>
151
  </tr>
152
 
153
- <tr valign="top">
154
  <th scope="row"><label for="form_name_enabled"><?php esc_html_e('Name', 'gwolle-gb'); ?>:</label></th>
155
  <td>
156
  <input type="checkbox" id="form_name_enabled" name="form_name_enabled"<?php
@@ -170,7 +170,7 @@ We reserve the right to edit, delete, or not publish entries.
170
  </td>
171
  </tr>
172
 
173
- <tr valign="top">
174
  <th scope="row"><label for="form_city_enabled"><?php esc_html_e('City', 'gwolle-gb'); ?>:</label></th>
175
  <td>
176
  <input type="checkbox" id="form_city_enabled" name="form_city_enabled"<?php
@@ -190,7 +190,7 @@ We reserve the right to edit, delete, or not publish entries.
190
  </td>
191
  </tr>
192
 
193
- <tr valign="top">
194
  <th scope="row"><label for="form_email_enabled"><?php esc_html_e('Email', 'gwolle-gb'); ?>:</label></th>
195
  <td>
196
  <input type="checkbox" id="form_email_enabled" name="form_email_enabled"<?php
@@ -210,7 +210,7 @@ We reserve the right to edit, delete, or not publish entries.
210
  </td>
211
  </tr>
212
 
213
- <tr valign="top">
214
  <th scope="row"><label for="form_homepage_enabled"><?php esc_html_e('Website', 'gwolle-gb'); ?>:</label></th>
215
  <td>
216
  <input type="checkbox" id="form_homepage_enabled" name="form_homepage_enabled"<?php
@@ -230,7 +230,7 @@ We reserve the right to edit, delete, or not publish entries.
230
  </td>
231
  </tr>
232
 
233
- <tr valign="top">
234
  <th scope="row"><label for="form_message_enabled"><?php esc_html_e('Message', 'gwolle-gb'); ?>:</label></th>
235
  <td>
236
  <input type="checkbox" id="form_message_enabled" name="form_message_enabled"<?php
@@ -250,7 +250,7 @@ We reserve the right to edit, delete, or not publish entries.
250
  </td>
251
  </tr>
252
 
253
- <tr valign="top">
254
  <th scope="row"><label for="form_bbcode_enabled"><?php esc_html_e('Visual formatting and Emoji', 'gwolle-gb'); ?>:</label></th>
255
  <td>
256
  <input type="checkbox" id="form_bbcode_enabled" name="form_bbcode_enabled"<?php
@@ -265,7 +265,7 @@ We reserve the right to edit, delete, or not publish entries.
265
  </td>
266
  </tr>
267
 
268
- <tr valign="top">
269
  <th scope="row"><label for="form_antispam_enabled"><?php esc_html_e('Custom Anti-spam', 'gwolle-gb'); ?>:</label></th>
270
  <td>
271
  <input type="checkbox" id="form_antispam_enabled" name="form_antispam_enabled"<?php
@@ -280,7 +280,7 @@ We reserve the right to edit, delete, or not publish entries.
280
  </td>
281
  </tr>
282
 
283
- <tr valign="top">
284
  <th scope="row"><label for="form_privacy_enabled"><?php esc_html_e('Privacy checkbox', 'gwolle-gb'); ?>:</label></th>
285
  <td>
286
  <input type="checkbox" id="form_privacy_enabled" name="form_privacy_enabled"<?php
30
  <table class="form-table">
31
  <tbody>
32
 
33
+ <tr>
34
  <th scope="row"><label for="require_login"><?php esc_html_e('Require Login', 'gwolle-gb'); ?></label></th>
35
  <td>
36
  <input type="checkbox" id="require_login" name="require_login" <?php
44
  </td>
45
  </tr>
46
 
47
+ <tr>
48
  <th scope="row"><label for="labels_float"><?php esc_html_e('Labels float', 'gwolle-gb'); ?></label></th>
49
  <td>
50
  <input type="checkbox" id="labels_float" name="labels_float" <?php
58
  </td>
59
  </tr>
60
 
61
+ <tr>
62
  <th scope="row"><label for="gb_header"><?php esc_html_e('Header Text', 'gwolle-gb'); ?></label></th>
63
  <td><?php
64
  $header = gwolle_gb_sanitize_output( get_option('gwolle_gb-header', false) );
73
  </td>
74
  </tr>
75
 
76
+ <tr>
77
  <th scope="row"><label for="notice"><?php esc_html_e('Notice Text', 'gwolle-gb'); ?></label></th>
78
  <td>
79
  <?php
99
  </td>
100
  </tr>
101
 
102
+ <tr>
103
  <th scope="row"><label for="form_ajax"><?php esc_html_e('Use AJAX', 'gwolle-gb'); ?></label></th>
104
  <td>
105
  <input type="checkbox" id="form_ajax" name="form_ajax" <?php
113
  </td>
114
  </tr>
115
 
116
+ <tr>
117
  <th scope="row"><label for="store_ip"><?php esc_html_e('Store IP Address', 'gwolle-gb'); ?></label></th>
118
  <td>
119
  <input type="checkbox" id="store_ip" name="store_ip" <?php
130
  </td>
131
  </tr>
132
 
133
+ <tr>
134
  <th scope="row"><label for="gb_remove_ip"><?php esc_html_e('Remove IP Address', 'gwolle-gb'); ?></label></th>
135
  <td>
136
  <input type="checkbox" id="gb_remove_ip" name="gb_remove_ip" />
146
 
147
  <?php $form_setting = gwolle_gb_get_setting( 'form' ); ?>
148
 
149
+ <tr>
150
  <td colspan="3"><h3><?php esc_html_e('Configure the form that is shown to visitors.', 'gwolle-gb'); ?></h3></td>
151
  </tr>
152
 
153
+ <tr>
154
  <th scope="row"><label for="form_name_enabled"><?php esc_html_e('Name', 'gwolle-gb'); ?>:</label></th>
155
  <td>
156
  <input type="checkbox" id="form_name_enabled" name="form_name_enabled"<?php
170
  </td>
171
  </tr>
172
 
173
+ <tr>
174
  <th scope="row"><label for="form_city_enabled"><?php esc_html_e('City', 'gwolle-gb'); ?>:</label></th>
175
  <td>
176
  <input type="checkbox" id="form_city_enabled" name="form_city_enabled"<?php
190
  </td>
191
  </tr>
192
 
193
+ <tr>
194
  <th scope="row"><label for="form_email_enabled"><?php esc_html_e('Email', 'gwolle-gb'); ?>:</label></th>
195
  <td>
196
  <input type="checkbox" id="form_email_enabled" name="form_email_enabled"<?php
210
  </td>
211
  </tr>
212
 
213
+ <tr>
214
  <th scope="row"><label for="form_homepage_enabled"><?php esc_html_e('Website', 'gwolle-gb'); ?>:</label></th>
215
  <td>
216
  <input type="checkbox" id="form_homepage_enabled" name="form_homepage_enabled"<?php
230
  </td>
231
  </tr>
232
 
233
+ <tr>
234
  <th scope="row"><label for="form_message_enabled"><?php esc_html_e('Message', 'gwolle-gb'); ?>:</label></th>
235
  <td>
236
  <input type="checkbox" id="form_message_enabled" name="form_message_enabled"<?php
250
  </td>
251
  </tr>
252
 
253
+ <tr>
254
  <th scope="row"><label for="form_bbcode_enabled"><?php esc_html_e('Visual formatting and Emoji', 'gwolle-gb'); ?>:</label></th>
255
  <td>
256
  <input type="checkbox" id="form_bbcode_enabled" name="form_bbcode_enabled"<?php
265
  </td>
266
  </tr>
267
 
268
+ <tr>
269
  <th scope="row"><label for="form_antispam_enabled"><?php esc_html_e('Custom Anti-spam', 'gwolle-gb'); ?>:</label></th>
270
  <td>
271
  <input type="checkbox" id="form_antispam_enabled" name="form_antispam_enabled"<?php
280
  </td>
281
  </tr>
282
 
283
+ <tr>
284
  <th scope="row"><label for="form_privacy_enabled"><?php esc_html_e('Privacy checkbox', 'gwolle-gb'); ?>:</label></th>
285
  <td>
286
  <input type="checkbox" id="form_privacy_enabled" name="form_privacy_enabled"<?php
admin/tabs/gb-readingtab.php CHANGED
@@ -31,7 +31,7 @@ function gwolle_gb_page_settingstab_reading() {
31
  <table class="form-table">
32
  <tbody>
33
 
34
- <tr valign="top">
35
  <th scope="row"><label for="entriesPerPage"><?php esc_html_e('Entries per page on the frontend', 'gwolle-gb'); ?></label></th>
36
  <td>
37
  <select name="entriesPerPage" id="entriesPerPage">
@@ -51,7 +51,7 @@ function gwolle_gb_page_settingstab_reading() {
51
  </td>
52
  </tr>
53
 
54
- <tr valign="top">
55
  <th scope="row"><label for="excerpt_length"><?php esc_html_e('Length of the entry content', 'gwolle-gb'); ?></label></th>
56
  <td>
57
  <select name="excerpt_length" id="excerpt_length">
@@ -81,7 +81,7 @@ function gwolle_gb_page_settingstab_reading() {
81
  </td>
82
  </tr>
83
 
84
- <tr valign="top">
85
  <th scope="row"><label for="showLineBreaks"><?php esc_html_e('Line breaks', 'gwolle-gb'); ?></label></th>
86
  <td>
87
  <input type="checkbox" id="showLineBreaks" name="showLineBreaks"<?php
@@ -98,7 +98,7 @@ function gwolle_gb_page_settingstab_reading() {
98
  </td>
99
  </tr>
100
 
101
- <tr valign="top">
102
  <th scope="row"><label for="showSmilies"><?php esc_html_e('Smileys', 'gwolle-gb'); ?></label></th>
103
  <td>
104
  <input type="checkbox" id="showSmilies" name="showSmilies"<?php
@@ -113,7 +113,7 @@ function gwolle_gb_page_settingstab_reading() {
113
  </td>
114
  </tr>
115
 
116
- <tr valign="top">
117
  <th scope="row"><label for="linkAuthorWebsite"><?php esc_html_e('Links', 'gwolle-gb'); ?></label></th>
118
  <td>
119
  <input type="checkbox" id="linkAuthorWebsite" name="linkAuthorWebsite"<?php
@@ -127,7 +127,7 @@ function gwolle_gb_page_settingstab_reading() {
127
  </td>
128
  </tr>
129
 
130
- <tr valign="top">
131
  <th scope="row"><label for="admin_style"><?php esc_html_e('Admin Entry Styling', 'gwolle-gb'); ?></label></th>
132
  <td>
133
  <input type="checkbox" id="admin_style" name="admin_style"<?php
@@ -141,7 +141,7 @@ function gwolle_gb_page_settingstab_reading() {
141
  </td>
142
  </tr>
143
 
144
- <tr valign="top">
145
  <th scope="row"><label for="navigation"><?php esc_html_e('Navigation', 'gwolle-gb'); ?></label></th>
146
  <td>
147
  <?php $navigation = (int) get_option( 'gwolle_gb-navigation', 0 ); ?>
@@ -155,7 +155,7 @@ function gwolle_gb_page_settingstab_reading() {
155
  </td>
156
  </tr>
157
 
158
- <tr valign="top">
159
  <th scope="row"><label for="paginate_all"><?php esc_html_e('Pagination', 'gwolle-gb'); ?></label></th>
160
  <td>
161
  <input type="checkbox" id="paginate_all" name="paginate_all"<?php
@@ -172,11 +172,11 @@ function gwolle_gb_page_settingstab_reading() {
172
 
173
  <?php $read_setting = gwolle_gb_get_setting( 'read' ); ?>
174
 
175
- <tr valign="top">
176
  <td colspan="2"><h3><?php esc_html_e('Configure the parts of the entries that are shown to visitors.', 'gwolle-gb'); ?></h3></td>
177
  </tr>
178
 
179
- <tr valign="top">
180
  <th scope="row"><label for="read_avatar"><?php esc_html_e('Avatar', 'gwolle-gb'); ?>:</label></th>
181
  <td>
182
  <input type="checkbox" id="read_avatar" name="read_avatar"<?php
@@ -188,7 +188,7 @@ function gwolle_gb_page_settingstab_reading() {
188
  </td>
189
  </tr>
190
 
191
- <tr valign="top">
192
  <th scope="row"><label for="read_name"><?php esc_html_e('Name', 'gwolle-gb'); ?>:</label></th>
193
  <td>
194
  <input type="checkbox" id="read_name" name="read_name"<?php
@@ -200,7 +200,7 @@ function gwolle_gb_page_settingstab_reading() {
200
  </td>
201
  </tr>
202
 
203
- <tr valign="top">
204
  <th scope="row"><label for="read_city"><?php esc_html_e('City', 'gwolle-gb'); ?>:</label></th>
205
  <td>
206
  <input type="checkbox" id="read_city" name="read_city"<?php
@@ -212,7 +212,7 @@ function gwolle_gb_page_settingstab_reading() {
212
  </td>
213
  </tr>
214
 
215
- <tr valign="top">
216
  <th scope="row"><label for="read_datetime"><?php esc_html_e('Date and Time', 'gwolle-gb'); ?>:</label></th>
217
  <td>
218
  <input type="checkbox" id="read_datetime" name="read_datetime"<?php
@@ -225,7 +225,7 @@ function gwolle_gb_page_settingstab_reading() {
225
  </td>
226
  </tr>
227
 
228
- <tr valign="top">
229
  <th scope="row"><label for="read_date"><?php esc_html_e('Date', 'gwolle-gb'); ?>:</label></th>
230
  <td>
231
  <input type="checkbox" id="read_date" name="read_date"<?php
@@ -238,7 +238,7 @@ function gwolle_gb_page_settingstab_reading() {
238
  </td>
239
  </tr>
240
 
241
- <tr valign="top">
242
  <th scope="row"><label for="read_content"><?php esc_html_e('Content', 'gwolle-gb'); ?>:</label></th>
243
  <td>
244
  <input type="checkbox" id="read_content" name="read_content"<?php
@@ -250,7 +250,7 @@ function gwolle_gb_page_settingstab_reading() {
250
  </td>
251
  </tr>
252
 
253
- <tr valign="top">
254
  <th scope="row"><label for="read_aavatar"><?php esc_html_e('Admin Avatar', 'gwolle-gb'); ?>:</label></th>
255
  <td>
256
  <input type="checkbox" id="read_aavatar" name="read_aavatar"<?php
@@ -262,7 +262,7 @@ function gwolle_gb_page_settingstab_reading() {
262
  </td>
263
  </tr>
264
 
265
- <tr valign="top">
266
  <th scope="row"><label for="read_editlink"><?php esc_html_e('Edit link', 'gwolle-gb'); ?>:</label></th>
267
  <td>
268
  <input type="checkbox" id="read_editlink" name="read_editlink"<?php
31
  <table class="form-table">
32
  <tbody>
33
 
34
+ <tr>
35
  <th scope="row"><label for="entriesPerPage"><?php esc_html_e('Entries per page on the frontend', 'gwolle-gb'); ?></label></th>
36
  <td>
37
  <select name="entriesPerPage" id="entriesPerPage">
51
  </td>
52
  </tr>
53
 
54
+ <tr>
55
  <th scope="row"><label for="excerpt_length"><?php esc_html_e('Length of the entry content', 'gwolle-gb'); ?></label></th>
56
  <td>
57
  <select name="excerpt_length" id="excerpt_length">
81
  </td>
82
  </tr>
83
 
84
+ <tr>
85
  <th scope="row"><label for="showLineBreaks"><?php esc_html_e('Line breaks', 'gwolle-gb'); ?></label></th>
86
  <td>
87
  <input type="checkbox" id="showLineBreaks" name="showLineBreaks"<?php
98
  </td>
99
  </tr>
100
 
101
+ <tr>
102
  <th scope="row"><label for="showSmilies"><?php esc_html_e('Smileys', 'gwolle-gb'); ?></label></th>
103
  <td>
104
  <input type="checkbox" id="showSmilies" name="showSmilies"<?php
113
  </td>
114
  </tr>
115
 
116
+ <tr>
117
  <th scope="row"><label for="linkAuthorWebsite"><?php esc_html_e('Links', 'gwolle-gb'); ?></label></th>
118
  <td>
119
  <input type="checkbox" id="linkAuthorWebsite" name="linkAuthorWebsite"<?php
127
  </td>
128
  </tr>
129
 
130
+ <tr>
131
  <th scope="row"><label for="admin_style"><?php esc_html_e('Admin Entry Styling', 'gwolle-gb'); ?></label></th>
132
  <td>
133
  <input type="checkbox" id="admin_style" name="admin_style"<?php
141
  </td>
142
  </tr>
143
 
144
+ <tr>
145
  <th scope="row"><label for="navigation"><?php esc_html_e('Navigation', 'gwolle-gb'); ?></label></th>
146
  <td>
147
  <?php $navigation = (int) get_option( 'gwolle_gb-navigation', 0 ); ?>
155
  </td>
156
  </tr>
157
 
158
+ <tr>
159
  <th scope="row"><label for="paginate_all"><?php esc_html_e('Pagination', 'gwolle-gb'); ?></label></th>
160
  <td>
161
  <input type="checkbox" id="paginate_all" name="paginate_all"<?php
172
 
173
  <?php $read_setting = gwolle_gb_get_setting( 'read' ); ?>
174
 
175
+ <tr>
176
  <td colspan="2"><h3><?php esc_html_e('Configure the parts of the entries that are shown to visitors.', 'gwolle-gb'); ?></h3></td>
177
  </tr>
178
 
179
+ <tr>
180
  <th scope="row"><label for="read_avatar"><?php esc_html_e('Avatar', 'gwolle-gb'); ?>:</label></th>
181
  <td>
182
  <input type="checkbox" id="read_avatar" name="read_avatar"<?php
188
  </td>
189
  </tr>
190
 
191
+ <tr>
192
  <th scope="row"><label for="read_name"><?php esc_html_e('Name', 'gwolle-gb'); ?>:</label></th>
193
  <td>
194
  <input type="checkbox" id="read_name" name="read_name"<?php
200
  </td>
201
  </tr>
202
 
203
+ <tr>
204
  <th scope="row"><label for="read_city"><?php esc_html_e('City', 'gwolle-gb'); ?>:</label></th>
205
  <td>
206
  <input type="checkbox" id="read_city" name="read_city"<?php
212
  </td>
213
  </tr>
214
 
215
+ <tr>
216
  <th scope="row"><label for="read_datetime"><?php esc_html_e('Date and Time', 'gwolle-gb'); ?>:</label></th>
217
  <td>
218
  <input type="checkbox" id="read_datetime" name="read_datetime"<?php
225
  </td>
226
  </tr>
227
 
228
+ <tr>
229
  <th scope="row"><label for="read_date"><?php esc_html_e('Date', 'gwolle-gb'); ?>:</label></th>
230
  <td>
231
  <input type="checkbox" id="read_date" name="read_date"<?php
238
  </td>
239
  </tr>
240
 
241
+ <tr>
242
  <th scope="row"><label for="read_content"><?php esc_html_e('Content', 'gwolle-gb'); ?>:</label></th>
243
  <td>
244
  <input type="checkbox" id="read_content" name="read_content"<?php
250
  </td>
251
  </tr>
252
 
253
+ <tr>
254
  <th scope="row"><label for="read_aavatar"><?php esc_html_e('Admin Avatar', 'gwolle-gb'); ?>:</label></th>
255
  <td>
256
  <input type="checkbox" id="read_aavatar" name="read_aavatar"<?php
262
  </td>
263
  </tr>
264
 
265
+ <tr>
266
  <th scope="row"><label for="read_editlink"><?php esc_html_e('Edit link', 'gwolle-gb'); ?>:</label></th>
267
  <td>
268
  <input type="checkbox" id="read_editlink" name="read_editlink"<?php
admin/tabs/gb-uninstalltab.php CHANGED
@@ -18,6 +18,7 @@ function gwolle_gb_page_settingstab_uninstall() {
18
  die(esc_html__('You need a higher level of permission.', 'gwolle-gb'));
19
  }
20
  if ( function_exists('is_multisite') && is_multisite() ) {
 
21
  return;
22
  } ?>
23
 
@@ -33,17 +34,17 @@ function gwolle_gb_page_settingstab_uninstall() {
33
  <table class="form-table">
34
  <tbody>
35
 
36
- <tr valign="top">
37
  <th scope="row" style="color:#FF0000;"><label><?php esc_html_e('Uninstall', 'gwolle-gb'); ?></label></th>
38
  <td>
39
- <?php esc_html_e('Uninstalling means that all database entries are removed (settings and entries).', 'gwolle-gb');
40
- echo '<br />';
41
- _e('This can <strong>not</strong> be undone.', 'gwolle-gb');
42
  ?>
43
  </td>
44
  </tr>
45
 
46
- <tr valign="top">
47
  <th scope="row" style="color:#FF0000;"><label for="gwolle_gb_uninstall_confirmed"><?php esc_html_e('Confirm', 'gwolle-gb'); ?></label></th>
48
  <td>
49
  <input type="checkbox" name="gwolle_gb_uninstall_confirmed" id="gwolle_gb_uninstall_confirmed">
18
  die(esc_html__('You need a higher level of permission.', 'gwolle-gb'));
19
  }
20
  if ( function_exists('is_multisite') && is_multisite() ) {
21
+ esc_html_e('You are on a multisite install of WordPress. Please take a look at the documentation how to remove all the data of this plugin on multisite.', 'gwolle-gb');
22
  return;
23
  } ?>
24
 
34
  <table class="form-table">
35
  <tbody>
36
 
37
+ <tr>
38
  <th scope="row" style="color:#FF0000;"><label><?php esc_html_e('Uninstall', 'gwolle-gb'); ?></label></th>
39
  <td>
40
+ <?php esc_html_e('Uninstalling means that all database entries are removed (settings and entries).', 'gwolle-gb'); echo '<br />';
41
+ _e('This can <strong>not</strong> be undone.', 'gwolle-gb'); echo '<br />';
42
+ esc_html_e('It is a good idea to make a backup of your website before you touch this button.', 'gwolle-gb');
43
  ?>
44
  </td>
45
  </tr>
46
 
47
+ <tr>
48
  <th scope="row" style="color:#FF0000;"><label for="gwolle_gb_uninstall_confirmed"><?php esc_html_e('Confirm', 'gwolle-gb'); ?></label></th>
49
  <td>
50
  <input type="checkbox" name="gwolle_gb_uninstall_confirmed" id="gwolle_gb_uninstall_confirmed">
changelog-v0.txt → changelog/changelog-v0.txt RENAMED
File without changes
changelog-v1.txt → changelog/changelog-v1.txt RENAMED
File without changes
changelog-v2.txt → changelog/changelog-v2.txt RENAMED
File without changes
changelog/changelog-v3.txt ADDED
@@ -0,0 +1,89 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+ == Changelog ==
3
+
4
+ = 3.1.9 =
5
+ * 2020-02-01
6
+ * Fix undefined variable notice (thanks ronr1999).
7
+ * Add 'float:none;' to frontend button.
8
+
9
+ = 3.1.8 =
10
+ * 2020-01-21
11
+ * Add highlight to search results (thanks @robinnatter).
12
+ * Add searchwords to search widget after searching.
13
+ * Do not set meta_key when shortcode is used in widget or one-page design.
14
+ * Show InnoDB engine on debug tab.
15
+ * Show existence of database tables on debug tab.
16
+
17
+ = 3.1.7 =
18
+ * 2019-10-25
19
+ * Show subscription status for email notifications on settings page.
20
+ * Comment out unused images in markitup CSS.
21
+ * Set rel='nofollow noopener noreferrer' for bbcode links and user website.
22
+ * Set referrerpolicy='no-referrer' for bbcode images and avatar.
23
+ * Add filter 'gwolle_gb_bbcode_img_referrer'.
24
+ * Update strings for add-on.
25
+
26
+ = 3.1.6 =
27
+ * 2019-08-21
28
+ * Use wp_kses for filtering html elements.
29
+ * Add support for quotes already in the bbcode link.
30
+
31
+ = 3.1.5 =
32
+ * 2019-06-08
33
+ * Add log entry for privacy policy accepted (gets added to notification mail).
34
+ * Add msg_txt key/value to log entries for plain text display.
35
+ * Small updates to install routine.
36
+ * Support new wp_initialize_site action for multisite.
37
+
38
+ = 3.1.4 =
39
+ * 2019-05-03
40
+ * Make it possible to set entry to moderated with the gwolle_gb_new_entry_frontend filter.
41
+ * Update strings for add-on.
42
+
43
+ = 3.1.3 =
44
+ * 2019-04-16
45
+ * Small fix for silly mistake.
46
+
47
+ = 3.1.2 =
48
+ * 2019-04-04
49
+ * Improve accessibility for the frontend metabox.
50
+ * Add filter gwolle_gb_new_entry_frontend.
51
+ * Add filter gwolle_gb_get_permalink.
52
+ * Change arrows in next/prev pagination.
53
+ * Auto-detect line endings in import from CSV.
54
+
55
+ = 3.1.1 =
56
+ * 2019-03-08
57
+ * Drop check for mime-type on import, too many problems.
58
+ * Small CSS fix for pagination.
59
+
60
+ = 3.1.0 =
61
+ * 2019-02-19
62
+ * Remove support for Really Simple Captcha plugin, since it is ineffective.
63
+ * Please take a look at the other options for spamfilters, there are more and better options.
64
+ * Update CSS for admin navigation for WP 5.1.
65
+ * Add screen-reader-text to navigation for frontend and admin.
66
+ * Small fixes found by the phan tool.
67
+
68
+ = 3.0.0 =
69
+ * 2019-01-22
70
+ * Add search widget (only visible on guestbook pages).
71
+ * Add '[noscript]' to frontend form for when JavaScript is disabled.
72
+ * Add function 'gwolle_gb_post_is_guestbook'.
73
+ * Add function 'gwolle_gb_get_entries_from_search'.
74
+ * Add function 'gwolle_gb_enqueue_markitup'.
75
+ * Fix BBcode: support images inside links.
76
+ * Fix BBcode: have sublists work.
77
+ * Show new username and book ID after editing in editor postbox.
78
+ * Add some accessibility fixes.
79
+ * Switch database engine to InnoDB.
80
+ * Don't use transients for hashed field names, is faster this way.
81
+ * Better test if admin user exists for admin_reply.
82
+ * Use 'field-name' for gwolle_gb_content too.
83
+ * On admin pages, have separate functions for $_POST update. (settings, editor, entries).
84
+ * Use GWOLLE_GB_URL where appropriate.
85
+ * Use static vars instead of global vars.
86
+ * Integrate 2 JavaScript files for Markitup/BBcode.
87
+ * Switch export to 2000 entries per part instead of 3000.
88
+ * Add strings for add-on 1.3.0.
89
+ * Cleanup changelog. Add changelog-v2.txt.
changelog/index.html ADDED
File without changes
docs/filters/gwolle_gb_author_content_label.txt ADDED
@@ -0,0 +1,25 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+
3
+ ==Description==
4
+
5
+ The <b>"gwolle_gb_author_content_label"</b> filter is used to change the text of the label for the textarea of the content at the frontend.
6
+
7
+ You can use this filter as:
8
+
9
+ <code><?php add_filter( 'gwolle_gb_author_content_label', 'filter_function_name' ) ?></code>
10
+
11
+ Where 'filter_function_name' is the function WordPress should call when the filter is being used.
12
+
13
+ '''filter_function_name''' should be a unique function name. It cannot match any other function name already declared.
14
+
15
+
16
+ ==Examples==
17
+
18
+
19
+ function my_gwolle_gb_author_content_label( $label ) {
20
+ // $label is a string
21
+ $label = 'test';
22
+ return $label;
23
+ }
24
+ add_filter( 'gwolle_gb_author_content_label', 'my_gwolle_gb_author_content_label', 10, 1 );
25
+
docs/filters/gwolle_gb_author_content_prefill.txt ADDED
@@ -0,0 +1,25 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+
3
+ ==Description==
4
+
5
+ The <b>"gwolle_gb_author_content_prefill"</b> filter is used to change the prefill of the content textarea field at the frontend.
6
+
7
+ You can use this filter as:
8
+
9
+ <code><?php add_filter( 'gwolle_gb_author_content_prefill', 'filter_function_name' ) ?></code>
10
+
11
+ Where 'filter_function_name' is the function WordPress should call when the filter is being used.
12
+
13
+ '''filter_function_name''' should be a unique function name. It cannot match any other function name already declared.
14
+
15
+
16
+ ==Examples==
17
+
18
+
19
+ function my_gwolle_gb_author_content_prefill( $prefill ) {
20
+ // $prefill is a string
21
+ $prefill = ''; // no prefill, just an empty string
22
+ return $prefill;
23
+ }
24
+ add_filter( 'gwolle_gb_author_content_prefill', 'my_gwolle_gb_author_content_prefill', 10, 1 );
25
+
docs/filters/gwolle_gb_author_email_prefill.txt CHANGED
@@ -2,7 +2,7 @@
2
 
3
  ==Description==
4
 
5
- The <b>"gwolle_gb_author_email_prefill"</b> filter is used to change the prefill of the input field for the logged in user at the frontend.
6
 
7
  You can use this filter as:
8
 
2
 
3
  ==Description==
4
 
5
+ The <b>"gwolle_gb_author_email_prefill"</b> filter is used to change the prefill of the email input field at the frontend.
6
 
7
  You can use this filter as:
8
 
docs/filters/gwolle_gb_author_name_prefill.txt CHANGED
@@ -2,7 +2,7 @@
2
 
3
  ==Description==
4
 
5
- The <b>"gwolle_gb_author_name_prefill"</b> filter is used to change the prefill of the input field for the logged in user at the frontend.
6
 
7
  You can use this filter as:
8
 
2
 
3
  ==Description==
4
 
5
+ The <b>"gwolle_gb_author_name_prefill"</b> filter is used to change the prefill of the name input field at the frontend.
6
 
7
  You can use this filter as:
8
 
docs/filters/gwolle_gb_author_origin_prefill.txt ADDED
@@ -0,0 +1,25 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+
3
+ ==Description==
4
+
5
+ The <b>"gwolle_gb_author_origin_prefill"</b> filter is used to change the prefill of the origin input field at the frontend.
6
+
7
+ You can use this filter as:
8
+
9
+ <code><?php add_filter( 'gwolle_gb_author_origin_prefill', 'filter_function_name' ) ?></code>
10
+
11
+ Where 'filter_function_name' is the function WordPress should call when the filter is being used.
12
+
13
+ '''filter_function_name''' should be a unique function name. It cannot match any other function name already declared.
14
+
15
+
16
+ ==Examples==
17
+
18
+
19
+ function my_gwolle_gb_author_origin_prefill( $prefill ) {
20
+ // $prefill is a string
21
+ $prefill = ''; // no prefill, just an empty string
22
+ return $prefill;
23
+ }
24
+ add_filter( 'gwolle_gb_author_origin_prefill', 'my_gwolle_gb_author_origin_prefill', 10, 1 );
25
+
docs/filters/gwolle_gb_author_website_prefill.txt CHANGED
@@ -2,7 +2,7 @@
2
 
3
  ==Description==
4
 
5
- The <b>"gwolle_gb_author_website_prefill"</b> filter is used to change the prefill of the input field for the logged in user at the frontend.
6
 
7
  You can use this filter as:
8
 
2
 
3
  ==Description==
4
 
5
+ The <b>"gwolle_gb_author_website_prefill"</b> filter is used to change the prefill of the website input field at the frontend.
6
 
7
  You can use this filter as:
8
 
docs/filters/gwolle_gb_button.txt CHANGED
@@ -19,8 +19,8 @@ Where 'filter_function_name' is the function WordPress should call when the filt
19
  function my_gwolle_gb_button( $button ) {
20
  // $button is a string
21
  $button = '
22
- <div id="gwolle_gb_write_button">
23
- <input type="button" class="button btn btn-default" value="&raquo; ' . esc_attr__('Write a new entry.', 'gwolle-gb') . '" />
24
  </div>';
25
 
26
  return $button;
19
  function my_gwolle_gb_button( $button ) {
20
  // $button is a string
21
  $button = '
22
+ <div class="gwolle-gb-write-button">
23
+ <input type="button" name="gwolle-gb-write-button" class="button btn btn-default" value="&raquo; ' . esc_attr__('Write a new entry.', 'gwolle-gb') . '" />
24
  </div>';
25
 
26
  return $button;
docs/filters/gwolle_gb_content_label.txt CHANGED
@@ -3,6 +3,7 @@
3
  ==Description==
4
 
5
  The <b>"gwolle_gb_content_label"</b> filter is used to change the text of the label for the textarea of the content at the frontend.
 
6
 
7
  You can use this filter as:
8
 
3
  ==Description==
4
 
5
  The <b>"gwolle_gb_content_label"</b> filter is used to change the text of the label for the textarea of the content at the frontend.
6
+ This filter is deprecated, please use gwolle_gb_author_content_label.
7
 
8
  You can use this filter as:
9
 
docs/filters/gwolle_gb_entry_save.txt CHANGED
@@ -18,8 +18,8 @@ Where 'filter_function_name' is the function WordPress should call when the filt
18
 
19
  function my_gwolle_gb_entry_save( $entry ) {
20
  // $entry is an array.
21
- // Example where every entry that gets saved gets the current time
22
- $entry['datetime'] = current_time( 'timestamp' );
23
  return $entry;
24
  }
25
  add_filter( 'gwolle_gb_entry_save', 'my_gwolle_gb_entry_save');
18
 
19
  function my_gwolle_gb_entry_save( $entry ) {
20
  // $entry is an array.
21
+ // Example where every entry that gets saved gets the current time in GMT
22
+ $entry['datetime'] = time();
23
  return $entry;
24
  }
25
  add_filter( 'gwolle_gb_entry_save', 'my_gwolle_gb_entry_save');
frontend/css/gwolle-gb-frontend.css CHANGED
@@ -4,33 +4,30 @@
4
  */
5
 
6
 
7
- #gwolle_gb {
8
  clear: left;
9
  position: relative;
10
  }
11
 
12
- #gwolle_gb .gwolle_gb_hide {
13
  display: none;
14
  }
15
- #gwolle_gb .gwolle_gb_invisible {
16
  visibility: hidden;
17
  }
18
 
19
  /* Write button */
20
 
21
- #gwolle_gb_write_button,
22
- #gwolle-gb-write-button {
23
  margin: 20px 0 10px;
24
  }
25
- #gwolle_gb_write_button input.button,
26
- #gwolle-gb-write-button input.button {
27
  float: none; /* To avoid problems with too invasive themes. */
28
  }
29
 
30
  /* Write section */
31
 
32
- #gwolle_gb form#gwolle_gb_new_entry,
33
- #gwolle_gb form#gwolle-gb-new-entry {
34
  position: relative;
35
  margin-top: 20px;
36
  text-align: left;
@@ -55,15 +52,13 @@ button.gb-notice-dismiss {
55
  width: 13px;
56
  }
57
 
58
- .gwolle_gb_float .label,
59
- .gwolle_gb_float .input,
60
  .gwolle-gb-float .label,
61
  .gwolle-gb-float .input {
62
  float: left;
63
  }
64
 
65
  /* Text meant only for screen readers in broken themes. */
66
- #gwolle_gb .screen-reader-text {
67
  border: 0;
68
  clip: rect(1px, 1px, 1px, 1px);
69
  clip-path: inset(50%);
@@ -84,10 +79,10 @@ body .gwolle-gb-content a {
84
  }
85
 
86
  /* Submit AJAX icon */
87
- #gwolle_gb .gwolle_gb_submit_ajax_icon,
88
- #gwolle_gb .gwolle-gb-submit-ajax-icon,
89
- #gwolle_gb .gwolle_gb_addon_preview_ajax_icon,
90
- #gwolle_gb .gwolle-gb-addon-preview-ajax-icon {
91
  display: none;
92
  background-image: url("../images/loading.gif");
93
  background-position: 4px 4px;
@@ -98,71 +93,71 @@ body .gwolle-gb-content a {
98
 
99
  /* Messages / Notices */
100
 
101
- #gwolle_gb #gwolle_gb_messages,
102
- #gwolle_gb #gwolle-gb-messages {
103
  border-left: 4px solid #7ad03a;
104
  box-shadow: 2px 2px 2px 0 rgba(0, 0, 0, 0.1);
105
  padding: 1px 12px;
106
  margin: 5px 0 15px;
107
  }
108
- #gwolle_gb #gwolle_gb_messages.error,
109
- #gwolle_gb #gwolle-gb-messages.error {
110
  border-left: 4px solid #dd3d36;
111
  }
112
 
113
- #gwolle_gb .error p, div.updated p {
114
  margin: 0.5em 0;
115
  padding: 2px;
116
  }
117
 
118
- #gwolle_gb form#gwolle_gb_new_entry input.error,
119
- #gwolle_gb form#gwolle-gb-new-entry input.error,
120
- #gwolle_gb form#gwolle_gb_new_entry textarea.error,
121
- #gwolle_gb form#gwolle-gb-new-entry textarea.error {
122
  border: 1px solid #dd3d36;
123
  }
124
- #gwolle_gb form#gwolle_gb_new_entry input[type="checkbox"].error,
125
- #gwolle_gb form#gwolle-gb-new-entry input[type="checkbox"].error {
126
  box-shadow: 1px 1px 0px 0px rgba(221,61,54,1);
127
  }
128
 
129
- #gwolle_gb div.label,
130
- #gwolle_gb div.input {
131
  vertical-align: top;
132
  width: 80%;
133
  }
134
- #gwolle_gb .gwolle-gb-float div.label {
135
  width: 35%;
136
  }
137
- #gwolle_gb .gwolle-gb-float div.input {
138
  width: 50%;
139
  border: 0px;
140
  }
141
 
142
- #gwolle_gb div.input input[type="text"],
143
- #gwolle_gb div.input input[type="email"],
144
- #gwolle_gb div.input input[type="url"],
145
- #gwolle_gb div.input textarea {
 
146
  width: 100%;
147
  }
148
- #gwolle_gb div.input textarea {
149
  height: 150px;
150
  }
151
- #gwolle_gb .clearBoth {
152
  clear: both;
153
  }
154
 
155
 
156
  /* Page Navigation */
157
 
158
- #gwolle_gb .page-navigation {
159
  width: 100%;
160
  text-align: right;
161
  padding: 8px 0;
162
  }
163
 
164
- #gwolle_gb .page-navigation a,
165
- #gwolle_gb .page-navigation span {
166
  display: inline-block;
167
  padding: 0px 6px;
168
  margin-left: 0;
@@ -173,37 +168,36 @@ body .gwolle-gb-content a {
173
  }
174
 
175
  /* Current page */
176
- #gwolle_gb .page-navigation a:hover,
177
- #gwolle_gb .page-navigation span.current {
178
  background: #eee;
179
  color: #000;
180
  opacity: 0.8;
181
  border: 1px solid #ddd;
182
  }
183
- #gwolle_gb .page-navigation span.dots {
184
  padding: 0px 3px;
185
  color: #555;
186
  }
187
 
188
  /* Border-radius for whole pagination thing. */
189
- #gwolle_gb .page-navigation a:nth-child(2),
190
- #gwolle_gb .page-navigation span:nth-child(2) {
191
  border-radius: 3px 0 0 3px;
192
  }
193
- #gwolle_gb .page-navigation a:last-child,
194
- #gwolle_gb .page-navigation span:last-child {
195
  border-radius: 0 3px 3px 0;
196
  }
197
 
198
 
199
  /* Read section */
200
 
201
- #gwolle_gb #gwolle_gb_entries,
202
- #gwolle_gb #gwolle-gb-entries {
203
  position: relative;
204
  }
205
 
206
- #gwolle_gb .admin-entry {
207
  color: #333;
208
  background-color: #e6e6e6;
209
  background-repeat: repeat-x;
@@ -214,41 +208,41 @@ body .gwolle-gb-content a {
214
  background-image: linear-gradient(top, #f4f4f4, #e6e6e6);
215
  padding-left: 5px;
216
  }
217
- #gwolle_gb .admin-entry a {
218
  color: #666;
219
  }
220
- #gwolle_gb .gb-entry {
221
  position: relative;
222
  border-top: 1px #ddd solid;
223
  padding: 10px 0;
224
  margin: 0;
225
  clear: left;
226
  }
227
- #gwolle_gb .gwolle-gb-first {
228
  border-width: 0px;
229
  }
230
- #gwolle_gb .gb-entry-count_0 {
231
  border-bottom: 1px #ddd solid; /* Ajax added entry */
232
  }
233
 
234
- #gwolle_gb .gb-entry .gb-author-info,
235
- #gwolle_gb .gb-entry .gb-entry-content {
236
  display: block;
237
  }
238
- #gwolle_gb .gb-entry .gb-author-info .gb-author-avatar {
239
  margin: 0 0 8px 0;
240
  }
241
- #gwolle_gb .gb-entry .gb-author-info .gb-author-name {
242
  padding-left: 10px;
243
  font-weight: bold;
244
  }
245
- #gwolle_gb .gb-entry .gb-entry-content {
246
  padding-left: 10px;
247
  }
248
- #gwolle_gb .gb-entry .gb-entry-content img {
249
  max-width: 100%;
250
  }
251
- #gwolle_gb .gb-entry .gb-highlight {
252
  background-color: #ddff00;
253
  }
254
 
@@ -277,7 +271,7 @@ div.gb-metabox {
277
  box-sizing: border-box;
278
  z-index: 10;
279
  }
280
- #gwolle_gb .gb-entry-count_1 div.gb-metabox {
281
  border-top: 1px #ddd solid;
282
  }
283
  div.gb-metabox-line {
@@ -311,8 +305,8 @@ div.gb-metabox-line.gb-social-media-share a {
311
 
312
  /* Admin Reply */
313
 
314
- #gwolle_gb .gb-entry-admin_reply,
315
- #gwolle_gb .gb-entry-admin-reply {
316
  margin: 10px 0 0 40px;
317
  padding: 4px 10px 4px 10px;
318
  border-left: 1px solid #ddd;
@@ -321,8 +315,8 @@ div.gb-metabox-line.gb-social-media-share a {
321
 
322
  /* Infinite Scroll */
323
 
324
- #gwolle_gb .gwolle_gb_load_message,
325
- #gwolle_gb .gwolle-gb-load-message {
326
  display: none;
327
  background-color: #eee;
328
  background-image: url("../images/loading.gif");
@@ -338,8 +332,8 @@ div.gb-metabox-line.gb-social-media-share a {
338
  position: absolute;
339
  z-index: 5;
340
  }
341
- #gwolle_gb .gwolle_gb_end_message,
342
- #gwolle_gb .gwolle-gb-end-message {
343
  padding-left: 10px;
344
  }
345
 
@@ -408,20 +402,18 @@ li.gwolle-gb-widget.ssslide {
408
 
409
 
410
  /* Form inside a widget */
411
- .widget .gwolle_gb_float div.label,
412
  .widget .gwolle-gb-float div.label,
413
- .widget .gwolle_gb_float div.input,
414
  .widget .gwolle-gb-float div.input,
415
- .widget-area .gwolle_gb_float div.label,
416
- .widget-area .gwolle_gb_float div.input {
417
  float: none;
418
  }
419
- .widget #gwolle_gb div.label,
420
- .widget-area #gwolle_gb div.label {
421
  width: 100%;
422
  }
423
- .widget #gwolle_gb div.input,
424
- .widget-area #gwolle_gb div.input {
425
  width: 100%;
426
  }
427
 
@@ -429,35 +421,33 @@ li.gwolle-gb-widget.ssslide {
429
  /* Responsive Design */
430
 
431
  @media only screen and (max-width: 820px) {
432
- .gwolle_gb_float div.label,
433
  .gwolle-gb-float div.label,
434
- .gwolle_gb_float div.input,
435
  .gwolle-gb-float div.input {
436
  float: none;
437
  }
438
- #gwolle_gb .gwolle-gb-float div.label,
439
- #gwolle_gb .gwolle-gb-float div.input,
440
- #gwolle_gb div.label,
441
- #gwolle_gb div.input {
442
  width: 80%;
443
  }
444
  }
445
  @media only screen and (max-width: 620px) {
446
- .gwolle_gb_float div.label,
447
  .gwolle-gb-float div.label,
448
- .gwolle_gb_float div.input,
449
  .gwolle-gb-float div.input {
450
  float: none;
451
  }
452
- #gwolle_gb .gwolle-gb-float div.label,
453
- #gwolle_gb .gwolle-gb-float div.input,
454
- #gwolle_gb div.label,
455
- #gwolle_gb div.input {
456
  width: 100%;
457
  }
458
  }
459
 
 
460
  /* Add-On */
 
461
  div.gwolle-gb-starrating-result {
462
  position: absolute;
463
  top: 0;
4
  */
5
 
6
 
7
+ .gwolle-gb {
8
  clear: left;
9
  position: relative;
10
  }
11
 
12
+ .gwolle-gb .gwolle-gb-hide {
13
  display: none;
14
  }
15
+ .gwolle-gb .gwolle-gb-invisible {
16
  visibility: hidden;
17
  }
18
 
19
  /* Write button */
20
 
21
+ .gwolle-gb-write-button {
 
22
  margin: 20px 0 10px;
23
  }
24
+ .gwolle-gb-write-button input.button {
 
25
  float: none; /* To avoid problems with too invasive themes. */
26
  }
27
 
28
  /* Write section */
29
 
30
+ .gwolle-gb form.gwolle-gb-write {
 
31
  position: relative;
32
  margin-top: 20px;
33
  text-align: left;
52
  width: 13px;
53
  }
54
 
 
 
55
  .gwolle-gb-float .label,
56
  .gwolle-gb-float .input {
57
  float: left;
58
  }
59
 
60
  /* Text meant only for screen readers in broken themes. */
61
+ .gwolle-gb .screen-reader-text {
62
  border: 0;
63
  clip: rect(1px, 1px, 1px, 1px);
64
  clip-path: inset(50%);
79
  }
80
 
81
  /* Submit AJAX icon */
82
+ .gwolle-gb .gwolle_gb_submit_ajax_icon,
83
+ .gwolle-gb .gwolle-gb-submit-ajax-icon,
84
+ .gwolle-gb .gwolle_gb_addon_preview_ajax_icon,
85
+ .gwolle-gb .gwolle-gb-addon-preview-ajax-icon {
86
  display: none;
87
  background-image: url("../images/loading.gif");
88
  background-position: 4px 4px;
93
 
94
  /* Messages / Notices */
95
 
96
+ .gwolle-gb .gwolle_gb_messages,
97
+ .gwolle-gb .gwolle-gb-messages {
98
  border-left: 4px solid #7ad03a;
99
  box-shadow: 2px 2px 2px 0 rgba(0, 0, 0, 0.1);
100
  padding: 1px 12px;
101
  margin: 5px 0 15px;
102
  }
103
+ .gwolle-gb .gwolle_gb_messages.error,
104
+ .gwolle-gb .gwolle-gb-messages.error {
105
  border-left: 4px solid #dd3d36;
106
  }
107
 
108
+ .gwolle-gb .error p, div.updated p {
109
  margin: 0.5em 0;
110
  padding: 2px;
111
  }
112
 
113
+ .gwolle-gb form.gwolle-gb-write div.input.error,
114
+ .gwolle-gb form.gwolle-gb-write input.error,
115
+ .gwolle-gb form.gwolle-gb-write select.error,
116
+ .gwolle-gb form.gwolle-gb-write textarea.error {
117
  border: 1px solid #dd3d36;
118
  }
119
+ .gwolle-gb form.gwolle-gb-write input[type="checkbox"].error {
 
120
  box-shadow: 1px 1px 0px 0px rgba(221,61,54,1);
121
  }
122
 
123
+ .gwolle-gb div.label,
124
+ .gwolle-gb div.input {
125
  vertical-align: top;
126
  width: 80%;
127
  }
128
+ .gwolle-gb .gwolle-gb-float div.label {
129
  width: 35%;
130
  }
131
+ .gwolle-gb .gwolle-gb-float div.input {
132
  width: 50%;
133
  border: 0px;
134
  }
135
 
136
+ .gwolle-gb div.input input[type="text"],
137
+ .gwolle-gb div.input input[type="email"],
138
+ .gwolle-gb div.input input[type="url"],
139
+ .gwolle-gb div.input textarea,
140
+ .gwolle-gb div.input select {
141
  width: 100%;
142
  }
143
+ .gwolle-gb div.input textarea {
144
  height: 150px;
145
  }
146
+ .gwolle-gb .clearBoth {
147
  clear: both;
148
  }
149
 
150
 
151
  /* Page Navigation */
152
 
153
+ .gwolle-gb .page-navigation {
154
  width: 100%;
155