PluginProbe
FeedWordPress / 2011.0721
FeedWordPress v2011.0721
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 | feedwordpresssyndicationpage.class.php +539 -843 trunk2011.0721 View file →
@@ -1,49 +1,28 @@
1 1 <?php
2 -/**
3 - * feedwordpresssyndicationpage.class.php
4 - * feedwordpress
5 - *
6 - * @author radgeek
7 - */
8 -require_once dirname(__FILE__) . '/admin-ui.php';
9 -require_once dirname(__FILE__) . '/feedfinder.class.php';
2 +require_once(dirname(__FILE__) . '/admin-ui.php');
3 +require_once(dirname(__FILE__) . '/feedfinder.class.php');
10 4
11 5 ################################################################################
12 6 ## ADMIN MENU ADD-ONS: implement Dashboard management pages ####################
13 7 ################################################################################
14 8
15 -define( 'FWP_PROJECT_WEBSITE_URL', 'https://fwpplugin.com/' );
9 +define('FWP_UPDATE_CHECKED', 'Update Checked');
10 +define('FWP_UNSUB_CHECKED', 'Unsubscribe');
11 +define('FWP_DELETE_CHECKED', 'Delete');
12 +define('FWP_RESUB_CHECKED', 'Re-subscribe');
13 +define('FWP_SYNDICATE_NEW', 'Add →');
14 +define('FWP_UNSUB_FULL', 'Unsubscribe from selected feeds →');
15 +define('FWP_CANCEL_BUTTON', '× Cancel');
16 +define('FWP_CHECK_FOR_UPDATES', 'Update');
16 17
17 -define( 'FWP_UPDATE_CHECKED', 'Update Checked' );
18 -define( 'FWP_UNSUB_CHECKED', 'Unsubscribe' );
19 -define( 'FWP_DELETE_CHECKED', 'Delete' );
20 -define( 'FWP_RESUB_CHECKED', 'Re-subscribe' );
21 -define( 'FWP_SYNDICATE_NEW', 'Add →' );
22 -define( 'FWP_UNSUB_FULL', 'Unsubscribe from selected feeds →' );
23 -define( 'FWP_CANCEL_BUTTON', '× Cancel' );
24 -define( 'FWP_CHECK_FOR_UPDATES', 'Update' );
18 +class FeedWordPressSyndicationPage extends FeedWordPressAdminPage {
19 + function FeedWordPressSyndicationPage ($filename = NULL) {
20 + FeedWordPressAdminPage::FeedWordPressAdminPage('feedwordpresssyndication', /*link=*/ NULL);
25 21
26 -/**
27 - * Tab for the admin page where syndication is dealt with.
28 - *
29 - * @extends FeedWordPressAdminPage
30 - *
31 - * @uses MyPHP
32 - * @uses FeedFinder
33 - * @uses FeedWordPress
34 - * @uses FeedWordPressCompatibility
35 - * @uses FeedWordPressDiagnostic
36 - */
37 -class FeedWordPressSyndicationPage extends FeedWordPressAdminPage
38 -{
39 - public function __construct( $filename = NULL )
40 - {
41 - parent::__construct( 'feedwordpresssyndication', /*link=*/ NULL );
42 -
43 22 // No over-arching form element
44 23 $this->dispatch = NULL;
45 - if ( is_null( $filename ) ) :
24 + if (is_null($filename)) :
46 25 $this->filename = __FILE__;
47 26 else :
48 27 $this->filename = $filename;
49 28 endif;
@@ -48,43 +27,22 @@
48 27 $this->filename = $filename;
49 28 endif;
50 29 } /* FeedWordPressSyndicationPage constructor */
51 30
52 - /**
53 - * Stub function to comply with parent class.
54 - *
55 - * @return bool Always returns FALSE in this class.
56 - */
57 - function has_link()
58 - {
59 - return false;
60 - } /* FeedWordPressSyndicationPage::has_link() */
31 + function has_link () { return false; }
61 32
62 - /** @var array|null List of sources which gets initialised by $this->sources('Y') if it's still NULL */
63 33 var $_sources = NULL;
64 34
65 - /**
66 - * Builds _sources (list of visible or invisible links to sources of syndicated links)
67 - * or returns existing _sources if it's already built.
68 - *
69 - * @param string $visibility Unknown flag which toggles source visibility
70 - *
71 - * @return array Constructed list of visible/invisible sources
72 - *
73 - * @uses FeedWordPress::syndicated_links()
74 - *
75 - */
76 - function sources( $visibility = 'Y' )
77 - {
78 - if ( is_null( $this->_sources) ) :
79 - $links = FeedWordPress::syndicated_links( array( "hide_invisible" => false ) );
80 - $this->_sources = array( "Y" => array(), "N" => array() );
81 - foreach ( $links as $link ) :
35 + function sources ($visibility = 'Y') {
36 + if (is_null($this->_sources)) :
37 + $links = FeedWordPress::syndicated_links(array("hide_invisible" => false));
38 + $this->_sources = array("Y" => array(), "N" => array());
39 + foreach ($links as $link) :
82 40 $this->_sources[$link->link_visible][] = $link;
83 41 endforeach;
84 42 endif;
85 43 $ret = (
86 - array_key_exists( $visibility, $this->_sources )
44 + array_key_exists($visibility, $this->_sources)
87 45 ? $this->_sources[$visibility]
88 46 : $this->_sources
89 47 );
90 48 return $ret;
@@ -89,117 +47,34 @@
89 47 );
90 48 return $ret;
91 49 } /* FeedWordPressSyndicationPage::sources() */
92 50
93 - /**
94 - * Toggles source visibility, using the side-effect of pseudo-getter $this->sources(...) method-
95 - *
96 - * @return string
97 - *
98 - * @uses FeedWordPress::param()
99 - */
100 - function visibility_toggle()
101 - {
102 - $sources = $this->sources( '*' ); // return value unnecessary, it seems the code is just using the side-effect of initialising $this->_sources if it's uninitialised. (gwyneth 20230916)
51 + function visibility_toggle () {
52 + $sources = $this->sources('*');
103 53
104 54 $defaultVisibility = 'Y';
105 - if ( ( count( $this->sources( 'N' ) ) > 0 )
106 - and ( count( $this->sources( 'Y' ) ) == 0 ) ) :
55 + if ((count($this->sources('N')) > 0)
56 + and (count($this->sources('Y'))==0)) :
107 57 $defaultVisibility = 'N';
108 58 endif;
109 59
110 - // this may be output into HTML, and it should really only ever be Y or N...
111 - $sVisibility = FeedWordPress::param( 'visibility', 'REQUEST', $defaultVisibility );
60 + $visibility = (
61 + isset($_REQUEST['visibility'])
62 + ? $_REQUEST['visibility']
63 + : $defaultVisibility
64 + );
112 65
113 - // Ensure $sVisibility is treated as a string
114 - $sVisibility = (string) $sVisibility;
115 -
116 - // Apply preg_replace to remove unwanted characters
117 - $visibility = preg_replace('/[^YyNn]+/', '', $sVisibility);
118 -
119 - // If preg_replace fails or returns null, ensure $visibility is an empty string
120 - $visibility = $visibility !== null ? $visibility : '';
121 -
122 - return ( strlen( $visibility ) > 0 ? $visibility : $defaultVisibility );
66 + return $visibility;
123 67 } /* FeedWordPressSyndicationPage::visibility_toggle() */
124 68
125 - /**
126 - * Shows source feeds that are currently not visible.
127 - *
128 - * @return string
129 - */
130 - function show_inactive()
131 - {
132 - return ( 'N' == $this->visibility_toggle() );
69 + function show_inactive () {
70 + return ($this->visibility_toggle() == 'N');
133 71 }
134 72
135 - /**
136 - * sanitize_ids: Protect id numbers from untrusted sources (POST array etc.)
137 - * from possibility of SQLi attacks. Runs everything through an intval filter
138 - * and then for good measure through esc_sql()
139 - *
140 - * @param array $link_ids An array of one or more putative link IDs
141 - * @return array
142 - */
143 - public function sanitize_ids_sql( $link_ids ) {
144 - $link_ids = array_map(
145 - 'esc_sql',
146 - array_map(
147 - 'intval',
148 - $link_ids
149 - )
150 - );
151 - return $link_ids;
152 - } /* FeedWordPressSyndicationPage::sanitize_ids_sql () */
153 -
154 - /**
155 - * requested_link_ids_sql()
156 - *
157 - * @return string An SQL list literal containing the link IDs, sanitized
158 - * and escaped for direct use in MySQL queries.
159 - *
160 - * @uses sanitize_ids_sql()
161 - * @uses sanitize_text_field()
162 - * @uses MyPHP::post()
163 - * @uses MyPHP::request()
164 - * @uses FeedWordPress::post()
165 - */
166 - public function requested_link_ids_sql()
167 - {
168 - // Multiple link IDs passed in link_ids[]=...
169 -
170 - $link_ids = array_map(
171 - 'sanitize_text_field',
172 - (array) MyPHP::request( 'link_ids', array() )
173 - );
174 -
175 - // Or single in link_id=...
176 - if ( ! is_null( MyPHP::request( 'link_id' ) ) ) :
177 - array_push( $link_ids, sanitize_text_field( MyPHP::request( 'link_id' ) ) );
178 - endif;
179 -
180 - // Now use method to sanitize for safe use in MySQL queries.
181 - $link_ids = $this->sanitize_ids_sql( $link_ids );
182 -
183 - // Convert to MySQL list literal.
184 - return "('" . implode( "', '", $link_ids ) . "')";
185 - } /* FeedWordPressSyndicationPage::requested_link_ids_sql () */
186 -
187 - /**
188 - * Returns the list of requested updates.
189 - *
190 - * @return array List of requested updates
191 - *
192 - * @uses MyPHP::post()
193 - * @uses MyPHP::request()
194 - * @uses FeedWordPress::post()
195 - * @uses FeedWordPressDiagnostic::critical_bug()
196 - */
197 - function updates_requested()
198 - {
73 + function updates_requested () {
199 74 global $wpdb;
200 75
201 - if ( FeedWordPress::post( 'update' ) || FeedWordPress::post( 'action' ) || FeedWordPress::post( 'update_uri' ) ) :
76 + if (isset($_POST['update']) or isset($_POST['action']) or isset($_POST['update_uri'])) :
202 77 // Only do things with side-effects for HTTP POST or command line
203 78 $fwp_update_invoke = 'post';
204 79 else :
205 80 $fwp_update_invoke = 'get';
@@ -205,37 +80,31 @@
205 80 $fwp_update_invoke = 'get';
206 81 endif;
207 82
208 83 $update_set = array();
209 - if ( $fwp_update_invoke != 'get' ) :
210 - if ( is_array( MyPHP::post( 'link_ids' ) )
211 - and ( MyPHP::post( 'action' ) == FWP_UPDATE_CHECKED ) ) :
212 - // Get single link ID or multiple link IDs from REQUEST parameters
213 - // if available. Sanitize values for MySQL.
214 - $link_list = $this->requested_link_ids_sql();
215 -
216 - // $link_list has previously been sanitized for html by self::requested_link_ids_sql
84 + if ($fwp_update_invoke != 'get') :
85 + if (is_array(FeedWordPress::post('link_ids'))
86 + and (FeedWordPress::post('action')==FWP_UPDATE_CHECKED)) :
217 87 $targets = $wpdb->get_results("
218 88 SELECT * FROM $wpdb->links
219 - WHERE link_id IN {$link_list}
89 + WHERE link_id IN (".implode(",",$_POST['link_ids']).")
220 90 ");
221 - if ( is_array( $targets ) ) :
91 + if (is_array($targets)) :
222 92 foreach ($targets as $target) :
223 93 $update_set[] = $target->link_rss;
224 94 endforeach;
225 95 else : // This should never happen
226 - FeedWordPressDiagnostic::critical_bug( 'fwp_syndication_manage_page::targets', $targets, __LINE__, __FILE__ );
96 + FeedWordPress::critical_bug('fwp_syndication_manage_page::targets', $targets, __LINE__, __FILE__);
227 97 endif;
228 - elseif ( !is_null( FeedWordPress::post( 'update_uri' ) ) ) :
229 - $targets = FeedWordPress::post( 'update_uri' );
230 - if ( !is_array( $targets ) ) :
231 - $targets = array( $targets );
98 + elseif (!is_null(FeedWordPress::post('update_uri'))) :
99 + $targets = FeedWordPress::post('update_uri');
100 + if (!is_array($targets)) :
101 + $targets = array($targets);
232 102 endif;
233 -
234 - $targets_keys = array_keys( $targets );
235 - $first_key = reset( $targets_keys );
236 - if ( !is_numeric( $first_key) ) : // URLs in keys
237 - $targets = $targets_keys;
103 +
104 + $first = each($targets);
105 + if (!is_numeric($first['key'])) : // URLs in keys
106 + $targets = array_keys($targets);
238 107 endif;
239 108 $update_set = $targets;
240 109 endif;
241 110 endif;
@@ -241,72 +110,25 @@
241 110 endif;
242 111 return $update_set;
243 112 }
244 113
245 - /**
246 - * Cancels the request.
247 - *
248 - * @return bool Success
249 - *
250 - * @uses FeedWordPress::post()
251 - */
252 - public function cancel_requested()
253 - {
254 - $cancel = FeedWordPress::post( 'cancel' );
255 - return ( $cancel === __( FWP_CANCEL_BUTTON ) );
256 - }
114 + function accept_multiadd () {
115 + global $fwp_post;
257 116
258 - /**
259 - * Adds multiple requests.
260 - *
261 - * @return bool Success
262 - *
263 - * @uses FeedWordPress::post()
264 - */
265 - public function multiadd_requested()
266 - {
267 - $multiadd = FeedWordPress::post( 'multiadd' );
268 - return ( $multiadd === FWP_SYNDICATE_NEW );
269 - }
270 -
271 - /**
272 - * Confirms that multiple requests were added.
273 - *
274 - * @return bool Success
275 - *
276 - * @uses FeedWordPress::post()
277 - */
278 - public function multiadd_confirm_requested()
279 - {
280 - $confirm = FeedWordPress::post( 'confirm' );
281 - return ( $confirm === 'multiadd' );
282 - }
283 -
284 - /**
285 - * Accepts multiple requests that were added.
286 - *
287 - * @return bool Always true
288 - *
289 - * @uses FeedWordPress::post()
290 - * @uses FeedWordPress::syndicate_link()
291 - * @uses FeedWordPressCompatibility::validate_http_request()
292 - */
293 - function accept_multiadd()
294 - {
295 - if ( $this->cancel_requested() ) :
117 + if (isset($fwp_post['cancel']) and $fwp_post['cancel']==__(FWP_CANCEL_BUTTON)) :
296 118 return true; // Continue ....
297 119 endif;
298 -
120 +
299 121 // If this is a POST, validate source and user credentials
300 122 FeedWordPressCompatibility::validate_http_request(/*action=*/ 'feedwordpress_feeds', /*capability=*/ 'manage_links');
301 123
302 - $in = FeedWordPress::post( 'multilookup', '' )
303 - . FeedWordPress::post( 'opml_lookup', '' );
304 - if ( $this->multiadd_confirm_requested() ) :
305 - $chex = FeedWordPress::post( 'multilookup' );
124 + $in = (isset($fwp_post['multilookup']) ? $fwp_post['multilookup'] : '')
125 + .(isset($fwp_post['opml_lookup']) ? $fwp_post['opml_lookup'] : '');
126 + if (isset($fwp_post['confirm']) and $fwp_post['confirm']=='multiadd') :
127 + $chex = $fwp_post['multilookup'];
306 128 $added = array(); $errors = array();
307 - foreach ( $chex as $feed ) :
308 - if ( isset( $feed['add'] ) and $feed['add'] == 'yes' ) :
129 + foreach ($chex as $feed) :
130 + if (isset($feed['add']) and $feed['add']=='yes') :
309 131 // Then, add in the URL.
310 132 $link_id = FeedWordPress::syndicate_link(
311 133 $feed['title'],
312 134 $feed['link'],
@@ -311,48 +133,43 @@
311 133 $feed['title'],
312 134 $feed['link'],
313 135 $feed['url']
314 136 );
315 - if ( !empty( $link_id ) and !is_wp_error( $link_id ) ):
316 - $added[] = $link_id;
137 + if ($link_id and !is_wp_error($link_id)):
138 + $added[] = $link_id;
317 139 else :
318 - $errors[] = array( $feed['url'], $link_id );
140 + $errors[] = array($feed['url'], $link_id);
319 141 endif;
320 142 endif;
321 143 endforeach;
322 -
144 +
323 145 print "<div class='updated'>\n";
324 - print "<p>Added " . count( $added ) . " new syndicated sources.</p>";
325 - if ( count( $errors ) > 0 ) :
146 + print "<p>Added ".count($added)." new syndicated sources.</p>";
147 + if (count($errors) > 0) :
326 148 print "<p>FeedWordPress encountered errors trying to add the following sources:</p>
327 149 <ul>\n";
328 150 foreach ($errors as $err) :
329 151 $url = $err[0];
330 - $short = feedwordpress_display_url($url);
331 -
332 - printf(
333 - '<li><a href="%s">%s</a>',
334 - esc_url( $url ),
335 - esc_html( $short )
336 - );
337 -
338 - if ( is_wp_error( $err[1] ) ) :
152 + $short = esc_html(feedwordpress_display_url($url));
153 + $url = esc_html($url);
154 + $wp = $err[1];
155 + if (is_wp_error($err[1])) :
339 156 $error = $err[1];
340 - printf( ' (<code>%s</code>)', esc_html( $error->get_error_messages() ) );
157 + $mesg = " (<code>".$error->get_error_messages()."</code>)";
158 + else :
159 + $mesg = '';
341 160 endif;
342 -
343 - print "</li>\n";
344 -
161 + print "<li><a href='$url'>$short</a>$mesg</li>\n";
345 162 endforeach;
346 163 print "</ul>\n";
347 164 endif;
348 165 print "</div>\n";
349 166
350 - elseif ( is_array( $in ) or strlen( $in ) > 0 ) :
167 + elseif (is_array($in) or strlen($in) > 0) :
351 168 add_meta_box(
352 169 /*id=*/ 'feedwordpress_multiadd_box',
353 - /*title=*/ __( 'Add Feeds' ),
354 - /*callback=*/ array( $this, 'multiadd_box' ),
170 + /*title=*/ __('Add Feeds'),
171 + /*callback=*/ array($this, 'multiadd_box'),
355 172 /*page=*/ $this->meta_box_context(),
356 173 /*context =*/ $this->meta_box_context()
357 174 );
358 175 endif;
@@ -357,79 +174,54 @@
357 174 );
358 175 endif;
359 176 return true; // Continue...
360 177 }
178 +
179 + function display_multiadd_line ($line) {
180 + $short_feed = esc_html(feedwordpress_display_url($line['feed']));
181 + $feed = esc_html($line['feed']);
182 + $link = esc_html($line['link']);
183 + $title = esc_html($line['title']);
184 + $checked = $line['checked'];
185 + $i = esc_html($line['i']);
186 +
187 + print "<li><label><input type='checkbox' name='multilookup[$i][add]' value='yes' $checked />
188 + $title</label> &middot; <a href='$feed'>$short_feed</a>";
361 189
362 - /**
363 - * Emits HTML for multiple added lines.
364 - *
365 - * @param array $line Line item to be displayed.
366 - */
367 - function display_multiadd_line( $line )
368 - {
369 - $short_feed = feedwordpress_display_url( $line['feed'] );
370 - $feed = $line['feed'];
371 - $link = $line['link'];
372 - $title = $line['title'];
373 - $i = $line['i'];
374 -
375 - print "<li><label><input type='checkbox' name='multilookup[" . esc_attr( $i ) . "][add]' value='yes'";
376 - if ( strlen( $line['checked'] ) > 0 ) :
377 - print ' checked="checked" ';
190 + if (isset($line['extra'])) :
191 + print " &middot; ".esc_html($line['extra']);
378 192 endif;
379 - print "/> " . esc_html( $title ) . "</label> &middot; <a href='"
380 - . esc_url($feed) . "'>" . esc_html( $short_feed ) . "</a>";
381 -
382 - if ( isset( $line['extra']) ) :
383 - print " &middot; " . esc_html( $line['extra'] );
384 - endif;
385 -
386 - print
387 - "<input type='hidden' name='multilookup[" . esc_attr( $i ) . "][url]' value='" . esc_attr( $feed ) . "' />
388 - <input type='hidden' name='multilookup[" . esc_attr( $i ) . "][link]' value='" . esc_attr( $link ) . "' />
389 - <input type='hidden' name='multilookup[" . esc_attr( $i ) . "][title]' value='" . esc_attr( $title ) . "' />
390 - </li>\n";
391 -
193 +
194 + print "<input type='hidden' name='multilookup[$i][url]' value='$feed' />
195 + <input type='hidden' name='multilookup[$i][link]' value='$link' />
196 + <input type='hidden' name='multilookup[$i][title]' value='$title' />
197 + </li>\n";
198 +
392 199 flush();
393 200 }
394 201
395 - /**
396 - * Emits HTML for the box that allows adding multiple sources.
397 - *
398 - * @param int $page Unknown and unused.
399 - * @param string|null $box Unknown and unused.
400 - *
401 - * @return bool Always true
402 - *
403 - * @uses file_get_contents()
404 - * @uses FeedFinder
405 - * @uses FeedWordPress::fetch()
406 - * @uses FeedWordPress::post()
407 - * @uses FeedWordPressCompatibility::stamp_nonce()
408 - */
409 - function multiadd_box($page, $box = NULL)
410 - {
202 + function multiadd_box ($page, $box = NULL) {
203 + global $fwp_post;
204 +
411 205 $localData = NULL;
412 206
413 - if ( isset( $_FILES['opml_upload']['name'] )
414 - and ( strlen( $_FILES['opml_upload']['name'] ) > 0 ) ) :
207 + if (isset($_FILES['opml_upload']['name']) and
208 + (strlen($_FILES['opml_upload']['name']) > 0)) :
415 209 $in = 'tag:localhost';
416 -
417 - /*FIXME: check whether $_FILES['opml_upload']['error'] === UPLOAD_ERR_OK or not...*/
418 - $localData = file_get_contents( $_FILES['opml_upload']['tmp_name'] );
210 + $localData = file_get_contents($_FILES['opml_upload']['tmp_name']);
419 211 $merge_all = true;
420 - elseif ( ! is_null( FeedWordPress::post( 'multilookup' ) ) ) :
421 - $in = FeedWordPress::post( 'multilookup' );
212 + elseif (isset($fwp_post['multilookup'])) :
213 + $in = $fwp_post['multilookup'];
422 214 $merge_all = false;
423 - elseif ( ! is_null( FeedWordPress::post( 'opml_lookup' ) ) ) :
424 - $in = FeedWordPress::post( 'opml_lookup' );
215 + elseif (isset($fwp_post['opml_lookup'])) :
216 + $in = $fwp_post['opml_lookup'];
425 217 $merge_all = true;
426 218 else :
427 219 $in = '';
428 220 $merge_all = false;
429 221 endif;
430 -
431 - if ( strlen( $in ) > 0 ) :
222 +
223 + if (strlen($in) > 0) :
432 224 $lines = preg_split(
433 225 "/\s+/",
434 226 $in,
435 227 /*no limit soldier*/ -1,
@@ -437,42 +229,41 @@
437 229 );
438 230
439 231 $i = 0;
440 232 ?>
441 - <!-- Page: <? echo $page; ?> Box: <? echo $box ?: '(empty)'; ?> -->
442 - <form id="multiadd-form" action="<?php print esc_attr( $this->form_action() ); ?>" method="post">
443 - <div><?php FeedWordPressCompatibility::stamp_nonce( 'feedwordpress_feeds' ); ?>
444 - <input type="hidden" name="multiadd" value="<?php print esc_attr( FWP_SYNDICATE_NEW ); ?>" />
233 + <form id="multiadd-form" action="<?php print $this->form_action(); ?>" method="post">
234 + <div><?php FeedWordPressCompatibility::stamp_nonce('feedwordpress_feeds'); ?>
235 + <input type="hidden" name="multiadd" value="<?php print FWP_SYNDICATE_NEW; ?>" />
445 236 <input type="hidden" name="confirm" value="multiadd" />
446 237
447 - <input type="hidden" name="multiadd" value="<?php print esc_attr( FWP_SYNDICATE_NEW ); ?>" />
238 + <input type="hidden" name="multiadd" value="<?php print FWP_SYNDICATE_NEW; ?>" />
448 239 <input type="hidden" name="confirm" value="multiadd" /></div>
449 240
450 241 <div id="multiadd-status">
451 - <p><img src="<?php print esc_url( admin_url( 'images/wpspin_light.gif' ) ); ?>" alt="" />
452 - <?php esc_html_e( 'Looking up feed information...' ); ?></p>
242 + <p><img src="<?php print esc_url ( admin_url( 'images/wpspin_light.gif' ) ); ?>" alt="" />
243 + Looking up feed information...</p>
453 244 </div>
454 245
455 246 <div id="multiadd-buttons">
456 - <input type="submit" class="button" name="cancel" value="<?php esc_html_e( FWP_CANCEL_BUTTON ); ?>" />
457 - <input type="submit" class="button-primary" value="<?php esc_html_e( 'Subscribe to selected sources →' ); ?>" />
247 + <input type="submit" class="button" name="cancel" value="<?php _e(FWP_CANCEL_BUTTON); ?>" />
248 + <input type="submit" class="button-primary" value="<?php print _e('Subscribe to selected sources →'); ?>" />
458 249 </div>
459 -
460 - <p><?php esc_html_e( 'Here are the feeds that FeedWordPress has discovered from the addresses that you provided. To opt out of a subscription, unmark the checkbox next to the feed.' ); ?></p>
461 -
250 +
251 + <p><?php _e('Here are the feeds that FeedWordPress has discovered from the addresses that you provided. To opt out of a subscription, unmark the checkbox next to the feed.'); ?></p>
252 +
462 253 <?php
463 254 print "<ul id=\"multiadd-list\">\n"; flush();
464 - foreach ( $lines as $line ) :
465 - $url = trim( $line );
466 - if ( strlen( $url ) > 0) :
255 + foreach ($lines as $line) :
256 + $url = trim($line);
257 + if (strlen($url) > 0) :
467 258 // First, use FeedFinder to check the URL.
468 - if ( is_null( $localData ) ) :
469 - $finder = new FeedFinder( $url, /*verify=*/ false, /*fallbacks=*/ 1 );
259 + if (is_null($localData)) :
260 + $finder = new FeedFinder($url, /*verify=*/ false, /*fallbacks=*/ 1);
470 261 else :
471 - $finder = new FeedFinder( 'tag:localhost', /*verify=*/ false, /*fallbacks=*/ 1 );
472 - $finder->upload_data( $localData );
262 + $finder = new FeedFinder('tag:localhost', /*verify=*/ false, /*fallbacks=*/ 1);
263 + $finder->upload_data($localData);
473 264 endif;
474 -
265 +
475 266 $feeds = array_values(
476 267 array_unique(
477 268 $finder->find()
478 269 )
@@ -478,14 +269,20 @@
478 269 )
479 270 );
480 271
481 272 $found = false;
482 - if ( count( $feeds ) > 0 ) :
483 - foreach ( $feeds as $feed ) :
484 - $pie = FeedWordPress::fetch( $feed );
485 - if ( !is_wp_error( $pie ) ) :
273 + if (count($feeds) > 0) :
274 + foreach ($feeds as $feed) :
275 + $pie = FeedWordPress::fetch($feed);
276 + if (!is_wp_error($pie)) :
486 277 $found = true;
487 -
278 +
279 + $short_feed = esc_html(feedwordpress_display_url($feed));
280 + $feed = esc_html($feed);
281 + $title = esc_html($pie->get_title());
282 + $checked = ' checked="checked"';
283 + $link = esc_html($pie->get_link());
284 +
488 285 $this->display_multiadd_line(array(
489 286 'feed' => $feed,
490 287 'title' => $pie->get_title(),
491 288 'link' => $pie->get_link(),
@@ -491,27 +288,27 @@
491 288 'link' => $pie->get_link(),
492 289 'checked' => ' checked="checked"',
493 290 'i' => $i,
494 291 ));
495 -
292 +
496 293 $i++; // Increment field counter
497 -
498 - if ( ! $merge_all ) : // Break out after first find
294 +
295 + if (!$merge_all) : // Break out after first find
499 296 break;
500 - endif;
297 + endif;
501 298 endif;
502 299 endforeach;
503 300 endif;
504 -
505 - if ( ! $found ) :
506 - $this->display_multiadd_line( array(
301 +
302 + if (!$found) :
303 + $this->display_multiadd_line(array(
507 304 'feed' => $url,
508 - 'title' => feedwordpress_display_url( $url ),
509 - 'extra' => __(" [FeedWordPress couldn't detect any feeds for this URL.]" ),
305 + 'title' => feedwordpress_display_url($url),
306 + 'extra' => " [FeedWordPress couldn't detect any feeds for this URL.]",
510 307 'link' => NULL,
511 308 'checked' => '',
512 309 'i' => $i,
513 - ) );
310 + ));
514 311 $i++; // Increment field counter
515 312 endif;
516 313 endif;
517 314 endforeach;
@@ -517,71 +314,67 @@
517 314 endforeach;
518 315 print "</ul>\n";
519 316 ?>
520 317 </form>
521 -
318 +
522 319 <script type="text/javascript">
523 - jQuery( document ).ready( function () {
320 + jQuery(document).ready( function () {
524 321 // Hide it now that we're done.
525 - jQuery( '#multiadd-status' ).fadeOut( 500 /*ms*/ );
322 + jQuery('#multiadd-status').fadeOut(500 /*ms*/);
526 323 } );
527 324 </script>
528 325 <?php
529 326 endif;
530 -
327 +
531 328 $this->_sources = NULL; // Force reload of sources list
532 329 return true; // Continue
533 330 }
534 331
535 - /**
536 - * Displays the main syndication page.
537 - *
538 - * @uses FeedWordPress::needs_upgrade()
539 - * @uses FeedWordPress::param()
540 - */
541 - function display()
542 - {
543 - if ( FeedWordPress::needs_upgrade() ) :
332 + function display () {
333 + global $wpdb;
334 + global $fwp_post;
335 +
336 + if (FeedWordPress::needs_upgrade()) :
544 337 fwp_upgrade_page();
545 338 return;
546 339 endif;
547 -
340 +
341 + ?>
342 + <?php
548 343 $cont = true;
549 344 $dispatcher = array(
550 - "feedfinder" => 'feedfinder_page',
551 - FWP_SYNDICATE_NEW => 'feedfinder_page',
552 - "switchfeed" => 'switchfeed_page',
345 + "feedfinder" => 'fwp_feedfinder_page',
346 + FWP_SYNDICATE_NEW => 'fwp_feedfinder_page',
347 + "switchfeed" => 'fwp_switchfeed_page',
553 348 FWP_UNSUB_CHECKED => 'multidelete_page',
554 349 FWP_DELETE_CHECKED => 'multidelete_page',
555 350 'Unsubscribe' => 'multidelete_page',
556 351 FWP_RESUB_CHECKED => 'multiundelete_page',
557 352 );
558 -
559 - $act = FeedWordPress::param( 'action' );
560 - if ( isset( $dispatcher[ $act ] ) ) :
561 - $method = $dispatcher[ $act ];
562 - if ( method_exists( $this, $method ) ) :
353 + if (isset($_REQUEST['action']) and isset($dispatcher[$_REQUEST['action']])) :
354 + $method = $dispatcher[$_REQUEST['action']];
355 + if (method_exists($this, $method)) :
563 356 $cont = $this->{$method}();
564 357 else :
565 - $cont = call_user_func( $method );
358 + $cont = call_user_func($method);
566 359 endif;
567 - elseif ( $this->multiadd_requested() ) :
568 - $cont = $this->accept_multiadd();
360 + elseif (isset($fwp_post['multiadd']) and $fwp_post['multiadd']==FWP_SYNDICATE_NEW) :
361 + $cont = $this->accept_multiadd($fwp_post);
569 362 endif;
363 +
364 + if ($cont):
365 + $links = $this->sources('Y');
366 + $potential_updates = (!$this->show_inactive() and (count($this->sources('Y')) > 0));
570 367
571 - if ( $cont ) :
572 - $links = $this->sources( 'Y' ); // side-effect of getting _sources instantiated... (gwyneth 20230916)
573 - $potential_updates = ( ! $this->show_inactive() and ( count( $this->sources( 'Y' ) ) > 0 ) );
574 -
575 - $this->open_sheet( 'Syndicated Sites' );
368 + $this->open_sheet('Syndicated Sites');
576 369 ?>
577 370 <div id="post-body">
578 371 <?php
579 - if ( $potential_updates
580 - or ( count( $this->updates_requested() ) > 0 ) ) :
372 + if ($potential_updates
373 + or (count($this->updates_requested()) > 0)) :
581 374 add_meta_box(
582 375 /*id=*/ 'feedwordpress_update_box',
583 - /*title=*/ __( 'Update feeds now' ),
376 + /*title=*/ __('Update feeds now'),
584 377 /*callback=*/ 'fwp_syndication_manage_page_update_box',
585 378 /*page=*/ $this->meta_box_context(),
586 379 /*context =*/ $this->meta_box_context()
587 380 );
@@ -587,25 +380,25 @@
587 380 );
588 381 endif;
589 382 add_meta_box(
590 383 /*id=*/ 'feedwordpress_feeds_box',
591 - /*title=*/ __( 'Syndicated sources' ),
592 - /*callback=*/ array( $this, 'syndicated_sources_box' ),
384 + /*title=*/ __('Syndicated sources'),
385 + /*callback=*/ array(&$this, 'syndicated_sources_box'),
593 386 /*page=*/ $this->meta_box_context(),
594 387 /*context =*/ $this->meta_box_context()
595 388 );
596 389
597 - do_action( 'feedwordpress_admin_page_syndication_meta_boxes', $this );
390 + do_action('feedwordpress_admin_page_syndication_meta_boxes', $this);
598 391 ?>
599 - <div class="metabox-holder">
392 + <div class="metabox-holder">
600 393 <?php
601 - do_meta_boxes( $this->meta_box_context(), $this->meta_box_context(), $this );
394 + fwp_do_meta_boxes($this->meta_box_context(), $this->meta_box_context(), $this);
602 395 ?>
603 396 </div> <!-- class="metabox-holder" -->
604 397 </div> <!-- id="post-body" -->
605 -
606 - <?php $this->close_sheet( /*dispatch=*/ NULL ); ?>
607 -
398 +
399 + <?php $this->close_sheet(/*dispatch=*/ NULL); ?>
400 +
608 401 <div style="display: none">
609 402 <div id="tags-input"></div> <!-- avoid JS error from WP 2.5 bug -->
610 403 </div>
611 404 <?php
@@ -611,44 +404,39 @@
611 404 <?php
612 405 endif;
613 406 } /* FeedWordPressSyndicationPage::display () */
614 407
615 - /**
616 - * Displays the dashboard box.
617 - *
618 - * @param int $page Unknown usage.
619 - * @param array|null $box Unknown usage.
620 - */
621 - function dashboard_box($page, $box = NULL)
622 - {
623 - $links = FeedWordPress::syndicated_links( array( "hide_invisible" => false ) ); // what is $links for? (gwyneth 20230916)
624 - $sources = $this->sources( '*' ); // uses side-effects to initialise _sources (gwyneth 20230916)
408 + function dashboard_box ($page, $box = NULL) {
409 + global $fwp_path;
625 410
626 - /** @var string what is this used for? (gwyneth 20230915) */
627 - $visibility = 'Y';
628 - $hrefPrefix = $this->form_action();
629 - $activeHref = $hrefPrefix . '&visibility=' . $visibility;
630 - $inactiveHref = $hrefPrefix . '&visibility=N';
411 + $links = FeedWordPress::syndicated_links(array("hide_invisible" => false));
412 + $sources = $this->sources('*');
631 413
632 - $lastUpdate = get_option( 'feedwordpress_last_update_all', NULL );
633 - $automatic_updates = get_option( 'feedwordpress_automatic_updates', NULL );
634 -
635 - /** @var string default value set here, to avoid having a else clause, but also to init the variable in the right scope. (gwyneth 20230915) */
636 - $update_setting = __( 'using a cron job or manual check-ins' );
637 - if ( 'init' == $automatic_updates ) :
638 - $update_setting = __( 'automatically before page loads' );
639 - elseif ( 'shutdown' == $automatic_updates ) :
640 - $update_setting = __( 'automatically after page loads' );
414 + $visibility = 'Y';
415 + $hrefPrefix = $this->form_action();
416 + $activeHref = $hrefPrefix.'&visibility=Y';
417 + $inactiveHref = $hrefPrefix.'&visibility=N';
418 +
419 + $lastUpdate = get_option('feedwordpress_last_update_all', NULL);
420 + $automatic_updates = get_option('feedwordpress_automatic_updates', NULL);
421 +
422 + if ('init'==$automatic_updates) :
423 + $update_setting = 'automatically before page loads';
424 + elseif ('shutdown'==$automatic_updates) :
425 + $update_setting = 'automatically after page loads';
426 + else :
427 + $update_setting = 'using a cron job or manual check-ins';
641 428 endif;
429 +
642 430 // Hey ho, let's go...
643 431 ?>
644 - <div style="float: left; background: /* #F5F5F5 */ white; padding-top: 5px; padding-right: 5px;"><a href="<?php print esc_url( $this->form_action() ); ?>"><img src="<?php print esc_url( plugins_url( /* "feedwordpress.png" */ "assets/images/icon.svg", __FILE__ ) ); ?>" width="36px" height="36px" alt="FeedWordPress Logo" /></a></div>
645 - <p class="info" style="margin-bottom: 0px; border-bottom: 1px dotted black;"><?php esc_html_e( 'Managed by' ); ?><a href="<?php print esc_url( FWP_PROJECT_WEBSITE_URL ); ?>">FeedWordPress</a>
646 - <?php print esc_html( FEEDWORDPRESS_VERSION ); ?>.</p>
647 - <?php if ( FEEDWORDPRESS_BLEG ) : ?>
648 - <p class="info" style="margin-top: 0px; font-style: italic; font-size: 75%; color: #666;"><?php esc_html_e( 'If you find this tool useful for your daily work, you can
649 - contribute to ongoing support and development with '); ?>
650 - <a href="<?php print esc_url( FWP_PROJECT_WEBSITE_URL ); ?>donate/"><?php esc_html_e('a modest donation'); ?></a>.</p>
432 + <p class="info" style="margin-bottom: 0px; border-bottom: 1px dotted black;">Managed by <a href="http://feedwordpress.radgeek.com/">FeedWordPress</a>
433 + <?php print FEEDWORDPRESS_VERSION; ?>.</p>
434 + <?php if (FEEDWORDPRESS_BLEG) : ?>
435 + <div style="float: left; background: white; margin-top: 5px; margin-right: 5px;"><a href="<?php print $this->form_action(); ?>"><img src="<?php print esc_html(WP_PLUGIN_URL.'/'.$GLOBALS['fwp_path'].'/feedwordpress.png'); ?>" alt="" /></a></div>
436 + <p class="info" style="margin-top: 0px; font-style: italic; font-size: 75%; color: #666;">If you find this tool useful for your daily work, you can
437 + contribute to ongoing support and development with
438 + <a href="http://feedwordpress.radgeek.com/donate/">a modest donation</a>.</p>
651 439 <br style="clear: left;" />
652 440 <?php endif; ?>
653 441
654 442 <div class="feedwordpress-actions">
@@ -653,32 +441,32 @@
653 441
654 442 <div class="feedwordpress-actions">
655 443 <h4>Updates</h4>
656 444 <ul class="options">
657 - <li><strong><?php esc_html_e( 'Scheduled:' ); ?></strong> <?php print esc_html($update_setting); ?>
658 - (<a href="<?php print esc_url($this->form_action('feeds-page.php')); ?>"><?php esc_html_e( 'change setting' ); ?></a>)</li>
445 + <li><strong>Scheduled:</strong> <?php print $update_setting; ?>
446 + (<a href="<?php print $this->form_action('feeds-page.php'); ?>">change setting</a>)</li>
659 447
660 - <li><?php if ( !is_null($lastUpdate)) : ?>
661 - <strong><?php esc_html_e( 'Last checked:' );?></strong> <?php print esc_html(fwp_time_elapsed($lastUpdate)); ?>
448 + <li><?php if (!is_null($lastUpdate)) : ?>
449 + <strong>Last checked:</strong> <?php print fwp_time_elapsed($lastUpdate); ?>
662 450 <?php else : ?>
663 - <strong><?php esc_html_e( 'Last checked:' );?>&nbsp;</strong><?php esc_html_e( 'none yet' ); ?>
451 + <strong>Last checked:</strong> none yet
664 452 <?php endif; ?> </li>
665 453
666 454 </ul>
667 455 </div>
668 -
456 +
669 457 <div class="feedwordpress-stats">
670 - <h4><?php esc_html_e( 'Subscriptions' ); ?></h4>
458 + <h4>Subscriptions</h4>
671 459 <table>
672 460 <tbody>
673 461 <tr class="first">
674 - <td class="first b b-active"><a href="<?php print esc_url($activeHref); ?>"><?php print esc_html(count($sources['Y'])); ?></a></td>
675 - <td class="t active"><a href="<?php print esc_url($activeHref); ?>"><?php esc_html_e( 'Active' ); ?></a></td>
462 + <td class="first b b-active"><a href="<?php print esc_html($activeHref); ?>"><?php print count($sources['Y']); ?></a></td>
463 + <td class="t active"><a href="<?php print esc_html($activeHref); ?>">Active</a></td>
676 464 </tr>
677 -
465 +
678 466 <tr>
679 - <td class="b b-inactive"><a href="<?php print esc_url($inactiveHref); ?>"><?php print esc_html(count($sources['N'])); ?></a></td>
680 - <td class="t inactive"><a href="<?php print esc_url($inactiveHref); ?>"><?php esc_html_e( 'Inactive' ); ?></a></td>
467 + <td class="b b-inactive"><a href="<?php print esc_html($inactiveHref); ?>"><?php print count($sources['N']); ?></a></td>
468 + <td class="t inactive"><a href="<?php print esc_html($inactiveHref); ?>">Inactive</a></td>
681 469 </tr>
682 470 </table>
683 471 </div>
684 472
@@ -683,45 +471,36 @@
683 471 </div>
684 472
685 473 <div id="add-single-uri">
686 474 <?php if (count($sources['Y']) > 0) : ?>
687 - <form id="check-for-updates" action="<?php print esc_url( $this->form_action() ); ?>" method="POST">
688 - <div class="container"><input type="submit" class="button-primary" name"update" value="<?php print esc_attr(FWP_CHECK_FOR_UPDATES); ?>" />
475 + <form id="check-for-updates" action="<?php print $this->form_action(); ?>" method="POST">
476 + <div class="container"><input type="submit" class="button-primary" name"update" value="<?php print FWP_CHECK_FOR_UPDATES; ?>" />
689 477 <?php FeedWordPressCompatibility::stamp_nonce('feedwordpress_feeds'); ?>
690 478 <input type="hidden" name="update_uri" value="*" /></div>
691 479 </form>
692 480 <?php endif; ?>
693 -
694 - <form id="syndicated-links" action="<?php print esc_url( $this->form_action() ); // TODO: needs to be checked, because it doesn't seem to be defined properly (gwyneth 20230915) ?>" method="post">
695 - <div class="container"><?php FeedWordPressCompatibility::stamp_nonce('feedwordpress_feeds'); ?>
696 - <label for="add-uri">Add:
697 - <input type="text" name="lookup" id="add-uri" placeholder="Source URL"
698 - value="Source URL" style="width: 55%;" /></label>
699 -
700 - <?php FeedWordPressSettingsUI::magic_input_tip_js('add-uri'); ?>
701 - <input type="hidden" name="action" value="<?php print esc_attr( FWP_SYNDICATE_NEW ); ?>" />
702 - <input style="vertical-align: middle;" type="image" src="<?php print esc_url(plugins_url('plus.png', __FILE__)); ?>" alt="<?php print esc_html(FWP_SYNDICATE_NEW); ?>" /></div>
703 - </form>
481 +
482 + <form id="syndicated-links" action="<?php print $hrefPrefix; ?>&amp;visibility=<?php print $visibility; ?>" method="post">
483 + <div class="container"><?php FeedWordPressCompatibility::stamp_nonce('feedwordpress_feeds'); ?>
484 + <label for="add-uri">Add:
485 + <input type="text" name="lookup" id="add-uri" placeholder="Source URL"
486 + value="Source URL" style="width: 55%;" /></label>
487 +
488 + <?php FeedWordPressSettingsUI::magic_input_tip_js('add-uri'); ?>
489 +
490 + <input style="vertical-align: middle;" type="image" src="<?php print WP_PLUGIN_URL.'/'.$fwp_path; ?>/plus.png" alt="<?php print FWP_SYNDICATE_NEW; ?>" name="action" value="<?php print FWP_SYNDICATE_NEW; ?>" /></div>
491 + </form>
704 492 </div> <!-- id="add-single-uri" -->
705 -
493 +
706 494 <br style="clear: both;" />
707 -
495 +
708 496 <?php
709 497 } /* FeedWordPressSyndicationPage::dashboard_box () */
710 -
711 - /**
712 - * One of the status boxes for the FWP dashboard.
713 - *
714 - * @param mixed $page Unused
715 - * @param mixed|null $box Unused
716 - * *
717 - * @uses FeedWordPress::syndicated_links()
718 - * @uses FeedWordPressCompatibility::stamp_nonce()
719 - * @uses FeedWordPressSettingsUI::magic_input_tip_js()
720 - */
498 +
721 499 function syndicated_sources_box ($page, $box = NULL) {
500 + global $fwp_path;
722 501
723 - $links = FeedWordPress::syndicated_links(array("hide_invisible" => false)); // what is $links for? (gwyneth 20230916)
502 + $links = FeedWordPress::syndicated_links(array("hide_invisible" => false));
724 503 $sources = $this->sources('*');
725 504
726 505 $visibility = $this->visibility_toggle();
727 506 $showInactive = $this->show_inactive();
@@ -726,62 +505,58 @@
726 505 $visibility = $this->visibility_toggle();
727 506 $showInactive = $this->show_inactive();
728 507
729 508 $hrefPrefix = $this->form_action();
730 - $formHref = sprintf( '%s&amp;visibility=%s', $hrefPrefix, urlencode($visibility) );
731 509 ?>
732 510 <div><?php FeedWordPressCompatibility::stamp_nonce('feedwordpress_feeds'); ?></div>
733 511 <div class="tablenav">
734 512
735 513 <div id="add-multiple-uri" class="hide-if-js">
736 - <form action="<?php print esc_url( $formHref ); ?>" method="post">
514 + <form action="<?php print $hrefPrefix; ?>&amp;visibility=<?php print $visibility; ?>" method="post">
737 515 <div><?php FeedWordPressCompatibility::stamp_nonce('feedwordpress_feeds'); ?></div>
738 - <h4><?php esc_html_e( 'Add Multiple Sources' ); ?></h4>
739 - <div><?php esc_html_e( 'Enter one feed or website URL per line. If a URL links to a website which provides multiple feeds, FeedWordPress will use the first one listed.' ); ?></div>
516 + <h4>Add Multiple Sources</h4>
517 + <div>Enter one feed or website URL per line. If a URL links to a website which provides multiple feeds, FeedWordPress will use the first one listed.</div>
740 518 <div><textarea name="multilookup" rows="8" cols="60"
741 519 style="vertical-align: top"></textarea></div>
742 520 <div style="border-top: 1px dotted black; padding-top: 10px">
743 - <div class="alignright"><input type="submit" class="button-primary" name="multiadd" value="<?php print esc_attr(FWP_SYNDICATE_NEW); ?>" /></div>
744 - <div class="alignleft"><input type="button" class="button-secondary" name="action" value="<?php print esc_attr(FWP_CANCEL_BUTTON); ?>" id="turn-off-multiple-sources" /></div>
521 + <div class="alignright"><input type="submit" class="button-primary" name="multiadd" value="<?php print FWP_SYNDICATE_NEW; ?>" /></div>
522 + <div class="alignleft"><input type="button" class="button-secondary" name="action" value="<?php print FWP_CANCEL_BUTTON; ?>" id="turn-off-multiple-sources" /></div>
745 523 </div>
746 524 </form>
747 525 </div> <!-- id="add-multiple-uri" -->
748 526
749 527 <div id="upload-opml" style="float: right" class="hide-if-js">
750 - <h4><?php esc_html_e( 'Import source list' ); ?></h4>
751 - <p><?php esc_html_e( 'You can import a list of sources in OPML format, either by providing
528 + <h4>Import source list</h4>
529 + <p>You can import a list of sources in OPML format, either by providing
752 530 a URL for the OPML document, or by uploading a copy from your
753 - computer.' ); ?></p>
754 -
755 - <form enctype="multipart/form-data" action="<?php print esc_url( $formHref ); ?>" method="post">
531 + computer.</p>
532 +
533 + <form enctype="multipart/form-data" action="<?php print $hrefPrefix; ?>&amp;visibility=<?php print $visibility; ?>" method="post">
756 534 <div><?php FeedWordPressCompatibility::stamp_nonce('feedwordpress_feeds'); ?><input type="hidden" name="MAX_FILE_SIZE" value="100000" /></div>
757 - <div style="clear: both"><label for="opml-lookup" style="float: left; width: 8.0em; margin-top: 5px;"><?php esc_html_e( 'From URL:' ); ?></label> <input type="text" id="opml-lookup" name="opml_lookup" value="OPML document" /></div>
758 - <div style="clear: both"><label for="opml-upload" style="float: left; width: 8.0em; margin-top: 5px;"><?php esc_html_e( 'From file:' ); ?></label> <input type="file" id="opml-upload" name="opml_upload" /></div>
759 -
535 + <div style="clear: both"><label for="opml-lookup" style="float: left; width: 8.0em; margin-top: 5px;">From URL:</label> <input type="text" id="opml-lookup" name="opml_lookup" value="OPML document" /></div>
536 + <div style="clear: both"><label for="opml-upload" style="float: left; width: 8.0em; margin-top: 5px;">From file:</label> <input type="file" id="opml-upload" name="opml_upload" /></div>
537 +
760 538 <div style="border-top: 1px dotted black; padding-top: 10px">
761 - <div class="alignright"><input type="submit" class="button-primary" name="action" value="<?php print esc_html(FWP_SYNDICATE_NEW); ?>" /></div>
762 - <div class="alignleft"><input type="button" class="button-secondary" name="action" value="<?php print esc_html(FWP_CANCEL_BUTTON); ?>" id="turn-off-opml-upload" /></div>
539 + <div class="alignright"><input type="submit" class="button-primary" name="action" value="<?php print FWP_SYNDICATE_NEW; ?>" /></div>
540 + <div class="alignleft"><input type="button" class="button-secondary" name="action" value="<?php print FWP_CANCEL_BUTTON; ?>" id="turn-off-opml-upload" /></div>
763 541 </div>
764 542 </form>
765 543 </div> <!-- id="upload-opml" -->
766 -
544 +
767 545 <div id="add-single-uri" class="alignright">
768 - <form id="syndicated-links" action="<?php print esc_url( $formHref ); ?>" method="post">
546 + <form id="syndicated-links" action="<?php print $hrefPrefix; ?>&amp;visibility=<?php print $visibility; ?>" method="post">
769 547 <div><?php FeedWordPressCompatibility::stamp_nonce('feedwordpress_feeds'); ?></div>
770 548 <ul class="subsubsub">
771 - <li><label for="add-uri"><?php esc_html_e( 'New source:' ); ?></label>
549 + <li><label for="add-uri">New source:</label>
772 550 <input type="text" name="lookup" id="add-uri" value="Website or feed URI" />
773 -
551 +
774 552 <?php FeedWordPressSettingsUI::magic_input_tip_js('add-uri'); FeedWordPressSettingsUI::magic_input_tip_js('opml-lookup'); ?>
775 -
553 +
776 554 <input type="hidden" name="action" value="feedfinder" />
777 - <input type="submit" class="button-secondary" name="action" value="<?php print esc_html( FWP_SYNDICATE_NEW ); ?>" />
778 - <div style="text-align: right; margin-right: 2.0em">
779 - <!-- Using WP Dashicon plus and down-arrow symbols below (gwyneth 20210717) -->
780 - <a id="turn-on-multiple-sources" href="#add-multiple-uri"><span class="dashicons feedwordpress-dashicons dashicons-list-view"></span>&nbsp;<?php esc_html_e( 'add multiple' ); ?></a>
781 - <span class="screen-reader-text"> or </span>
782 - <a id="turn-on-opml-upload" href="#upload-opml"><span class="dashicons feedwordpress-dashicons dashicons-upload"></span>&nbsp;<?php esc_html_e( 'import source list' ); ?></a>
783 - </div>
555 + <input type="submit" class="button-secondary" name="action" value="<?php print FWP_SYNDICATE_NEW; ?>" />
556 + <div style="text-align: right; margin-right: 2.0em"><a id="turn-on-multiple-sources" href="#add-multiple-uri"><img style="vertical-align: middle" src="<?php print WP_PLUGIN_URL.'/'.$fwp_path; ?>/down.png" alt="" /> add multiple</a>
557 + <span class="screen-reader-text"> or </span>
558 + <a id="turn-on-opml-upload" href="#upload-opml"><img src="<?php print WP_PLUGIN_URL.'/'.$fwp_path; ?>/plus.png" alt="" style="vertical-align: middle" /> import source list</a></div>
784 559 </li>
785 560 </ul>
786 561 </form>
787 562 </div> <!-- class="alignright" -->
@@ -788,22 +563,22 @@
788 563
789 564 <div class="alignleft">
790 565 <?php
791 566 if (count($sources[$visibility]) > 0) :
792 - $this->manage_page_links_subsubsub($sources, $showInactive);
567 + fwp_syndication_manage_page_links_subsubsub($sources, $showInactive);
793 568 endif;
794 569 ?>
795 570 </div> <!-- class="alignleft" -->
796 571
797 572 </div> <!-- class="tablenav" -->
798 -
799 - <form id="syndicated-links" action="<?php print esc_url( $formHref ); ?>" method="post">
573 +
574 + <form id="syndicated-links" action="<?php print $hrefPrefix; ?>&amp;visibility=<?php print $visibility; ?>" method="post">
800 575 <div><?php FeedWordPressCompatibility::stamp_nonce('feedwordpress_feeds'); ?></div>
801 -
576 +
802 577 <?php if ($showInactive) : ?>
803 578 <div style="clear: right" class="alignright">
804 - <p style="font-size: smaller; font-style: italic"><?php esc_html_e( 'FeedWordPress used to syndicate
805 - posts from these sources, but you have unsubscribed from them.' ); ?></p>
579 + <p style="font-size: smaller; font-style: italic">FeedWordPress used to syndicate
580 + posts from these sources, but you have unsubscribed from them.</p>
806 581 </div>
807 582 <?php
808 583 endif;
809 584 ?>
@@ -811,11 +586,13 @@
811 586 <?php
812 587 if (count($sources[$visibility]) > 0) :
813 588 $this->display_button_bar($showInactive);
814 589 else :
815 - $this->manage_page_links_subsubsub($sources, $showInactive);
590 + ?>
591 + <?php fwp_syndication_manage_page_links_subsubsub($sources, $showInactive); ?>
592 + <?php
816 593 endif;
817 -
594 +
818 595 fwp_syndication_manage_page_links_table_rows($sources[$visibility], $this, $visibility);
819 596 $this->display_button_bar($showInactive);
820 597 ?>
821 598 </form>
@@ -820,177 +597,118 @@
820 597 ?>
821 598 </form>
822 599 <?php
823 600 } /* FeedWordPressSyndicationPage::syndicated_sources_box() */
824 -
825 - /**
826 - * Handles subpages on syndication dashboard (showing active/inactive feeds).
827 - *
828 - * @param array $sources List of feed URLs (active or inactive).
829 - * @param bool $showInactive True if we're showing the inactive feeds.
830 - *
831 - */
832 - function manage_page_links_subsubsub( $sources, $showInactive ) {
833 - $hrefPrefix = $this->admin_page_href( "syndication.php" );
834 - $hrefY = sprintf( "%s&amp;visibility=%s", $hrefPrefix, "Y" );
835 - $hrefN = sprintf( "%s&amp;visibility=%s", $hrefPrefix, "N" );
836 -?>
837 - <ul class="subsubsub">
838 - <li><a <?php if ( ! $showInactive ) : ?>class="current" <?php endif; ?>href="<?php print esc_url( $hrefY ); ?>"><?php esc_html_e( 'Subscribed' ); ?>
839 - <span class="count">(<?php print count( $sources['Y'] ); ?>)</span></a></li>
840 - <?php if ( $showInactive or ( count( $sources['N'] ) > 0 ) ) : ?>
841 - <li><a <?php if ( $showInactive ) : ?>class="current" <?php endif; ?>href="<?php print esc_url( $hrefN ); ?>"><?php esc_html_e( 'Inactive' ); ?></a>
842 - <span class="count">(<?php print count( $sources['N'] ); ?>)</span></a></li>
843 - <?php endif; ?>
844 -
845 - </ul> <!-- class="subsubsub" -->
846 -<?php
847 - } /* FeedWordPressSyndicationPage::manage_page_links_subsubsub() */
848 -
849 - /**
850 - * Displays the button bar showing options per feed.
851 - *
852 - * @param bool $showInactive True if we're showing inactive feeds.
853 - */
854 - function display_button_bar( $showInactive ) {
601 +
602 + function display_button_bar ($showInactive) {
855 603 ?>
856 604 <div style="clear: left" class="alignleft">
857 - <?php if ( $showInactive ) : ?>
858 - <input class="button-secondary" type="submit" name="action" value="<?php print esc_attr( FWP_RESUB_CHECKED ); ?>" />
859 - <input class="button-secondary" type="submit" name="action" value="<?php print esc_attr( FWP_DELETE_CHECKED ); ?>" />
605 + <?php if ($showInactive) : ?>
606 + <input class="button-secondary" type="submit" name="action" value="<?php print FWP_RESUB_CHECKED; ?>" />
607 + <input class="button-secondary" type="submit" name="action" value="<?php print FWP_DELETE_CHECKED; ?>" />
860 608 <?php else : ?>
861 - <input class="button-secondary" type="submit" name="action" value="<?php print esc_attr( FWP_UPDATE_CHECKED ); ?>" />
862 - <input class="button-secondary delete" type="submit" name="action" value="<?php print esc_attr( FWP_UNSUB_CHECKED ); ?>" />
609 + <input class="button-secondary" type="submit" name="action" value="<?php print FWP_UPDATE_CHECKED; ?>" />
610 + <input class="button-secondary delete" type="submit" name="action" value="<?php print FWP_UNSUB_CHECKED; ?>" />
863 611 <?php endif ; ?>
864 612 </div> <!-- class="alignleft" -->
865 -
613 +
866 614 <br class="clear" />
867 615 <?php
868 616 }
869 -
870 - /**
871 - * Displays page to thank user for donation.
872 - *
873 - * @param mixed $page Unused.
874 - * @param mixed|null $box Unused.
875 - */
876 - function bleg_thanks( $page, $box = NULL ) {
617 +
618 + function bleg_thanks ($page, $box = NULL) {
877 619 ?>
878 620 <div class="donation-thanks">
879 - <h4><?php esc_html_e( 'Thank you!' ); ?></h4>
880 - <p><strong><?php esc_html_e( 'Thank you' ); ?></strong> <?php esc_html_e( ' for your contribution to '); ?>
881 - <a href="<?php print esc_url( FWP_PROJECT_WEBSITE_URL ); ?>"><?php esc_html_e( 'FeedWordPress development' ); ?></a>.
882 - <?php esc_html_e( 'Your generous gifts make ongoing support and development for
883 - FeedWordPress possible.' ); ?></p>
884 - <p><?php esc_html_e( 'If you have any questions about FeedWordPress, or if there
621 + <h4>Thank you!</h4>
622 + <p><strong>Thank you</strong> for your contribution to <a href="http://feedwordpress.radgeek.com/">FeedWordPress</a> development.
623 + Your generous gifts make ongoing support and development for
624 + FeedWordPress possible.</p>
625 + <p>If you have any questions about FeedWordPress, or if there
885 626 is anything I can do to help make FeedWordPress more useful for
886 - you, please '); ?><a href="<?php print esc_url( FWP_PROJECT_WEBSITE_URL ); ?>contact"><?php esc_html_e( 'contact me' ); ?></a>
887 - <?php esc_html_e(' and let me know what you&rsquo;re thinking about.' ); ?></p>
888 - <p class="signature">&mdash;<a href="<?php print esc_url( FWP_PROJECT_WEBSITE_URL ); ?>">Charles Johnson</a>, <?php esc_html_e(' Developer' ); ?>, <a href="<?php print esc_url( FWP_PROJECT_WEBSITE_URL ); ?>">FeedWordPress</a>.</p>
627 + you, please <a href="http://feedwordpress.radgeek.com/contact">contact me</a>
628 + and let me know what you're thinking about.</p>
629 + <p class="signature">&#8212;<a href="http://radgeek.com/">Charles Johnson</a>, Developer, <a href="http://feedwordpress.radgeek.com/">FeedWordPress</a>.</p>
889 630 </div>
890 631 <?php
891 632 } /* FeedWordPressSyndicationPage::bleg_thanks () */
892 633
893 - /**
894 - * Displays a donation form.
895 - *
896 - * @note Flattr unfortunately changed their business model :-(
897 - * (gwyneth 20230917)
898 - *
899 - * @param mixed $page Unused.
900 - * @param mixed|null $box Unused.
901 - */
902 634 function bleg_box ($page, $box = NULL) {
903 635 ?>
904 636 <div class="donation-form">
905 -<h4><?php esc_html_e( 'Consider a Donation to FeedWordPress' ); ?></h4>
637 +<h4>Keep FeedWordPress improving</h4>
906 638 <form action="https://www.paypal.com/cgi-bin/webscr" accept-charset="UTF-8" method="post"><div>
907 -<p><a href="<?php print esc_url( FWP_PROJECT_WEBSITE_URL ); ?>">FeedWordPress</a> <?php esc_html_e( 'makes syndication
639 +<p><a href="http://feedwordpress.radgeek.com/">FeedWordPress</a> makes syndication
908 640 simple and empowers you to stream content from all over the web into your
909 -WordPress hub. If you&rsquo;re finding FWP useful, ' ); ?>
910 -<a href="<?php print esc_url( FWP_PROJECT_WEBSITE_URL ); ?>donate/"><?php esc_html_e( 'a modest gift' ); ?></a>
911 -<?php esc_html_e( ' is the best way to support steady progress on development, enhancements,
912 -support, and documentation.' ); ?></p>
913 -
914 -<div class="donate" style="vertical-align: middle">
915 -
916 -<div id="flattr-paypal">
917 -
918 -<div class="hovered-component" style="display: inline-block; vertical-align: bottom">
919 -<a href="bitcoin:<?php print esc_attr( FEEDWORDPRESS_BLEG_BTC ); ?>"><img src="<?php print esc_url( plugins_url('/'.FeedWordPress::path('assets/images/btc-qr-128px.png') ) ); ?>" alt="<?php esc_html_e( 'Donate' ); ?>" /></a>
920 -<div><a href="bitcoin:<?php print esc_attr( FEEDWORDPRESS_BLEG_BTC ); ?>"><?php esc_html_e( 'via' ); ?> bitcoin<span class="hover-on pop-over" style="background-color: #ddffdd; padding: 5px; color: black; border-radius: 5px;">bitcoin:<?php print esc_html( FEEDWORDPRESS_BLEG_BTC ); ?></span></a></div>
921 -</div>
922 -
923 -<div style="display: inline-block; vertical-align: bottom">
924 -<input type="image" name="submit" src="<?php print esc_url( plugins_url( '/' . FeedWordPress::path('assets/images/paypal-donation-64px.png' ) ) ); ?>" style="width: 128px; height: 128px;" alt="<?php esc_html_e( 'Donate via PayPal' ); ?>" />
925 -<input type="hidden" name="business" value="<?php print esc_attr( FEEDWORDPRESS_BLEG_PAYPAL ); ?>" />
641 +WordPress hub. That's got to be worth a few lattes. If you're finding FWP useful,
642 +<a href="http://feedwordpress.radgeek.com/donate/">a modest gift</a>
643 +is the best way to support steady progress on development, enhancements,
644 +support, and documentation.</p>
645 +<div class="donate">
646 +<input type="hidden" name="business" value="commerce@radgeek.com" />
926 647 <input type="hidden" name="cmd" value="_xclick" />
927 -<input type="hidden" name="item_name" value="<?php esc_html_e( 'FeedWordPress donation' ); ?>" />
648 +<input type="hidden" name="item_name" value="FeedWordPress donation" />
928 649 <input type="hidden" name="no_shipping" value="1" />
929 -<input type="hidden" name="return" value="<?php print esc_attr( $this->admin_page_href( basename( $this->filename ), array( 'paid' => 'yes' ) ) ); ?>" />
650 +<input type="hidden" name="return" value="<?php print admin_url('admin.php'); ?>?page=<?php print $GLOBALS['fwp_path'] ?>/<?php print basename($this->filename); ?>&amp;paid=yes" />
930 651 <input type="hidden" name="currency_code" value="USD" />
931 -<input type="hidden" name="notify_url" value="<?php print esc_url( FWP_PROJECT_WEBSITE_URL ); ?>/ipn/donation" />
652 +<input type="hidden" name="notify_url" value="http://feedwordpress.radgeek.com/ipn/donation" />
932 653 <input type="hidden" name="custom" value="1" />
933 -<div><?php esc_html_e( 'via PayPal' ); ?></div>
934 -</div> <!-- style="display: inline-block" -->
654 +<input type="image" name="submit" src="https://www.paypal.com/en_GB/i/btn/btn_donate_SM.gif" alt="Donate through PayPal" />
655 +</div>
656 +</div></form>
935 657
936 -</div> <!-- id="flattr-paypal" -->
937 -</div> <!-- class="donate" -->
658 +<p>You can make a gift online (or
659 +<a href="http://feedwordpress.radgeek.com/donation">set up an automatic
660 +regular donation</a>) using an existing PayPal account or any major credit card.</p>
938 661
939 -</div> <!-- class="donation-form" -->
940 -</form>
941 -
942 -<p><?php esc_html_e( 'You can make a gift online (or ' ); ?><a href="<?php print esc_url( FWP_PROJECT_WEBSITE_URL ) ;?>donation"><?php esc_html_e( 'set up an automatic
943 -regular donation' ); ?></a><?php esc_html_e( ' using an existing PayPal account or any major credit card.' ); ?></p>
944 -
945 662 <div class="sod-off">
946 -<form style="text-align: center" action="<?php print esc_url( $this->form_action() ); ?>" method="POST"><div>
947 -<input class="button" type="submit" name="maybe_later" value="<?php esc_attr_e( 'Maybe Later' ); ?>"/>
948 -<input class="button" type="submit" name="go_away" value="<?php esc_attr_e( 'Dismiss' ); ?>"/>
663 +<form style="text-align: center" action="<?php print $this->form_action(); ?>" method="POST"><div>
664 +<input class="button" type="submit" name="maybe_later" value="Maybe Later" />
665 +<input class="button" type="submit" name="go_away" value="Dismiss" />
949 666 </div></form>
950 667 </div>
951 668 </div> <!-- class="donation-form" -->
952 669 <?php
953 - } /* FeedWordPressSyndicationPage::bleg_box() */
670 + } /* FeedWordPressSyndicationPage::bleg_box () */
954 671
955 672 /**
956 673 * Override the default display of a save-settings button and replace
957 674 * it with nothing.
958 675 */
959 - function interstitial() {
676 + function interstitial () {
960 677 /* NOOP */
961 678 } /* FeedWordPressSyndicationPage::interstitial() */
962 -
963 - function multidelete_page() {
679 +
680 + function multidelete_page () {
964 681 global $wpdb;
965 -
682 + global $fwp_post;
683 +
966 684 // If this is a POST, validate source and user credentials
967 - FeedWordPressCompatibility::validate_http_request( /*action=*/ 'feedwordpress_feeds', /*capability=*/ 'manage_links' );
968 -
969 - if ( MyPHP::post( 'submit' ) == FWP_CANCEL_BUTTON ) :
685 + FeedWordPressCompatibility::validate_http_request(/*action=*/ 'feedwordpress_feeds', /*capability=*/ 'manage_links');
686 +
687 + if (isset($fwp_post['submit']) and $fwp_post['submit']==FWP_CANCEL_BUTTON) :
970 688 return true; // Continue without further ado.
971 689 endif;
972 -
973 - // Get single link ID or multiple link IDs from REQUEST parameters
974 - // if available. Sanitize values for MySQL.
975 - $link_list = $this->requested_link_ids_sql();
976 -
977 - if (MyPHP::post('confirm')=='Delete'):
978 - $actions = array(); // avoids "else" complaint _and_ guarantees that we don't have any scoping issues (gwyneth 20230916)
979 - if ( is_array(MyPHP::post('link_action')) ) :
980 - $actions = MyPHP::post('link_action');
690 +
691 + $link_ids = (isset($_REQUEST['link_ids']) ? $_REQUEST['link_ids'] : array());
692 + if (isset($_REQUEST['link_id'])) : array_push($link_ids, $_REQUEST['link_id']); endif;
693 +
694 + if (isset($GLOBALS['fwp_post']['confirm']) and $GLOBALS['fwp_post']['confirm']=='Delete'):
695 + if (isset($GLOBALS['fwp_post']['link_action']) and is_array($GLOBALS['fwp_post']['link_action'])) :
696 + $actions = $GLOBALS['fwp_post']['link_action'];
697 + else :
698 + $actions = array();
981 699 endif;
982 -
700 +
983 701 $do_it = array(
984 702 'hide' => array(),
985 703 'nuke' => array(),
986 704 'delete' => array(),
987 705 );
988 -
706 +
989 707 foreach ($actions as $link_id => $what) :
990 708 $do_it[$what][] = $link_id;
991 709 endforeach;
992 -
710 +
993 711 $alter = array();
994 712 if (count($do_it['hide']) > 0) :
995 713 $hidem = "(".implode(', ', $do_it['hide']).")";
996 714 $alter[] = "
@@ -998,12 +716,12 @@
998 716 SET link_visible = 'N'
999 717 WHERE link_id IN {$hidem}
1000 718 ";
1001 719 endif;
1002 -
720 +
1003 721 if (count($do_it['nuke']) > 0) :
1004 722 $nukem = "(".implode(', ', $do_it['nuke']).")";
1005 -
723 +
1006 724 // Make a list of the items syndicated from this feed...
1007 725 $post_ids = $wpdb->get_col("
1008 726 SELECT post_id FROM $wpdb->postmeta
1009 727 WHERE meta_key = 'syndication_feed_id'
@@ -1008,30 +726,34 @@
1008 726 SELECT post_id FROM $wpdb->postmeta
1009 727 WHERE meta_key = 'syndication_feed_id'
1010 728 AND meta_value IN {$nukem}
1011 729 ");
1012 -
730 +
1013 731 // ... and kill them all
1014 732 if (count($post_ids) > 0) :
1015 733 foreach ($post_ids as $post_id) :
1016 - // Force scrubbing of deleted post
1017 - // rather than sending to Trashcan
1018 - wp_delete_post(
1019 - /*postid=*/ $post_id,
1020 - /*force_delete=*/ true
1021 - );
734 + if (FeedWordPressCompatibility::test_version(FWP_SCHEMA_29)) :
735 + // Force scrubbing of deleted post
736 + // rather than sending to Trashcan
737 + wp_delete_post(
738 + /*postid=*/ $post_id,
739 + /*force_delete=*/ true
740 + );
741 + else :
742 + wp_delete_post($post_id);
743 + endif;
1022 744 endforeach;
1023 745 endif;
1024 -
746 +
1025 747 $alter[] = "
1026 748 DELETE FROM $wpdb->links
1027 749 WHERE link_id IN {$nukem}
1028 750 ";
1029 751 endif;
1030 -
752 +
1031 753 if (count($do_it['delete']) > 0) :
1032 754 $deletem = "(".implode(', ', $do_it['delete']).")";
1033 -
755 +
1034 756 // Make the items syndicated from this feed appear to be locally-authored
1035 757 $alter[] = "
1036 758 DELETE FROM $wpdb->postmeta
1037 759 WHERE meta_key = 'syndication_feed_id'
@@ -1036,9 +758,9 @@
1036 758 DELETE FROM $wpdb->postmeta
1037 759 WHERE meta_key = 'syndication_feed_id'
1038 760 AND meta_value IN {$deletem}
1039 761 ";
1040 -
762 +
1041 763 // ... and delete the links themselves.
1042 764 $alter[] = "
1043 765 DELETE FROM $wpdb->links
1044 766 WHERE link_id IN {$deletem}
@@ -1043,92 +765,89 @@
1043 765 DELETE FROM $wpdb->links
1044 766 WHERE link_id IN {$deletem}
1045 767 ";
1046 768 endif;
1047 -
1048 - $errs = array();
769 +
770 + $errs = array(); $success = array ();
1049 771 foreach ($alter as $sql) :
1050 772 $result = $wpdb->query($sql);
1051 - if ( ! $result):
1052 - $errs[] = $wpdb->last_error;
773 + if (!$result):
774 + $errs[] = mysql_error();
1053 775 endif;
1054 776 endforeach;
1055 -
777 +
1056 778 if (count($alter) > 0) :
1057 779 echo "<div class=\"updated\">\n";
1058 780 if (count($errs) > 0) :
1059 - echo "There were some problems processing your unsubscribe request. [SQL: ";
1060 - $sep = '';
1061 - foreach ( $errs as $err ) :
1062 - print esc_html($sep);
1063 - print esc_html($err);
1064 - $sep = '; ';
1065 - endforeach;
1066 - echo "]";
781 + echo "There were some problems processing your ";
782 + echo "unsubscribe request. [SQL: ".implode('; ', $errs)."]";
1067 783 else :
1068 784 echo "Your unsubscribe request(s) have been processed.";
1069 785 endif;
1070 786 echo "</div>\n";
1071 787 endif;
1072 -
788 +
1073 789 return true; // Continue on to Syndicated Sites listing
1074 790 else :
1075 - // $link_list has previously been sanitized for html by self::requested_link_ids_sql
1076 791 $targets = $wpdb->get_results("
1077 792 SELECT * FROM $wpdb->links
1078 - WHERE link_id IN {$link_list}
793 + WHERE link_id IN (".implode(",",$link_ids).")
1079 794 ");
1080 795 ?>
1081 - <form action="<?php print esc_url( $this->form_action() ); ?>" method="post">
796 + <form action="<?php print $this->form_action(); ?>" method="post">
1082 797 <div class="wrap">
1083 798 <?php FeedWordPressCompatibility::stamp_nonce('feedwordpress_feeds'); ?>
1084 799 <input type="hidden" name="action" value="Unsubscribe" />
1085 800 <input type="hidden" name="confirm" value="Delete" />
1086 -
1087 - <h2><?php esc_html_e( 'Unsubscribe from Syndicated Links:' ); ?></h2>
801 +
802 + <h2>Unsubscribe from Syndicated Links:</h2>
1088 803 <?php foreach ($targets as $link) :
1089 804 $subscribed = ('Y' == strtoupper($link->link_visible));
805 + $link_url = esc_html($link->link_url);
806 + $link_name = esc_html($link->link_name);
807 + $link_description = esc_html($link->link_description);
808 + $link_rss = esc_html($link->link_rss);
1090 809 ?>
1091 810 <fieldset>
1092 - <legend><?php echo esc_html($link->link_name); ?></legend>
811 + <legend><?php echo $link_name; ?></legend>
1093 812 <table class="editform" width="100%" cellspacing="2" cellpadding="5">
1094 - <tr><th scope="row" width="20%"><?php esc_html_e( 'Feed URI:' ) ?></th>
1095 - <td width="80%"><a href="<?php echo esc_url($link->link_rss); ?>"><?php echo esc_html( $link->link_rss ); ?></a></td></tr>
1096 - <tr><th scope="row" width="20%"><?php esc_html_e( 'Short description:' ) ?></th>
1097 - <td width="80%"><?php echo esc_html( $link->link_description ); ?></span></td></tr>
1098 - <tr><th width="20%" scope="row"><?php esc_html_e( 'Homepage:' ) ?></th>
1099 - <td width="80%"><a href="<?php echo esc_url($link->link_url); ?>"><?php echo esc_html( $link->link_url ); ?></a></td></tr>
1100 - <tr style="vertical-align:top"><th width="20%" scope="row"><?php esc_html_e( 'Subscription ' ); ?><?php esc_html_e( 'Options' ); ?>:</th>
813 + <tr><th scope="row" width="20%"><?php _e('Feed URI:') ?></th>
814 + <td width="80%"><a href="<?php echo $link_rss; ?>"><?php echo $link_rss; ?></a></td></tr>
815 + <tr><th scope="row" width="20%"><?php _e('Short description:') ?></th>
816 + <td width="80%"><?php echo $link_description; ?></span></td></tr>
817 + <tr><th width="20%" scope="row"><?php _e('Homepage:') ?></th>
818 + <td width="80%"><a href="<?php echo $link_url; ?>"><?php echo $link_url; ?></a></td></tr>
819 + <tr style="vertical-align:top"><th width="20%" scope="row">Subscription <?php _e('Options') ?>:</th>
1101 820 <td width="80%"><ul style="margin:0; padding: 0; list-style: none">
1102 821 <?php if ($subscribed) : ?>
1103 - <li><input type="radio" id="hide-<?php echo esc_attr($link->link_id); ?>"
1104 - name="link_action[<?php echo esc_attr($link->link_id); ?>]" value="hide" checked="checked" />
1105 - <label for="hide-<?php echo esc_attr($link->link_id); ?>"><?php esc_html_e( 'Turn off the subscription for this
822 + <li><input type="radio" id="hide-<?php echo $link->link_id; ?>"
823 + name="link_action[<?php echo $link->link_id; ?>]" value="hide" checked="checked" />
824 + <label for="hide-<?php echo $link->link_id; ?>">Turn off the subscription for this
1106 825 syndicated link<br/><span style="font-size:smaller">(Keep the feed information
1107 - and all the posts from this feed in the database, but don&rsquo;t syndicate any
1108 - new posts from the feed.)' ); ?></span></label></li>
826 + and all the posts from this feed in the database, but don't syndicate any
827 + new posts from the feed.)</span></label></li>
1109 828 <?php endif; ?>
1110 - <li><input type="radio" id="nuke-<?php echo esc_attr($link->link_id); ?>"<?php if ( ! $subscribed) : ?> checked="checked"<?php endif; ?>
1111 - name="link_action[<?php echo esc_attr($link->link_id); ?>]" value="nuke" />
1112 - <label for="nuke-<?php echo esc_attr($link->link_id); ?>"><?php esc_html_e( 'Delete this syndicated link and all the
1113 - posts that were syndicated from it' ); ?></label></li>
1114 - <li><input type="radio" id="delete-<?php echo esc_attr($link->link_id); ?>"
1115 - name="link_action[<?php echo esc_attr($link->link_id); ?>]" value="delete" />
1116 - <label for="delete-<?php echo esc_attr($link->link_id); ?>"><?php esc_html_e( 'Delete this syndicated link, but
829 + <li><input type="radio" id="nuke-<?php echo $link->link_id; ?>"<?php if (!$subscribed) : ?> checked="checked"<?php endif; ?>
830 + name="link_action[<?php echo $link->link_id; ?>]" value="nuke" />
831 + <label for="nuke-<?php echo $link->link_id; ?>">Delete this syndicated link and all the
832 + posts that were syndicated from it</label></li>
833 + <li><input type="radio" id="delete-<?php echo $link->link_id; ?>"
834 + name="link_action[<?php echo $link->link_id; ?>]" value="delete" />
835 + <label for="delete-<?php echo $link->link_id; ?>">Delete this syndicated link, but
1117 836 <em>keep</em> posts that were syndicated from it (as if they were authored
1118 - locally).' ); ?></label></li>
1119 - <li><input type="radio" id="nothing-<?php echo esc_attr( $link->link_id ); ?>"
1120 - name="link_action[<?php echo esc_attr( $link->link_id ); ?>]" value="nothing" />
1121 - <label for="nothing-<?php echo esc_attr( $link->link_id ); ?>"><?php esc_html_e( 'Keep this feed as it is. I changed
1122 - my mind.' ); ?></label></li>
837 + locally).</label></li>
838 + <li><input type="radio" id="nothing-<?php echo $link->link_id; ?>"
839 + name="link_action[<?php echo $link->link_id; ?>]" value="nothing" />
840 + <label for="nothing-<?php echo $link->link_id; ?>">Keep this feed as it is. I changed
841 + my mind.</label></li>
1123 842 </ul>
1124 843 </table>
1125 844 </fieldset>
1126 845 <?php endforeach; ?>
1127 -
846 +
1128 847 <div class="submit">
1129 - <input type="submit" name="submit" value="<?php esc_html_e( FWP_CANCEL_BUTTON ); ?>" />
1130 - <input class="delete" type="submit" name="submit" value="<?php esc_html_e( FWP_UNSUB_FULL ) ?>" />
848 + <input type="submit" name="submit" value="<?php _e(FWP_CANCEL_BUTTON); ?>" />
849 + <input class="delete" type="submit" name="submit" value="<?php _e(FWP_UNSUB_FULL) ?>" />
1131 850 </div>
1132 851 </div>
1133 852 <?php
1134 853 return false; // Don't continue on to Syndicated Sites listing
@@ -1133,34 +852,33 @@
1133 852 <?php
1134 853 return false; // Don't continue on to Syndicated Sites listing
1135 854 endif;
1136 855 } /* FeedWordPressSyndicationPage::multidelete_page() */
1137 -
856 +
1138 857 function multiundelete_page () {
1139 858 global $wpdb;
1140 -
859 +
1141 860 // If this is a POST, validate source and user credentials
1142 861 FeedWordPressCompatibility::validate_http_request(/*action=*/ 'feedwordpress_feeds', /*capability=*/ 'manage_links');
1143 -
1144 - // Get single link ID or multiple link IDs from REQUEST parameters
1145 - // if available. Sanitize values for MySQL.
1146 - $link_list = $this->requested_link_ids_sql();
1147 -
1148 - if (MyPHP::post('confirm')=='Undelete'):
1149 - if ( is_array(MyPHP::post('link_action')) ) :
1150 - $actions = MyPHP::post('link_action');
862 +
863 + $link_ids = (isset($_REQUEST['link_ids']) ? $_REQUEST['link_ids'] : array());
864 + if (isset($_REQUEST['link_id'])) : array_push($link_ids, $_REQUEST['link_id']); endif;
865 +
866 + if (isset($GLOBALS['fwp_post']['confirm']) and $GLOBALS['fwp_post']['confirm']=='Undelete'):
867 + if (isset($GLOBALS['fwp_post']['link_action']) and is_array($GLOBALS['fwp_post']['link_action'])) :
868 + $actions = $GLOBALS['fwp_post']['link_action'];
1151 869 else :
1152 870 $actions = array();
1153 871 endif;
1154 -
872 +
1155 873 $do_it = array(
1156 874 'unhide' => array(),
1157 875 );
1158 -
876 +
1159 877 foreach ($actions as $link_id => $what) :
1160 878 $do_it[$what][] = $link_id;
1161 879 endforeach;
1162 -
880 +
1163 881 $alter = array();
1164 882 if (count($do_it['unhide']) > 0) :
1165 883 $unhiddem = "(".implode(', ', $do_it['unhide']).")";
1166 884 $alter[] = "
@@ -1168,67 +886,71 @@
1168 886 SET link_visible = 'Y'
1169 887 WHERE link_id IN {$unhiddem}
1170 888 ";
1171 889 endif;
1172 -
1173 - $errs = array();
890 +
891 + $errs = array(); $success = array ();
1174 892 foreach ($alter as $sql) :
1175 893 $result = $wpdb->query($sql);
1176 - if ( ! $result):
1177 - $errs[] = $wpdb->last_error;
894 + if (!$result):
895 + $errs[] = mysql_error();
1178 896 endif;
1179 897 endforeach;
1180 -
898 +
1181 899 if (count($alter) > 0) :
1182 900 echo "<div class=\"updated\">\n";
1183 901 if (count($errs) > 0) :
1184 - esc_html_e( 'There were some problems processing your re-subscribe request. ' );
1185 - echo esc_html( "[SQL: ".implode('; ', $errs)."]" );
902 + echo "There were some problems processing your ";
903 + echo "re-subscribe request. [SQL: ".implode('; ', $errs)."]";
1186 904 else :
1187 - esc_html_e( 'Your re-subscribe request(s) have been processed.' );
905 + echo "Your re-subscribe request(s) have been processed.";
1188 906 endif;
1189 907 echo "</div>\n";
1190 908 endif;
1191 -
909 +
1192 910 return true; // Continue on to Syndicated Sites listing
1193 911 else :
1194 - // $link_list has previously been sanitized for html by self::requested_link_ids_sql
1195 912 $targets = $wpdb->get_results("
1196 913 SELECT * FROM $wpdb->links
1197 - WHERE link_id IN {$link_list}
914 + WHERE link_id IN (".implode(",",$link_ids).")
1198 915 ");
1199 916 ?>
1200 - <form action="<?php print esc_url( $this->form_action() ); ?>" method="post">
917 + <form action="<?php print $this->form_action(); ?>" method="post">
1201 918 <div class="wrap">
1202 919 <?php FeedWordPressCompatibility::stamp_nonce('feedwordpress_feeds'); ?>
1203 - <input type="hidden" name="action" value="<?php print esc_attr( FWP_RESUB_CHECKED ); ?>" />
920 + <input type="hidden" name="action" value="<?php print FWP_RESUB_CHECKED; ?>" />
1204 921 <input type="hidden" name="confirm" value="Undelete" />
1205 -
1206 - <h2><?php esc_html_e( 'Re-subscribe to Syndicated Links:' ); ?></h2>
922 +
923 + <h2>Re-subscribe to Syndicated Links:</h2>
1207 924 <?php
1208 925 foreach ($targets as $link) :
1209 - $subscribed = ( 'Y' == strtoupper( $link->link_visible ) );
1210 - if ( ! $subscribed ) :
926 + $subscribed = ('Y' == strtoupper($link->link_visible));
927 + $link_url = esc_html($link->link_url);
928 + $link_name = esc_html($link->link_name);
929 + $link_description = esc_html($link->link_description);
930 + $link_rss = esc_html($link->link_rss);
931 +
932 + if (!$subscribed) :
1211 933 ?>
1212 934 <fieldset>
1213 - <legend><?php echo esc_html( $link->link_name ); ?></legend>
935 + <legend><?php echo $link_name; ?></legend>
1214 936 <table class="editform" width="100%" cellspacing="2" cellpadding="5">
1215 - <tr><th scope="row" width="20%"><?php esc_html_e( 'Feed URI:' ) ?></th>
1216 - <td width="80%"><a href="<?php echo esc_url( $link->link_rss ); ?>"><?php echo esc_html( $link->link_rss ); ?></a></td></tr>
1217 - <tr><th scope="row" width="20%"><?php esc_html_e( 'Short description:' ) ?></th>
1218 - <td width="80%"><?php echo esc_html($link->link_description); ?></span></td></tr>
1219 - <tr><th width="20%" scope="row"><?php esc_html_e( 'Homepage:' ) ?></th>
1220 - <td width="80%"><a href="<?php echo esc_url($link->link_url); ?>"><?php echo esc_html($link->link_url); ?></a></td></tr>
1221 - <tr style="vertical-align:top"><th width="20%" scope="row"><?php esc_html_e( 'Subscription' ); ?> <?php esc_html_e( 'Options' ); ?>:</th>
937 + <tr><th scope="row" width="20%"><?php _e('Feed URI:') ?></th>
938 + <td width="80%"><a href="<?php echo $link_rss; ?>"><?php echo $link_rss; ?></a></td></tr>
939 + <tr><th scope="row" width="20%"><?php _e('Short description:') ?></th>
940 + <td width="80%"><?php echo $link_description; ?></span></td></tr>
941 + <tr><th width="20%" scope="row"><?php _e('Homepage:') ?></th>
942 + <td width="80%"><a href="<?php echo $link_url; ?>"><?php echo $link_url; ?></a></td></tr>
943 + <tr style="vertical-align:top"><th width="20%" scope="row">Subscription <?php _e('Options') ?>:</th>
1222 944 <td width="80%"><ul style="margin:0; padding: 0; list-style: none">
1223 - <li><input type="radio" id="unhide-<?php echo esc_attr($link->link_id); ?>"
1224 - name="link_action[<?php echo esc_attr($link->link_id); ?>]" value="unhide" checked="checked" />
1225 - <label for="unhide-<?php echo esc_attr($link->link_id); ?>"><?php esc_html_e( 'Turn back on the subscription
1226 - for this syndication source.' ); ?></label></li>
1227 - <li><input type="radio" id="nothing-<?php echo esc_attr($link->link_id); ?>"
1228 - name="link_action[<?php echo esc_attr($link->link_id); ?>]" value="nothing" />
1229 - <label for="nothing-<?php echo esc_attr($link->link_id); ?>"><?php esc_html_e( 'Leave this feed as it is.
1230 - I changed my mind.' ); ?></label></li>
945 + <li><input type="radio" id="unhide-<?php echo $link->link_id; ?>"
946 + name="link_action[<?php echo $link->link_id; ?>]" value="unhide" checked="checked" />
947 + <label for="unhide-<?php echo $link->link_id; ?>">Turn back on the subscription
948 + for this syndication source.</label></li>
949 + <li><input type="radio" id="nothing-<?php echo $link->link_id; ?>"
950 + name="link_action[<?php echo $link->link_id; ?>]" value="nothing" />
951 + <label for="nothing-<?php echo $link->link_id; ?>">Leave this feed as it is.
952 + I changed my mind.</label></li>
1231 953 </ul>
1232 954 </table>
1233 955 </fieldset>
1234 956 <?php
@@ -1234,11 +956,11 @@
1234 956 <?php
1235 957 endif;
1236 958 endforeach;
1237 959 ?>
1238 -
960 +
1239 961 <div class="submit">
1240 - <input class="button-primary delete" type="submit" name="submit" value="<?php esc_html_e( 'Re-subscribe to selected feeds &raquo;' ) ?>" />
962 + <input class="button-primary delete" type="submit" name="submit" value="<?php _e('Re-subscribe to selected feeds &raquo;') ?>" />
1241 963 </div>
1242 964 </div>
1243 965 <?php
1244 966 return false; // Don't continue on to Syndicated Sites listing
@@ -1244,103 +966,14 @@
1244 966 return false; // Don't continue on to Syndicated Sites listing
1245 967 endif;
1246 968 } /* FeedWordPressSyndicationPage::multiundelete_page() */
1247 969
1248 - public function switchfeed_page () {
1249 - global $wpdb;
1250 970
1251 - // If this is a POST, validate source and user credentials
1252 - FeedWordPressCompatibility::validate_http_request(/*action=*/ 'feedwordpress_switchfeed', /*capability=*/ 'manage_links');
1253 971
1254 - $changed = false;
1255 - if ( is_null( FeedWordPress::post( 'Cancel' ) ) ):
1256 - $save_link_id = FeedWordPress::post( 'save_link_id' );
1257 -
1258 - if ( $save_link_id == '*' ) :
1259 - $changed = true;
1260 -
1261 - $feed_title = FeedWordPress::post( 'feed_title' );
1262 - $feed_link = FeedWordPress::post( 'feed_link' );
1263 - $feed = FeedWordPress::post( 'feed' );
1264 -
1265 - $link_id = FeedWordPress::syndicate_link( $feed_title, $feed_link, $feed );
1266 - if ($link_id):
1267 - $existingLink = new SyndicatedLink($link_id);
1268 - $adminPageHref = $this->admin_page_href( 'feeds-page.php', array( "link_id" => $link_id ) );
1269 - ?>
1270 -<div class="updated"><p><a href="<?php print esc_url($feed_link); ?>"><?php print esc_html($feed_title); ?></a>
1271 -<?php esc_html_e( 'has been added as a contributing site, using the feed at' ); ?>
1272 -&lt;<a href="<?php print esc_url( $feed ); ?>"><?php print esc_html( $feed ); ?></a>&gt;.
1273 -| <a href="<?php print esc_url( $adminPageHref ); ?>"><?php esc_html_e( 'Configure settings' ); ?></a>.</p></div>
1274 - <?php
1275 - else:
1276 - ?>
1277 -<div class="updated"><p><?php esc_html_e( 'There was a problem adding the feed.' ); ?> [SQL: <?php echo esc_html($wpdb->last_error); ?>]</p></div>
1278 - <?php
1279 - endif;
1280 - elseif ( ! is_null( $save_link_id ) ):
1281 - $feed = FeedWordPress::post( 'feed' );
1282 - $existingLink = new SyndicatedLink( $save_link_id );
1283 -
1284 - $changed = $existingLink->set_uri($feed);
1285 -
1286 - if ($changed):
1287 - $home = $existingLink->homepage(/*from feed=*/ false);
1288 - $name = $existingLink->name(/*from feed=*/ false);
1289 - ?>
1290 -<div class="updated"><p><?php esc_html_e( 'Feed for ' ); ?><a href="<?php echo esc_html($home); ?>"><?php echo esc_html($name); ?></a>
1291 -<?php esc_html_e( 'updated to ' ); ?>&lt;<a href="<?php echo esc_html( $feed ); ?>"><?php echo esc_html( $feed ); ?></a>&gt;.</p></div>
1292 - <?php
1293 - endif;
1294 - endif;
1295 - endif;
1296 -
1297 - if (isset($existingLink)) :
1298 - $auth = FeedWordPress::post('link_rss_auth_method');
1299 - if ( !is_null($auth) and (strlen($auth) > 0) and ($auth != '-')) :
1300 - $existingLink->update_setting('http auth method', $auth);
1301 - $existingLink->update_setting('http username',
1302 - FeedWordPress::post('link_rss_username')
1303 - );
1304 - $existingLink->update_setting('http password',
1305 - FeedWordPress::post('link_rss_password')
1306 - );
1307 - else :
1308 - $existingLink->update_setting('http auth method', NULL);
1309 - $existingLink->update_setting('http username', NULL);
1310 - $existingLink->update_setting('http password', NULL);
1311 - endif;
1312 - do_action('feedwordpress_admin_switchfeed', FeedWordPress::post( 'feed' ), $existingLink);
1313 - $existingLink->save_settings(/*reload=*/ true);
1314 - endif;
1315 -
1316 - if ( ! $changed) :
1317 - ?>
1318 - <div class="updated"><p><?php esc_html_e( 'Nothing was changed.' ); ?></p></div>
1319 - <?php
1320 - endif;
1321 - return true; // Continue.
1322 - }
1323 -
1324 - function feedfinder_page () {
1325 - global $post_source;
1326 -
1327 - if ( FeedWordPress::post( 'opml_lookup' ) or isset( $_FILES['opml_upload'] ) ) :
1328 - $this->accept_multiadd();
1329 - return true;
1330 - else :
1331 - $post_source = 'feedwordpress_feeds';
1332 -
1333 - // With action=feedfinder, this goes directly to the feedfinder page
1334 - include_once(dirname(__FILE__) . '/feeds-page.php');
1335 - return false;
1336 - endif;
1337 - } /* function feedfinder_page () */
1338 -
1339 972 } /* class FeedWordPressSyndicationPage */
1340 973
1341 974 function fwp_dashboard_update_if_requested ($object) {
1342 - global $crash_dt;
975 + global $wpdb;
1343 976
1344 977 $update_set = $object->updates_requested();
1345 978
1346 979 if (count($update_set) > 0) :
@@ -1355,18 +988,16 @@
1355 988 echo "<div class=\"update-results\">\n";
1356 989 echo "<ul>\n";
1357 990 $tdelta = NULL;
1358 991 foreach ($update_set as $uri) :
1359 - if ( !is_null($crash_ts) and (time() > $crash_ts)) :
1360 - echo "<li><p><strong>" . esc_html__( "Further updates postponed:" ) . "</strong> "
1361 - . esc_html__( "update time limit of " ) . esc_html( $crash_dt ) . esc_html__( " second"
1362 - . ( ( 1 == $crash_dt ) ? "" : "s" ) ) . esc_html__( " exceeded." ) . "</p></li>";
992 + if (!is_null($crash_ts) and (time() > $crash_ts)) :
993 + echo "<li><p><strong>Further updates postponed:</strong> update time limit of ".$crash_dt." second".(($crash_dt==1)?"":"s")." exceeded.</p></li>";
1363 994 break;
1364 995 endif;
1365 996
1366 997 if ($uri == '*') : $uri = NULL; endif;
1367 998 $delta = $feedwordpress->update($uri, $crash_ts);
1368 - if ( !is_null($delta)) :
999 + if (!is_null($delta)) :
1369 1000 if (is_null($tdelta)) :
1370 1001 $tdelta = $delta;
1371 1002 else :
1372 1003 $tdelta['new'] += $delta['new'];
@@ -1374,16 +1005,18 @@
1374 1005 endif;
1375 1006 else :
1376 1007 $display_uri = esc_html(feedwordpress_display_url($uri));
1377 1008 $uri = esc_html($uri);
1378 - echo '<li><p><strong>' . esc_html__( "Error:" ) . "</strong> ". esc_html__( 'There was a problem updating ' )
1379 - . '<code><a href="' . esc_url( $uri ) . '">' . esc_html( $display_uri ) . '</a></code></p></li>' . "\n";
1009 + echo "<li><p><strong>Error:</strong> There was a problem updating <code><a href=\"$uri\">${display_uri}</a></code></p></li>\n";
1380 1010 endif;
1381 1011 endforeach;
1382 1012 echo "</ul>\n";
1383 1013
1384 - if ( !is_null($tdelta)) :
1385 - echo '<p><strong>'; esc_html_e( 'Update complete.' ); echo '</strong>'; print esc_html( fwp_update_set_results_message($delta) ); print '</p>';
1014 + if (!is_null($tdelta)) :
1015 + $mesg = array();
1016 + if (isset($delta['new'])) : $mesg[] = ' '.$tdelta['new'].' new posts were syndicated'; endif;
1017 + if (isset($delta['updated'])) : $mesg[] = ' '.$tdelta['updated'].' existing posts were updated'; endif;
1018 + echo "<p>Update complete.".implode(' and', $mesg)."</p>";
1386 1019 echo "\n"; flush();
1387 1020 endif;
1388 1021 echo "</div> <!-- class=\"updated\" -->\n";
1389 1022 endif;
@@ -1392,18 +1025,17 @@
1392 1025 define('FEEDWORDPRESS_BLEG_MAYBE_LATER_OFFSET', (60 /*sec/min*/ * 60 /*min/hour*/ * 24 /*hour/day*/ * 31 /*days*/));
1393 1026 define('FEEDWORDPRESS_BLEG_ALREADY_PAID_OFFSET', (60 /*sec/min*/ * 60 /*min/hour*/ * 24 /*hour/day*/ * 183 /*days*/));
1394 1027 function fwp_syndication_manage_page_update_box ($object = NULL, $box = NULL) {
1395 1028 $bleg_box_hidden = null;
1396 -
1397 - if ( FeedWordPress::post( 'maybe_later' ) ) :
1398 - $bleg_box_hidden = time() + FEEDWORDPRESS_BLEG_MAYBE_LATER_OFFSET;
1399 - elseif ( FeedWordPress::post( 'paid' ) ) :
1400 - $bleg_box_hidden = time() + FEEDWORDPRESS_BLEG_ALREADY_PAID_OFFSET;
1401 - elseif ( FeedWordPress::post( 'go_away' ) ) :
1029 + if (isset($_POST['maybe_later'])) :
1030 + $bleg_box_hidden = time() + FEEDWORDPRESS_BLEG_MAYBE_LATER_OFFSET;
1031 + elseif (isset($_REQUEST['paid']) and $_REQUEST['paid']) :
1032 + $bleg_box_hidden = time() + FEEDWORDPRESS_BLEG_ALREADY_PAID_OFFSET;
1033 + elseif (isset($_POST['go_away'])) :
1402 1034 $bleg_box_hidden = 'permanent';
1403 1035 endif;
1404 1036
1405 - if ( !is_null($bleg_box_hidden)) :
1037 + if (!is_null($bleg_box_hidden)) :
1406 1038 update_option('feedwordpress_bleg_box_hidden', $bleg_box_hidden);
1407 1039 else :
1408 1040 $bleg_box_hidden = get_option('feedwordpress_bleg_box_hidden');
1409 1041 endif;
@@ -1409,38 +1041,37 @@
1409 1041 endif;
1410 1042 ?>
1411 1043 <?php
1412 1044 $bleg_box_ready = (FEEDWORDPRESS_BLEG and (
1413 - ! $bleg_box_hidden
1045 + !$bleg_box_hidden
1414 1046 or (is_numeric($bleg_box_hidden) and $bleg_box_hidden < time())
1415 1047 ));
1416 -
1417 - $bleg_box_ready = apply_filters( 'feedwordpress_bleg_box_ready', $bleg_box_ready );
1418 - if ( FeedWordPress::post( 'paid' ) || ( FeedWordPress::param( 'test' ) == 'thanks' ) ) :
1419 - $object->bleg_thanks($object, $box);
1420 - elseif ($bleg_box_ready || ( FeedWordPress::param( 'test' ) == 'bleg' ) ) :
1048 +
1049 + if (isset($_REQUEST['paid']) and $_REQUEST['paid']) :
1050 + $object->bleg_thanks($subject, $box);
1051 + elseif ($bleg_box_ready) :
1421 1052 $object->bleg_box($object, $box);
1422 1053 endif;
1423 1054 ?>
1424 1055
1425 1056 <form
1426 - action="<?php print esc_url( $object->form_action() ); ?>"
1057 + action="<?php print $object->form_action(); ?>"
1427 1058 method="POST"
1428 1059 class="update-form<?php if ($bleg_box_ready) : ?> with-donation<?php endif; ?>"
1429 1060 >
1430 1061 <div><?php FeedWordPressCompatibility::stamp_nonce('feedwordpress_feeds'); ?></div>
1431 - <p><?php esc_html_e( 'Check currently scheduled feeds for new and updated posts.' ); ?></p>
1062 + <p>Check currently scheduled feeds for new and updated posts.</p>
1432 1063
1433 1064 <?php
1434 1065 fwp_dashboard_update_if_requested($object);
1435 1066
1436 - if ( !get_option('feedwordpress_automatic_updates')) :
1067 + if (!get_option('feedwordpress_automatic_updates')) :
1437 1068 ?>
1438 - <p class="heads-up"><strong><?php esc_html_e( 'Note:' ); ?></strong> <?php esc_html_e( 'Automatic updates are currently turned
1069 + <p class="heads-up"><strong>Note:</strong> Automatic updates are currently turned
1439 1070 <strong>off</strong>. New posts from your feeds will not be syndicated
1440 1071 until you manually check for them here. You can turn on automatic
1441 - updates under' ); ?> <a href="<?php print esc_url( $object->admin_page_href('feeds-page.php') ); ?>"><?php esc_html_e( 'Feed &amp; Update Settings' ); ?></a>.</p>
1442 - <?php
1072 + updates under <a href="admin.php?page=<?php print $GLOBALS['fwp_path']; ?>/feeds-page.php">Feed &amp; Update Settings<a></a>.</p>
1073 + <?php
1443 1074 endif;
1444 1075 ?>
1445 1076
1446 1077 <div class="submit"><?php if ($object->show_inactive()) : ?>
@@ -1449,10 +1080,75 @@
1449 1080 <?php endforeach; ?>
1450 1081 <?php else : ?>
1451 1082 <input type="hidden" name="update_uri" value="*" />
1452 1083 <?php endif; ?>
1453 - <input class="button-primary" type="submit" name="update" value="<?php esc_html_e( FWP_CHECK_FOR_UPDATES ); ?>" /></div>
1454 -
1084 + <input class="button-primary" type="submit" name="update" value="<?php _e(FWP_CHECK_FOR_UPDATES); ?>" /></div>
1085 +
1455 1086 <br style="clear: both" />
1456 1087 </form>
1457 1088 <?php
1458 1089 } /* function fwp_syndication_manage_page_update_box () */
1090 +
1091 +function fwp_feedfinder_page () {
1092 + global $post_source, $fwp_post, $syndicationPage;
1093 +
1094 + if (isset($fwp_post['opml_lookup']) or isset($_FILES['opml_upload'])) :
1095 + $syndicationPage->accept_multiadd();
1096 + return true;
1097 + else :
1098 + $post_source = 'feedwordpress_feeds';
1099 +
1100 + // With action=feedfinder, this goes directly to the feedfinder page
1101 + include_once(dirname(__FILE__) . '/feeds-page.php');
1102 + return false;
1103 + endif;
1104 +} /* function fwp_feedfinder_page () */
1105 +
1106 +function fwp_switchfeed_page () {
1107 + global $wpdb, $wp_db_version;
1108 + global $fwp_post;
1109 +
1110 + // If this is a POST, validate source and user credentials
1111 + FeedWordPressCompatibility::validate_http_request(/*action=*/ 'feedwordpress_switchfeed', /*capability=*/ 'manage_links');
1112 +
1113 + $changed = false;
1114 + if (!isset($fwp_post['Cancel'])):
1115 + if (isset($fwp_post['save_link_id']) and ($fwp_post['save_link_id']=='*')) :
1116 + $changed = true;
1117 + $link_id = FeedWordPress::syndicate_link($fwp_post['feed_title'], $fwp_post['feed_link'], $fwp_post['feed']);
1118 + if ($link_id):
1119 + $existingLink = new SyndicatedLink($link_id);
1120 + ?>
1121 +<div class="updated"><p><a href="<?php print $fwp_post['feed_link']; ?>"><?php print esc_html($fwp_post['feed_title']); ?></a>
1122 +has been added as a contributing site, using the feed at
1123 +&lt;<a href="<?php print $fwp_post['feed']; ?>"><?php print esc_html($fwp_post['feed']); ?></a>&gt;.
1124 +| <a href="admin.php?page=<?php print $GLOBALS['fwp_path'] ?>/feeds-page.php&amp;link_id=<?php print $link_id; ?>">Configure settings</a>.</p></div>
1125 +<?php else: ?>
1126 +<div class="updated"><p>There was a problem adding the feed. [SQL: <?php echo esc_html(mysql_error()); ?>]</p></div>
1127 +<?php endif;
1128 + elseif (isset($fwp_post['save_link_id'])):
1129 + $existingLink = new SyndicatedLink($fwp_post['save_link_id']);
1130 + $changed = $existingLink->set_uri($fwp_post['feed']);
1131 +
1132 + if ($changed):
1133 + $home = $existingLink->homepage(/*from feed=*/ false);
1134 + $name = $existingLink->name(/*from feed=*/ false);
1135 + ?>
1136 +<div class="updated"><p>Feed for <a href="<?php echo esc_html($home); ?>"><?php echo esc_html($name); ?></a>
1137 +updated to &lt;<a href="<?php echo esc_html($fwp_post['feed']); ?>"><?php echo esc_html($fwp_post['feed']); ?></a>&gt;.</p></div>
1138 + <?php
1139 + endif;
1140 + endif;
1141 + endif;
1142 +
1143 + if (isset($existingLink)) :
1144 + do_action('feedwordpress_admin_switchfeed', $fwp_post['feed'], $existingLink);
1145 + endif;
1146 +
1147 + if (!$changed) :
1148 + ?>
1149 +<div class="updated"><p>Nothing was changed.</p></div>
1150 + <?php
1151 + endif;
1152 + return true; // Continue
1153 +}
1154 +