Version Description
Download this release
Release Info
Developer | mitchoyoshitaka |
Plugin | Yet Another Related Posts Plugin (YARPP) |
Version | 3.0.14b1 |
Comparing to | |
See all releases |
Code changes from version 3.0.13 to 3.0.14b1
- includes.php +8 -7
- magic.php +14 -7
- options.php +40 -14
- readme.txt +10 -2
- template-builtin.php +1 -1
- yarpp.php +2 -4
includes.php
CHANGED
@@ -54,8 +54,7 @@ $yarpp_binary_options = array('past_only' => true,
|
|
54 |
'rss_display' => true,
|
55 |
'rss_excerpt_display' => true,
|
56 |
'promote_yarpp' => false,
|
57 |
-
'rss_promote_yarpp' => false
|
58 |
-
'ad_hoc_caching' => true);
|
59 |
|
60 |
function yarpp_enabled() {
|
61 |
global $wpdb;
|
@@ -197,14 +196,16 @@ function yarpp_admin_menu() {
|
|
197 |
$hook = add_options_page(__('Related Posts (YARPP)','yarpp'),__('Related Posts (YARPP)','yarpp'), 8, 'yet-another-related-posts-plugin/options.php', 'yarpp_options_page');
|
198 |
//if (function_exists('add_submenu_page')) add_submenu_page('options-general.php', 'Related Posts (YARPP)', 'Related Posts (YARPP)', 8, 'yet-another-related-posts-plugin/options.php');
|
199 |
add_action("load-$hook",'yarpp_load_thickbox');
|
|
|
|
|
200 |
}
|
201 |
|
202 |
function yarpp_settings_link($links, $file) {
|
203 |
-
|
204 |
-
|
205 |
-
|
206 |
-
|
207 |
-
|
208 |
}
|
209 |
|
210 |
function yarpp_load_thickbox() {
|
54 |
'rss_display' => true,
|
55 |
'rss_excerpt_display' => true,
|
56 |
'promote_yarpp' => false,
|
57 |
+
'rss_promote_yarpp' => false);
|
|
|
58 |
|
59 |
function yarpp_enabled() {
|
60 |
global $wpdb;
|
196 |
$hook = add_options_page(__('Related Posts (YARPP)','yarpp'),__('Related Posts (YARPP)','yarpp'), 8, 'yet-another-related-posts-plugin/options.php', 'yarpp_options_page');
|
197 |
//if (function_exists('add_submenu_page')) add_submenu_page('options-general.php', 'Related Posts (YARPP)', 'Related Posts (YARPP)', 8, 'yet-another-related-posts-plugin/options.php');
|
198 |
add_action("load-$hook",'yarpp_load_thickbox');
|
199 |
+
// new in 3.0.12: add settings link to the plugins page
|
200 |
+
add_filter('plugin_action_links', 'yarpp_settings_link', 10, 2);
|
201 |
}
|
202 |
|
203 |
function yarpp_settings_link($links, $file) {
|
204 |
+
$this_plugin = dirname(plugin_basename(__FILE__)) . '/yarpp.php';
|
205 |
+
if($file == $this_plugin) {
|
206 |
+
$links[] = '<a href="options-general.php?page='.dirname(plugin_basename(__FILE__)).'/options.php">' . __('Settings', 'yarpp') . '</a>';
|
207 |
+
}
|
208 |
+
return $links;
|
209 |
}
|
210 |
|
211 |
function yarpp_load_thickbox() {
|
magic.php
CHANGED
@@ -271,10 +271,9 @@ function yarpp_related($type,$args,$echo = true,$reference_ID=false,$domain = 'w
|
|
271 |
}
|
272 |
extract($optvals);
|
273 |
|
274 |
-
|
275 |
-
yarpp_cache_enforce($type,$reference_ID);
|
276 |
|
277 |
-
|
278 |
|
279 |
if ($domain != 'demo_web' and $domain != 'demo_rss')
|
280 |
$yarpp_time = true; // get ready for YARPP TIME!
|
@@ -387,16 +386,24 @@ function yarpp_save_cache($post_ID,$force=true) {
|
|
387 |
// add it to the queue
|
388 |
array_push($yarpp_caching_queue,$post_ID);
|
389 |
|
|
|
|
|
|
|
390 |
// go through the queue
|
391 |
while ($ID = array_pop($yarpp_caching_queue)) {
|
392 |
if (array_search($ID,$yarpp_updated_posts) === false) {
|
393 |
-
//echo "YARPP updating $ID<br/>";
|
394 |
-
//echo "YARPP QUEUE: ".print_r($yarpp_caching_queue,true)."<br/>";
|
395 |
-
//echo "YARPP UPDATED: ".print_r($yarpp_updated_posts,true)."<br/>";
|
396 |
yarpp_cache_enforce($type,$ID,$force);
|
397 |
-
array_push($
|
398 |
}
|
399 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
400 |
}
|
401 |
|
402 |
function yarpp_cache_enforce($type=array('post'),$reference_ID,$force=false) {
|
271 |
}
|
272 |
extract($optvals);
|
273 |
|
274 |
+
yarpp_cache_enforce($type,$reference_ID);
|
|
|
275 |
|
276 |
+
$output = '';
|
277 |
|
278 |
if ($domain != 'demo_web' and $domain != 'demo_rss')
|
279 |
$yarpp_time = true; // get ready for YARPP TIME!
|
386 |
// add it to the queue
|
387 |
array_push($yarpp_caching_queue,$post_ID);
|
388 |
|
389 |
+
// any newly targetted posts will have to be cleared
|
390 |
+
$yarpp_toclear = array();
|
391 |
+
|
392 |
// go through the queue
|
393 |
while ($ID = array_pop($yarpp_caching_queue)) {
|
394 |
if (array_search($ID,$yarpp_updated_posts) === false) {
|
|
|
|
|
|
|
395 |
yarpp_cache_enforce($type,$ID,$force);
|
396 |
+
array_push($yarpp_toclear,$ID);
|
397 |
}
|
398 |
}
|
399 |
+
|
400 |
+
yarpp_cache_clear($yarpp_toclear);
|
401 |
+
|
402 |
+
}
|
403 |
+
|
404 |
+
function yarpp_cache_clear($reference_IDs) {
|
405 |
+
global $wpdb;
|
406 |
+
$wpdb->query("delete from {$wpdb->prefix}yarpp_related_cache where reference_ID in (".implode(',',$reference_IDs).")");
|
407 |
}
|
408 |
|
409 |
function yarpp_cache_enforce($type=array('post'),$reference_ID,$force=false) {
|
options.php
CHANGED
@@ -105,15 +105,6 @@ $cache_complete = $wpdb->get_var("select (count(p.ID)-sum(c.ID IS NULL))/count(p
|
|
105 |
FROM $wpdb->posts as p
|
106 |
LEFT JOIN {$wpdb->prefix}yarpp_related_cache as c ON ( p.ID = c.reference_ID )
|
107 |
WHERE p.post_status = 'publish' ");
|
108 |
-
|
109 |
-
if (yarpp_get_option('ad_hoc_caching') != 1) {
|
110 |
-
|
111 |
-
if ($cache_complete > 0 and $cache_complete < 1)
|
112 |
-
echo '<div class="updated fade" style="background-color: rgb(207, 235, 247);"><p>'.str_replace('<A>','<a class="thickbox" title="'.__('Related posts cache status','yarpp').'" href="#TB_inline?height=100&width=300&inlineId=yarpp-cache-status">',__('Your related posts cache is incomplete. Please build your cache from the <A>related posts status pane</a>.','yarpp')).'</p></div>';
|
113 |
-
|
114 |
-
if ($cache_complete == 0)
|
115 |
-
echo '<div class="updated fade" style="background-color: rgb(207, 235, 247);"><p>'.str_replace('<A>','<a class="thickbox" title="'.__('Related posts cache status','yarpp').'" href="#TB_inline?height=100&width=300&inlineId=yarpp-cache-status">',__('Your related posts cache is empty. Please build your cache from the <A>related posts status pane</a>.','yarpp')).'</p></div>';
|
116 |
-
}
|
117 |
|
118 |
//compute $tagmap
|
119 |
$tagmap = array();
|
@@ -138,7 +129,7 @@ function checkbox($option,$desc,$tr="<tr valign='top'>
|
|
138 |
}
|
139 |
function textbox($option,$desc,$size=2,$tr="<tr valign='top'>
|
140 |
<th scope='row'>") {
|
141 |
-
$value = yarpp_get_option($option,true);
|
142 |
echo " $tr$desc</th>
|
143 |
<td><input name='$option' type='text' id='$option' value='$value' size='$size' /></td>
|
144 |
</tr>";
|
@@ -522,13 +513,13 @@ checkbox('rss_excerpt_display',__("Display related posts in the descriptions?",'
|
|
522 |
</div>
|
523 |
|
524 |
<div style='border:1px solid #ddd;padding:8px;'>
|
525 |
-
<h3><?php _e('Advanced','yarpp')
|
526 |
|
527 |
<table class="form-table" style="margin-top: 0">
|
528 |
<tr valign='top' colspan='2'><td><input class="thickbox button" type="button" value="<?php _e("Show cache status",'yarpp');?>" title="<?php _e('Related posts cache status','yarpp');?>" alt="#TB_inline?height=100&width=300&inlineId=yarpp-cache-status"/>
|
529 |
-
|
530 |
-
|
531 |
-
|
532 |
</table>
|
533 |
</div>
|
534 |
|
@@ -599,6 +590,41 @@ checkbox('rss_excerpt_display',__("Display related posts in the descriptions?",'
|
|
599 |
</div>
|
600 |
</div>
|
601 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
602 |
<div>
|
603 |
<p class="submit">
|
604 |
<input type="submit" name="update_yarpp" value="<?php _e("Update options",'yarpp')?>" />
|
105 |
FROM $wpdb->posts as p
|
106 |
LEFT JOIN {$wpdb->prefix}yarpp_related_cache as c ON ( p.ID = c.reference_ID )
|
107 |
WHERE p.post_status = 'publish' ");
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
108 |
|
109 |
//compute $tagmap
|
110 |
$tagmap = array();
|
129 |
}
|
130 |
function textbox($option,$desc,$size=2,$tr="<tr valign='top'>
|
131 |
<th scope='row'>") {
|
132 |
+
$value = stripslashes(yarpp_get_option($option,true));
|
133 |
echo " $tr$desc</th>
|
134 |
<td><input name='$option' type='text' id='$option' value='$value' size='$size' /></td>
|
135 |
</tr>";
|
513 |
</div>
|
514 |
|
515 |
<div style='border:1px solid #ddd;padding:8px;'>
|
516 |
+
<h3><?php _e('Advanced','yarpp');?></h3>
|
517 |
|
518 |
<table class="form-table" style="margin-top: 0">
|
519 |
<tr valign='top' colspan='2'><td><input class="thickbox button" type="button" value="<?php _e("Show cache status",'yarpp');?>" title="<?php _e('Related posts cache status','yarpp');?>" alt="#TB_inline?height=100&width=300&inlineId=yarpp-cache-status"/>
|
520 |
+
|
521 |
+
<!--<input class="thickbox button" type="button" value="Test queries" title="If you are having trouble getting YARPP to show results, try this test." alt="#TB_inline?height=500&width=500&inlineId=yarpp-test"/>-->
|
522 |
+
</td></tr>
|
523 |
</table>
|
524 |
</div>
|
525 |
|
590 |
</div>
|
591 |
</div>
|
592 |
|
593 |
+
<div id='yarpp-test' style='display:none;'>
|
594 |
+
<p>This test has been added in response to <a href='http://wordpress.org/support/topic/284209'>this thread</a> on wordpress.org. Once the bug is resolved, I will remove this screen.</p>
|
595 |
+
|
596 |
+
<h3>Cache stats:</h3>
|
597 |
+
|
598 |
+
<?php
|
599 |
+
$smct = $wpdb->get_row("select sum(ID = 0) as sm, count(*) as ct from {$wpdb->prefix}yarpp_related_cache");
|
600 |
+
echo "<p>Proportion of cached posts which have no related posts at all: ".(round(1000*$smct->sm/$smct->ct)/10)."%</p>";
|
601 |
+
|
602 |
+
if ((round(1000*$smct->sm/$smct->ct)/10) > 20) {
|
603 |
+
echo "<p><b>You seem to be affected by the bug I am trying to fix. Please run a test on a single query (below) and <a href=''>post the results here</a>.</b></p>";
|
604 |
+
?>
|
605 |
+
|
606 |
+
<h3>Query test:</h3>
|
607 |
+
|
608 |
+
<p>Please select a post with a good deal of content:</p>
|
609 |
+
|
610 |
+
<select name='test_post_ID' id='test_post_ID'>
|
611 |
+
<?php
|
612 |
+
$posts = $wpdb->get_results("select ID, post_title from $wpdb->posts where length(post_content) > 0 and post_type != 'revision' order by length(post_content) desc limit 20");
|
613 |
+
|
614 |
+
foreach ($posts as $post) {
|
615 |
+
echo "<option value='$post->ID'>$post->post_title</option>\n";
|
616 |
+
}
|
617 |
+
?>
|
618 |
+
</select>
|
619 |
+
|
620 |
+
<?php
|
621 |
+
}
|
622 |
+
else
|
623 |
+
echo "<p><b>You do not seem to be affected by the bug I'm trying to fix. Thank you.</b></p>";
|
624 |
+
?>
|
625 |
+
|
626 |
+
</div>
|
627 |
+
|
628 |
<div>
|
629 |
<p class="submit">
|
630 |
<input type="submit" name="update_yarpp" value="<?php _e("Update options",'yarpp')?>" />
|
readme.txt
CHANGED
@@ -102,7 +102,7 @@ It is recommended that you tweak your match threshold whenever you make changes
|
|
102 |
|
103 |
= Are there any plugins that are incompatible with YARPP? =
|
104 |
|
105 |
-
Aside from the DISQUS plugin (see above), currently the only known incompatibility is [with the SEO_Pager plugin](http://wordpress.org/support/topic/267966). Users of SEO Pager are urged to turn off the automatic display option in SEO Pager and instead add the code manually.
|
106 |
|
107 |
Please submit similar bugs by starting a new thread on [the Wordpress.org forums](http://wordpress.org/tags/yet-another-related-posts-plugin?forum_id=10#postform). I check the forums regularly and will try to release a quick bugfix.
|
108 |
|
@@ -143,11 +143,20 @@ We already have localizers lined up for the following languages:
|
|
143 |
* Hungarian
|
144 |
* Romanian
|
145 |
* Latvian
|
|
|
|
|
146 |
|
147 |
If you are a bilingual speaker of English and another language and an avid user of YARPP, I would love to talk to you about localizing YARPP! Localizing YARPP can be pretty easy using [the Codestyling Localization plugin](http://www.code-styling.de/english/development/wordpress-plugin-codestyling-localization-en). Please [contact me](mailto:yarpp@mitcho.com) *first* before translating to make sure noone else is working on your language. Thanks!
|
148 |
|
149 |
== Changelog ==
|
150 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
151 |
= 3.0.13 =
|
152 |
* Quick immediate bugfix to 3.0.12
|
153 |
= 3.0.12 =
|
@@ -301,6 +310,5 @@ If you are a bilingual speaker of English and another language and an avid user
|
|
301 |
* Also, uses `apply_filters` to apply whatever content text transformation you use (Wikipedia link, Markdown, etc.) before computing similarity.
|
302 |
= 1.0.1 =
|
303 |
* Bugfix: 1.0 assumed you had Markdown installed
|
304 |
-
|
305 |
= 1.0 =
|
306 |
* Initial upload
|
102 |
|
103 |
= Are there any plugins that are incompatible with YARPP? =
|
104 |
|
105 |
+
Aside from the DISQUS plugin (see above), currently the only known incompatibility is [with the SEO_Pager plugin](http://wordpress.org/support/topic/267966) and the [Pagebar 2](http://www.elektroelch.de/hacks/wp/pagebar/) plugin. Users of SEO Pager are urged to turn off the automatic display option in SEO Pager and instead add the code manually. Other related posts plugins, obviously, may also be incompatible.
|
106 |
|
107 |
Please submit similar bugs by starting a new thread on [the Wordpress.org forums](http://wordpress.org/tags/yet-another-related-posts-plugin?forum_id=10#postform). I check the forums regularly and will try to release a quick bugfix.
|
108 |
|
143 |
* Hungarian
|
144 |
* Romanian
|
145 |
* Latvian
|
146 |
+
* Swedish
|
147 |
+
* Thai
|
148 |
|
149 |
If you are a bilingual speaker of English and another language and an avid user of YARPP, I would love to talk to you about localizing YARPP! Localizing YARPP can be pretty easy using [the Codestyling Localization plugin](http://www.code-styling.de/english/development/wordpress-plugin-codestyling-localization-en). Please [contact me](mailto:yarpp@mitcho.com) *first* before translating to make sure noone else is working on your language. Thanks!
|
150 |
|
151 |
== Changelog ==
|
152 |
|
153 |
+
= 3.0.14 =
|
154 |
+
* Removing the confusing "on the fly caching" setting... it is always on now.
|
155 |
+
* Fixed `yarpp_settings_link` dependency when disabled.
|
156 |
+
* Breaks (<br />) are now stripped out of titles.
|
157 |
+
* Added plugin incompatibility info for Pagebar.
|
158 |
+
* Bugfix: [a slash escaping bug](http://wordpress.org/support/topic/315560)
|
159 |
+
* Faster post saving.
|
160 |
= 3.0.13 =
|
161 |
* Quick immediate bugfix to 3.0.12
|
162 |
= 3.0.12 =
|
310 |
* Also, uses `apply_filters` to apply whatever content text transformation you use (Wikipedia link, Markdown, etc.) before computing similarity.
|
311 |
= 1.0.1 =
|
312 |
* Bugfix: 1.0 assumed you had Markdown installed
|
|
|
313 |
= 1.0 =
|
314 |
* Initial upload
|
template-builtin.php
CHANGED
@@ -30,7 +30,7 @@ if ($related_query->have_posts()) {
|
|
30 |
while ($related_query->have_posts()) {
|
31 |
$related_query->the_post();
|
32 |
|
33 |
-
$output .= "$before_title<a href='".get_permalink()."' rel='bookmark' title='Permanent Link: ".get_the_title()."'>".get_the_title()."";
|
34 |
if ($userdata->user_level >= 8 and $domain != 'rss')
|
35 |
$output .= ' <abbr title="'.sprintf(__('%f is the YARPP match score between the current entry and this related entry. You are seeing this value because you are logged in to WordPress as an administrator. It is not shown to regular visitors.','yarpp'),round(get_the_score(),3)).'">('.round(get_the_score(),3).')</abbr>';
|
36 |
$output .= '</a>';
|
30 |
while ($related_query->have_posts()) {
|
31 |
$related_query->the_post();
|
32 |
|
33 |
+
$output .= "$before_title<a href='".get_permalink()."' rel='bookmark' title='Permanent Link: ".preg_replace('/\s*<br[ /]*>\s*/i', ' ', get_the_title())."'>".get_the_title()."";
|
34 |
if ($userdata->user_level >= 8 and $domain != 'rss')
|
35 |
$output .= ' <abbr title="'.sprintf(__('%f is the YARPP match score between the current entry and this related entry. You are seeing this value because you are logged in to WordPress as an administrator. It is not shown to regular visitors.','yarpp'),round(get_the_score(),3)).'">('.round(get_the_score(),3).')</abbr>';
|
36 |
$output .= '</a>';
|
yarpp.php
CHANGED
@@ -3,13 +3,13 @@
|
|
3 |
Plugin Name: Yet Another Related Posts Plugin
|
4 |
Plugin URI: http://mitcho.com/code/yarpp/
|
5 |
Description: Returns a list of related entries based on a unique algorithm for display on your blog and RSS feeds. A templating feature allows customization of the display.
|
6 |
-
Version: 3.0.
|
7 |
Author: mitcho (Michael Yoshitaka Erlewine)
|
8 |
Author URI: http://mitcho.com/
|
9 |
Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=66G4DATK4999L&item_name=mitcho%2ecom%2fcode%3a%20donate%20to%20Michael%20Yoshitaka%20Erlewine&no_shipping=0&no_note=1&tax=0¤cy_code=USD&lc=US&charset=UTF%2d8
|
10 |
*/
|
11 |
|
12 |
-
define('YARPP_VERSION','3.0.
|
13 |
|
14 |
require_once('includes.php');
|
15 |
require_once('related-functions.php');
|
@@ -53,5 +53,3 @@ add_filter('posts_request','yarpp_demo_request_filter');
|
|
53 |
add_filter('post_limits','yarpp_limit_filter');
|
54 |
add_action('parse_query','yarpp_set_score_override_flag'); // sets the score override flag.
|
55 |
|
56 |
-
// new in 3.0.12: add settings link to the plugins page
|
57 |
-
add_filter('plugin_action_links', 'yarpp_settings_link', 10, 2);
|
3 |
Plugin Name: Yet Another Related Posts Plugin
|
4 |
Plugin URI: http://mitcho.com/code/yarpp/
|
5 |
Description: Returns a list of related entries based on a unique algorithm for display on your blog and RSS feeds. A templating feature allows customization of the display.
|
6 |
+
Version: 3.0.14b1
|
7 |
Author: mitcho (Michael Yoshitaka Erlewine)
|
8 |
Author URI: http://mitcho.com/
|
9 |
Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=66G4DATK4999L&item_name=mitcho%2ecom%2fcode%3a%20donate%20to%20Michael%20Yoshitaka%20Erlewine&no_shipping=0&no_note=1&tax=0¤cy_code=USD&lc=US&charset=UTF%2d8
|
10 |
*/
|
11 |
|
12 |
+
define('YARPP_VERSION','3.0.14b1');
|
13 |
|
14 |
require_once('includes.php');
|
15 |
require_once('related-functions.php');
|
53 |
add_filter('post_limits','yarpp_limit_filter');
|
54 |
add_action('parse_query','yarpp_set_score_override_flag'); // sets the score override flag.
|
55 |
|
|
|
|