PluginProbe
FeedWordPress / 2012.1212
FeedWordPress v2012.1212
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 +149 -92 2008.12142012.1212 View file →
@@ -2,110 +2,162 @@
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 -if (!function_exists('stripslashes_deep')) {
19 - function stripslashes_deep($value) {
20 - $value = is_array($value) ? array_map('stripslashes_deep', $value) : stripslashes($value);
21 - return $value;
22 - }
23 -}
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() */
24 28
25 -if (!function_exists('get_option')) {
26 - function get_option ($option) {
27 - return get_settings($option);
28 - }
29 -}
30 -if (!function_exists('current_user_can')) {
31 - $fwp_capability['manage_options'] = 6;
32 - $fwp_capability['manage_links'] = 5;
33 - function current_user_can ($task) {
34 - global $user_level;
29 + /*static*/ function insert_link_category ($name) {
30 + global $wpdb;
35 31
36 - $can = false;
32 + // WordPress 2.3+ term/taxonomy API
33 + $term = wp_insert_term($name, 'link_category');
37 34
38 - // This is **not** a full replacement for current_user_can. It
39 - // is only for checking the capabilities we care about via the
40 - // WordPress 1.5 user levels.
41 - switch ($task) :
42 - case 'manage_options':
43 - $can = ($user_level >= 6);
44 - break;
45 - case 'manage_links':
46 - $can = ($user_level >= 5);
47 - break;
48 - endswitch;
49 - return $can;
50 - }
51 -} else {
52 - $fwp_capability['manage_options'] = 'manage_options';
53 - $fwp_capability['manage_links'] = 'manage_links';
54 -}
55 -if (!function_exists('sanitize_user')) {
56 - function sanitize_user ($text, $strict = false) {
57 - return $text; // Don't munge it if it wasn't munged going in...
58 - }
59 -}
60 -if (!function_exists('wp_insert_user')) {
61 - function wp_insert_user ($userdata) {
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;
48 +
49 + // Return newly-created category ID
50 + return $cat_id;
51 + } /* FeedWordPressCompatibility::insert_link_category () */
52 +
53 + /*static*/ function link_category_id ($value, $key = 'cat_name') {
62 54 global $wpdb;
63 55
64 - #-- Help WordPress 1.5.x quack like a duck
65 - $login = $userdata['user_login'];
66 - $author = $userdata['display_name'];
67 - $nice_author = $userdata['user_nicename'];
68 - $email = $userdata['user_email'];
69 - $url = $userdata['user_url'];
56 + $cat_id = NULL;
70 57
71 - $wpdb->query (
72 - "INSERT INTO $wpdb->users
73 - SET
74 - ID='0',
75 - user_login='$login',
76 - user_firstname='$author',
77 - user_nickname='$author',
78 - user_nicename='$nice_author',
79 - user_description='$author',
80 - user_email='$email',
81 - user_url='$url'");
82 - $id = $wpdb->insert_id;
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;
83 68
84 - return $id;
85 - }
86 -}
69 + return $cat_id;
70 + } /* FeedWordPressCompatibility::link_category_id () */
87 71
88 -function fwp_category_checklist ($post_id = 0, $descendents_and_self = 0, $selected_cats = false) {
89 - if (function_exists('wp_category_checklist')) :
90 - wp_category_checklist($post_id, $descendents_and_self, $selected_cats);
91 - else :
92 - // selected_cats is an array of integer cat_IDs / term_ids for
93 - // the categories that should be checked
94 - global $post_ID;
72 + /*static*/ function validate_http_request ($action = -1, $capability = null) {
73 + // Only worry about this if we're using a method with significant side-effects
74 + if (strtoupper($_SERVER['REQUEST_METHOD']) == 'POST') :
75 + // Limit post by user capabilities
76 + if (!is_null($capability) and !current_user_can($capability)) :
77 + wp_die(__('Cheatin&#8217; uh?'));
78 + endif;
95 79
96 - $cats = get_nested_categories();
97 -
98 - // Undo damage from usort() in WP 2.0
99 - $dogs = array();
100 - foreach ($cats as $cat) :
101 - $dogs[$cat['cat_ID']] = $cat;
102 - endforeach;
103 - foreach ($selected_cats as $cat_id) :
104 - $dogs[$cat_id]['checked'] = true;
105 - endforeach;
106 - write_nested_categories($dogs);
80 + // If check_admin_referer() checks a nonce.
81 + if (function_exists('wp_verify_nonce')) :
82 + check_admin_referer($action);
83 +
84 + // No nonces means no checking nonces.
85 + else :
86 + check_admin_referer();
87 + endif;
88 + endif;
89 + } /* FeedWordPressCompatibility::validate_http_request() */
90 +
91 + /*static*/ function stamp_nonce ($action = -1) {
92 + // stamp form with hidden fields for a nonce in WP 2.0.3 & later
93 + if (function_exists('wp_nonce_field')) :
94 + wp_nonce_field($action);
95 + endif;
96 + } /* FeedWordPressCompatibility::stamp_nonce() */
97 +
98 + /*static*/ function bottom_script_hook ($filename) {
99 + global $fwp_path;
100 +
101 + $hook = 'admin_footer-'.$fwp_path.'/'.basename($filename);
102 + return $hook;
103 + } /* FeedWordPressCompatibility::bottom_script_hook() */
104 +} /* class FeedWordPressCompatibility */
105 +
106 +// Compat
107 +
108 +if (!function_exists('set_post_field')) {
109 +
110 + /**
111 + * Update data from a post field based on Post ID
112 + *
113 + * Examples of the post field will be, 'post_type', 'post_status', 'post_content', etc.
114 + *
115 + * The context values are based off of the taxonomy filter functions and
116 + * supported values are found within those functions.
117 + *
118 + * @uses sanitize_post_field()
119 + *
120 + * @param string $field Post field name
121 + * @param mixed $value New value for post field
122 + * @param id $post Post ID
123 + * @return bool Result of UPDATE query
124 + *
125 + * Included under terms of GPL from WordPress Ticket #10946 <http://core.trac.wordpress.org/attachment/ticket/10946/post.php.diff>
126 + */
127 + function set_post_field ($field, $value, $post_id) {
128 + global $wpdb;
129 +
130 + $post_id = absint($post_id);
131 + // sigh ... when FWP is active, I need to avoid avoid_kses_munge
132 + // $value = sanitize_post_field($field, $value, $post_id, 'db');
133 + return $wpdb->update($wpdb->posts, array($field => $value), array('ID' => $post_id));
134 + } /* function set_post_field () */
135 +
136 +} /* if */
137 +
138 +require_once(dirname(__FILE__).'/feedwordpress-walker-category-checklist.class.php');
139 +
140 +function fwp_category_checklist ($post_id = 0, $descendents_and_self = 0, $selected_cats = false, $params = array()) {
141 + if (is_string($params)) :
142 + $prefix = $params;
143 + $taxonomy = 'category';
144 + elseif (is_array($params)) :
145 + $prefix = (isset($params['prefix']) ? $params['prefix'] : '');
146 + $taxonomy = (isset($params['taxonomy']) ? $params['taxonomy'] : 'category');
107 147 endif;
148 +
149 + $walker = new FeedWordPress_Walker_Category_Checklist($params);
150 + $walker->set_prefix($prefix);
151 + $walker->set_taxonomy($taxonomy);
152 + wp_terms_checklist(/*post_id=*/ $post_id, array(
153 + 'taxonomy' => $taxonomy,
154 + 'descendents_and_self' => $descendents_and_self,
155 + 'selected_cats' => $selected_cats,
156 + 'popular_cats' => false,
157 + 'walker' => $walker,
158 + 'checked_ontop' => true,
159 + ));
108 160 }
109 161
110 162 function fwp_time_elapsed ($ts) {
111 163 if (function_exists('human_time_diff')) :
@@ -130,9 +182,9 @@
130 182 if (get_option('feedwordpress_version') != FEEDWORDPRESS_VERSION) :
131 183 echo "<div class=\"wrap\">\n";
132 184 echo "<h2>Upgrading FeedWordPress...</h2>";
133 185
134 - $feedwordpress =& new FeedWordPress;
186 + $feedwordpress = new FeedWordPress;
135 187 $feedwordpress->upgrade_database($ver);
136 188 echo "<p><strong>Done!</strong> Upgraded database to version ".FEEDWORDPRESS_VERSION.".</p>\n";
137 189 echo "<form action=\"\" method=\"get\">\n";
138 190 echo "<div class=\"submit\"><input type=\"hidden\" name=\"page\" value=\"syndication.php\" />";
@@ -162,10 +214,15 @@
162 214
163 215 <p>This may take several minutes for a large installation.</p>
164 216
165 217 <form action="" method="post">
218 +<?php FeedWordPressCompatibility::stamp_nonce('feedwordpress_upgrade'); ?>
166 219 <div class="submit"><input type="submit" name="action" value="Upgrade" /></div>
167 220 </form>
168 221 </div>
169 222 <?php
170 223 } // function fwp_upgrade_page ()
224 +
225 +function remove_dummy_zero ($var) {
226 + return !(is_numeric($var) and ((int) $var == 0));
227 +}
171 228