PluginProbe
FeedWordPress / 2011.0211.2
FeedWordPress v2011.0211.2
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 +116 -141 2009.11122011.0211.2 View file →
@@ -2,56 +2,51 @@
2 2 ################################################################################
3 3 ## LEGACY API: Replicate or mock up functions for legacy support purposes ######
4 4 ################################################################################
5 5
6 -// version testing
7 -function fwp_test_wp_version ($floor, $ceiling = NULL) {
8 - global $wp_db_version;
9 -
10 - $ver = (isset($wp_db_version) ? $wp_db_version : 0);
11 - $good = ($ver >= $floor);
12 - if (!is_null($ceiling)) :
13 - $good = ($good and ($ver < $ceiling));
14 - endif;
15 - return $good;
16 -} /* function fwp_test_wp_version () */
6 +class FeedWordPressCompatibility {
17 7
18 -class FeedWordPressCompatibility {
8 + /**
9 + * FeedWordPressCompatibility::test_version: test version of WordPress
10 + * based on the database schema version.
11 + *
12 + * @param int $floor The minimum version necessary
13 + * @param mixed $ceiling The first version that is too high. If omitted
14 + * or NULL, no version is too high.
15 + * @return bool TRUE if within the range of versions, FALSE if too low
16 + * or too high.
17 + */
19 18 /*static*/ function test_version ($floor, $ceiling = null) {
20 - return fwp_test_wp_version($floor, $ceiling);
19 + global $wp_db_version;
20 +
21 + $ver = (isset($wp_db_version) ? $wp_db_version : 0);
22 + $good = ($ver >= $floor);
23 + if (!is_null($ceiling)) :
24 + $good = ($good and ($ver < $ceiling));
25 + endif;
26 + return $good;
21 27 } /* FeedWordPressCompatibility::test_version() */
22 28
23 29 /*static*/ function insert_link_category ($name) {
24 30 global $wpdb;
25 31
26 - $name = $wpdb->escape($name);
32 + // WordPress 2.3+ term/taxonomy API
33 + $term = wp_insert_term($name, 'link_category');
27 34
28 - // WordPress 2.3+ term/taxonomy API
29 - if (function_exists('wp_insert_term')) :
30 - $term = wp_insert_term($name, 'link_category');
35 + // OK: returned array('term_id' => $term_id, 'term_taxonomy_id' => $tt_id)
36 + if (!is_wp_error($term)) :
31 37 $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.
38 +
39 + // Error: term with this name already exists. Well, let's use that then.
40 + elseif ($term->get_error_code() == 'term_exists') :
41 + // Already-existing term ID is returned in data field
42 + $cat_id = $term->get_error_data('term_exists');
43 +
44 + // Error: another kind of error, harder to recover from. Return WP_Error.
50 45 else :
51 - FeedWordPress::critical_bug('FeedWordPress::link_category_id::wp_db_version', $wp_db_version, __LINE__);
46 + $cat_id = $term;
52 47 endif;
53 -
48 +
54 49 // Return newly-created category ID
55 50 return $cat_id;
56 51 } /* FeedWordPressCompatibility::insert_link_category () */
57 52
@@ -59,34 +54,17 @@
59 54 global $wpdb;
60 55
61 56 $cat_id = NULL;
62 57
63 - // WordPress 2.3 introduces a new taxonomy/term API
64 - if (function_exists('is_term')) :
65 - $the_term = is_term($value, 'link_category');
58 + $the_term = term_exists($value, 'link_category');
66 59
67 - // Sometimes, in some versions, we get a row
68 - if (is_array($the_term)) :
69 - $cat_id = $the_term['term_id'];
60 + // Sometimes, in some versions, we get a row
61 + if (is_array($the_term)) :
62 + $cat_id = $the_term['term_id'];
70 63
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.
64 + // other times we get an integer result
87 65 else :
88 - FeedWordPress::critical_bug(__CLASS__.'::'.__METHOD__.'::wp_db_version', $wp_db_version, __LINE__);
66 + $cat_id = $the_term;
89 67 endif;
90 68
91 69 return $cat_id;
92 70 } /* FeedWordPressCompatibility::link_category_id () */
@@ -140,100 +118,93 @@
140 118 return $value;
141 119 }
142 120 }
143 121
144 -if (!function_exists('get_option')) {
145 - function get_option ($option) {
146 - return get_settings($option);
147 - }
148 -}
149 -if (!function_exists('current_user_can')) {
150 - $fwp_capability['manage_options'] = 6;
151 - $fwp_capability['manage_links'] = 5;
152 - function current_user_can ($task) {
153 - global $user_level;
154 -
155 - $can = false;
156 -
157 - // This is **not** a full replacement for current_user_can. It
158 - // is only for checking the capabilities we care about via the
159 - // WordPress 1.5 user levels.
160 - switch ($task) :
161 - case 'manage_options':
162 - $can = ($user_level >= 6);
163 - break;
164 - case 'manage_links':
165 - $can = ($user_level >= 5);
166 - break;
167 - case 'edit_files':
168 - $can = ($user_level >= 9);
169 - break;
170 - endswitch;
171 - return $can;
172 - }
173 -} else {
174 - $fwp_capability['manage_options'] = 'manage_options';
175 - $fwp_capability['manage_links'] = 'manage_links';
176 -}
177 122 if (!function_exists('sanitize_user')) {
178 123 function sanitize_user ($text, $strict = false) {
179 124 return $text; // Don't munge it if it wasn't munged going in...
180 125 }
181 126 }
182 -if (!function_exists('wp_insert_user')) {
183 - function wp_insert_user ($userdata) {
184 - global $wpdb;
185 127
186 - #-- Help WordPress 1.5.x quack like a duck
187 - $login = $userdata['user_login'];
188 - $author = $userdata['display_name'];
189 - $nice_author = $userdata['user_nicename'];
190 - $email = $userdata['user_email'];
191 - $url = $userdata['user_url'];
128 +if (!function_exists('disabled')) {
129 + /**
130 + * Outputs the html disabled attribute.
131 + *
132 + * Compares the first two arguments and if identical marks as disabled
133 + *
134 + * @since 3.0.0
135 + *
136 + * @param mixed $disabled One of the values to compare
137 + * @param mixed $current (true) The other value to compare if not just true
138 + * @param bool $echo Whether to echo or just return the string
139 + * @return string html attribute or empty string
140 + */
141 + function disabled( $disabled, $current = true, $echo = true ) {
142 + return __checked_selected_helper( $disabled, $current, $echo, 'disabled' );
143 + }
144 +} /* if */
192 145
193 - $wpdb->query (
194 - "INSERT INTO $wpdb->users
195 - SET
196 - ID='0',
197 - user_login='$login',
198 - user_firstname='$author',
199 - user_nickname='$author',
200 - user_nicename='$nice_author',
201 - user_description='$author',
202 - user_email='$email',
203 - user_url='$url'");
204 - $id = $wpdb->insert_id;
205 -
206 - return $id;
146 +// Compat
147 +
148 +if (!function_exists('set_post_field')) {
149 +
150 + /**
151 + * Update data from a post field based on Post ID
152 + *
153 + * Examples of the post field will be, 'post_type', 'post_status', 'post_content', etc.
154 + *
155 + * The context values are based off of the taxonomy filter functions and
156 + * supported values are found within those functions.
157 + *
158 + * @uses sanitize_post_field()
159 + *
160 + * @param string $field Post field name
161 + * @param mixed $value New value for post field
162 + * @param id $post Post ID
163 + * @return bool Result of UPDATE query
164 + *
165 + * Included under terms of GPL from WordPress Ticket #10946 <http://core.trac.wordpress.org/attachment/ticket/10946/post.php.diff>
166 + */
167 + function set_post_field ($field, $value, $post_id) {
168 + global $wpdb;
169 +
170 + $post_id = absint($post_id);
171 + // sigh ... when FWP is active, I need to avoid avoid_kses_munge
172 + // $value = sanitize_post_field($field, $value, $post_id, 'db');
173 + return $wpdb->update($wpdb->posts, array($field => $value), array('ID' => $post_id));
174 + } /* function set_post_field () */
175 +
176 +} /* if */
177 +
178 +if (!function_exists('term_exists')) {
179 + // Fucking WordPress 3.0 wordsmithing.
180 + function term_exists ( $term, $taxonomy = '', $parent = 0 ) {
181 + return is_term($term, $taxonomy, $parent);
207 182 }
208 -} /* if (!function_exists('wp_insert_user')) */
209 -
210 -if (!function_exists('wp_die')) {
211 - function wp_die ( $message, $title = '', $args = array() ) {
212 - die($message);
213 - } /* wp_die() */
214 183 } /* if */
215 184
216 -function fwp_category_checklist ($post_id = 0, $descendents_and_self = 0, $selected_cats = false) {
217 - if (function_exists('wp_category_checklist')) :
218 - wp_category_checklist($post_id, $descendents_and_self, $selected_cats);
219 - else :
220 - // selected_cats is an array of integer cat_IDs / term_ids for
221 - // the categories that should be checked
222 - global $post_ID;
185 +require_once(dirname(__FILE__).'/feedwordpress-walker-category-checklist.class.php');
223 186
224 - $cats = get_nested_categories();
225 -
226 - // Undo damage from usort() in WP 2.0
227 - $dogs = array();
228 - foreach ($cats as $cat) :
229 - $dogs[$cat['cat_ID']] = $cat;
230 - endforeach;
231 - foreach ($selected_cats as $cat_id) :
232 - $dogs[$cat_id]['checked'] = true;
233 - endforeach;
234 - write_nested_categories($dogs);
187 +function fwp_category_checklist ($post_id = 0, $descendents_and_self = 0, $selected_cats = false, $params = array()) {
188 + if (is_string($params)) :
189 + $prefix = $params;
190 + $taxonomy = 'category';
191 + elseif (is_array($params)) :
192 + $prefix = (isset($params['prefix']) ? $params['prefix'] : '');
193 + $taxonomy = (isset($params['taxonomy']) ? $params['taxonomy'] : 'category');
235 194 endif;
195 +
196 + $walker = new FeedWordPress_Walker_Category_Checklist($params);
197 + $walker->set_prefix($prefix);
198 + $walker->set_taxonomy($taxonomy);
199 + wp_terms_checklist(/*post_id=*/ $post_id, array(
200 + 'taxonomy' => $taxonomy,
201 + 'descendents_and_self' => $descendents_and_self,
202 + 'selected_cats' => $selected_cats,
203 + 'popular_cats' => false,
204 + 'walker' => $walker,
205 + 'checked_ontop' => true,
206 + ));
236 207 }
237 208
238 209 function fwp_time_elapsed ($ts) {
239 210 if (function_exists('human_time_diff')) :
@@ -258,9 +229,9 @@
258 229 if (get_option('feedwordpress_version') != FEEDWORDPRESS_VERSION) :
259 230 echo "<div class=\"wrap\">\n";
260 231 echo "<h2>Upgrading FeedWordPress...</h2>";
261 232
262 - $feedwordpress =& new FeedWordPress;
233 + $feedwordpress = new FeedWordPress;
263 234 $feedwordpress->upgrade_database($ver);
264 235 echo "<p><strong>Done!</strong> Upgraded database to version ".FEEDWORDPRESS_VERSION.".</p>\n";
265 236 echo "<form action=\"\" method=\"get\">\n";
266 237 echo "<div class=\"submit\"><input type=\"hidden\" name=\"page\" value=\"syndication.php\" />";
@@ -296,5 +267,9 @@
296 267 </form>
297 268 </div>
298 269 <?php
299 270 } // function fwp_upgrade_page ()
271 +
272 +function remove_dummy_zero ($var) {
273 + return !(is_numeric($var) and ((int) $var == 0));
274 +}
300 275