PluginProbe
FeedWordPress / 2010.0602
FeedWordPress v2010.0602
trunk 0.8 0.9 0.91 0.95 0.96 0.97 0.98 0.981 0.99 0.991 0.992 0.993 2008.1030 2008.1101 2008.1105 2008.1214 2009.0612 2009.0613 2009.0618 2009.0707 2009.1111 2009.1112 2010.0127 2010.0528 All 65 releases
← All changes | compatability.php +146 -3 2009.06132010.0602 View file →
@@ -15,8 +15,87 @@
15 15 return $good;
16 16 } /* function fwp_test_wp_version () */
17 17
18 18 class FeedWordPressCompatibility {
19 + /*static*/ function test_version ($floor, $ceiling = null) {
20 + return fwp_test_wp_version($floor, $ceiling);
21 + } /* FeedWordPressCompatibility::test_version() */
22 +
23 + /*static*/ function insert_link_category ($name) {
24 + global $wpdb;
25 +
26 + $name = $wpdb->escape($name);
27 +
28 + // WordPress 2.3+ term/taxonomy API
29 + if (function_exists('wp_insert_term')) :
30 + $term = wp_insert_term($name, 'link_category');
31 + $cat_id = $term['term_id'];
32 + // WordPress 2.1, 2.2 category API. By the way, why the fuck is this API function only available in a wp-admin module?
33 + elseif (function_exists('wp_insert_category') and !fwp_test_wp_version(FWP_SCHEMA_20, FWP_SCHEMA_21)) :
34 + $cat_id = wp_insert_category(array('cat_name' => $name));
35 + // WordPress 1.5 and 2.0.x
36 + elseif (fwp_test_wp_version(0, FWP_SCHEMA_21)) :
37 + $result = $wpdb->query("
38 + INSERT INTO $wpdb->linkcategories
39 + SET
40 + cat_id = 0,
41 + cat_name='$name',
42 + show_images='N',
43 + show_description='N',
44 + show_rating='N',
45 + show_updated='N',
46 + sort_order='name'
47 + ");
48 + $cat_id = $wpdb->insert_id;
49 + // This should never happen.
50 + else :
51 + FeedWordPress::critical_bug('FeedWordPress::link_category_id::wp_db_version', $wp_db_version, __LINE__);
52 + endif;
53 +
54 + // Return newly-created category ID
55 + return $cat_id;
56 + } /* FeedWordPressCompatibility::insert_link_category () */
57 +
58 + /*static*/ function link_category_id ($value, $key = 'cat_name') {
59 + global $wpdb;
60 +
61 + $cat_id = NULL;
62 +
63 + // WordPress 2.3 introduces a new taxonomy/term API
64 + if (function_exists('is_term')) :
65 + $the_term = is_term($value, 'link_category');
66 +
67 + // Sometimes, in some versions, we get a row
68 + if (is_array($the_term)) :
69 + $cat_id = $the_term['term_id'];
70 +
71 + // other times we get an integer result
72 + else :
73 + $cat_id = $the_term;
74 + endif;
75 +
76 + // WordPress 2.1 and 2.2 use a common table for both link and post categories
77 + elseif (fwp_test_wp_version(FWP_SCHEMA_21, FWP_SCHEMA_23)) :
78 + $value = $wpdb->escape($value);
79 + $cat_id = $wpdb->get_var("SELECT cat_id FROM {$wpdb->categories} WHERE {$key}='$value'");
80 +
81 + // WordPress 1.5 and 2.0.x have a separate table for link categories
82 + elseif (fwp_test_wp_version(0, FWP_SCHEMA_21)):
83 + $value = $wpdb->escape($value);
84 + $cat_id = $wpdb->get_var("SELECT cat_id FROM {$wpdb->linkcategories} WHERE {$key}='$value'");
85 +
86 + // This should never happen.
87 + else :
88 + FeedWordPress::critical_bug(__CLASS__.'::'.__METHOD__.'::wp_db_version', $wp_db_version, __LINE__);
89 + endif;
90 +
91 + return $cat_id;
92 + } /* FeedWordPressCompatibility::link_category_id () */
93 +
94 + /*static*/ function post_tags () {
95 + return FeedWordPressCompatibility::test_version(FWP_SCHEMA_23);
96 + } /* FeedWordPressCompatibility::post_tags () */
97 +
19 98 /*static*/ function validate_http_request ($action = -1, $capability = null) {
20 99 // Only worry about this if we're using a method with significant side-effects
21 100 if (strtoupper($_SERVER['REQUEST_METHOD']) == 'POST') :
22 101 // Limit post by user capabilities
@@ -40,10 +119,22 @@
40 119 if (function_exists('wp_nonce_field')) :
41 120 wp_nonce_field($action);
42 121 endif;
43 122 } /* FeedWordPressCompatibility::stamp_nonce() */
123 +
124 + /*static*/ function bottom_script_hook ($filename) {
125 + global $fwp_path;
126 +
127 + $hook = 'admin_footer';
128 + if (FeedWordPressCompatibility::test_version(FWP_SCHEMA_28)) : // WordPress 2.8+
129 + $hook = $hook . '-' . $fwp_path . '/' . basename($filename);
130 + endif;
131 + return $hook;
132 + } /* FeedWordPressCompatibility::bottom_script_hook() */
44 133 } /* class FeedWordPressCompatibility */
45 134
135 +define('FEEDWORDPRESS_AND_TAGS', (FeedWordPressCompatibility::post_tags() ? ' & Tags' : ''));
136 +
46 137 if (!function_exists('stripslashes_deep')) {
47 138 function stripslashes_deep($value) {
48 139 $value = is_array($value) ? array_map('stripslashes_deep', $value) : stripslashes($value);
49 140 return $value;
@@ -121,11 +212,63 @@
121 212 die($message);
122 213 } /* wp_die() */
123 214 } /* if */
124 215
125 -function fwp_category_checklist ($post_id = 0, $descendents_and_self = 0, $selected_cats = false) {
216 +if (!function_exists('add_post_meta')) {
217 + function add_post_meta ($postId, $key, $value, $unique) {
218 + global $wpdb;
219 +
220 + $postId = (int) $postId;
221 + $key = $wpdb->escape($key);
222 + $value = $wpdb->escape($value);
223 +
224 + $result = $wpdb->query("
225 + INSERT INTO $wpdb->postmeta
226 + SET
227 + post_id='$postId',
228 + meta_key='$key',
229 + meta_value='$value'
230 + ");
231 + if (!$result) :
232 + $err = mysql_error();
233 + if (FEEDWORDPRESS_DEBUG) :
234 + echo "[DEBUG:".date('Y-m-d H:i:S')."][feedwordpress]: post metadata insertion FAILED for field '$key' := '$value': [$err]";
235 + endif;
236 + endif;
237 + } /* add_post_meta() */
238 +} /* if */
239 +
240 +if (!function_exists('disabled')) {
241 + /**
242 + * Outputs the html disabled attribute.
243 + *
244 + * Compares the first two arguments and if identical marks as disabled
245 + *
246 + * @since 3.0.0
247 + *
248 + * @param mixed $disabled One of the values to compare
249 + * @param mixed $current (true) The other value to compare if not just true
250 + * @param bool $echo Whether to echo or just return the string
251 + * @return string html attribute or empty string
252 + */
253 + function disabled( $disabled, $current = true, $echo = true ) {
254 + return __checked_selected_helper( $disabled, $current, $echo, 'disabled' );
255 + }
256 +} /* if */
257 +
258 +require_once(dirname(__FILE__).'/feedwordpress-walker-category-checklist.class.php');
259 +
260 +function fwp_category_checklist ($post_id = 0, $descendents_and_self = 0, $selected_cats = false, $prefix = '') {
126 261 if (function_exists('wp_category_checklist')) :
127 - wp_category_checklist($post_id, $descendents_and_self, $selected_cats);
262 + $walker = new FeedWordPress_Walker_Category_Checklist;
263 + $walker->set_prefix($prefix);
264 + wp_category_checklist(
265 + /*post_id=*/ $post_id,
266 + /*descendents_and_self=*/ $descendents_and_self,
267 + /*selected_cats=*/ $selected_cats,
268 + /*popular_cats=*/ false,
269 + /*walker=*/ $walker
270 + );
128 271 else :
129 272 // selected_cats is an array of integer cat_IDs / term_ids for
130 273 // the categories that should be checked
131 274 global $post_ID;
@@ -167,9 +310,9 @@
167 310 if (get_option('feedwordpress_version') != FEEDWORDPRESS_VERSION) :
168 311 echo "<div class=\"wrap\">\n";
169 312 echo "<h2>Upgrading FeedWordPress...</h2>";
170 313
171 - $feedwordpress =& new FeedWordPress;
314 + $feedwordpress = new FeedWordPress;
172 315 $feedwordpress->upgrade_database($ver);
173 316 echo "<p><strong>Done!</strong> Upgraded database to version ".FEEDWORDPRESS_VERSION.".</p>\n";
174 317 echo "<form action=\"\" method=\"get\">\n";
175 318 echo "<div class=\"submit\"><input type=\"hidden\" name=\"page\" value=\"syndication.php\" />";