Related Posts for WordPress - Version 1.4.0

Version Description

Download this release

Release Info

Developer barrykooij
Plugin Icon 128x128 Related Posts for WordPress
Version 1.4.0
Comparing to
See all releases

Code changes from version 1.3.2 to 1.4.0

assets/js/edit-post.js CHANGED
@@ -1,8 +1,8 @@
1
  /**
2
  * Used on the post screen
3
  */
4
- jQuery(function($) {
5
- $.each($('.rp4wp_mb_manage'), function(k,v) {
6
  new RP4WP_Related_Manager(v);
7
  });
8
  });
@@ -14,53 +14,55 @@ jQuery(function($) {
14
  * @constructor
15
  */
16
  function RP4WP_Related_Manager(tgt) {
17
- this.container = tgt;
18
 
19
- this.init = function() {
20
  this.bind();
21
  this.make_sortable();
22
  };
23
 
24
- this.bind = function() {
25
  var instance = this;
26
- jQuery(this.container).find('.rp4wp_table_manage .trash a').bind('click', function(){instance.delete_child(this);});
 
 
27
  };
28
 
29
- this.fix_helper = function(e, ui) {
30
- ui.children().each(function() {
31
  jQuery(this).width(jQuery(this).width());
32
  });
33
  return ui;
34
  };
35
 
36
- this.make_sortable = function() {
37
  var instance = this;
38
  var sortable_table = jQuery(this.container).find('.sortable tbody');
39
 
40
  sortable_table.sortable({
41
  helper: instance.fix_helper,
42
- update: function(event, ui) {
43
 
44
  jQuery(instance.container).parent().parent().find('h3').eq(0).append(
45
- jQuery('<img>').attr('src', jQuery('#rp4wp-dir-img').val()+'ajax-loader.gif').addClass('rp4wp_ajaxloader')
46
  );
47
 
48
  opts = {
49
- url: ajaxurl,
50
- type: 'POST',
51
- async: true,
52
- cache: false,
53
  dataType: 'json',
54
- data:{
55
- action: 'rp4wp_related_sort',
56
  rp4wp_items: sortable_table.sortable('toArray').toString(),
57
- nonce: jQuery(instance.container).find('#rp4wp-ajax-nonce').val()
58
  },
59
- success: function(response) {
60
  jQuery('.rp4wp_ajaxloader').remove();
61
  return;
62
  },
63
- error: function(xhr,textStatus,e) {
64
  jQuery('.rp4wp_ajaxloader').remove();
65
  return;
66
  }
@@ -71,33 +73,33 @@ function RP4WP_Related_Manager(tgt) {
71
 
72
  };
73
 
74
- this.delete_child = function(tgt) {
75
 
76
- var confirm_delete = confirm( 'Are you sure you want to delete this related post?' );
77
- if(!confirm_delete) {
78
  return;
79
  }
80
 
81
  var instance = this;
82
 
83
  var opts = {
84
- url: ajaxurl,
85
- type: 'POST',
86
- async: true,
87
- cache: false,
88
  dataType: 'json',
89
- data:{
90
  action: 'rp4wp_delete_link',
91
- id: jQuery(tgt).closest('tr').attr('id'),
92
- nonce: jQuery(instance.container).find('#rp4wp-ajax-nonce').val()
93
  },
94
- success: function(response) {
95
- jQuery(tgt).closest('tr').fadeTo('fast', 0).slideUp(function() {
96
  jQuery(this).remove();
97
  });
98
  return;
99
  },
100
- error: function(xhr,textStatus,e) {
101
  return;
102
  }
103
  };
1
  /**
2
  * Used on the post screen
3
  */
4
+ jQuery(function ($) {
5
+ $.each($('.rp4wp_mb_manage'), function (k, v) {
6
  new RP4WP_Related_Manager(v);
7
  });
8
  });
14
  * @constructor
15
  */
16
  function RP4WP_Related_Manager(tgt) {
17
+ this.container = tgt;
18
 
19
+ this.init = function () {
20
  this.bind();
21
  this.make_sortable();
22
  };
23
 
24
+ this.bind = function () {
25
  var instance = this;
26
+ jQuery(this.container).find('.rp4wp_table_manage .trash a').bind('click', function () {
27
+ instance.delete_child(this);
28
+ });
29
  };
30
 
31
+ this.fix_helper = function (e, ui) {
32
+ ui.children().each(function () {
33
  jQuery(this).width(jQuery(this).width());
34
  });
35
  return ui;
36
  };
37
 
38
+ this.make_sortable = function () {
39
  var instance = this;
40
  var sortable_table = jQuery(this.container).find('.sortable tbody');
41
 
42
  sortable_table.sortable({
43
  helper: instance.fix_helper,
44
+ update: function (event, ui) {
45
 
46
  jQuery(instance.container).parent().parent().find('h3').eq(0).append(
47
+ jQuery('<img>').attr('src', jQuery('#rp4wp-dir-img').val() + 'ajax-loader.gif').addClass('rp4wp_ajaxloader')
48
  );
49
 
50
  opts = {
51
+ url : ajaxurl,
52
+ type : 'POST',
53
+ async : true,
54
+ cache : false,
55
  dataType: 'json',
56
+ data : {
57
+ action : 'rp4wp_related_sort',
58
  rp4wp_items: sortable_table.sortable('toArray').toString(),
59
+ nonce : jQuery(instance.container).find('#rp4wp-ajax-nonce').val()
60
  },
61
+ success : function (response) {
62
  jQuery('.rp4wp_ajaxloader').remove();
63
  return;
64
  },
65
+ error : function (xhr, textStatus, e) {
66
  jQuery('.rp4wp_ajaxloader').remove();
67
  return;
68
  }
73
 
74
  };
75
 
76
+ this.delete_child = function (tgt) {
77
 
78
+ var confirm_delete = confirm(rp4wp_js.confirm_delete_related_post);
79
+ if (!confirm_delete) {
80
  return;
81
  }
82
 
83
  var instance = this;
84
 
85
  var opts = {
86
+ url : ajaxurl,
87
+ type : 'POST',
88
+ async : true,
89
+ cache : false,
90
  dataType: 'json',
91
+ data : {
92
  action: 'rp4wp_delete_link',
93
+ id : jQuery(tgt).closest('tr').attr('id'),
94
+ nonce : jQuery(instance.container).find('#rp4wp-ajax-nonce').val()
95
  },
96
+ success : function (response) {
97
+ jQuery(tgt).closest('tr').fadeTo('fast', 0).slideUp(function () {
98
  jQuery(this).remove();
99
  });
100
  return;
101
  },
102
+ error : function (xhr, textStatus, e) {
103
  return;
104
  }
105
  };
assets/js/edit-post.min.js CHANGED
@@ -1 +1 @@
1
- function RP4WP_Related_Manager(a){this.container=a,this.init=function(){this.bind(),this.make_sortable()},this.bind=function(){var a=this;jQuery(this.container).find(".rp4wp_table_manage .trash a").bind("click",function(){a.delete_child(this)})},this.fix_helper=function(a,b){return b.children().each(function(){jQuery(this).width(jQuery(this).width())}),b},this.make_sortable=function(){var a=this,b=jQuery(this.container).find(".sortable tbody");b.sortable({helper:a.fix_helper,update:function(){jQuery(a.container).parent().parent().find("h3").eq(0).append(jQuery("<img>").attr("src",jQuery("#rp4wp-dir-img").val()+"ajax-loader.gif").addClass("rp4wp_ajaxloader")),opts={url:ajaxurl,type:"POST",async:!0,cache:!1,dataType:"json",data:{action:"rp4wp_related_sort",rp4wp_items:b.sortable("toArray").toString(),nonce:jQuery(a.container).find("#rp4wp-ajax-nonce").val()},success:function(){jQuery(".rp4wp_ajaxloader").remove()},error:function(){jQuery(".rp4wp_ajaxloader").remove()}},jQuery.ajax(opts)}})},this.delete_child=function(a){var b=confirm("Are you sure you want to delete this related post?");if(b){var c=this,d={url:ajaxurl,type:"POST",async:!0,cache:!1,dataType:"json",data:{action:"rp4wp_delete_link",id:jQuery(a).closest("tr").attr("id"),nonce:jQuery(c.container).find("#rp4wp-ajax-nonce").val()},success:function(){jQuery(a).closest("tr").fadeTo("fast",0).slideUp(function(){jQuery(this).remove()})},error:function(){}};jQuery.ajax(d)}},this.init()}jQuery(function(a){a.each(a(".rp4wp_mb_manage"),function(a,b){new RP4WP_Related_Manager(b)})});
1
+ function RP4WP_Related_Manager(a){this.container=a,this.init=function(){this.bind(),this.make_sortable()},this.bind=function(){var a=this;jQuery(this.container).find(".rp4wp_table_manage .trash a").bind("click",function(){a.delete_child(this)})},this.fix_helper=function(a,b){return b.children().each(function(){jQuery(this).width(jQuery(this).width())}),b},this.make_sortable=function(){var a=this,b=jQuery(this.container).find(".sortable tbody");b.sortable({helper:a.fix_helper,update:function(){jQuery(a.container).parent().parent().find("h3").eq(0).append(jQuery("<img>").attr("src",jQuery("#rp4wp-dir-img").val()+"ajax-loader.gif").addClass("rp4wp_ajaxloader")),opts={url:ajaxurl,type:"POST",async:!0,cache:!1,dataType:"json",data:{action:"rp4wp_related_sort",rp4wp_items:b.sortable("toArray").toString(),nonce:jQuery(a.container).find("#rp4wp-ajax-nonce").val()},success:function(){jQuery(".rp4wp_ajaxloader").remove()},error:function(){jQuery(".rp4wp_ajaxloader").remove()}},jQuery.ajax(opts)}})},this.delete_child=function(a){var b=confirm(rp4wp_js.confirm_delete_related_post);if(b){var c=this,d={url:ajaxurl,type:"POST",async:!0,cache:!1,dataType:"json",data:{action:"rp4wp_delete_link",id:jQuery(a).closest("tr").attr("id"),nonce:jQuery(c.container).find("#rp4wp-ajax-nonce").val()},success:function(){jQuery(a).closest("tr").fadeTo("fast",0).slideUp(function(){jQuery(this).remove()})},error:function(){}};jQuery.ajax(d)}},this.init()}jQuery(function(a){a.each(a(".rp4wp_mb_manage"),function(a,b){new RP4WP_Related_Manager(b)})});
classes/class-constants.php CHANGED
@@ -19,6 +19,7 @@ abstract class RP4WP_Constants {
19
 
20
  // Options
21
  const OPTION_DO_INSTALL = 'rp4wp_do_install';
 
22
 
23
  // Nag options
24
  const OPTION_INSTALL_DATE = 'rp4wp_install_date';
19
 
20
  // Options
21
  const OPTION_DO_INSTALL = 'rp4wp_do_install';
22
+ const OPTION_IS_INSTALLING = 'rp4wp_is_installing';
23
 
24
  // Nag options
25
  const OPTION_INSTALL_DATE = 'rp4wp_install_date';
classes/class-is-installing-notice.php ADDED
@@ -0,0 +1,82 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ if ( !defined( 'ABSPATH' ) ) {
4
+ exit;
5
+ } // Exit if accessed directly
6
+
7
+
8
+ if ( !class_exists( 'RP4WP_Is_Installing_Notice' ) ) {
9
+
10
+ /**
11
+ * Class RP4WP_Is_Installing_Notice
12
+ *
13
+ * @since 1.4.0
14
+ */
15
+ class RP4WP_Is_Installing_Notice {
16
+
17
+ /**
18
+ * Get the admin query string
19
+ *
20
+ * @since 1.4.0
21
+ * @access public
22
+ *
23
+ * @return mixed
24
+ */
25
+ private function get_admin_query_string_array() {
26
+ parse_str( $_SERVER['QUERY_STRING'], $params );
27
+
28
+ return $params;
29
+ }
30
+
31
+ /**
32
+ * Check if we need to do anything related to this notice
33
+ * @since 1.4.0
34
+ * @access public
35
+ *
36
+ */
37
+ public function check() {
38
+
39
+ // Check if we need to dismiss the notice
40
+ if ( isset( $_GET['rp4wp_hide_is_installing'] ) ) {
41
+ delete_site_option( RP4WP_Constants::OPTION_IS_INSTALLING );
42
+ }
43
+
44
+ // Check if we are currently installing
45
+ if ( get_site_option( RP4WP_Constants::OPTION_IS_INSTALLING, false ) && ( !isset( $_GET['page'] ) || 'rp4wp_install' != $_GET['page'] ) ) {
46
+ $this->display();
47
+ }
48
+
49
+ }
50
+
51
+ /**
52
+ * Display the admin notice
53
+ *
54
+ * @since 1.4.0
55
+ * @access private
56
+ *
57
+ */
58
+ private function display() {
59
+ add_action( 'admin_notices', array( $this, 'content' ) );
60
+ }
61
+
62
+ /**
63
+ * The admin notice content
64
+ *
65
+ * @since 1.4.0
66
+ * @access public
67
+ */
68
+ public function content() {
69
+ $query_params = $this->get_admin_query_string_array();
70
+ $install_query_string = '?' . http_build_query( array_merge( $query_params, array( 'page' => 'rp4wp_install' ) ) );
71
+ $dismiss_query_string = '?' . http_build_query( array_merge( $query_params, array( 'rp4wp_hide_is_installing' => 1 ) ) );
72
+
73
+ echo '<div class="error"><p>';
74
+ printf( __( "Woah! Looks like we weren't able to finish your Related Posts for WordPress installation wizard!" ), '<b>', '</b>' );
75
+ echo "<br /><br />";
76
+ printf( __( "%sResume the installation wizard%s or %sdismiss this notice%s" ), '<a href="' . $install_query_string . '">', '</a>', '<a href="' . $dismiss_query_string . '">', '</a>' );
77
+ echo "</p></div>";
78
+ }
79
+
80
+ }
81
+
82
+ }
classes/class-javascript-strings.php ADDED
@@ -0,0 +1,27 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ if ( !defined( 'ABSPATH' ) ) {
4
+ exit;
5
+ } // Exit if accessed directly
6
+
7
+ if ( !class_exists( 'RP4WP_Javascript_Strings' ) ) {
8
+ class RP4WP_Javascript_Strings {
9
+
10
+ private static $value = null;
11
+
12
+ private static function fill() {
13
+ self::$value = array(
14
+ 'confirm_delete_related_post' => __( 'Are you sure you want to delete this related post?', 'related-posts-for-wp' ),
15
+ );
16
+ }
17
+
18
+ public static function get() {
19
+ if ( self::$value === null ) {
20
+ self::fill();
21
+ }
22
+
23
+ return self::$value;
24
+ }
25
+
26
+ }
27
+ }
classes/class-nag-manager.php CHANGED
@@ -102,9 +102,9 @@ if ( !class_exists( 'RP4WP_Nag_Manager' ) ) {
102
  $query_string = '?' . http_build_query( array_merge( $query_params, array( RP4WP_Constants::OPTION_ADMIN_NOTICE_KEY => '1' ) ) );
103
 
104
  echo '<div class="updated"><p>';
105
- printf( __( "You've been using %sRelated Posts for WordPress%s for some time now, could you please give it a review at wordpress.org?" ), '<b>', '</b>' );
106
  echo "<br /><br />";
107
- printf( __( "%sYes, take me there!%s - %sI've already done this!%s" ), '<a href="http://wordpress.org/support/view/plugin-reviews/related-posts-for-wp" target="_blank">', '</a>', '<a href="' . $query_string . '">', '</a>' );
108
  echo "</p></div>";
109
  }
110
 
102
  $query_string = '?' . http_build_query( array_merge( $query_params, array( RP4WP_Constants::OPTION_ADMIN_NOTICE_KEY => '1' ) ) );
103
 
104
  echo '<div class="updated"><p>';
105
+ printf( __( "You've been using %sRelated Posts for WordPress%s for some time now, could you please give it a review at wordpress.org?", 'related-posts-for-wp' ), '<b>', '</b>' );
106
  echo "<br /><br />";
107
+ printf( __( "%sYes, take me there!%s - %sI've already done this!%s", 'related-posts-for-wp' ), '<a href="http://wordpress.org/support/view/plugin-reviews/related-posts-for-wp" target="_blank">', '</a>', '<a href="' . $query_string . '">', '</a>' );
108
  echo "</p></div>";
109
  }
110
 
classes/class-post-link-manager.php CHANGED
@@ -330,7 +330,7 @@ class RP4WP_Post_Link_Manager {
330
  *
331
  * @api String $thumbnail_size The current/default thumbnail size.
332
  */
333
- $thumb_size = apply_filters( 'rp4wp_thumbnail_size', 'post-thumbnail' );
334
 
335
  $content .= "<div class='rp4wp-related-post-image'>" . PHP_EOL;
336
  $content .= "<a href='" . get_permalink( $rp4wp_post->ID ) . "'>";
330
  *
331
  * @api String $thumbnail_size The current/default thumbnail size.
332
  */
333
+ $thumb_size = apply_filters( 'rp4wp_thumbnail_size', 'thumbnail' );
334
 
335
  $content .= "<div class='rp4wp-related-post-image'>" . PHP_EOL;
336
  $content .= "<a href='" . get_permalink( $rp4wp_post->ID ) . "'>";
classes/class-settings.php CHANGED
@@ -24,11 +24,11 @@ class RP4WP_Settings {
24
  public function __construct() {
25
 
26
  // CSS default
27
- $css_default_lines = array();
28
- $css_default_lines[] = '.rp4wp-related-posts ul {width:100%padding:0;margin:0;float:left;}';
29
- $css_default_lines[] = '.rp4wp-related-posts li{list-style:none;padding:0;margin:0;padding-bottom:20px;}';
30
- $css_default_lines[] = '.rp4wp-related-posts li p {margin:0;padding:0}';
31
- $css_default_lines[] = '.rp4wp-related-post-image{width:35%;padding-right:25px;-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;float:left;}';
32
 
33
  // The fields
34
  $this->sections = array(
@@ -52,41 +52,55 @@ class RP4WP_Settings {
52
  'default' => '3',
53
  )
54
  ) ),
55
- self::PREFIX . 'css' => array(
56
- 'id' => 'css',
57
- 'label' => __( 'Frontend Settings', 'related-posts-for-wp' ),
58
- 'description' => __( 'The following options affect how related posts are displayed on the frontend.', 'related-posts-for-wp' ),
59
- 'fields' => array(
60
- array(
61
- 'id' => 'heading_text',
62
- 'label' => __( 'Heading text', 'related-posts-for-wp' ),
63
- 'description' => __( 'The text that is displayed above the related posts. To disable, leave field empty.', 'related-posts-for-wp' ),
64
- 'type' => 'text',
65
- 'default' => 'Related Posts',
66
- ),
67
- array(
68
- 'id' => 'excerpt_length',
69
- 'label' => __( 'Excerpt length', 'related-posts-for-wp' ),
70
- 'description' => __( 'The amount of words to be displayed below the title on website. To disable, set value to 0.', 'related-posts-for-wp' ),
71
- 'type' => 'text',
72
- 'default' => '15',
73
- ),
74
- array(
75
- 'id' => 'display_image',
76
- 'label' => __( 'Display Image', 'related-posts-for-wp' ),
77
- 'description' => __( 'Checking this will enable displaying featured images of related posts.', 'related-posts-for-wp' ),
78
- 'type' => 'checkbox',
79
- 'default' => 0,
80
- ),
81
- array(
82
- 'id' => 'css',
83
- 'label' => __( 'CSS', 'related-posts-for-wp' ),
84
- 'description' => __( 'Warning! This is an advanced feature! An error here will break frontend display. To disable, leave field empty.', 'related-posts-for-wp' ),
85
- 'type' => 'textarea',
86
- 'default' => implode(PHP_EOL, $css_default_lines),
87
- )
88
- ) ),
89
- self::PREFIX . 'misc' => array(
 
 
 
 
 
 
 
 
 
 
 
 
 
 
90
  'id' => 'misc',
91
  'label' => __( 'Miscellaneous Settings', 'related-posts-for-wp' ),
92
  'description' => __( "A shelter for options that just don't fit in.", 'related-posts-for-wp' ),
@@ -98,7 +112,7 @@ class RP4WP_Settings {
98
  'type' => 'checkbox',
99
  'default' => 0,
100
  ),
101
- ) )
102
  );
103
 
104
  // Set defaults
@@ -189,6 +203,9 @@ class RP4WP_Settings {
189
  case 'textarea':
190
  echo '<textarea name="' . self::PAGE . '[' . $field['id'] . ']' . '" id="' . $field['id'] . '">' . $this->get_option( $field['id'] ) . '</textarea>';
191
  break;
 
 
 
192
  }
193
 
194
  // Description
@@ -224,13 +241,13 @@ class RP4WP_Settings {
224
  }
225
 
226
  // automatic_linking must be an integer
227
- $post_data['automatic_linking'] = intval($post_data['automatic_linking']);
228
 
229
  // automatic_linking_post_amount must be an integer
230
- $post_data['automatic_linking_post_amount'] = intval($post_data['automatic_linking_post_amount']);
231
 
232
  // Excerpt length must be an integer
233
- $post_data['excerpt_length'] = intval($post_data['excerpt_length']);
234
 
235
  return $post_data;
236
 
24
  public function __construct() {
25
 
26
  // CSS default
27
+ $css_default_lines = array();
28
+ $css_default_lines[] = '.rp4wp-related-posts ul{width:100%;padding:0;margin:0;float:left;}';
29
+ $css_default_lines[] = '.rp4wp-related-posts ul>li{list-style:none;padding:0;margin:0;padding-bottom:20px;clear:both;}';
30
+ $css_default_lines[] = '.rp4wp-related-posts ul>li>p{margin:0;padding:0;}';
31
+ $css_default_lines[] = '.rp4wp-related-post-image{width:35%;padding-right:25px;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;float:left;}';
32
 
33
  // The fields
34
  $this->sections = array(
52
  'default' => '3',
53
  )
54
  ) ),
55
+ self::PREFIX . 'css' => array(
56
+ 'id' => 'css',
57
+ 'label' => __( 'Frontend Settings', 'related-posts-for-wp' ),
58
+ 'description' => __( 'The following options affect how related posts are displayed on the frontend.', 'related-posts-for-wp' ),
59
+ 'fields' => array(
60
+ array(
61
+ 'id' => 'heading_text',
62
+ 'label' => __( 'Heading text', 'related-posts-for-wp' ),
63
+ 'description' => __( 'The text that is displayed above the related posts. To disable, leave field empty.', 'related-posts-for-wp' ),
64
+ 'type' => 'text',
65
+ 'default' => __( 'Related Posts', 'related-posts-for-wp' ),
66
+ ),
67
+ array(
68
+ 'id' => 'excerpt_length',
69
+ 'label' => __( 'Excerpt length', 'related-posts-for-wp' ),
70
+ 'description' => __( 'The amount of words to be displayed below the title on website. To disable, set value to 0.', 'related-posts-for-wp' ),
71
+ 'type' => 'text',
72
+ 'default' => '15',
73
+ ),
74
+ array(
75
+ 'id' => 'display_image',
76
+ 'label' => __( 'Display Image', 'related-posts-for-wp' ),
77
+ 'description' => __( 'Checking this will enable displaying featured images of related posts.', 'related-posts-for-wp' ),
78
+ 'type' => 'checkbox',
79
+ 'default' => 0,
80
+ ),
81
+ array(
82
+ 'id' => 'css',
83
+ 'label' => __( 'CSS', 'related-posts-for-wp' ),
84
+ 'description' => __( 'Warning! This is an advanced feature! An error here will break frontend display. To disable, leave field empty.', 'related-posts-for-wp' ),
85
+ 'type' => 'textarea',
86
+ 'default' => implode( PHP_EOL, $css_default_lines ),
87
+ )
88
+ ) ),
89
+ self::PREFIX . 'restart_wizard' => array(
90
+ 'id' => 'restart_wizard',
91
+ 'label' => __( 'Restart wizard', 'related-posts-for-wp' ),
92
+ 'description' => __( "Remove the cache and all existing related post links and restart the wizard.", 'related-posts-for-wp' ),
93
+ 'fields' => array(
94
+ array(
95
+ 'id' => 'restart_wizard_button',
96
+ 'label' => __( 'Restart the wizard?', 'related-posts-for-wp' ),
97
+ 'description' => __( "Click this button if you want to restart the wizard. Please note that this will delete all current related post links, also those you've manually added. Of course, we will never delete your actual posts.", 'related-posts-for-wp' ),
98
+ 'type' => 'button_link',
99
+ 'href' => admin_url( '?page=rp4wp_install&reinstall=1' ),
100
+ 'default' => __( 'Restart wizard', '' ),
101
+ ),
102
+ ) ),
103
+ self::PREFIX . 'misc' => array(
104
  'id' => 'misc',
105
  'label' => __( 'Miscellaneous Settings', 'related-posts-for-wp' ),
106
  'description' => __( "A shelter for options that just don't fit in.", 'related-posts-for-wp' ),
112
  'type' => 'checkbox',
113
  'default' => 0,
114
  ),
115
+ ) ),
116
  );
117
 
118
  // Set defaults
203
  case 'textarea':
204
  echo '<textarea name="' . self::PAGE . '[' . $field['id'] . ']' . '" id="' . $field['id'] . '">' . $this->get_option( $field['id'] ) . '</textarea>';
205
  break;
206
+ case 'button_link':
207
+ echo '<a href="' . $field['href'] . '" class="button">' . $field['default'] . '</a>';
208
+ break;
209
  }
210
 
211
  // Description
241
  }
242
 
243
  // automatic_linking must be an integer
244
+ $post_data['automatic_linking'] = intval( $post_data['automatic_linking'] );
245
 
246
  // automatic_linking_post_amount must be an integer
247
+ $post_data['automatic_linking_post_amount'] = intval( $post_data['automatic_linking_post_amount'] );
248
 
249
  // Excerpt length must be an integer
250
+ $post_data['excerpt_length'] = intval( $post_data['excerpt_length'] );
251
 
252
  return $post_data;
253
 
classes/filters/class-filter-plugin-links.php ADDED
@@ -0,0 +1,29 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ if ( !defined( 'ABSPATH' ) ) {
4
+ exit;
5
+ } // Exit if accessed directly
6
+
7
+ if ( !class_exists( 'RP4WP_Filter_Plugin_Links' ) ) {
8
+
9
+ class RP4WP_Filter_Plugin_Links extends RP4WP_Filter {
10
+ protected $tag = 'plugin_action_links_related-posts-for-wp/related-posts-for-wp.php';
11
+
12
+ /**
13
+ * Add custom plugin links
14
+ *
15
+ * @param array $links
16
+ *
17
+ * @since 1.4.0
18
+ * @access public
19
+ *
20
+ * @return array
21
+ */
22
+ public function run( $links ) {
23
+ array_unshift( $links, '<a href="' . admin_url( 'options-general.php?page=rp4wp' ) . '">' . __( 'Settings', 'related-posts-for-wp' ) . '</a>' );
24
+
25
+ return $links;
26
+ }
27
+ }
28
+
29
+ }
classes/hooks/class-hook-admin-scripts.php CHANGED
@@ -20,9 +20,8 @@ class RP4WP_Hook_Admin_Scripts extends RP4WP_Hook {
20
  array( 'jquery', 'jquery-ui-sortable' )
21
  );
22
 
23
- // Make PL JavaScript strings translatable
24
- // @todo add JS translation
25
- //wp_localize_script( 'rp4wp_edit_post_js', 'rp4wp_js', RP4WP_Javascript_Strings::get() );
26
 
27
  // CSS
28
  wp_enqueue_style(
20
  array( 'jquery', 'jquery-ui-sortable' )
21
  );
22
 
23
+ // Make JavaScript strings translatable
24
+ wp_localize_script( 'rp4wp_edit_post_js', 'rp4wp_js', RP4WP_Javascript_Strings::get() );
 
25
 
26
  // CSS
27
  wp_enqueue_style(
classes/hooks/class-hook-frontend-css.php CHANGED
@@ -8,11 +8,11 @@ class RP4WP_Hook_Frontend_Css extends RP4WP_Hook {
8
  protected $tag = 'wp_head';
9
 
10
  public function run() {
11
- $css = trim( RP4WP::get()->settings->get_option( 'css' ) );
12
- if ( '' != $css ) {
13
- echo "<style type='text/css'>" . $css . "</style>" . PHP_EOL;
 
 
14
  }
15
-
16
-
17
  }
18
  }
8
  protected $tag = 'wp_head';
9
 
10
  public function run() {
11
+ if ( is_single() ) {
12
+ $css = trim( RP4WP::get()->settings->get_option( 'css' ) );
13
+ if ( '' != $css ) {
14
+ echo "<style type='text/css'>" . $css . "</style>" . PHP_EOL;
15
+ }
16
  }
 
 
17
  }
18
  }
classes/hooks/class-hook-page-install.php CHANGED
@@ -9,7 +9,7 @@ class RP4WP_Hook_Page_Install extends RP4WP_Hook {
9
 
10
  public function run() {
11
 
12
- $menu_hook = add_submenu_page( null, 'SRPInstallation', 'SRPInstallation', 'edit_posts', 'rp4wp_install', array( $this, 'content' ) );
13
 
14
  add_action( 'load-' . $menu_hook, array( $this, 'enqueue_install_assets' ) );
15
  }
@@ -29,20 +29,64 @@ class RP4WP_Hook_Page_Install extends RP4WP_Hook {
29
 
30
  /**
31
  * The screen content
 
 
 
32
  */
33
  public function content() {
34
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
35
  $steps = array(
36
- 1 => 'Caching Posts',
37
- 2 => 'Linking Posts',
38
- 3 => 'Finished',
39
  );
40
 
 
41
  $cur_step = isset( $_GET['step'] ) ? $_GET['step'] : 1;
42
 
 
 
 
 
 
 
 
 
 
43
  ?>
44
  <div class="wrap">
45
- <h2><?php _e( 'Related Posts for WordPress Installation', 'related-posts-for-wp' ); ?></h2>
46
 
47
  <ul class="install-steps">
48
  <?php
@@ -65,33 +109,33 @@ class RP4WP_Hook_Page_Install extends RP4WP_Hook {
65
 
66
  if ( 1 == $cur_step ) {
67
  ?>
68
- <p>Thank you for choosing Related Posts for WordPress!<br /><br />Before you can start using Related Posts for WordPress we need to cache your current posts.<br />This is a one time process which might take some time now, depending on the amount of posts you have, but will ensure your website's performance when using the plugin.
69
- </p>
 
70
 
71
- <p style="font-weight: bold;">Do NOT close this window, wait for this process to finish and this wizard to take you to the next step.</p>
72
 
73
  <div id="progressbar"></div>
74
  <?php
75
  } elseif ( 2 == $cur_step ) {
76
  ?>
77
- <p style="font-weight: bold;">Great! All your posts were succesfully cached!</p>
78
- <p>You can let me link your posts, based on what I think is related, to each other. And don't worry, if I made a mistake at one of your posts you can easily correct this by editing it manually!</p>
79
- <p>Want me to start linking posts to each other? Fill in the amount of related posts each post should have and click on the "Link now" button. Rather link your posts manually? Click "Skip linking".</p>
80
- <p style="font-weight: bold;">Do NOT close this window if you click the "Link now" button, wait for this process to finish and this wizard to take you to the next step.</p>
81
  <br class="clear" />
82
  <p class="rp4wp-install-link-box">
83
- <label for="rp4wp_related_posts_amount">Amount of related posts per post:</label><input class="form-input-tip" type="text" id="rp4wp_related_posts_amount" value="3" />
84
- <a href="javascript:;" class="button button-primary button-large rp4wp-link-now-btn" id="rp4wp-link-now">Link now</a>
85
- <a href="<?php echo admin_url(); ?>?page=rp4wp_install&step=3" class="button">Skip linking</a>
86
  </p>
87
  <br class="clear" />
88
  <div id="progressbar"></div>
89
  <?php
90
  } elseif ( 3 == $cur_step ) {
91
  ?>
92
- <p>That's it, you're good to go!</p>
93
- <p>Thanks again for using Related Posts for WordPress and if you have any questions be sure to ask them at the
94
- <a href="http://wordpress.org/support/plugin/related-posts-for-wp">WordPress.org forums.</a></p>
95
  <?php
96
  }
97
  ?>
9
 
10
  public function run() {
11
 
12
+ $menu_hook = add_submenu_page( null, 'RP4WPINSTALL', 'RP4WPINSTALL', 'edit_posts', 'rp4wp_install', array( $this, 'content' ) );
13
 
14
  add_action( 'load-' . $menu_hook, array( $this, 'enqueue_install_assets' ) );
15
  }
29
 
30
  /**
31
  * The screen content
32
+ *
33
+ * @since 1.0.0
34
+ * @access public
35
  */
36
  public function content() {
37
 
38
+ // Do we have a reinstall?
39
+ if ( isset( $_GET['reinstall'] ) ) {
40
+
41
+ global $wpdb;
42
+
43
+ // Get ID's of related post link posts
44
+ $link_ids = get_posts(
45
+ array(
46
+ 'post_type' => 'rp4wp_link',
47
+ 'fields' => 'ids',
48
+ 'posts_per_page' => - 1
49
+ )
50
+ );
51
+
52
+ // Only run queries if we have ID's
53
+ if ( count( $link_ids ) > 0 ) {
54
+ // Delete all link posts
55
+ $wpdb->query( "DELETE FROM $wpdb->posts WHERE `ID` IN (" . implode( ",", $link_ids ) . ");" );
56
+
57
+ // Delete all link post meta
58
+ $wpdb->query( "DELETE FROM $wpdb->postmeta WHERE `post_id` IN (" . implode( ",", $link_ids ) . ");" );
59
+ }
60
+
61
+ // Remove the post meta we attached to posts
62
+ $wpdb->query( "DELETE FROM $wpdb->postmeta WHERE `meta_key` = 'rp4wp_auto_linked' OR `meta_key` = 'rp4wp_cached' " );
63
+
64
+ // Empty word cache
65
+ $wpdb->query( "DELETE FROM " . RP4WP_Related_Word_Manager::get_database_table() . " WHERE 1=1" );
66
+ }
67
+
68
+ // The steps
69
  $steps = array(
70
+ 1 => __( 'Caching Posts', 'related-posts-for-wp' ),
71
+ 2 => __( 'Linking Posts', 'related-posts-for-wp' ),
72
+ 3 => __( 'Finished', 'related-posts-for-wp' ),
73
  );
74
 
75
+ // What's the current step?
76
  $cur_step = isset( $_GET['step'] ) ? $_GET['step'] : 1;
77
 
78
+ // Check installer resume options
79
+ if ( 1 == $cur_step ) {
80
+ // Add is installing site option
81
+ add_site_option( RP4WP_Constants::OPTION_IS_INSTALLING, true );
82
+ } elseif ( 3 == $cur_step ) {
83
+ // Installer is done, remove the option
84
+ delete_site_option( RP4WP_Constants::OPTION_IS_INSTALLING );
85
+ }
86
+
87
  ?>
88
  <div class="wrap">
89
+ <h2>Related Posts for WordPress <?php _e( 'Installation', 'related-posts-for-wp' ); ?></h2>
90
 
91
  <ul class="install-steps">
92
  <?php
109
 
110
  if ( 1 == $cur_step ) {
111
  ?>
112
+ <p><?php _e( 'Thank you for choosing Related Posts for WordPress!', 'related-posts-for-wp' ); ?></p>
113
+ <p><?php _e( 'Before you can start using Related Posts for WordPress we need to cache your current posts.', 'related-posts-for-wp' ); ?></p>
114
+ <p><?php _e( "This is a one time process which might take some time now, depending on the amount of posts you have, but will ensure your website's performance when using the plugin.", 'related-posts-for-wp' ); ?></p>
115
 
116
+ <p style="font-weight: bold;"><?php _e( 'Do NOT close this window, wait for this process to finish and this wizard to take you to the next step.', 'related-posts-for-wp' ); ?></p>
117
 
118
  <div id="progressbar"></div>
119
  <?php
120
  } elseif ( 2 == $cur_step ) {
121
  ?>
122
+ <p style="font-weight: bold;"><?php _e( 'Great! All your posts were successfully cached!', 'related-posts-for-wp' ); ?></p>
123
+ <p><?php _e( "You can let me link your posts, based on what I think is related, to each other. And don't worry, if I made a mistake at one of your posts you can easily correct this by editing it manually!", 'related-posts-for-wp' ); ?></p>
124
+ <p><?php _e( 'Want me to start linking posts to each other? Fill in the amount of related posts each post should have and click on the "Link now" button. Rather link your posts manually? Click "Skip linking".', 'related-posts-for-wp' ); ?></p>
125
+ <p style="font-weight: bold;"><?php _e( 'Do NOT close this window if you click the "Link now" button, wait for this process to finish and this wizard to take you to the next step.', 'related-posts-for-wp' ); ?></p>
126
  <br class="clear" />
127
  <p class="rp4wp-install-link-box">
128
+ <label for="rp4wp_related_posts_amount"><?php _e( 'Amount of related posts per post:', 'related-posts-for-wp' ); ?></label><input class="form-input-tip" type="text" id="rp4wp_related_posts_amount" value="3" />
129
+ <a href="javascript:;" class="button button-primary button-large rp4wp-link-now-btn" id="rp4wp-link-now"><?php _e( 'Link now', 'related-posts-for-wp' ); ?></a>
130
+ <a href="<?php echo admin_url(); ?>?page=rp4wp_install&step=3" class="button"><?php _e( 'Skip linking', 'related-posts-for-wp' ); ?></a>
131
  </p>
132
  <br class="clear" />
133
  <div id="progressbar"></div>
134
  <?php
135
  } elseif ( 3 == $cur_step ) {
136
  ?>
137
+ <p><?php _e( "That's it, you're good to go!", 'related-posts-for-wp' ); ?></p>
138
+ <p><?php printf( __( 'Thanks again for using Related Posts for WordPress and if you have any questions be sure to ask them at the %sWordPress.org forums.%s', 'related-posts-for-wp' ), '<a href="http://wordpress.org/support/plugin/related-posts-for-wp" target="_blank">', '</a>' ); ?></p>
 
139
  <?php
140
  }
141
  ?>
languages/related-posts-for-wp-nl_NL.mo CHANGED
Binary file
languages/related-posts-for-wp-nl_NL.po CHANGED
@@ -1,21 +1,25 @@
1
  msgid ""
2
  msgstr ""
3
  "Project-Id-Version: Related Posts for WordPress\n"
4
- "POT-Creation-Date: 2014-08-17 23:35+0100\n"
5
- "PO-Revision-Date: 2014-08-17 23:35+0100\n"
6
  "Last-Translator: Barry Kooij <barry@cageworks.nl>\n"
7
  "Language-Team: Cageworks <barry@cageworks.nl>\n"
8
  "Language: en\n"
9
  "MIME-Version: 1.0\n"
10
  "Content-Type: text/plain; charset=UTF-8\n"
11
  "Content-Transfer-Encoding: 8bit\n"
12
- "X-Generator: Poedit 1.6.7\n"
13
  "X-Poedit-Basepath: .\n"
14
  "Plural-Forms: nplurals=2; plural=(n != 1);\n"
15
  "X-Poedit-SourceCharset: UTF-8\n"
16
  "X-Poedit-KeywordsList: _e;__;_x\n"
17
  "X-Poedit-SearchPath-0: ../.\n"
18
 
 
 
 
 
19
  #: .././classes/class-link-related-table.php:47
20
  #: .././classes/hooks/class-hook-settings-page.php:17
21
  #: .././classes/meta-boxes/class-meta-box-manage.php:32
@@ -38,13 +42,30 @@ msgstr "Link Bericht"
38
  msgid "Link Posts"
39
  msgstr "Link Berichten"
40
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
41
  #: .././classes/class-settings.php:37
42
  msgid "Automatic post linking"
43
  msgstr "Automatisch linken van berichten"
44
 
45
  #: .././classes/class-settings.php:38
46
- msgid "This section contains automatic post link related settings."
47
- msgstr "Dit gedeelte bevat instellingen van de automatisch gelinkte berichten."
 
 
 
48
 
49
  #: .././classes/class-settings.php:42
50
  msgid "Enable"
@@ -69,8 +90,11 @@ msgid "Frontend Settings"
69
  msgstr "Frontend Instellingen"
70
 
71
  #: .././classes/class-settings.php:58
72
- msgid "This section contains frontend related settings."
73
- msgstr "Dit gedeelte bevat frontend gerelateerde instellingen."
 
 
 
74
 
75
  #: .././classes/class-settings.php:62
76
  msgid "Heading text"
@@ -117,6 +141,26 @@ msgstr ""
117
  "Waarschuwing! Dit is een geavanceerde functie! Een fout hier kan uw website "
118
  "incorrect laten tonen. Laat dit veld leeg om deze functie uit te schakelen."
119
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
120
  #: .././classes/hooks/class-hook-link-related-screen.php:131
121
  msgid "Posts"
122
  msgstr "Berichten"
@@ -129,9 +173,110 @@ msgstr "Annuleer linken"
129
  msgid "Search"
130
  msgstr "Zoeken"
131
 
132
- #: .././classes/hooks/class-hook-page-install.php:45
133
- msgid "Related Posts for WordPress Installation"
134
- msgstr "Related Posts for WordPress installatie"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
135
 
136
  #: .././classes/hooks/class-hook-settings-page.php:50
137
  msgid "Plugin version"
@@ -254,3 +399,13 @@ msgstr "Insluiten"
254
  #: .././node_modules/grunt-wp-i18n/test/fixtures/text-domains/update-domains.php:3
255
  msgid "String"
256
  msgstr "String"
 
 
 
 
 
 
 
 
 
 
1
  msgid ""
2
  msgstr ""
3
  "Project-Id-Version: Related Posts for WordPress\n"
4
+ "POT-Creation-Date: 2014-08-23 15:29+0100\n"
5
+ "PO-Revision-Date: 2014-08-23 15:30+0100\n"
6
  "Last-Translator: Barry Kooij <barry@cageworks.nl>\n"
7
  "Language-Team: Cageworks <barry@cageworks.nl>\n"
8
  "Language: en\n"
9
  "MIME-Version: 1.0\n"
10
  "Content-Type: text/plain; charset=UTF-8\n"
11
  "Content-Transfer-Encoding: 8bit\n"
12
+ "X-Generator: Poedit 1.6.8\n"
13
  "X-Poedit-Basepath: .\n"
14
  "Plural-Forms: nplurals=2; plural=(n != 1);\n"
15
  "X-Poedit-SourceCharset: UTF-8\n"
16
  "X-Poedit-KeywordsList: _e;__;_x\n"
17
  "X-Poedit-SearchPath-0: ../.\n"
18
 
19
+ #: .././classes/class-javascript-strings.php:14
20
+ msgid "Are you sure you want to delete this related post?"
21
+ msgstr "Weet je zeker dat je dit gerelateerde bericht wilt verwijderen?"
22
+
23
  #: .././classes/class-link-related-table.php:47
24
  #: .././classes/hooks/class-hook-settings-page.php:17
25
  #: .././classes/meta-boxes/class-meta-box-manage.php:32
42
  msgid "Link Posts"
43
  msgstr "Link Berichten"
44
 
45
+ #: .././classes/class-nag-manager.php:105
46
+ #, php-format
47
+ msgid ""
48
+ "You've been using %sRelated Posts for WordPress%s for some time now, could "
49
+ "you please give it a review at wordpress.org?"
50
+ msgstr ""
51
+ "Je gebruikt %sRelated Posts for WordPress%s nu al best een tijdje, zou je "
52
+ "ons alsjeblieft een review willen geven op wordpress.org?"
53
+
54
+ #: .././classes/class-nag-manager.php:107
55
+ #, php-format
56
+ msgid "%sYes, take me there!%s - %sI've already done this!%s"
57
+ msgstr "%sJa, ga er heen!%s - %sIk heb dit al gedaan!%s"
58
+
59
  #: .././classes/class-settings.php:37
60
  msgid "Automatic post linking"
61
  msgstr "Automatisch linken van berichten"
62
 
63
  #: .././classes/class-settings.php:38
64
+ msgid ""
65
+ "The following options affect how related posts are automatically linked."
66
+ msgstr ""
67
+ "Deze opties beïnvloeden hoe gerelateerde berichten automatisch gelinkt "
68
+ "worden."
69
 
70
  #: .././classes/class-settings.php:42
71
  msgid "Enable"
90
  msgstr "Frontend Instellingen"
91
 
92
  #: .././classes/class-settings.php:58
93
+ msgid ""
94
+ "The following options affect how related posts are displayed on the frontend."
95
+ msgstr ""
96
+ "Deze opties beïnvloeden hoe gerelateerde berichten getoond worden op uw "
97
+ "website."
98
 
99
  #: .././classes/class-settings.php:62
100
  msgid "Heading text"
141
  "Waarschuwing! Dit is een geavanceerde functie! Een fout hier kan uw website "
142
  "incorrect laten tonen. Laat dit veld leeg om deze functie uit te schakelen."
143
 
144
+ #: .././classes/class-settings.php:91
145
+ msgid "Miscellaneous Settings"
146
+ msgstr "Diversen Instellingen"
147
+
148
+ #: .././classes/class-settings.php:92
149
+ msgid "A shelter for options that just don't fit in."
150
+ msgstr "Een opvang voor opties die nergens bijhoren."
151
+
152
+ #: .././classes/class-settings.php:96
153
+ msgid "Remove Data on Uninstall?"
154
+ msgstr "Verwijder gegevens bij deïnstallatie?"
155
+
156
+ #: .././classes/class-settings.php:97
157
+ msgid ""
158
+ "Check this box if you would like to completely remove all of its data when "
159
+ "the plugin is deleted."
160
+ msgstr ""
161
+ "Door dit aan te vinken zullen alle plugin gegevens verwijderd worden waneer "
162
+ "u de plugin verwijderd."
163
+
164
  #: .././classes/hooks/class-hook-link-related-screen.php:131
165
  msgid "Posts"
166
  msgstr "Berichten"
173
  msgid "Search"
174
  msgstr "Zoeken"
175
 
176
+ #: .././classes/hooks/class-hook-page-install.php:39
177
+ msgid "Caching Posts"
178
+ msgstr "Cachen van berichten"
179
+
180
+ #: .././classes/hooks/class-hook-page-install.php:40
181
+ msgid "Linking Posts"
182
+ msgstr "Linken van berichten"
183
+
184
+ #: .././classes/hooks/class-hook-page-install.php:41
185
+ msgid "Finished"
186
+ msgstr "Klaar"
187
+
188
+ #: .././classes/hooks/class-hook-page-install.php:48
189
+ msgid "Installation"
190
+ msgstr "Installatie"
191
+
192
+ #: .././classes/hooks/class-hook-page-install.php:71
193
+ msgid "Thank you for choosing Related Posts for WordPress!"
194
+ msgstr "Bedankt voor het kiezen voor Related Posts for WordPress!"
195
+
196
+ #: .././classes/hooks/class-hook-page-install.php:72
197
+ msgid ""
198
+ "Before you can start using Related Posts for WordPress we need to cache your "
199
+ "current posts."
200
+ msgstr ""
201
+ "Voordat je Related Posts for WordPress kan gebruiken moeten we eerst je "
202
+ "huidige berichten cachen."
203
+
204
+ #: .././classes/hooks/class-hook-page-install.php:73
205
+ msgid ""
206
+ "This is a one time process which might take some time now, depending on the "
207
+ "amount of posts you have, but will ensure your website's performance when "
208
+ "using the plugin."
209
+ msgstr ""
210
+ "Dit is een eenmalig proces wat, afhankelijk van het aantal berichten dat je "
211
+ "hebt, nu even kan duren maar wat er voor zorgt dat de prestatie van je "
212
+ "website hoog blijft."
213
+
214
+ #: .././classes/hooks/class-hook-page-install.php:75
215
+ msgid ""
216
+ "Do NOT close this window, wait for this process to finish and this wizard to "
217
+ "take you to the next step."
218
+ msgstr ""
219
+ "Sluit dit venster NIET, wacht tot het proces klaar is en de wizard je naar "
220
+ "de volgende stap stuurt."
221
+
222
+ #: .././classes/hooks/class-hook-page-install.php:81
223
+ msgid "Great! All your posts were successfully cached!"
224
+ msgstr "Perfect! Al je berichten zijn succesvol gecached."
225
+
226
+ #: .././classes/hooks/class-hook-page-install.php:82
227
+ msgid ""
228
+ "You can let me link your posts, based on what I think is related, to each "
229
+ "other. And don't worry, if I made a mistake at one of your posts you can "
230
+ "easily correct this by editing it manually!"
231
+ msgstr ""
232
+ "Je kan mij, op basis van wat ik denk dat gerelateerd is, je berichten aan "
233
+ "elkaar laten koppelen. Maak je geen zorgen, als ik een fout gemaakt hebt kan "
234
+ "je deze gemakkelijk later corrigeren!"
235
+
236
+ #: .././classes/hooks/class-hook-page-install.php:83
237
+ msgid ""
238
+ "Want me to start linking posts to each other? Fill in the amount of related "
239
+ "posts each post should have and click on the \"Link now\" button. Rather "
240
+ "link your posts manually? Click \"Skip linking\"."
241
+ msgstr ""
242
+ "Wil je dat ik begin met het linken van gerelateerde berichten? Vul het "
243
+ "aantal gerelateerde berichten in dat ieder bericht moet krijgen en klik op "
244
+ "\"Nu linken\". Liever je berichten handmatig linken? Klik op \"Sla linken "
245
+ "over\"."
246
+
247
+ #: .././classes/hooks/class-hook-page-install.php:84
248
+ msgid ""
249
+ "Do NOT close this window if you click the \"Link now\" button, wait for this "
250
+ "process to finish and this wizard to take you to the next step."
251
+ msgstr ""
252
+ "Sluit dit venster NIET wanneer je \"Nu linken\" hebt gekozen, wacht tot het "
253
+ "proces klaar is en de wizard je naar de volgende stap stuurt."
254
+
255
+ #: .././classes/hooks/class-hook-page-install.php:87
256
+ msgid "Amount of related posts per post:"
257
+ msgstr "Aantal gerelateerde berichten per bericht:"
258
+
259
+ #: .././classes/hooks/class-hook-page-install.php:88
260
+ msgid "Link now"
261
+ msgstr "Nu linken"
262
+
263
+ #: .././classes/hooks/class-hook-page-install.php:89
264
+ msgid "Skip linking"
265
+ msgstr "Sla linken over"
266
+
267
+ #: .././classes/hooks/class-hook-page-install.php:96
268
+ msgid "That's it, you're good to go!"
269
+ msgstr ""
270
+ "Super, de wizard is klaar en je hebt nu gerelateerde berichten op je website!"
271
+
272
+ #: .././classes/hooks/class-hook-page-install.php:97
273
+ #, php-format
274
+ msgid ""
275
+ "Thanks again for using Related Posts for WordPress and if you have any "
276
+ "questions be sure to ask them at the %sWordPress.org forums.%s"
277
+ msgstr ""
278
+ "Nogmaals bedankt voor het kiezen voor Related Posts for WordPress en als je "
279
+ "nog vragen hebt kan je deze stellen op %shet WordPress.org forum%s."
280
 
281
  #: .././classes/hooks/class-hook-settings-page.php:50
282
  msgid "Plugin version"
399
  #: .././node_modules/grunt-wp-i18n/test/fixtures/text-domains/update-domains.php:3
400
  msgid "String"
401
  msgstr "String"
402
+
403
+ #~ msgid "This section contains automatic post link related settings."
404
+ #~ msgstr ""
405
+ #~ "Dit gedeelte bevat instellingen van de automatisch gelinkte berichten."
406
+
407
+ #~ msgid "This section contains frontend related settings."
408
+ #~ msgstr "Dit gedeelte bevat frontend gerelateerde instellingen."
409
+
410
+ #~ msgid "Related Posts for WordPress Installation"
411
+ #~ msgstr "Related Posts for WordPress installatie"
languages/related-posts-for-wp.pot CHANGED
@@ -1,15 +1,15 @@
1
  msgid ""
2
  msgstr ""
3
  "Project-Id-Version: Related Posts for WordPress\n"
4
- "POT-Creation-Date: 2014-08-17 23:35+0100\n"
5
- "PO-Revision-Date: 2014-08-17 23:35+0100\n"
6
  "Last-Translator: Barry Kooij <barry@cageworks.nl>\n"
7
  "Language-Team: Cageworks <barry@cageworks.nl>\n"
8
  "Language: en\n"
9
  "MIME-Version: 1.0\n"
10
  "Content-Type: text/plain; charset=UTF-8\n"
11
  "Content-Transfer-Encoding: 8bit\n"
12
- "X-Generator: Poedit 1.6.7\n"
13
  "X-Poedit-Basepath: .\n"
14
  "Plural-Forms: nplurals=2; plural=(n != 1);\n"
15
  "X-Poedit-SourceCharset: UTF-8\n"
@@ -17,6 +17,10 @@ msgstr ""
17
  "X-Poedit-SearchPath-0: ../.\n"
18
  "X-Poedit-SearchPathExcluded-0: ../node_modules/.\n"
19
 
 
 
 
 
20
  #: .././classes/class-link-related-table.php:47
21
  #: .././classes/hooks/class-hook-settings-page.php:17
22
  #: .././classes/meta-boxes/class-meta-box-manage.php:32
@@ -39,12 +43,25 @@ msgstr ""
39
  msgid "Link Posts"
40
  msgstr ""
41
 
 
 
 
 
 
 
 
 
 
 
 
 
42
  #: .././classes/class-settings.php:37
43
  msgid "Automatic post linking"
44
  msgstr ""
45
 
46
  #: .././classes/class-settings.php:38
47
- msgid "This section contains automatic post link related settings."
 
48
  msgstr ""
49
 
50
  #: .././classes/class-settings.php:42
@@ -68,7 +85,8 @@ msgid "Frontend Settings"
68
  msgstr ""
69
 
70
  #: .././classes/class-settings.php:58
71
- msgid "This section contains frontend related settings."
 
72
  msgstr ""
73
 
74
  #: .././classes/class-settings.php:62
@@ -109,6 +127,24 @@ msgid ""
109
  "display. To disable, leave field empty."
110
  msgstr ""
111
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
112
  #: .././classes/hooks/class-hook-link-related-screen.php:131
113
  msgid "Posts"
114
  msgstr ""
@@ -121,8 +157,90 @@ msgstr ""
121
  msgid "Search"
122
  msgstr ""
123
 
124
- #: .././classes/hooks/class-hook-page-install.php:45
125
- msgid "Related Posts for WordPress Installation"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
126
  msgstr ""
127
 
128
  #: .././classes/hooks/class-hook-settings-page.php:50
1
  msgid ""
2
  msgstr ""
3
  "Project-Id-Version: Related Posts for WordPress\n"
4
+ "POT-Creation-Date: 2014-08-23 15:29+0100\n"
5
+ "PO-Revision-Date: 2014-08-23 15:29+0100\n"
6
  "Last-Translator: Barry Kooij <barry@cageworks.nl>\n"
7
  "Language-Team: Cageworks <barry@cageworks.nl>\n"
8
  "Language: en\n"
9
  "MIME-Version: 1.0\n"
10
  "Content-Type: text/plain; charset=UTF-8\n"
11
  "Content-Transfer-Encoding: 8bit\n"
12
+ "X-Generator: Poedit 1.6.8\n"
13
  "X-Poedit-Basepath: .\n"
14
  "Plural-Forms: nplurals=2; plural=(n != 1);\n"
15
  "X-Poedit-SourceCharset: UTF-8\n"
17
  "X-Poedit-SearchPath-0: ../.\n"
18
  "X-Poedit-SearchPathExcluded-0: ../node_modules/.\n"
19
 
20
+ #: .././classes/class-javascript-strings.php:14
21
+ msgid "Are you sure you want to delete this related post?"
22
+ msgstr ""
23
+
24
  #: .././classes/class-link-related-table.php:47
25
  #: .././classes/hooks/class-hook-settings-page.php:17
26
  #: .././classes/meta-boxes/class-meta-box-manage.php:32
43
  msgid "Link Posts"
44
  msgstr ""
45
 
46
+ #: .././classes/class-nag-manager.php:105
47
+ #, php-format
48
+ msgid ""
49
+ "You've been using %sRelated Posts for WordPress%s for some time now, could "
50
+ "you please give it a review at wordpress.org?"
51
+ msgstr ""
52
+
53
+ #: .././classes/class-nag-manager.php:107
54
+ #, php-format
55
+ msgid "%sYes, take me there!%s - %sI've already done this!%s"
56
+ msgstr ""
57
+
58
  #: .././classes/class-settings.php:37
59
  msgid "Automatic post linking"
60
  msgstr ""
61
 
62
  #: .././classes/class-settings.php:38
63
+ msgid ""
64
+ "The following options affect how related posts are automatically linked."
65
  msgstr ""
66
 
67
  #: .././classes/class-settings.php:42
85
  msgstr ""
86
 
87
  #: .././classes/class-settings.php:58
88
+ msgid ""
89
+ "The following options affect how related posts are displayed on the frontend."
90
  msgstr ""
91
 
92
  #: .././classes/class-settings.php:62
127
  "display. To disable, leave field empty."
128
  msgstr ""
129
 
130
+ #: .././classes/class-settings.php:91
131
+ msgid "Miscellaneous Settings"
132
+ msgstr ""
133
+
134
+ #: .././classes/class-settings.php:92
135
+ msgid "A shelter for options that just don't fit in."
136
+ msgstr ""
137
+
138
+ #: .././classes/class-settings.php:96
139
+ msgid "Remove Data on Uninstall?"
140
+ msgstr ""
141
+
142
+ #: .././classes/class-settings.php:97
143
+ msgid ""
144
+ "Check this box if you would like to completely remove all of its data when "
145
+ "the plugin is deleted."
146
+ msgstr ""
147
+
148
  #: .././classes/hooks/class-hook-link-related-screen.php:131
149
  msgid "Posts"
150
  msgstr ""
157
  msgid "Search"
158
  msgstr ""
159
 
160
+ #: .././classes/hooks/class-hook-page-install.php:39
161
+ msgid "Caching Posts"
162
+ msgstr ""
163
+
164
+ #: .././classes/hooks/class-hook-page-install.php:40
165
+ msgid "Linking Posts"
166
+ msgstr ""
167
+
168
+ #: .././classes/hooks/class-hook-page-install.php:41
169
+ msgid "Finished"
170
+ msgstr ""
171
+
172
+ #: .././classes/hooks/class-hook-page-install.php:48
173
+ msgid "Installation"
174
+ msgstr ""
175
+
176
+ #: .././classes/hooks/class-hook-page-install.php:71
177
+ msgid "Thank you for choosing Related Posts for WordPress!"
178
+ msgstr ""
179
+
180
+ #: .././classes/hooks/class-hook-page-install.php:72
181
+ msgid ""
182
+ "Before you can start using Related Posts for WordPress we need to cache your "
183
+ "current posts."
184
+ msgstr ""
185
+
186
+ #: .././classes/hooks/class-hook-page-install.php:73
187
+ msgid ""
188
+ "This is a one time process which might take some time now, depending on the "
189
+ "amount of posts you have, but will ensure your website's performance when "
190
+ "using the plugin."
191
+ msgstr ""
192
+
193
+ #: .././classes/hooks/class-hook-page-install.php:75
194
+ msgid ""
195
+ "Do NOT close this window, wait for this process to finish and this wizard to "
196
+ "take you to the next step."
197
+ msgstr ""
198
+
199
+ #: .././classes/hooks/class-hook-page-install.php:81
200
+ msgid "Great! All your posts were successfully cached!"
201
+ msgstr ""
202
+
203
+ #: .././classes/hooks/class-hook-page-install.php:82
204
+ msgid ""
205
+ "You can let me link your posts, based on what I think is related, to each "
206
+ "other. And don't worry, if I made a mistake at one of your posts you can "
207
+ "easily correct this by editing it manually!"
208
+ msgstr ""
209
+
210
+ #: .././classes/hooks/class-hook-page-install.php:83
211
+ msgid ""
212
+ "Want me to start linking posts to each other? Fill in the amount of related "
213
+ "posts each post should have and click on the \"Link now\" button. Rather "
214
+ "link your posts manually? Click \"Skip linking\"."
215
+ msgstr ""
216
+
217
+ #: .././classes/hooks/class-hook-page-install.php:84
218
+ msgid ""
219
+ "Do NOT close this window if you click the \"Link now\" button, wait for this "
220
+ "process to finish and this wizard to take you to the next step."
221
+ msgstr ""
222
+
223
+ #: .././classes/hooks/class-hook-page-install.php:87
224
+ msgid "Amount of related posts per post:"
225
+ msgstr ""
226
+
227
+ #: .././classes/hooks/class-hook-page-install.php:88
228
+ msgid "Link now"
229
+ msgstr ""
230
+
231
+ #: .././classes/hooks/class-hook-page-install.php:89
232
+ msgid "Skip linking"
233
+ msgstr ""
234
+
235
+ #: .././classes/hooks/class-hook-page-install.php:96
236
+ msgid "That's it, you're good to go!"
237
+ msgstr ""
238
+
239
+ #: .././classes/hooks/class-hook-page-install.php:97
240
+ #, php-format
241
+ msgid ""
242
+ "Thanks again for using Related Posts for WordPress and if you have any "
243
+ "questions be sure to ask them at the %sWordPress.org forums.%s"
244
  msgstr ""
245
 
246
  #: .././classes/hooks/class-hook-settings-page.php:50
readme.txt CHANGED
@@ -4,7 +4,7 @@ Donate link: http://www.barrykooij.com/
4
  Tags: related posts for wordpress, related posts for wp, simple related posts, easy related posts, related posts, related, relations, internal links, seo
5
  Requires at least: 3.6
6
  Tested up to: 4.0
7
- Stable tag: 1.3.2
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
@@ -76,6 +76,18 @@ There is one custom table created for the post cache, this table will however no
76
 
77
  == Changelog ==
78
 
 
 
 
 
 
 
 
 
 
 
 
 
79
  = 1.3.2: August 22, 2014 =
80
  * Fixed a bug where ignored words where not properly loaded.
81
 
4
  Tags: related posts for wordpress, related posts for wp, simple related posts, easy related posts, related posts, related, relations, internal links, seo
5
  Requires at least: 3.6
6
  Tested up to: 4.0
7
+ Stable tag: 1.4.0
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
76
 
77
  == Changelog ==
78
 
79
+ = 1.4.0: August 24, 2014 =
80
+ * Created the possibility to restart the installation wizard. See settings page for this option.
81
+ * Added notice that allows resuming installation wizard that will be displayed if the installation wizard crashed.
82
+ * Only load frontend CSS on singles.
83
+ * Fixed a default image size bug, props [Robert Neu](https://github.com/robneu).
84
+ * Small default CSS tweaks, props [Jackie D'Elia](https://github.com/savvyjackie).
85
+ * Complete plugin is now translatable.
86
+ * Updated Dutch translation.
87
+ * Default values are now in site language, if available.
88
+ * Uninstall script now also deletes the caching table.
89
+ * Added 'settings' link to plugins links.
90
+
91
  = 1.3.2: August 22, 2014 =
92
  * Fixed a bug where ignored words where not properly loaded.
93
 
related-posts-for-wp.php CHANGED
@@ -3,7 +3,7 @@
3
  Plugin Name: Related Posts for WordPress
4
  Plugin URI: http://www.barrykooij.com/
5
  Description: Related Posts for WordPress, related posts that perform!
6
- Version: 1.3.2
7
  Author: Barry Kooij
8
  Author URI: http://www.barrykooij.com/
9
  License: GPL v3
@@ -26,7 +26,7 @@ class RP4WP {
26
 
27
  private static $instance = null;
28
 
29
- const VERSION = '1.3.2';
30
 
31
  /**
32
  * @var RP4WP_Settings
@@ -100,10 +100,13 @@ class RP4WP {
100
  // Setup the autoloader
101
  self::setup_autoloader();
102
 
 
 
 
103
  // Check if we need to run the installer
104
  if ( get_site_option( RP4WP_Constants::OPTION_DO_INSTALL, false ) ) {
105
 
106
- // Delete site option
107
  delete_site_option( RP4WP_Constants::OPTION_DO_INSTALL );
108
 
109
  // Redirect to installation wizard
@@ -111,6 +114,10 @@ class RP4WP {
111
  exit;
112
  }
113
 
 
 
 
 
114
  // Setup settings
115
  $this->settings = new RP4WP_Settings();
116
 
3
  Plugin Name: Related Posts for WordPress
4
  Plugin URI: http://www.barrykooij.com/
5
  Description: Related Posts for WordPress, related posts that perform!
6
+ Version: 1.4.0
7
  Author: Barry Kooij
8
  Author URI: http://www.barrykooij.com/
9
  License: GPL v3
26
 
27
  private static $instance = null;
28
 
29
+ const VERSION = '1.4.0';
30
 
31
  /**
32
  * @var RP4WP_Settings
100
  // Setup the autoloader
101
  self::setup_autoloader();
102
 
103
+ // Load plugin text domain
104
+ load_plugin_textdomain( 'related-posts-for-wp', false, dirname( plugin_basename( __FILE__ ) ) . '/languages/' );
105
+
106
  // Check if we need to run the installer
107
  if ( get_site_option( RP4WP_Constants::OPTION_DO_INSTALL, false ) ) {
108
 
109
+ // Delete do install site option
110
  delete_site_option( RP4WP_Constants::OPTION_DO_INSTALL );
111
 
112
  // Redirect to installation wizard
114
  exit;
115
  }
116
 
117
+ // Check if we need to display an 'is installing' notice
118
+ $is_installing_notice = new RP4WP_Is_Installing_Notice();
119
+ $is_installing_notice->check();
120
+
121
  // Setup settings
122
  $this->settings = new RP4WP_Settings();
123
 
uninstall.php CHANGED
@@ -43,4 +43,7 @@ if ( isset( $options['clean_on_uninstall'] ) && 1 == $options['clean_on_uninstal
43
  // Remove the post meta we attached to posts
44
  $wpdb->query( "DELETE FROM $wpdb->postmeta WHERE `meta_key` = 'rp4wp_auto_linked' OR `meta_key` = 'rp4wp_cached' " );
45
 
 
 
 
46
  }
43
  // Remove the post meta we attached to posts
44
  $wpdb->query( "DELETE FROM $wpdb->postmeta WHERE `meta_key` = 'rp4wp_auto_linked' OR `meta_key` = 'rp4wp_cached' " );
45
 
46
+ // Drop the word cache table
47
+ $wpdb->query( "DROP TABLE {$wpdb->prefix}rp4wp_cache ;" );
48
+
49
  }