PluginProbe
FeedWordPress / 2010.0623
FeedWordPress v2010.0623
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 +244 -239 trunk2010.0623 View file →
@@ -1,88 +1,70 @@
1 1 <?php
2 -/**
3 - * LEGACY API: Replicate or mock up functions for legacy support purposes.
4 - *
5 - * @author radgeek
6 - */
2 +################################################################################
3 +## LEGACY API: Replicate or mock up functions for legacy support purposes ######
4 +################################################################################
7 5
8 -/**
9 - * Implements legacy functionality no longer present in the current WordPress
10 - * versions
11 - */
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 () */
17 +
12 18 class FeedWordPressCompatibility {
19 + /*static*/ function test_version ($floor, $ceiling = null) {
20 + return fwp_test_wp_version($floor, $ceiling);
21 + } /* FeedWordPressCompatibility::test_version() */
13 22
14 - /**
15 - * FeedWordPressCompatibility::test_version: test version of WordPress
16 - * based on the database schema version.
17 - *
18 - * @param int $floor The minimum version necessary.
19 - * @param mixed $ceiling The first version that is too high. If omitted
20 - * or NULL, no version is too high.
21 - * @return bool TRUE if within the range of versions, FALSE if too low
22 - * or too high.
23 - */
24 - static function test_version( $floor, $ceiling = null ) {
25 - global $wp_db_version;
23 + /*static*/ function insert_link_category ($name) {
24 + global $wpdb;
26 25
27 - $ver = ( isset( $wp_db_version ) ? $wp_db_version : 0 );
28 - $good = ( $ver >= $floor );
29 - if ( ! is_null( $ceiling ) ) :
30 - $good = ( $good and ( $ver < $ceiling ) );
31 - endif;
32 - return $good;
33 - } /* FeedWordPressCompatibility::test_version() */
26 + $name = $wpdb->escape($name);
34 27
35 - /**
36 - * Creates a new category for the Links.
37 - *
38 - * WP dropped support for "Links".
39 - *
40 - * @param string $name New link category name.
41 - *
42 - * @return mixed Most of the time should return an array with `term_id`
43 - * and `term_taxonomy_id`, unless there was an error.
44 - */
45 - static function insert_link_category( $name ) {
46 28 // WordPress 2.3+ term/taxonomy API
47 - $term = wp_insert_term( $name, 'link_category' );
48 -
49 - // OK: returned array('term_id' => $term_id, 'term_taxonomy_id' => $tt_id)
50 - if ( ! is_wp_error( $term ) ) :
29 + if (function_exists('wp_insert_term')) :
30 + $term = wp_insert_term($name, 'link_category');
51 31 $cat_id = $term['term_id'];
52 -
53 - // Error: term with this name already exists. Well, let's use that then.
54 - elseif ( 'term_exists' == $term->get_error_code() ) :
55 - // Already-existing term ID is returned in data field
56 - $cat_id = $term->get_error_data( 'term_exists' );
57 -
58 - // Error: another kind of error, harder to recover from. Return WP_Error.
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.
59 50 else :
60 - $cat_id = $term;
51 + FeedWordPress::critical_bug('FeedWordPress::link_category_id::wp_db_version', $wp_db_version, __LINE__);
61 52 endif;
62 -
53 +
63 54 // Return newly-created category ID
64 55 return $cat_id;
65 56 } /* FeedWordPressCompatibility::insert_link_category () */
66 57
67 - /**
68 - * Returns category id for a Links category.
69 - *
70 - * "Links" became optional in WP.
71 - *
72 - * For the explanation of the values, see @see term_exists()
73 - *
74 - * @param int|string $value @see term_exists()
75 - * @param string $key Unused.
76 - * @return mixed @see term_exists()
77 - */
78 - static function link_category_id( $value, $key = 'cat_name' ) {
58 + /*static*/ function link_category_id ($value, $key = 'cat_name') {
59 + global $wpdb;
60 +
79 61 $cat_id = NULL;
80 62
81 - $the_term = term_exists( $value, 'link_category' );
63 + $the_term = term_exists($value, 'link_category');
82 64
83 65 // Sometimes, in some versions, we get a row
84 - if ( is_array( $the_term ) ) :
66 + if (is_array($the_term)) :
85 67 $cat_id = $the_term['term_id'];
86 68
87 69 // other times we get an integer result
88 70 else :
@@ -87,32 +69,27 @@
87 69 // other times we get an integer result
88 70 else :
89 71 $cat_id = $the_term;
90 72 endif;
91 -
73 +
92 74 return $cat_id;
93 75 } /* FeedWordPressCompatibility::link_category_id () */
94 76
95 - /**
96 - * Validate if the user has the right capability for doing this request.
97 - *
98 - * @see check_admin_referer()
99 - * @see current_user_can()
100 - *
101 - * @param int|string $action The nonce action.
102 - * @param string|null $capability Capability name.
103 - */
104 - static function validate_http_request( $action = -1, $capability = null ) {
77 + /*static*/ function post_tags () {
78 + return FeedWordPressCompatibility::test_version(FWP_SCHEMA_23);
79 + } /* FeedWordPressCompatibility::post_tags () */
80 +
81 + /*static*/ function validate_http_request ($action = -1, $capability = null) {
105 82 // Only worry about this if we're using a method with significant side-effects
106 - if ( 'POST' == strtoupper( $_SERVER['REQUEST_METHOD'] ) ) :
83 + if (strtoupper($_SERVER['REQUEST_METHOD']) == 'POST') :
107 84 // Limit post by user capabilities
108 - if ( ! is_null( $capability ) and ! current_user_can( $capability ) ) :
109 - wp_die( esc_html__( 'Cheatin&rsquo; uh?' ) );
85 + if (!is_null($capability) and !current_user_can($capability)) :
86 + wp_die(__('Cheatin&#8217; uh?'));
110 87 endif;
111 88
112 89 // If check_admin_referer() checks a nonce.
113 - if ( function_exists( 'wp_verify_nonce' ) ) :
114 - check_admin_referer( $action );
90 + if (function_exists('wp_verify_nonce')) :
91 + check_admin_referer($action);
115 92
116 93 // No nonces means no checking nonces.
117 94 else :
118 95 check_admin_referer();
@@ -118,175 +95,215 @@
118 95 check_admin_referer();
119 96 endif;
120 97 endif;
121 98 } /* FeedWordPressCompatibility::validate_http_request() */
122 -
123 - /**
124 - * Stamps form with hidden fields for a nonce in WP 2.0.3 & later.
125 - *
126 - * Basically just checks if the function wp_nonce_field() exists, and, if so,
127 - * uses it; on earlier WP versions, just skips it.
128 - *
129 - * @todo What about the HTML which might get returned by wp_nonce_field()?
130 - * (gwyneth 20230917)
131 - *
132 - * @see wp_nonce_field()
133 - *
134 - * @param int|string $action Optional action name, defaults to -1.
135 - *
136 - */
137 - static function stamp_nonce( $action = -1 ) {
138 - if ( function_exists( 'wp_nonce_field' ) ) :
139 - wp_nonce_field( $action );
99 +
100 + /*static*/ function stamp_nonce ($action = -1) {
101 + // stamp form with hidden fields for a nonce in WP 2.0.3 & later
102 + if (function_exists('wp_nonce_field')) :
103 + wp_nonce_field($action);
140 104 endif;
141 105 } /* FeedWordPressCompatibility::stamp_nonce() */
142 -
143 - static function bottom_script_hook ($filename) {
106 +
107 + /*static*/ function bottom_script_hook ($filename) {
144 108 global $fwp_path;
145 109
146 - $hook = 'admin_footer-'.$fwp_path.'/'.basename($filename);
110 + $hook = 'admin_footer';
111 + if (FeedWordPressCompatibility::test_version(FWP_SCHEMA_28)) : // WordPress 2.8+
112 + $hook = $hook . '-' . $fwp_path . '/' . basename($filename);
113 + endif;
147 114 return $hook;
148 115 } /* FeedWordPressCompatibility::bottom_script_hook() */
149 116 } /* class FeedWordPressCompatibility */
150 117
151 -// Compat
118 +define('FEEDWORDPRESS_AND_TAGS', (FeedWordPressCompatibility::post_tags() ? ' & Tags' : ''));
152 119
153 -if ( ! function_exists( 'set_post_field' ) ) {
154 - /**
155 - * Update data from a post field based on Post ID.
156 - *
157 - * Examples of the post field will be, 'post_type', 'post_status', 'post_content', etc.
158 - *
159 - * The context values are based off of the taxonomy filter functions and
160 - * supported values are found within those functions.
161 - *
162 - * @uses sanitize_post_field()
163 - *
164 - * @param string $field Post field name.
165 - * @param mixed $value New value for post field.
166 - * @param id $post Post ID.
167 - * @return bool Result of UPDATE query.
168 - *
169 - * Included under terms of GPL from WordPress Ticket #10946 <http://core.trac.wordpress.org/attachment/ticket/10946/post.php.diff>
170 - */
171 - function set_post_field ($field, $value, $post_id) {
120 +if (!function_exists('stripslashes_deep')) {
121 + function stripslashes_deep($value) {
122 + $value = is_array($value) ? array_map('stripslashes_deep', $value) : stripslashes($value);
123 + return $value;
124 + }
125 +}
126 +
127 +if (!function_exists('get_option')) {
128 + function get_option ($option) {
129 + return get_settings($option);
130 + }
131 +}
132 +if (!function_exists('current_user_can')) {
133 + $fwp_capability['manage_options'] = 6;
134 + $fwp_capability['manage_links'] = 5;
135 + function current_user_can ($task) {
136 + global $user_level;
137 +
138 + $can = false;
139 +
140 + // This is **not** a full replacement for current_user_can. It
141 + // is only for checking the capabilities we care about via the
142 + // WordPress 1.5 user levels.
143 + switch ($task) :
144 + case 'manage_options':
145 + $can = ($user_level >= 6);
146 + break;
147 + case 'manage_links':
148 + $can = ($user_level >= 5);
149 + break;
150 + case 'edit_files':
151 + $can = ($user_level >= 9);
152 + break;
153 + endswitch;
154 + return $can;
155 + }
156 +} else {
157 + $fwp_capability['manage_options'] = 'manage_options';
158 + $fwp_capability['manage_links'] = 'manage_links';
159 +}
160 +if (!function_exists('sanitize_user')) {
161 + function sanitize_user ($text, $strict = false) {
162 + return $text; // Don't munge it if it wasn't munged going in...
163 + }
164 +}
165 +if (!function_exists('wp_insert_user')) {
166 + function wp_insert_user ($userdata) {
172 167 global $wpdb;
173 168
174 - $post_id = absint($post_id);
175 - // sigh ... when FWP is active, I need to avoid avoid_kses_munge
176 - // $value = sanitize_post_field($field, $value, $post_id, 'db');
177 - return $wpdb->update($wpdb->posts, array($field => $value), array('ID' => $post_id));
178 - } /* function set_post_field () */
169 + #-- Help WordPress 1.5.x quack like a duck
170 + $login = $userdata['user_login'];
171 + $author = $userdata['display_name'];
172 + $nice_author = $userdata['user_nicename'];
173 + $email = $userdata['user_email'];
174 + $url = $userdata['user_url'];
179 175
176 + $wpdb->query (
177 + "INSERT INTO $wpdb->users
178 + SET
179 + ID='0',
180 + user_login='$login',
181 + user_firstname='$author',
182 + user_nickname='$author',
183 + user_nicename='$nice_author',
184 + user_description='$author',
185 + user_email='$email',
186 + user_url='$url'");
187 + $id = $wpdb->insert_id;
188 +
189 + return $id;
190 + }
191 +} /* if (!function_exists('wp_insert_user')) */
192 +
193 +if (!function_exists('wp_die')) {
194 + function wp_die ( $message, $title = '', $args = array() ) {
195 + die($message);
196 + } /* wp_die() */
180 197 } /* if */
181 198
182 -if ( ! function_exists( 'is_countable' ) ) {
183 - /* Copied from WordPress 5.3.2 wp-includes/compat.php pursuant to terms
184 - * of GPL. Provide support for is_countable() for versions of PHP < 7.3
185 - * and for versions of WordPress < 4.9.6. -C.J. 2020/01/24
186 - */
199 +if (!function_exists('add_post_meta')) {
200 + function add_post_meta ($postId, $key, $value, $unique) {
201 + global $wpdb;
187 202
203 + $postId = (int) $postId;
204 + $key = $wpdb->escape($key);
205 + $value = $wpdb->escape($value);
206 +
207 + $result = $wpdb->query("
208 + INSERT INTO $wpdb->postmeta
209 + SET
210 + post_id='$postId',
211 + meta_key='$key',
212 + meta_value='$value'
213 + ");
214 + if (!$result) :
215 + $err = mysql_error();
216 + if (FEEDWORDPRESS_DEBUG) :
217 + echo "[DEBUG:".date('Y-m-d H:i:S')."][feedwordpress]: post metadata insertion FAILED for field '$key' := '$value': [$err]";
218 + endif;
219 + endif;
220 + } /* add_post_meta() */
221 +} /* if */
222 +
223 +if (!function_exists('disabled')) {
188 224 /**
189 - * Polyfill for is_countable() function added in PHP 7.3.
225 + * Outputs the html disabled attribute.
190 226 *
191 - * Verify that the content of a variable is an array or an object
192 - * implementing the Countable interface.
227 + * Compares the first two arguments and if identical marks as disabled
193 228 *
194 - * @since 4.9.6
229 + * @since 3.0.0
195 230 *
196 - * @param mixed $var The value to check.
197 - *
198 - * @return bool True if `$var` is countable, false otherwise.
231 + * @param mixed $disabled One of the values to compare
232 + * @param mixed $current (true) The other value to compare if not just true
233 + * @param bool $echo Whether to echo or just return the string
234 + * @return string html attribute or empty string
199 235 */
200 - function is_countable( $var ) {
201 - return ( is_array( $var )
202 - || $var instanceof Countable
203 - || $var instanceof SimpleXMLElement
204 - || $var instanceof ResourceBundle
205 - );
236 + function disabled( $disabled, $current = true, $echo = true ) {
237 + return __checked_selected_helper( $disabled, $current, $echo, 'disabled' );
206 238 }
207 239 } /* if */
208 240
209 -require_once dirname(__FILE__) . '/feedwordpress-walker-category-checklist.class.php';
241 +if (!function_exists('term_exists')) {
242 + // Fucking WordPress 3.0 wordsmithing.
243 + function term_exists ( $term, $taxonomy = '', $parent = 0 ) {
244 + return is_term($term, $taxonomy, $parent);
245 + }
246 +} /* if */
247 +require_once(dirname(__FILE__).'/feedwordpress-walker-category-checklist.class.php');
210 248
211 -/**
212 - * Checks if we have all the categories we need.
213 - *
214 - * @see wp_terms_checklist()
215 - *
216 - * @param int $post_id Optional, defaults to zero.
217 - * @param int $descendents_and_self @see wp_terms_checklist()
218 - * @param bool $selected_cats @see wp_terms_checklist()
219 - * @param string|array $params @see wp_terms_checklist()
220 - *
221 - * @uses wp_terms_checklist()
222 - * @uses FeedWordPress_Walker_Category_Checklist()
223 - */
224 -function fwp_category_checklist( $post_id = 0, $descendents_and_self = 0, $selected_cats = false, $params = array() ) {
225 - if ( is_string( $params ) ) :
226 - $prefix = $params;
227 - $taxonomy = 'category';
228 - elseif ( is_array( $params ) ) :
229 - $prefix = ( isset( $params['prefix'] ) ? $params['prefix'] : '' );
230 - $taxonomy = ( isset( $params['taxonomy'] ) ? $params['taxonomy'] : 'category' );
249 +function fwp_category_checklist ($post_id = 0, $descendents_and_self = 0, $selected_cats = false, $prefix = '') {
250 + if (function_exists('wp_category_checklist')) :
251 + $walker = new FeedWordPress_Walker_Category_Checklist;
252 + $walker->set_prefix($prefix);
253 + wp_category_checklist(
254 + /*post_id=*/ $post_id,
255 + /*descendents_and_self=*/ $descendents_and_self,
256 + /*selected_cats=*/ $selected_cats,
257 + /*popular_cats=*/ false,
258 + /*walker=*/ $walker
259 + );
260 + else :
261 + // selected_cats is an array of integer cat_IDs / term_ids for
262 + // the categories that should be checked
263 + global $post_ID;
264 +
265 + $cats = get_nested_categories();
266 +
267 + // Undo damage from usort() in WP 2.0
268 + $dogs = array();
269 + foreach ($cats as $cat) :
270 + $dogs[$cat['cat_ID']] = $cat;
271 + endforeach;
272 + foreach ($selected_cats as $cat_id) :
273 + $dogs[$cat_id]['checked'] = true;
274 + endforeach;
275 + write_nested_categories($dogs);
231 276 endif;
277 +}
232 278
233 - $walker = new FeedWordPress_Walker_Category_Checklist( $params );
234 - $walker->set_prefix( $prefix );
235 - $walker->set_taxonomy( $taxonomy );
236 - wp_terms_checklist( /*post_id=*/ $post_id, array(
237 - 'taxonomy' => $taxonomy,
238 - 'descendents_and_self' => $descendents_and_self,
239 - 'selected_cats' => $selected_cats,
240 - 'popular_cats' => false,
241 - 'walker' => $walker,
242 - 'checked_ontop' => true,
243 - ) );
244 -} /* function fwp_category_checklist() */
245 -
246 -/**
247 - * Calculates the difference between a timestamp and the current time.
248 - *
249 - * @param int $ts Timestamp.
250 - *
251 - * @return string A human-readable indication of the elapsed time.
252 - */
253 -function fwp_time_elapsed( $ts ) {
254 - if ( ! is_int( $ts ) ) :
255 -
256 - endif;
257 - if ( function_exists( 'human_time_diff' ) ) :
258 - if ( $ts >= time() ) :
259 - $ret = human_time_diff( $ts ) . __( " from now" );
279 +function fwp_time_elapsed ($ts) {
280 + if (function_exists('human_time_diff')) :
281 + if ($ts >= time()) :
282 + $ret = __(human_time_diff($ts)." from now");
260 283 else :
261 - $ret = human_time_diff( $ts ) . __( " ago" );
284 + $ret = __(human_time_diff($ts)." ago");
262 285 endif;
263 286 else :
264 - // $ret = strftime( '%x %X', $ts ); // deprecated
265 - $ret = date( "Y-m-d H:i:s", $ts );
287 + $ret = strftime('%x %X', $ts);
266 288 endif;
267 289 return $ret;
268 -} /* function fwp_time_elapsed() */
290 +}
269 291
270 -/**
271 - * UPGRADE INTERFACE: Have users upgrade DB from older versions of FWP.
272 - *
273 - * @uses FeedWordPress
274 - * @uses FeedWordPress::upgrade_database()
275 - * @uses get_option()
276 - * @uses MyPHP::post()
277 - */
278 -function fwp_upgrade_page() {
279 - if ( 'Upgrade' == MyPHP::post( 'action' ) ) :
280 - /** @var string Current FeedWordPress version. */
281 - $ver = get_option( 'feedwordpress_version' );
282 - if ( ! empty( $ver ) and FEEDWORDPRESS_VERSION != $ver ) :
292 +################################################################################
293 +## UPGRADE INTERFACE: Have users upgrade DB from older versions of FWP #########
294 +################################################################################
295 +
296 +function fwp_upgrade_page () {
297 + if (isset($GLOBALS['fwp_post']['action']) and $GLOBALS['fwp_post']['action']=='Upgrade') :
298 + $ver = get_option('feedwordpress_version');
299 + if (get_option('feedwordpress_version') != FEEDWORDPRESS_VERSION) :
283 300 echo "<div class=\"wrap\">\n";
284 - echo "<h2>" . esc_html__( "Upgrading FeedWordPress..." ) . "</h2>";
301 + echo "<h2>Upgrading FeedWordPress...</h2>";
285 302
286 303 $feedwordpress = new FeedWordPress;
287 - $feedwordpress->upgrade_database( $ver );
288 - echo "<p><strong>" . esc_html__( "Done!" ) . "</strong> " . esc_html__( "Upgraded database to version " ) . esc_html( FEEDWORDPRESS_VERSION ) . ".</p>\n";
304 + $feedwordpress->upgrade_database($ver);
305 + echo "<p><strong>Done!</strong> Upgraded database to version ".FEEDWORDPRESS_VERSION.".</p>\n";
289 306 echo "<form action=\"\" method=\"get\">\n";
290 307 echo "<div class=\"submit\"><input type=\"hidden\" name=\"page\" value=\"syndication.php\" />";
291 308 echo "<input type=\"submit\" value=\"Continue &raquo;\" /></form></div>\n";
292 309 echo "</div>\n";
@@ -291,46 +308,34 @@
291 308 echo "<input type=\"submit\" value=\"Continue &raquo;\" /></form></div>\n";
292 309 echo "</div>\n";
293 310 return;
294 311 else :
295 - echo "<div class=\"updated\"><p>" . esc_html__( "Already at version " ) . esc_html( FEEDWORDPRESS_VERSION ) . "!</p></div>";
312 + echo "<div class=\"updated\"><p>Already at version ".FEEDWORDPRESS_VERSION."!</p></div>";
296 313 endif;
297 314 endif;
298 315 ?>
299 316 <div class="wrap">
300 -<h2><?php esc_html_e( 'Upgrade FeedWordPress' ); ?></h2>
317 +<h2>Upgrade FeedWordPress</h2>
301 318
302 -<p><?php esc_html_e( 'It appears that you have installed FeedWordPress' ); ?>
303 -<?php echo esc_html( FEEDWORDPRESS_VERSION ); ?> <?php esc_html_e( 'as an upgrade to an existing installation of
304 -FeedWordPress. That\'s no problem, but you will need to take a minute out first
319 +<p>It appears that you have installed FeedWordPress
320 +<?php echo FEEDWORDPRESS_VERSION; ?> as an upgrade to an existing installation of
321 +FeedWordPress. That's no problem, but you will need to take a minute out first
305 322 to upgrade your database: some necessary changes in how the software keeps
306 323 track of posts and feeds will cause problems such as duplicate posts and broken
307 -templates if we were to continue without the upgrade.' ); ?></p>
324 +templates if we were to continue without the upgrade.</p>
308 325
309 -<p><?php esc_html_e( 'Note that most of FeedWordPress\'s functionality is temporarily disabled
326 +<p>Note that most of FeedWordPress's functionality is temporarily disabled
310 327 until we have successfully completed the upgrade. Everything should begin
311 -working as normal again once the upgrade is complete. There\'s extraordinarily
312 -little chance of any damage as the result of the upgrade, but if you\'re paranoid
313 -like me, you may want to back up your database before you proceed.' ); ?></p>
328 +working as normal again once the upgrade is complete. There's extraordinarily
329 +little chance of any damage as the result of the upgrade, but if you're paranoid
330 +like me you may want to back up your database before you proceed.</p>
314 331
315 -<p><?php esc_html_e( 'This may take several minutes for a large installation.' ); ?></p>
332 +<p>This may take several minutes for a large installation.</p>
316 333
317 334 <form action="" method="post">
318 -<?php FeedWordPressCompatibility::stamp_nonce( 'feedwordpress_upgrade' ); ?>
335 +<?php FeedWordPressCompatibility::stamp_nonce('feedwordpress_upgrade'); ?>
319 336 <div class="submit"><input type="submit" name="action" value="Upgrade" /></div>
320 337 </form>
321 338 </div>
322 339 <?php
323 -} /* function fwp_upgrade_page() */
340 +} // function fwp_upgrade_page ()
324 341
325 -/**
326 - * Filter action for removing dummy zeroes.
327 - *
328 - * @todo Requires a better explanation! (gwyneth 20230917)
329 - *
330 - * @param mixed $var Variable to test.
331 - *
332 - * @return int Possibly returns filtered result
333 - */
334 -function remove_dummy_zero( $var ) {
335 - return ! ( is_numeric( $var ) and ( 0 == (int) $var ) );
336 -}