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 +158 -92 2009.06122011.0211.2 View file →
@@ -2,21 +2,78 @@
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;
6 +class FeedWordPressCompatibility {
7 +
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 + */
18 + /*static*/ function test_version ($floor, $ceiling = null) {
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;
27 + } /* FeedWordPressCompatibility::test_version() */
28 +
29 + /*static*/ function insert_link_category ($name) {
30 + global $wpdb;
31 +
32 + // WordPress 2.3+ term/taxonomy API
33 + $term = wp_insert_term($name, 'link_category');
34 +
35 + // OK: returned array('term_id' => $term_id, 'term_taxonomy_id' => $tt_id)
36 + if (!is_wp_error($term)) :
37 + $cat_id = $term['term_id'];
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.
45 + else :
46 + $cat_id = $term;
47 + endif;
9 48
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 () */
49 + // Return newly-created category ID
50 + return $cat_id;
51 + } /* FeedWordPressCompatibility::insert_link_category () */
17 52
18 -class FeedWordPressCompatibility {
53 + /*static*/ function link_category_id ($value, $key = 'cat_name') {
54 + global $wpdb;
55 +
56 + $cat_id = NULL;
57 +
58 + $the_term = term_exists($value, 'link_category');
59 +
60 + // Sometimes, in some versions, we get a row
61 + if (is_array($the_term)) :
62 + $cat_id = $the_term['term_id'];
63 +
64 + // other times we get an integer result
65 + else :
66 + $cat_id = $the_term;
67 + endif;
68 +
69 + return $cat_id;
70 + } /* FeedWordPressCompatibility::link_category_id () */
71 +
72 + /*static*/ function post_tags () {
73 + return FeedWordPressCompatibility::test_version(FWP_SCHEMA_23);
74 + } /* FeedWordPressCompatibility::post_tags () */
75 +
19 76 /*static*/ function validate_http_request ($action = -1, $capability = null) {
20 77 // Only worry about this if we're using a method with significant side-effects
21 78 if (strtoupper($_SERVER['REQUEST_METHOD']) == 'POST') :
22 79 // Limit post by user capabilities
@@ -40,10 +97,22 @@
40 97 if (function_exists('wp_nonce_field')) :
41 98 wp_nonce_field($action);
42 99 endif;
43 100 } /* FeedWordPressCompatibility::stamp_nonce() */
101 +
102 + /*static*/ function bottom_script_hook ($filename) {
103 + global $fwp_path;
104 +
105 + $hook = 'admin_footer';
106 + if (FeedWordPressCompatibility::test_version(FWP_SCHEMA_28)) : // WordPress 2.8+
107 + $hook = $hook . '-' . $fwp_path . '/' . basename($filename);
108 + endif;
109 + return $hook;
110 + } /* FeedWordPressCompatibility::bottom_script_hook() */
44 111 } /* class FeedWordPressCompatibility */
45 112
113 +define('FEEDWORDPRESS_AND_TAGS', (FeedWordPressCompatibility::post_tags() ? ' & Tags' : ''));
114 +
46 115 if (!function_exists('stripslashes_deep')) {
47 116 function stripslashes_deep($value) {
48 117 $value = is_array($value) ? array_map('stripslashes_deep', $value) : stripslashes($value);
49 118 return $value;
@@ -49,100 +118,93 @@
49 118 return $value;
50 119 }
51 120 }
52 121
53 -if (!function_exists('get_option')) {
54 - function get_option ($option) {
55 - return get_settings($option);
56 - }
57 -}
58 -if (!function_exists('current_user_can')) {
59 - $fwp_capability['manage_options'] = 6;
60 - $fwp_capability['manage_links'] = 5;
61 - function current_user_can ($task) {
62 - global $user_level;
63 -
64 - $can = false;
65 -
66 - // This is **not** a full replacement for current_user_can. It
67 - // is only for checking the capabilities we care about via the
68 - // WordPress 1.5 user levels.
69 - switch ($task) :
70 - case 'manage_options':
71 - $can = ($user_level >= 6);
72 - break;
73 - case 'manage_links':
74 - $can = ($user_level >= 5);
75 - break;
76 - case 'edit_files':
77 - $can = ($user_level >= 9);
78 - break;
79 - endswitch;
80 - return $can;
81 - }
82 -} else {
83 - $fwp_capability['manage_options'] = 'manage_options';
84 - $fwp_capability['manage_links'] = 'manage_links';
85 -}
86 122 if (!function_exists('sanitize_user')) {
87 123 function sanitize_user ($text, $strict = false) {
88 124 return $text; // Don't munge it if it wasn't munged going in...
89 125 }
90 126 }
91 -if (!function_exists('wp_insert_user')) {
92 - function wp_insert_user ($userdata) {
93 - global $wpdb;
94 127
95 - #-- Help WordPress 1.5.x quack like a duck
96 - $login = $userdata['user_login'];
97 - $author = $userdata['display_name'];
98 - $nice_author = $userdata['user_nicename'];
99 - $email = $userdata['user_email'];
100 - $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 */
101 145
102 - $wpdb->query (
103 - "INSERT INTO $wpdb->users
104 - SET
105 - ID='0',
106 - user_login='$login',
107 - user_firstname='$author',
108 - user_nickname='$author',
109 - user_nicename='$nice_author',
110 - user_description='$author',
111 - user_email='$email',
112 - user_url='$url'");
113 - $id = $wpdb->insert_id;
114 -
115 - 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);
116 182 }
117 -} /* if (!function_exists('wp_insert_user')) */
118 -
119 -if (!function_exists('wp_die')) {
120 - function wp_die ( $message, $title = '', $args = array() ) {
121 - die($message);
122 - } /* wp_die() */
123 183 } /* if */
124 184
125 -function fwp_category_checklist ($post_id = 0, $descendents_and_self = 0, $selected_cats = false) {
126 - if (function_exists('wp_category_checklist')) :
127 - wp_category_checklist($post_id, $descendents_and_self, $selected_cats);
128 - else :
129 - // selected_cats is an array of integer cat_IDs / term_ids for
130 - // the categories that should be checked
131 - global $post_ID;
185 +require_once(dirname(__FILE__).'/feedwordpress-walker-category-checklist.class.php');
132 186
133 - $cats = get_nested_categories();
134 -
135 - // Undo damage from usort() in WP 2.0
136 - $dogs = array();
137 - foreach ($cats as $cat) :
138 - $dogs[$cat['cat_ID']] = $cat;
139 - endforeach;
140 - foreach ($selected_cats as $cat_id) :
141 - $dogs[$cat_id]['checked'] = true;
142 - endforeach;
143 - 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');
144 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 + ));
145 207 }
146 208
147 209 function fwp_time_elapsed ($ts) {
148 210 if (function_exists('human_time_diff')) :
@@ -167,9 +229,9 @@
167 229 if (get_option('feedwordpress_version') != FEEDWORDPRESS_VERSION) :
168 230 echo "<div class=\"wrap\">\n";
169 231 echo "<h2>Upgrading FeedWordPress...</h2>";
170 232
171 - $feedwordpress =& new FeedWordPress;
233 + $feedwordpress = new FeedWordPress;
172 234 $feedwordpress->upgrade_database($ver);
173 235 echo "<p><strong>Done!</strong> Upgraded database to version ".FEEDWORDPRESS_VERSION.".</p>\n";
174 236 echo "<form action=\"\" method=\"get\">\n";
175 237 echo "<div class=\"submit\"><input type=\"hidden\" name=\"page\" value=\"syndication.php\" />";
@@ -205,5 +267,9 @@
205 267 </form>
206 268 </div>
207 269 <?php
208 270 } // function fwp_upgrade_page ()
271 +
272 +function remove_dummy_zero ($var) {
273 + return !(is_numeric($var) and ((int) $var == 0));
274 +}
209 275