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