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