Yet Another Related Posts Plugin (YARPP) - Version 5.1.6

Version Description

(2020-05-15) = * Bugfix: 403 error when saving changes resolved * Enhancement: Feedback form enhancements

Download this release

Release Info

Developer jeffparker
Plugin Icon 128x128 Yet Another Related Posts Plugin (YARPP)
Version 5.1.6
Comparing to
See all releases

Code changes from version 5.1.5 to 5.1.6

classes/YARPP_Admin.php CHANGED
@@ -782,12 +782,13 @@ class YARPP_Admin {
782
  $api_key = '';
783
  $verification_key = '';
784
  }
785
-
786
-
787
  $plugins[] = (object) array(
 
788
  'basename' => plugin_basename(YARPP_MAIN_FILE),
789
  'logo' => YARPP_URL . '/images/icon-256x256.png',
790
  'api_server' => 'yarpp.com',
 
791
  'bgcolor' => '#fff',
792
  'send' => array(
793
  'plugin_name' => 'yarpp',
@@ -825,7 +826,7 @@ class YARPP_Admin {
825
  'please_wait' => esc_html__( 'Please wait...', 'yarpp' ),
826
  'thank_you' => esc_html__( 'Thank you!', 'yarpp' ),
827
  'ask_for_support' => sprintf(
828
- esc_html__( 'Just so you know, you can visit %1$sthe support forum%2$s or %3$sread the FAQs%2$s for help.',
829
  'yarpp' ),
830
  '<a href="https://wordpress.org/support/plugin/yet-another-related-posts-plugin/" target="_blank" >',
831
  '</a>',
782
  $api_key = '';
783
  $verification_key = '';
784
  }
785
+ $plugin_data = get_plugin_data(YARPP_MAIN_FILE, false, false);
 
786
  $plugins[] = (object) array(
787
+ 'title_slugged' => sanitize_title($plugin_data['Name']),
788
  'basename' => plugin_basename(YARPP_MAIN_FILE),
789
  'logo' => YARPP_URL . '/images/icon-256x256.png',
790
  'api_server' => 'yarpp.com',
791
+ 'script_cache_ver' => YARPP_VERSION,
792
  'bgcolor' => '#fff',
793
  'send' => array(
794
  'plugin_name' => 'yarpp',
826
  'please_wait' => esc_html__( 'Please wait...', 'yarpp' ),
827
  'thank_you' => esc_html__( 'Thank you!', 'yarpp' ),
828
  'ask_for_support' => sprintf(
829
+ esc_html__( 'Have you visited %1$sthe support forum%2$s and %3$sread the FAQs%2$s for help?',
830
  'yarpp' ),
831
  '<a href="https://wordpress.org/support/plugin/yet-another-related-posts-plugin/" target="_blank" >',
832
  '</a>',
lib/plugin-deactivation-survey/deactivate-feedback-form.css CHANGED
@@ -17,30 +17,30 @@
17
 
18
  .shareaholic-deactivate-header {
19
  background-size: contain;
20
- background-repeat: no-repeat;
21
  position: absolute;
22
  top: 0px;
23
  left: 0px;
24
  width: 100%;
25
  align-items: center;
26
  max-height: 65px;
27
- box-shadow: 0 0 8px rgba(0,0,0,.1);
28
- -webkit-box-shadow: 0 0 8px rgba(0,0,0,.1);
29
  }
30
 
31
  .shareaholic-review-notice-text {
32
  background: rgba(255, 255, 255, 0.9);
33
- text-shadow: #fff 0px 0px 10px;
34
- margin-right: 8em !important;
35
  }
36
 
37
  .shareaholic-deactivate-header h2 {
38
- font-size: 15px;
39
- font-weight: 700;
40
- line-height: 1.4;
41
- color: #495157;
42
- text-transform: uppercase;
43
- margin-left: 65px;
44
  }
45
 
46
  .shareaholic-deactivate-body {
@@ -48,11 +48,11 @@
48
  }
49
 
50
  .shareaholic-deactivate-body-foreword {
51
- font-size: 15px;
52
- font-weight: 700;
53
- line-height: 1.6em;
54
- color: #495157;
55
- margin-bottom: 1.6em;
56
  }
57
 
58
  .shareaholic-deactivate-text-area {
@@ -65,7 +65,7 @@
65
  }
66
 
67
  .shareaholic-deactivate-input, .shareaholic-deactivate-input[type], .shareaholic-deactivate-text-area {
68
- font-size: 12px;
69
  border-radius: 3px;
70
  border: 1px solid #cbd6e2;
71
  background-color: #f5f8fa;
@@ -75,28 +75,28 @@
75
  }
76
 
77
  .shareaholic-deactivate-help {
78
- font-size: 0.9em;
79
- color: #71767c;
80
- margin: 0.6em 0 2em 0;
81
  }
82
 
83
  .shareaholic-deactivate-reasons li {
84
  margin: 1em 0 1.2em 0;
85
- color: #33475b;
86
  }
87
 
88
  .shareaholic-deactivate-contact {
89
- font-weight: 700;
90
- line-height: 1.6em;
91
- margin-top: 2em;
92
  }
93
 
94
  .shareaholic-deactivate-divider {
95
- border-top: 1px #ddd solid;
96
- margin: 2.6em -30px 20px -30px;
97
  }
98
 
99
  .shareaholic-deactivate-dialog-footer {
100
- text-align: right;
101
- padding: 0 0 20px 0;
102
  }
17
 
18
  .shareaholic-deactivate-header {
19
  background-size: contain;
20
+ background-repeat: no-repeat;
21
  position: absolute;
22
  top: 0px;
23
  left: 0px;
24
  width: 100%;
25
  align-items: center;
26
  max-height: 65px;
27
+ box-shadow: 0 0 8px rgba(0,0,0,.1);
28
+ -webkit-box-shadow: 0 0 8px rgba(0,0,0,.1);
29
  }
30
 
31
  .shareaholic-review-notice-text {
32
  background: rgba(255, 255, 255, 0.9);
33
+ text-shadow: #fff 0px 0px 10px;
34
+ margin-right: 8em !important;
35
  }
36
 
37
  .shareaholic-deactivate-header h2 {
38
+ font-size: 15px;
39
+ font-weight: 700;
40
+ line-height: 1.4;
41
+ color: #495157;
42
+ text-transform: uppercase;
43
+ margin-left: 65px;
44
  }
45
 
46
  .shareaholic-deactivate-body {
48
  }
49
 
50
  .shareaholic-deactivate-body-foreword {
51
+ font-size: 15px;
52
+ font-weight: 700;
53
+ line-height: 1.6em;
54
+ color: #495157;
55
+ margin-bottom: 1.6em;
56
  }
57
 
58
  .shareaholic-deactivate-text-area {
65
  }
66
 
67
  .shareaholic-deactivate-input, .shareaholic-deactivate-input[type], .shareaholic-deactivate-text-area {
68
+ font-size: 12px;
69
  border-radius: 3px;
70
  border: 1px solid #cbd6e2;
71
  background-color: #f5f8fa;
75
  }
76
 
77
  .shareaholic-deactivate-help {
78
+ font-size: 0.9em;
79
+ color: #71767c;
80
+ margin: 0.6em 0 2em 0;
81
  }
82
 
83
  .shareaholic-deactivate-reasons li {
84
  margin: 1em 0 1.2em 0;
85
+ color: #33475b;
86
  }
87
 
88
  .shareaholic-deactivate-contact {
89
+ font-weight: 700;
90
+ line-height: 1.6em;
91
+ margin-top: 2em;
92
  }
93
 
94
  .shareaholic-deactivate-divider {
95
+ border-top: 1px #ddd solid;
96
+ margin: 2.6em -30px 20px -30px;
97
  }
98
 
99
  .shareaholic-deactivate-dialog-footer {
100
+ text-align: right;
101
+ padding: 0 0 20px 0;
102
  }
lib/plugin-deactivation-survey/deactivate-feedback-form.js CHANGED
@@ -1,3 +1,9 @@
 
 
 
 
 
 
1
  (function($) {
2
 
3
  if ( ! window.shareaholic) {
@@ -8,38 +14,42 @@
8
  return;
9
  }
10
 
 
 
 
 
 
 
11
  shareaholic.DeactivateFeedbackForm = function(plugin)
12
  {
13
  var self = this;
14
- var strings = shareaholic_deactivate_feedback_form_strings;
15
-
16
  this.plugin = plugin;
17
 
18
- // Dialog HTML
19
  var element = $(
20
  '\
21
  <div id="shareaholic-deactivate-dialog" class="shareaholic-deactivate-dialog" data-remodal-id="' + plugin.basename + '">\
22
- <div class="shareaholic-deactivate-header" style="background-image: url(' + plugin.logo + '); background-color: ' + plugin.bgcolor + ';"><div class="shareaholic-deactivate-text"><h2>' + strings.quick_feedback + '</h2></div></div>\
23
  <div class="shareaholic-deactivate-body">\
24
  <form>\
25
  <input type="hidden" name="plugin"/>\
26
  <div class="shareaholic-deactivate-body-foreword">\
27
- ' + strings.foreword + '\
28
  </div>\
29
  <ul class="shareaholic-deactivate-reasons"></ul>\
30
  <div style="display:none;" id="shareaholic-deactivate-comment-area">\
31
- <textarea class="shareaholic-deactivate-text-area" name="comment" rows="3" id="shareaholic-deactivate-comment" placeholder="' + strings.please_tell_us + '"/></textarea>\
32
- <p class="shareaholic-deactivate-help">' + strings.ask_for_support + '</p>\
33
  </div>\
34
  <div class="shareaholic-deactivate-contact">\
35
- ' + strings.email_request + '\
36
  </div>\
37
- <input type="email" name="email" class="shareaholic-deactivate-input" value="' + strings.email + '">\
38
  <div class="shareaholic-deactivate-divider"></div>\
39
  <div class="shareaholic-deactivate-dialog-footer">\
40
  <span class="spinner" style="float: none;"></span> \
41
- <input type="submit" class="button confirm button-secondary" id="shareaholic-deactivate-submit" value="' + strings.skip_and_deactivate + '"/>\
42
- <button data-remodal-action="cancel" class="button button-secondary">' + strings.cancel + '</button>\
43
  </div>\
44
  </form>\
45
  </div>\
@@ -56,15 +66,13 @@
56
  function(event) {
57
  var submit_input = $( element ).find( "input[type='submit']" );
58
  var comment_textarea = $( element ).find( '#shareaholic-deactivate-comment-area' );
59
- if (self.plugin.reasons_needing_comment.indexOf( event.target.value ) > -1) {
60
  comment_textarea.appendTo( $( event.target ).parent().parent() );
61
  comment_textarea.show();
62
  } else {
63
  comment_textarea.hide();
64
  }
65
- submit_input.val(
66
- strings.submit_and_deactivate
67
- );
68
  self.maybeDisableSubmit();
69
  }
70
  );
@@ -82,7 +90,7 @@
82
  }
83
  );
84
 
85
- // Reasons list
86
  var ul = $( element ).find( "ul.shareaholic-deactivate-reasons" );
87
  for (var key in plugin.reasons) {
88
  var li = $( "<li><label><input type='radio' name='reason'/> <span></span></label></li>" );
@@ -93,8 +101,14 @@
93
  $( ul ).append( li );
94
  }
95
 
96
- // Listen for deactivate
97
- $( "#the-list [data-plugin='" + plugin.basename + "'] .deactivate>a" ).on(
 
 
 
 
 
 
98
  "click",
99
  function(event) {
100
  self.onDeactivateClicked( event );
@@ -109,7 +123,7 @@
109
  if (this.plugin.reasons_needing_comment.indexOf( reason_value ) > -1
110
  && comment_textarea.val().replace( /\s/g, '' ) === '') {
111
  submit_input.prop( 'disabled',true );
112
- submit_input.prop( 'title',shareaholic_deactivate_feedback_form_strings.please_tell_us );
113
  } else {
114
  submit_input.prop( 'disabled',false );
115
  submit_input.prop( 'title','' );
@@ -130,12 +144,11 @@
130
  shareaholic.DeactivateFeedbackForm.prototype.onSubmit = function(event)
131
  {
132
  var element = this.element;
133
- var strings = shareaholic_deactivate_feedback_form_strings;
134
  var self = this;
135
  var data = this.plugin.send;
136
  data.survey_response = {
137
  contact:{
138
- email: $( element ).find( "input[name='email']" ).val()
139
  },
140
  type:'uninstall',
141
  data:{
@@ -145,7 +158,7 @@
145
  };
146
 
147
  $( element ).find( "button, input[type='submit']" ).prop( "disabled", true );
148
- $( element ).find( "input[type='submit']" ).val( strings.please_wait );
149
  $( element ).find( "button, input[type='submit']" ).siblings( '.spinner' ).addClass( 'is-active' );
150
 
151
  if ($( element ).find( "input[name='reason']:checked" ).length) {
@@ -173,8 +186,8 @@
173
 
174
  $( document ).ready(
175
  function() {
176
-
177
- for (var i = 0; i < shareaholic_deactivate_feedback_form_plugins.length; i++) {
178
  var plugin = shareaholic_deactivate_feedback_form_plugins[i];
179
  new shareaholic.DeactivateFeedbackForm( plugin );
180
  }
1
+ /**
2
+ * Displays a Feedback Form when a user clicks on the "Deactivate" link on the plugin settings page.
3
+ *
4
+ * @package shareaholic
5
+ */
6
+
7
  (function($) {
8
 
9
  if ( ! window.shareaholic) {
14
  return;
15
  }
16
 
17
+ function decodeEntities(encodedString) {
18
+ var textArea = document.createElement( 'textarea' );
19
+ textArea.innerHTML = encodedString;
20
+ return textArea.value;
21
+ }
22
+
23
  shareaholic.DeactivateFeedbackForm = function(plugin)
24
  {
25
  var self = this;
 
 
26
  this.plugin = plugin;
27
 
28
+ // Dialog HTML.
29
  var element = $(
30
  '\
31
  <div id="shareaholic-deactivate-dialog" class="shareaholic-deactivate-dialog" data-remodal-id="' + plugin.basename + '">\
32
+ <div class="shareaholic-deactivate-header" style="background-image: url(' + plugin.logo + '); background-color: ' + plugin.bgcolor + ';"><div class="shareaholic-deactivate-text"><h2>' + plugin.translations.quick_feedback + '</h2></div></div>\
33
  <div class="shareaholic-deactivate-body">\
34
  <form>\
35
  <input type="hidden" name="plugin"/>\
36
  <div class="shareaholic-deactivate-body-foreword">\
37
+ ' + plugin.translations.foreword + '\
38
  </div>\
39
  <ul class="shareaholic-deactivate-reasons"></ul>\
40
  <div style="display:none;" id="shareaholic-deactivate-comment-area">\
41
+ <textarea class="shareaholic-deactivate-text-area" name="comment" rows="3" id="shareaholic-deactivate-comment" placeholder="' + plugin.translations.please_tell_us + '"/></textarea>\
42
+ <p class="shareaholic-deactivate-help">' + plugin.translations.ask_for_support + '</p>\
43
  </div>\
44
  <div class="shareaholic-deactivate-contact">\
45
+ ' + plugin.translations.email_request + '\
46
  </div>\
47
+ <input type="email" name="email" class="shareaholic-deactivate-input" value="' + plugin.email + '">\
48
  <div class="shareaholic-deactivate-divider"></div>\
49
  <div class="shareaholic-deactivate-dialog-footer">\
50
  <span class="spinner" style="float: none;"></span> \
51
+ <input type="submit" class="button confirm button-secondary" id="shareaholic-deactivate-submit" value="' + plugin.translations.skip_and_deactivate + '"/>\
52
+ <button data-remodal-action="cancel" class="button button-secondary">' + plugin.translations.cancel + '</button>\
53
  </div>\
54
  </form>\
55
  </div>\
66
  function(event) {
67
  var submit_input = $( element ).find( "input[type='submit']" );
68
  var comment_textarea = $( element ).find( '#shareaholic-deactivate-comment-area' );
69
+ if (plugin.reasons_needing_comment.indexOf( event.target.value ) > -1) {
70
  comment_textarea.appendTo( $( event.target ).parent().parent() );
71
  comment_textarea.show();
72
  } else {
73
  comment_textarea.hide();
74
  }
75
+ submit_input.val( decodeEntities( plugin.translations.submit_and_deactivate ) );
 
 
76
  self.maybeDisableSubmit();
77
  }
78
  );
90
  }
91
  );
92
 
93
+ // Reasons list.
94
  var ul = $( element ).find( "ul.shareaholic-deactivate-reasons" );
95
  for (var key in plugin.reasons) {
96
  var li = $( "<li><label><input type='radio' name='reason'/> <span></span></label></li>" );
101
  $( ul ).append( li );
102
  }
103
 
104
+ // Listen for deactivate.
105
+ // Use either the "data-plugin" attribute (introduced in WP 4.5) or the "id" attribute (removed in WP 4.5)
106
+ // to identify our plugin's deactivation link.
107
+ var click_listen_selector = "#the-list [data-plugin='" + plugin.basename + "'] .deactivate>a";
108
+ if ( typeof plugin.title_slugged !== 'undefined') {
109
+ click_listen_selector += ", #" + plugin.title_slugged + " .deactivate>a";
110
+ }
111
+ $( click_listen_selector ).on(
112
  "click",
113
  function(event) {
114
  self.onDeactivateClicked( event );
123
  if (this.plugin.reasons_needing_comment.indexOf( reason_value ) > -1
124
  && comment_textarea.val().replace( /\s/g, '' ) === '') {
125
  submit_input.prop( 'disabled',true );
126
+ submit_input.prop( 'title',this.plugin.translations.please_tell_us );
127
  } else {
128
  submit_input.prop( 'disabled',false );
129
  submit_input.prop( 'title','' );
144
  shareaholic.DeactivateFeedbackForm.prototype.onSubmit = function(event)
145
  {
146
  var element = this.element;
 
147
  var self = this;
148
  var data = this.plugin.send;
149
  data.survey_response = {
150
  contact:{
151
+ email: $( element ).find( "input[name='email']" ).val().trim().toLowerCase()
152
  },
153
  type:'uninstall',
154
  data:{
158
  };
159
 
160
  $( element ).find( "button, input[type='submit']" ).prop( "disabled", true );
161
+ $( element ).find( "input[type='submit']" ).val( decodeEntities( this.plugin.translations.please_wait ) );
162
  $( element ).find( "button, input[type='submit']" ).siblings( '.spinner' ).addClass( 'is-active' );
163
 
164
  if ($( element ).find( "input[name='reason']:checked" ).length) {
186
 
187
  $( document ).ready(
188
  function() {
189
+ var plugins = shareaholic_deactivate_feedback_form_plugins.length;
190
+ for (var i = 0; i < plugins; i++) {
191
  var plugin = shareaholic_deactivate_feedback_form_plugins[i];
192
  new shareaholic.DeactivateFeedbackForm( plugin );
193
  }
lib/plugin-deactivation-survey/deactivate-feedback-form.php CHANGED
@@ -1,20 +1,30 @@
1
  <?php
 
 
 
 
 
 
2
  if ( ! is_admin() ) {
3
  return;
4
  }
5
 
6
  global $pagenow;
7
 
8
- if ( $pagenow != 'plugins.php' ) {
9
  return;
10
  }
11
 
12
  if ( ! function_exists( 'shareaholic_deactivate_feedback' ) ) {
 
 
 
 
13
  function shareaholic_deactivate_feedback() {
14
- // Plugins
15
  /**
16
  * Each plugin adds an array to this filtered value in order to register itself. Please see the callback
17
- * to see the expected structure of the array
18
  */
19
  $plugins = apply_filters( 'shareaholic_deactivate_feedback_form_plugins', array() );
20
 
@@ -22,22 +32,29 @@ if ( ! function_exists( 'shareaholic_deactivate_feedback' ) ) {
22
  return;
23
  }
24
 
25
- // Enqueue scripts
26
- wp_enqueue_script( 'remodal', plugin_dir_url( __FILE__ ) . 'remodal.min.js', array(), '1.1.1' );
27
- wp_enqueue_style( 'remodal', plugin_dir_url( __FILE__ ) . 'remodal.css', array(), '1.1.1' );
28
- wp_enqueue_style( 'remodal-default-theme', plugin_dir_url( __FILE__ ) . 'remodal-default-theme.css', array(), '1.1.1' );
 
 
 
 
 
 
29
 
30
  wp_enqueue_script(
31
  'shareaholic-deactivate-feedback-form',
32
  plugin_dir_url( __FILE__ ) . 'deactivate-feedback-form.js',
33
  array(),
34
- '1.1.1'
 
35
  );
36
  wp_enqueue_style(
37
  'shareaholic-deactivate-feedback-form',
38
  plugin_dir_url( __FILE__ ) . 'deactivate-feedback-form.css',
39
  array(),
40
- '1.1.1'
41
  );
42
 
43
  $current_user = wp_get_current_user();
@@ -47,19 +64,11 @@ if ( ! function_exists( 'shareaholic_deactivate_feedback' ) ) {
47
  $email = '';
48
  }
49
 
50
- // Localized strings
51
- wp_localize_script(
52
- 'shareaholic-deactivate-feedback-form',
53
- 'shareaholic_deactivate_feedback_form_strings',
54
- array_merge(
55
- $plugins[0]->translations,
56
- array(
57
- 'email' => $email,
58
- )
59
- )
60
- );
61
 
62
- // Send plugin data
63
  wp_localize_script(
64
  'shareaholic-deactivate-feedback-form',
65
  'shareaholic_deactivate_feedback_form_plugins',
1
  <?php
2
+ /**
3
+ * Displays a Feedback Form when a user clicks on the "Deactivate" link on the plugin settings page.
4
+ *
5
+ * @package shareaholic
6
+ */
7
+
8
  if ( ! is_admin() ) {
9
  return;
10
  }
11
 
12
  global $pagenow;
13
 
14
+ if ( 'plugins.php' !== $pagenow ) {
15
  return;
16
  }
17
 
18
  if ( ! function_exists( 'shareaholic_deactivate_feedback' ) ) {
19
+
20
+ /**
21
+ * Handles adding required code for the feedback form
22
+ */
23
  function shareaholic_deactivate_feedback() {
24
+ // Plugins.
25
  /**
26
  * Each plugin adds an array to this filtered value in order to register itself. Please see the callback
27
+ * to see the expected structure of the array.
28
  */
29
  $plugins = apply_filters( 'shareaholic_deactivate_feedback_form_plugins', array() );
30
 
32
  return;
33
  }
34
 
35
+ if ( $plugins[0] && $plugins[0]->script_cache_ver ) {
36
+ $script_cache_ver = $plugins[0]->script_cache_ver;
37
+ } else {
38
+ $script_cache_ver = '1.1.1';
39
+ }
40
+
41
+ // Enqueue scripts.
42
+ wp_enqueue_script( 'remodal', plugin_dir_url( __FILE__ ) . 'remodal.min.js', array(), $script_cache_ver, false );
43
+ wp_enqueue_style( 'remodal', plugin_dir_url( __FILE__ ) . 'remodal.css', array(), $script_cache_ver );
44
+ wp_enqueue_style( 'remodal-default-theme', plugin_dir_url( __FILE__ ) . 'remodal-default-theme.css', array(), $script_cache_ver );
45
 
46
  wp_enqueue_script(
47
  'shareaholic-deactivate-feedback-form',
48
  plugin_dir_url( __FILE__ ) . 'deactivate-feedback-form.js',
49
  array(),
50
+ $script_cache_ver,
51
+ false
52
  );
53
  wp_enqueue_style(
54
  'shareaholic-deactivate-feedback-form',
55
  plugin_dir_url( __FILE__ ) . 'deactivate-feedback-form.css',
56
  array(),
57
+ $script_cache_ver
58
  );
59
 
60
  $current_user = wp_get_current_user();
64
  $email = '';
65
  }
66
 
67
+ foreach ( $plugins as $plugin ) {
68
+ $plugin->email = $email;
69
+ }
 
 
 
 
 
 
 
 
70
 
71
+ // Send plugin data.
72
  wp_localize_script(
73
  'shareaholic-deactivate-feedback-form',
74
  'shareaholic_deactivate_feedback_form_plugins',
lib/plugin-deactivation-survey/remodal-default-theme.css CHANGED
@@ -1,168 +1,168 @@
1
  /*
2
- * Remodal - v1.1.1
3
- * Responsive, lightweight, fast, synchronized with CSS animations, fully customizable modal window plugin with declarative configuration and hash tracking.
4
- * http://vodkabears.github.io/remodal/
5
  *
6
- * Made by Ilya Makarov
7
- * Under MIT License
8
  */
9
 
10
  /* ==========================================================================
11
- Remodal's default mobile first theme
12
- ========================================================================== */
13
 
14
  /* Default theme styles of the overlay */
15
 
16
  .remodal-overlay {
17
- background: rgba(43, 46, 56, 0.7);
18
  }
19
 
20
  .remodal-overlay.remodal-is-opening,
21
  .remodal-overlay.remodal-is-closing {
22
- -webkit-animation-duration: 0.1s;
23
- animation-duration: 0.1s;
24
- -webkit-animation-fill-mode: forwards;
25
- animation-fill-mode: forwards;
26
  }
27
 
28
  .remodal-overlay.remodal-is-opening {
29
- -webkit-animation-name: remodal-overlay-opening-keyframes;
30
- animation-name: remodal-overlay-opening-keyframes;
31
  }
32
 
33
  .remodal-overlay.remodal-is-closing {
34
- -webkit-animation-name: remodal-overlay-closing-keyframes;
35
- animation-name: remodal-overlay-closing-keyframes;
36
  }
37
 
38
  /* Default theme styles of the wrapper */
39
 
40
  .remodal-wrapper {
41
- padding: 10px 10px 0;
42
  }
43
 
44
  /* Default theme styles of the modal dialog */
45
 
46
  .remodal {
47
- box-sizing: border-box;
48
- width: 100%;
49
- margin-bottom: 10px;
50
- padding: 30px 30px 5px 30px;
51
 
52
- -webkit-transform: translate3d(0, 0, 0);
53
- transform: translate3d(0, 0, 0);
54
 
55
- color: #2b2e38;
56
- background: #fff;
57
  }
58
 
59
  .remodal.remodal-is-opening {
60
- -webkit-animation-name: remodal-opening-keyframes;
61
- animation-name: remodal-opening-keyframes;
62
  }
63
 
64
  .remodal.remodal-is-closing {
65
- -webkit-animation-name: remodal-closing-keyframes;
66
- animation-name: remodal-closing-keyframes;
67
  }
68
 
69
  /* Vertical align of the modal dialog */
70
 
71
  .remodal,
72
  .remodal-wrapper:after {
73
- vertical-align: middle;
74
  }
75
 
76
  /* Close button */
77
 
78
  .remodal-close {
79
- position: absolute;
80
- top: 0;
81
- left: 0;
82
-
83
- display: block;
84
- overflow: visible;
85
-
86
- width: 35px;
87
- height: 35px;
88
- margin: 0;
89
- padding: 0;
90
-
91
- cursor: pointer;
92
- -webkit-transition: color 0.2s;
93
- transition: color 0.2s;
94
- text-decoration: none;
95
-
96
- color: #95979c;
97
- border: 0;
98
- outline: 0;
99
- background: transparent;
100
  }
101
 
102
  .remodal-close:hover,
103
  .remodal-close:focus {
104
- color: #2b2e38;
105
  }
106
 
107
  .remodal-close:before {
108
- font-family: Arial, "Helvetica CY", "Nimbus Sans L", sans-serif !important;
109
- font-size: 25px;
110
- line-height: 35px;
111
 
112
- position: absolute;
113
- top: 0;
114
- left: 0;
115
 
116
- display: block;
117
 
118
- width: 35px;
119
 
120
- content: "\00d7";
121
- text-align: center;
122
  }
123
 
124
  /* Dialog buttons */
125
 
126
  .remodal-confirm,
127
  .remodal-cancel {
128
- font: inherit;
129
 
130
- display: inline-block;
131
- overflow: visible;
132
 
133
- min-width: 110px;
134
- margin: 0;
135
- padding: 12px 0;
136
 
137
- cursor: pointer;
138
- -webkit-transition: background 0.2s;
139
- transition: background 0.2s;
140
- text-align: center;
141
- vertical-align: middle;
142
- text-decoration: none;
143
 
144
- border: 0;
145
- outline: 0;
146
  }
147
 
148
  .remodal-confirm {
149
- color: #fff;
150
- background: #81c784;
151
  }
152
 
153
  .remodal-confirm:hover,
154
  .remodal-confirm:focus {
155
- background: #66bb6a;
156
  }
157
 
158
  .remodal-cancel {
159
- color: #fff;
160
- background: #e57373;
161
  }
162
 
163
  .remodal-cancel:hover,
164
  .remodal-cancel:focus {
165
- background: #ef5350;
166
  }
167
 
168
  /* Remove inner padding and border in Firefox 4+ for the button tag. */
@@ -170,22 +170,22 @@
170
  .remodal-confirm::-moz-focus-inner,
171
  .remodal-cancel::-moz-focus-inner,
172
  .remodal-close::-moz-focus-inner {
173
- padding: 0;
174
 
175
- border: 0;
176
  }
177
 
178
  /* Keyframes
179
- ========================================================================== */
180
 
181
  @-webkit-keyframes remodal-opening-keyframes {
182
- from {
183
  -webkit-transform: scale(1.05);
184
  transform: scale(1.05);
185
 
186
  opacity: 0;
187
- }
188
- to {
189
  -webkit-transform: none;
190
  transform: none;
191
 
@@ -193,17 +193,17 @@
193
 
194
  -webkit-filter: blur(0);
195
  filter: blur(0);
196
- }
197
  }
198
 
199
  @keyframes remodal-opening-keyframes {
200
- from {
201
  -webkit-transform: scale(1.05);
202
  transform: scale(1.05);
203
 
204
  opacity: 0;
205
- }
206
- to {
207
  -webkit-transform: none;
208
  transform: none;
209
 
@@ -211,17 +211,17 @@
211
 
212
  -webkit-filter: blur(0);
213
  filter: blur(0);
214
- }
215
  }
216
 
217
  @-webkit-keyframes remodal-closing-keyframes {
218
- from {
219
  -webkit-transform: scale(1);
220
  transform: scale(1);
221
 
222
  opacity: 1;
223
- }
224
- to {
225
  -webkit-transform: scale(0.95);
226
  transform: scale(0.95);
227
 
@@ -229,17 +229,17 @@
229
 
230
  -webkit-filter: blur(0);
231
  filter: blur(0);
232
- }
233
  }
234
 
235
  @keyframes remodal-closing-keyframes {
236
- from {
237
  -webkit-transform: scale(1);
238
  transform: scale(1);
239
 
240
  opacity: 1;
241
- }
242
- to {
243
  -webkit-transform: scale(0.95);
244
  transform: scale(0.95);
245
 
@@ -247,61 +247,61 @@
247
 
248
  -webkit-filter: blur(0);
249
  filter: blur(0);
250
- }
251
  }
252
 
253
  @-webkit-keyframes remodal-overlay-opening-keyframes {
254
- from {
255
  opacity: 0;
256
- }
257
- to {
258
  opacity: 1;
259
- }
260
  }
261
 
262
  @keyframes remodal-overlay-opening-keyframes {
263
- from {
264
  opacity: 0;
265
- }
266
- to {
267
  opacity: 1;
268
- }
269
  }
270
 
271
  @-webkit-keyframes remodal-overlay-closing-keyframes {
272
- from {
273
  opacity: 1;
274
- }
275
- to {
276
  opacity: 0;
277
- }
278
  }
279
 
280
  @keyframes remodal-overlay-closing-keyframes {
281
- from {
282
  opacity: 1;
283
- }
284
- to {
285
  opacity: 0;
286
- }
287
  }
288
 
289
  /* Media queries
290
- ========================================================================== */
291
 
292
  @media only screen and (min-width: 641px) {
293
- .remodal {
294
  max-width: 550px;
295
- }
296
  }
297
 
298
  /* IE8
299
- ========================================================================== */
300
 
301
  .lt-ie9 .remodal-overlay {
302
- background: #2b2e38;
303
  }
304
 
305
  .lt-ie9 .remodal {
306
- width: 550px;
307
  }
1
  /*
2
+ * Remodal - v1.1.1
3
+ * Responsive, lightweight, fast, synchronized with CSS animations, fully customizable modal window plugin with declarative configuration and hash tracking.
4
+ * http://vodkabears.github.io/remodal/
5
  *
6
+ * Made by Ilya Makarov
7
+ * Under MIT License
8
  */
9
 
10
  /* ==========================================================================
11
+ Remodal's default mobile first theme
12
+ ========================================================================== */
13
 
14
  /* Default theme styles of the overlay */
15
 
16
  .remodal-overlay {
17
+ background: rgba(43, 46, 56, 0.7);
18
  }
19
 
20
  .remodal-overlay.remodal-is-opening,
21
  .remodal-overlay.remodal-is-closing {
22
+ -webkit-animation-duration: 0.1s;
23
+ animation-duration: 0.1s;
24
+ -webkit-animation-fill-mode: forwards;
25
+ animation-fill-mode: forwards;
26
  }
27
 
28
  .remodal-overlay.remodal-is-opening {
29
+ -webkit-animation-name: remodal-overlay-opening-keyframes;
30
+ animation-name: remodal-overlay-opening-keyframes;
31
  }
32
 
33
  .remodal-overlay.remodal-is-closing {
34
+ -webkit-animation-name: remodal-overlay-closing-keyframes;
35
+ animation-name: remodal-overlay-closing-keyframes;
36
  }
37
 
38
  /* Default theme styles of the wrapper */
39
 
40
  .remodal-wrapper {
41
+ padding: 10px 10px 0;
42
  }
43
 
44
  /* Default theme styles of the modal dialog */
45
 
46
  .remodal {
47
+ box-sizing: border-box;
48
+ width: 100%;
49
+ margin-bottom: 10px;
50
+ padding: 30px 30px 5px 30px;
51
 
52
+ -webkit-transform: translate3d(0, 0, 0);
53
+ transform: translate3d(0, 0, 0);
54
 
55
+ color: #2b2e38;
56
+ background: #fff;
57
  }
58
 
59
  .remodal.remodal-is-opening {
60
+ -webkit-animation-name: remodal-opening-keyframes;
61
+ animation-name: remodal-opening-keyframes;
62
  }
63
 
64
  .remodal.remodal-is-closing {
65
+ -webkit-animation-name: remodal-closing-keyframes;
66
+ animation-name: remodal-closing-keyframes;
67
  }
68
 
69
  /* Vertical align of the modal dialog */
70
 
71
  .remodal,
72
  .remodal-wrapper:after {
73
+ vertical-align: middle;
74
  }
75
 
76
  /* Close button */
77
 
78
  .remodal-close {
79
+ position: absolute;
80
+ top: 0;
81
+ left: 0;
82
+
83
+ display: block;
84
+ overflow: visible;
85
+
86
+ width: 35px;
87
+ height: 35px;
88
+ margin: 0;
89
+ padding: 0;
90
+
91
+ cursor: pointer;
92
+ -webkit-transition: color 0.2s;
93
+ transition: color 0.2s;
94
+ text-decoration: none;
95
+
96
+ color: #95979c;
97
+ border: 0;
98
+ outline: 0;
99
+ background: transparent;
100
  }
101
 
102
  .remodal-close:hover,
103
  .remodal-close:focus {
104
+ color: #2b2e38;
105
  }
106
 
107
  .remodal-close:before {
108
+ font-family: Arial, "Helvetica CY", "Nimbus Sans L", sans-serif !important;
109
+ font-size: 25px;
110
+ line-height: 35px;
111
 
112
+ position: absolute;
113
+ top: 0;
114
+ left: 0;
115
 
116
+ display: block;
117
 
118
+ width: 35px;
119
 
120
+ content: "\00d7";
121
+ text-align: center;
122
  }
123
 
124
  /* Dialog buttons */
125
 
126
  .remodal-confirm,
127
  .remodal-cancel {
128
+ font: inherit;
129
 
130
+ display: inline-block;
131
+ overflow: visible;
132
 
133
+ min-width: 110px;
134
+ margin: 0;
135
+ padding: 12px 0;
136
 
137
+ cursor: pointer;
138
+ -webkit-transition: background 0.2s;
139
+ transition: background 0.2s;
140
+ text-align: center;
141
+ vertical-align: middle;
142
+ text-decoration: none;
143
 
144
+ border: 0;
145
+ outline: 0;
146
  }
147
 
148
  .remodal-confirm {
149
+ color: #fff;
150
+ background: #81c784;
151
  }
152
 
153
  .remodal-confirm:hover,
154
  .remodal-confirm:focus {
155
+ background: #66bb6a;
156
  }
157
 
158
  .remodal-cancel {
159
+ color: #fff;
160
+ background: #e57373;
161
  }
162
 
163
  .remodal-cancel:hover,
164
  .remodal-cancel:focus {
165
+ background: #ef5350;
166
  }
167
 
168
  /* Remove inner padding and border in Firefox 4+ for the button tag. */
170
  .remodal-confirm::-moz-focus-inner,
171
  .remodal-cancel::-moz-focus-inner,
172
  .remodal-close::-moz-focus-inner {
173
+ padding: 0;
174
 
175
+ border: 0;
176
  }
177
 
178
  /* Keyframes
179
+ ========================================================================== */
180
 
181
  @-webkit-keyframes remodal-opening-keyframes {
182
+ from {
183
  -webkit-transform: scale(1.05);
184
  transform: scale(1.05);
185
 
186
  opacity: 0;
187
+ }
188
+ to {
189
  -webkit-transform: none;
190
  transform: none;
191
 
193
 
194
  -webkit-filter: blur(0);
195
  filter: blur(0);
196
+ }
197
  }
198
 
199
  @keyframes remodal-opening-keyframes {
200
+ from {
201
  -webkit-transform: scale(1.05);
202
  transform: scale(1.05);
203
 
204
  opacity: 0;
205
+ }
206
+ to {
207
  -webkit-transform: none;
208
  transform: none;
209
 
211
 
212
  -webkit-filter: blur(0);
213
  filter: blur(0);
214
+ }
215
  }
216
 
217
  @-webkit-keyframes remodal-closing-keyframes {
218
+ from {
219
  -webkit-transform: scale(1);
220
  transform: scale(1);
221
 
222
  opacity: 1;
223
+ }
224
+ to {
225
  -webkit-transform: scale(0.95);
226
  transform: scale(0.95);
227
 
229
 
230
  -webkit-filter: blur(0);
231
  filter: blur(0);
232
+ }
233
  }
234
 
235
  @keyframes remodal-closing-keyframes {
236
+ from {
237
  -webkit-transform: scale(1);
238
  transform: scale(1);
239
 
240
  opacity: 1;
241
+ }
242
+ to {
243
  -webkit-transform: scale(0.95);
244
  transform: scale(0.95);
245
 
247
 
248
  -webkit-filter: blur(0);
249
  filter: blur(0);
250
+ }
251
  }
252
 
253
  @-webkit-keyframes remodal-overlay-opening-keyframes {
254
+ from {
255
  opacity: 0;
256
+ }
257
+ to {
258
  opacity: 1;
259
+ }
260
  }
261
 
262
  @keyframes remodal-overlay-opening-keyframes {
263
+ from {
264
  opacity: 0;
265
+ }
266
+ to {
267
  opacity: 1;
268
+ }
269
  }
270
 
271
  @-webkit-keyframes remodal-overlay-closing-keyframes {
272
+ from {
273
  opacity: 1;
274
+ }
275
+ to {
276
  opacity: 0;
277
+ }
278
  }
279
 
280
  @keyframes remodal-overlay-closing-keyframes {
281
+ from {
282
  opacity: 1;
283
+ }
284
+ to {
285
  opacity: 0;
286
+ }
287
  }
288
 
289
  /* Media queries
290
+ ========================================================================== */
291
 
292
  @media only screen and (min-width: 641px) {
293
+ .remodal {
294
  max-width: 550px;
295
+ }
296
  }
297
 
298
  /* IE8
299
+ ========================================================================== */
300
 
301
  .lt-ie9 .remodal-overlay {
302
+ background: #2b2e38;
303
  }
304
 
305
  .lt-ie9 .remodal {
306
+ width: 550px;
307
  }
readme.txt CHANGED
@@ -5,7 +5,7 @@ Requires at least: 3.7
5
  Requires PHP: 5.3
6
  License: GPLv2 or later
7
  Tested up to: 5.4
8
- Stable tag: 5.1.5
9
 
10
  Display a list of related posts on your site based on a powerful unique algorithm. Optionally, earn money by including sponsored content.
11
 
@@ -262,6 +262,10 @@ add_action(
262
  `
263
 
264
  == Changelog ==
 
 
 
 
265
  = 5.1.5 (2020-05-11) =
266
  * Bugfix: Use correct deactivation reason code
267
 
@@ -931,6 +935,6 @@ After a break of many years, the plugin is 100% supported now that the baton has
931
  * Initial upload
932
 
933
  == Upgrade Notice ==
934
- = 5.1.5 =
935
  We update this plugin regularly so we can make it better for you. Update to the latest version for all of the available features and improvements. Thank you for using YARPP!
936
 
5
  Requires PHP: 5.3
6
  License: GPLv2 or later
7
  Tested up to: 5.4
8
+ Stable tag: 5.1.6
9
 
10
  Display a list of related posts on your site based on a powerful unique algorithm. Optionally, earn money by including sponsored content.
11
 
262
  `
263
 
264
  == Changelog ==
265
+ = 5.1.6 (2020-05-15) =
266
+ * [Bugfix](https://wordpress.org/support/topic/403-when-saving-changes/): 403 error when saving changes resolved
267
+ * Enhancement: Feedback form enhancements
268
+
269
  = 5.1.5 (2020-05-11) =
270
  * Bugfix: Use correct deactivation reason code
271
 
935
  * Initial upload
936
 
937
  == Upgrade Notice ==
938
+ = 5.1.6 =
939
  We update this plugin regularly so we can make it better for you. Update to the latest version for all of the available features and improvements. Thank you for using YARPP!
940
 
yarpp.php CHANGED
@@ -2,7 +2,7 @@
2
  /*
3
  Plugin Name: Yet Another Related Posts Plugin (YARPP)
4
  Description: Adds related posts to your site and in RSS feeds, based on a powerful, customizable algorithm.
5
- Version: 5.1.5
6
  Author: YARPP
7
  Author URI: https://yarpp.com/
8
  Plugin URI: https://yarpp.com/
@@ -23,7 +23,7 @@ if(!defined('WP_CONTENT_DIR')){
23
  define('WP_CONTENT_DIR', substr($tr,0,strrpos($tr,'/')));
24
  }
25
 
26
- define('YARPP_VERSION', '5.1.5');
27
 
28
  define('YARPP_DIR', dirname(__FILE__));
29
  define('YARPP_URL', plugins_url('',__FILE__));
2
  /*
3
  Plugin Name: Yet Another Related Posts Plugin (YARPP)
4
  Description: Adds related posts to your site and in RSS feeds, based on a powerful, customizable algorithm.
5
+ Version: 5.1.6
6
  Author: YARPP
7
  Author URI: https://yarpp.com/
8
  Plugin URI: https://yarpp.com/
23
  define('WP_CONTENT_DIR', substr($tr,0,strrpos($tr,'/')));
24
  }
25
 
26
+ define('YARPP_VERSION', '5.1.6');
27
 
28
  define('YARPP_DIR', dirname(__FILE__));
29
  define('YARPP_URL', plugins_url('',__FILE__));