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