PluginProbe
FeedWordPress / 2010.0903
FeedWordPress v2010.0903
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 +150 -75 2008.10302010.0903 View file →
@@ -2,99 +2,169 @@
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 + // version testing based on database schema version
8 + /*static*/ function test_version ($floor, $ceiling = null) {
9 + global $wp_db_version;
10 +
11 + $ver = (isset($wp_db_version) ? $wp_db_version : 0);
12 + $good = ($ver >= $floor);
13 + if (!is_null($ceiling)) :
14 + $good = ($good and ($ver < $ceiling));
15 + endif;
16 + return $good;
17 + } /* FeedWordPressCompatibility::test_version() */
18 +
19 + /*static*/ function insert_link_category ($name) {
20 + global $wpdb;
21 +
22 + $name = $wpdb->escape($name);
23 +
24 + // WordPress 2.3+ term/taxonomy API
25 + $term = wp_insert_term($name, 'link_category');
26 + $cat_id = $term['term_id'];
27 +
28 + // Return newly-created category ID
29 + return $cat_id;
30 + } /* FeedWordPressCompatibility::insert_link_category () */
31 +
32 + /*static*/ function link_category_id ($value, $key = 'cat_name') {
33 + global $wpdb;
34 +
35 + $cat_id = NULL;
36 +
37 + $the_term = term_exists($value, 'link_category');
38 +
39 + // Sometimes, in some versions, we get a row
40 + if (is_array($the_term)) :
41 + $cat_id = $the_term['term_id'];
42 +
43 + // other times we get an integer result
44 + else :
45 + $cat_id = $the_term;
46 + endif;
47 +
48 + return $cat_id;
49 + } /* FeedWordPressCompatibility::link_category_id () */
50 +
51 + /*static*/ function post_tags () {
52 + return FeedWordPressCompatibility::test_version(FWP_SCHEMA_23);
53 + } /* FeedWordPressCompatibility::post_tags () */
54 +
55 + /*static*/ function validate_http_request ($action = -1, $capability = null) {
56 + // Only worry about this if we're using a method with significant side-effects
57 + if (strtoupper($_SERVER['REQUEST_METHOD']) == 'POST') :
58 + // Limit post by user capabilities
59 + if (!is_null($capability) and !current_user_can($capability)) :
60 + wp_die(__('Cheatin&#8217; uh?'));
61 + endif;
62 +
63 + // If check_admin_referer() checks a nonce.
64 + if (function_exists('wp_verify_nonce')) :
65 + check_admin_referer($action);
66 +
67 + // No nonces means no checking nonces.
68 + else :
69 + check_admin_referer();
70 + endif;
71 + endif;
72 + } /* FeedWordPressCompatibility::validate_http_request() */
9 73
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 () */
74 + /*static*/ function stamp_nonce ($action = -1) {
75 + // stamp form with hidden fields for a nonce in WP 2.0.3 & later
76 + if (function_exists('wp_nonce_field')) :
77 + wp_nonce_field($action);
78 + endif;
79 + } /* FeedWordPressCompatibility::stamp_nonce() */
80 +
81 + /*static*/ function bottom_script_hook ($filename) {
82 + global $fwp_path;
17 83
18 -if (!function_exists('get_option')) {
19 - function get_option ($option) {
20 - return get_settings($option);
21 - }
22 -}
23 -if (!function_exists('current_user_can')) {
24 - $fwp_capability['manage_options'] = 6;
25 - $fwp_capability['manage_links'] = 5;
26 - function current_user_can ($task) {
27 - global $user_level;
84 + $hook = 'admin_footer';
85 + if (FeedWordPressCompatibility::test_version(FWP_SCHEMA_28)) : // WordPress 2.8+
86 + $hook = $hook . '-' . $fwp_path . '/' . basename($filename);
87 + endif;
88 + return $hook;
89 + } /* FeedWordPressCompatibility::bottom_script_hook() */
90 +} /* class FeedWordPressCompatibility */
28 91
29 - $can = false;
92 +define('FEEDWORDPRESS_AND_TAGS', (FeedWordPressCompatibility::post_tags() ? ' & Tags' : ''));
30 93
31 - // This is **not** a full replacement for current_user_can. It
32 - // is only for checking the capabilities we care about via the
33 - // WordPress 1.5 user levels.
34 - switch ($task) :
35 - case 'manage_options':
36 - $can = ($user_level >= 6);
37 - break;
38 - case 'manage_links':
39 - $can = ($user_level >= 5);
40 - break;
41 - endswitch;
42 - return $can;
94 +if (!function_exists('stripslashes_deep')) {
95 + function stripslashes_deep($value) {
96 + $value = is_array($value) ? array_map('stripslashes_deep', $value) : stripslashes($value);
97 + return $value;
43 98 }
44 -} else {
45 - $fwp_capability['manage_options'] = 'manage_options';
46 - $fwp_capability['manage_links'] = 'manage_links';
47 99 }
100 +
48 101 if (!function_exists('sanitize_user')) {
49 - function sanitize_user ($text, $strict) {
102 + function sanitize_user ($text, $strict = false) {
50 103 return $text; // Don't munge it if it wasn't munged going in...
51 104 }
52 105 }
53 -if (!function_exists('wp_insert_user')) {
54 - function wp_insert_user ($userdata) {
55 - global $wpdb;
56 106
57 - #-- Help WordPress 1.5.x quack like a duck
58 - $login = $userdata['user_login'];
59 - $author = $userdata['display_name'];
60 - $nice_author = $userdata['user_nicename'];
61 - $email = $userdata['user_email'];
62 - $url = $userdata['user_url'];
107 +if (!function_exists('disabled')) {
108 + /**
109 + * Outputs the html disabled attribute.
110 + *
111 + * Compares the first two arguments and if identical marks as disabled
112 + *
113 + * @since 3.0.0
114 + *
115 + * @param mixed $disabled One of the values to compare
116 + * @param mixed $current (true) The other value to compare if not just true
117 + * @param bool $echo Whether to echo or just return the string
118 + * @return string html attribute or empty string
119 + */
120 + function disabled( $disabled, $current = true, $echo = true ) {
121 + return __checked_selected_helper( $disabled, $current, $echo, 'disabled' );
122 + }
123 +} /* if */
63 124
64 - $wpdb->query (
65 - "INSERT INTO $wpdb->users
66 - SET
67 - ID='0',
68 - user_login='$login',
69 - user_firstname='$author',
70 - user_nickname='$author',
71 - user_nicename='$nice_author',
72 - user_description='$author',
73 - user_email='$email',
74 - user_url='$url'");
75 - $id = $wpdb->insert_id;
76 -
77 - return $id;
125 +if (!function_exists('term_exists')) {
126 + // Fucking WordPress 3.0 wordsmithing.
127 + function term_exists ( $term, $taxonomy = '', $parent = 0 ) {
128 + return is_term($term, $taxonomy, $parent);
78 129 }
130 +} /* if */
131 +
132 +require_once(dirname(__FILE__).'/feedwordpress-walker-category-checklist.class.php');
133 +
134 +function fwp_category_checklist ($post_id = 0, $descendents_and_self = 0, $selected_cats = false, $params = array()) {
135 + if (is_string($params)) :
136 + $prefix = $params;
137 + $taxonomy = 'category';
138 + elseif (is_array($params)) :
139 + $prefix = (isset($params['prefix']) ? $params['prefix'] : '');
140 + $taxonomy = (isset($params['taxonomy']) ? $params['taxonomy'] : 'category');
141 + endif;
142 +
143 + $walker = new FeedWordPress_Walker_Category_Checklist;
144 + $walker->set_prefix($prefix);
145 + $walker->set_taxonomy($taxonomy);
146 + wp_terms_checklist(/*post_id=*/ $post_id, array(
147 + 'taxonomy' => $taxonomy,
148 + 'descendents_and_self' => $descendents_and_self,
149 + 'selected_cats' => $selected_cats,
150 + 'popular_cats' => false,
151 + 'walker' => $walker,
152 + 'checked_ontop' => true,
153 + ));
79 154 }
80 155
81 -function fwp_category_checklist ($post_id = 0, $descendents_and_self = 0, $selected_cats = false) {
82 - if (function_exists('wp_category_checklist')) :
83 - wp_category_checklist($post_id, $descendents_and_self, $selected_cats);
156 +function fwp_time_elapsed ($ts) {
157 + if (function_exists('human_time_diff')) :
158 + if ($ts >= time()) :
159 + $ret = __(human_time_diff($ts)." from now");
160 + else :
161 + $ret = __(human_time_diff($ts)." ago");
162 + endif;
84 163 else :
85 - global $checked_categories;
86 -
87 - // selected_cats is an array of integer cat_IDs / term_ids for
88 - // the categories that should be checked
89 - $cats = array();
90 - if ($post_id) : $cats = wp_get_post_categories($post_id);
91 - else : $cats = $selected_cats;
92 - endif;
93 -
94 - $checked_categories = $cats;
95 - dropdown_categories();
164 + $ret = strftime('%x %X', $ts);
96 165 endif;
166 + return $ret;
97 167 }
98 168
99 169 ################################################################################
100 170 ## UPGRADE INTERFACE: Have users upgrade DB from older versions of FWP #########
@@ -106,9 +176,9 @@
106 176 if (get_option('feedwordpress_version') != FEEDWORDPRESS_VERSION) :
107 177 echo "<div class=\"wrap\">\n";
108 178 echo "<h2>Upgrading FeedWordPress...</h2>";
109 179
110 - $feedwordpress =& new FeedWordPress;
180 + $feedwordpress = new FeedWordPress;
111 181 $feedwordpress->upgrade_database($ver);
112 182 echo "<p><strong>Done!</strong> Upgraded database to version ".FEEDWORDPRESS_VERSION.".</p>\n";
113 183 echo "<form action=\"\" method=\"get\">\n";
114 184 echo "<div class=\"submit\"><input type=\"hidden\" name=\"page\" value=\"syndication.php\" />";
@@ -138,10 +208,15 @@
138 208
139 209 <p>This may take several minutes for a large installation.</p>
140 210
141 211 <form action="" method="post">
212 +<?php FeedWordPressCompatibility::stamp_nonce('feedwordpress_upgrade'); ?>
142 213 <div class="submit"><input type="submit" name="action" value="Upgrade" /></div>
143 214 </form>
144 215 </div>
145 216 <?php
146 217 } // function fwp_upgrade_page ()
218 +
219 +function remove_dummy_zero ($var) {
220 + return !(is_numeric($var) and ((int) $var == 0));
221 +}
147 222