PluginProbe
FeedWordPress / 2010.0602
FeedWordPress v2010.0602
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 | authors-page.php +221 -271 2009.06132010.0602 View file →
@@ -1,26 +1,172 @@
1 1 <?php
2 2 require_once(dirname(__FILE__) . '/admin-ui.php');
3 3
4 +class FeedWordPressAuthorsPage extends FeedWordPressAdminPage {
5 + var $authorlist = NULL;
6 + var $rule_count = 0;
7 +
8 + function FeedWordPressAuthorsPage ($link) {
9 + FeedWordPressAdminPage::FeedWordPressAdminPage('feedwordpressauthors', $link);
10 + $this->authorlist = fwp_author_list();
11 + $this->dispatch = 'feedwordpress_author_settings';
12 + $this->filename = __FILE__;
13 + }
14 +
15 + /*static*/ function syndicated_authors_box ($page, $box = NULL) {
16 + $link = $page->link;
17 + $unfamiliar = array ('create' => '','default' => '','filter' => '');
18 +
19 + if ($page->for_feed_settings()) :
20 + $key = $link->setting('unfamiliar author', NULL, 'site-default');
21 + $unfamiliar['site-default'] = '';
22 + else :
23 + $key = FeedWordPress::on_unfamiliar('author');
24 + endif;
25 + $unfamiliar[$key] = ' selected="selected"';
26 +
27 + $match_author_by_email = !('yes' == get_option("feedwordpress_do_not_match_author_by_email"));
28 + $null_emails = FeedWordPress::null_email_set();
29 +
30 + // Hey ho, let's go...
31 + ?>
32 +<table class="form-table">
33 +<tbody>
34 +<tr>
35 + <th>New authors</th>
36 + <td><span>Authors who haven't been syndicated before</span>
37 + <select style="max-width: 27.0em" id="unfamiliar-author" name="unfamiliar_author" onchange="contextual_appearance('unfamiliar-author', 'unfamiliar-author-newuser', 'unfamiliar-author-default', 'newuser', 'inline');">
38 +<?php if ($page->for_feed_settings()) : ?>
39 + <option value="site-default"<?php print $unfamiliar['site-default']; ?>>are handled according to the default for all feeds</option>
40 +<?php endif; ?>
41 + <option value="create"<?php print $unfamiliar['create']; ?>>will have a new author account created for them</option>
42 + <?php foreach ($page->authorlist as $author_id => $author_name) : ?>
43 + <option value="<?php echo $author_id; ?>"<?php print (isset($unfamiliar[$author_id]) ? $unfamiliar[$author_id] : ''); ?>>will have their posts attributed to <?php echo $author_name; ?></option>
44 + <?php endforeach; ?>
45 + <option value="newuser">will have their posts attributed to a new user...</option>
46 + <option value="filter"<?php print $unfamiliar['filter'] ?>>get filtered out</option>
47 + </select>
48 +
49 + <span id="unfamiliar-author-newuser">named <input type="text" name="unfamiliar_author_newuser" value="" /></span></p>
50 + </td>
51 +</tr>
52 +
53 +<?php
54 +if ($page->for_feed_settings()) :
55 +?>
56 +<tr><th>Syndicated authors</th>
57 +<td>For attributing posts by specific authors. Blank out a name to delete the rule. Fill in a new name at the bottom to create a new rule.</p>
58 +<table style="width: 100%">
59 +<?php
60 + if (isset($link->settings['map authors'])) :
61 +?>
62 +<?php
63 + $page->rule_count=0;
64 + foreach ($link->settings['map authors'] as $author_rules) :
65 + foreach ($author_rules as $author_name => $author_action) :
66 + $page->rule_count++;
67 +?>
68 +<tr>
69 +<th style="text-align: left; width: 15.0em">Posts by <input type="text" name="author_rules_name[]" value="<?php echo htmlspecialchars($author_name); ?>" size="11" /></th>
70 + <td>
71 + <select id="author-rules-<?php echo $page->rule_count; ?>" name="author_rules_action[]" onchange="contextual_appearance('author-rules-<?php echo $page->rule_count; ?>', 'author-rules-<?php echo $page->rule_count; ?>-newuser', 'author-rules-<?php echo $page->rule_count; ?>-default', 'newuser', 'inline');">
72 + <?php foreach ($page->authorlist as $local_author_id => $local_author_name) : ?>
73 + <option value="<?php echo $local_author_id; ?>"<?php if ($local_author_id==$author_action) : echo ' selected="selected"'; endif; ?>>are assigned to <?php echo $local_author_name; ?></option>
74 + <?php endforeach; ?>
75 + <option value="newuser">will be assigned to a new user...</option>
76 + <option value="filter"<?php if ('filter'==$author_action) : echo ' selected="selected"'; endif; ?>>get filtered out</option>
77 + </select>
78 +
79 + <span id="author-rules-<?php echo $page->rule_count; ?>-newuser">named <input type="text" name="author_rules_newuser[]" value="" /></span>
80 + </td>
81 +</tr>
82 +<?php endforeach;
83 + endforeach;
84 + endif;
85 +?>
86 +
87 +<tr>
88 +<th style="text-align: left; width: 15.0em">Posts by <input type="text" name="add_author_rule_name" size="11" /></th>
89 + <td>
90 + <select id="add-author-rule" name="add_author_rule_action" onchange="contextual_appearance('add-author-rule', 'add-author-rule-newuser', 'add-author-rule-default', 'newuser', 'inline');">
91 + <?php foreach ($page->authorlist as $author_id => $author_name) : ?>
92 + <option value="<?php echo $author_id; ?>">are assigned to <?php echo $author_name; ?></option>
93 + <?php endforeach; ?>
94 + <option value="newuser">will be assigned to a new user...</option>
95 + <option value="filter">get filtered out</option>
96 + </select>
97 +
98 + <span id="add-author-rule-newuser">named <input type="text" name="add_author_rule_newuser" value="" /></span>
99 + </td>
100 +</tr>
101 +</table>
102 +</td>
103 +</tr>
104 +<?php endif; ?>
105 +
106 +<?php if ($page->for_default_settings()) : ?>
107 +<tr>
108 +<th scope="row">Matching Authors</th>
109 +<td><ul style="list-style: none; margin: 0; padding: 0;">
110 +<li><div><label><input id="match-author-by-email" type="checkbox" name="match_author_by_email" value="yes" <?php if ($match_author_by_email) : ?>checked="checked" <?php endif; ?>onchange="contextual_appearance('match-author-by-email', 'unless-null-email', null, 'yes', 'block', /*checkbox=*/ true);" /> Treat syndicated authors with the same e-mail address as the same author.</label></div>
111 +<div id="unless-null-email">
112 +<p>Unless the e-mail address is one of the following anonymous e-mail addresses:</p>
113 +<textarea name="null_emails" rows="3" style="width: 100%">
114 +<?php print implode("\n", $null_emails); ?>
115 +</textarea>
116 +</div></li>
117 +</ul></td>
118 +</tr>
119 +<?php endif; ?>
120 +</tbody>
121 +</table>
122 + <?php
123 + } /* FeedWordPressAuthorsPage::syndicated_authors_box () */
124 +
125 + /*static*/ function fix_authors_box ($page, $box = NULL) {
126 + ?>
127 + <table class="form-table">
128 + <tbody>
129 + <tr>
130 + <th scope="row">Fixing mis-matched authors:</th>
131 + <td><p style="margin: 0.5em 0px">Take all the posts from this feed attributed to
132 + <select name="fix_mismatch_from">
133 + <?php foreach ($page->authorlist as $author_id => $author_name) : ?>
134 + <option value="<?php echo $author_id; ?>"><?php echo $author_name; ?></option>
135 + <?php endforeach; ?>
136 + </select>
137 + and instead
138 + <select id="fix-mismatch-to" name="fix_mismatch_to" onchange="contextual_appearance('fix-mismatch-to', 'fix-mismatch-to-newuser', null, 'newuser', 'inline');">
139 + <?php foreach ($page->authorlist as $author_id => $author_name) : ?>
140 + <option value="<?php echo $author_id; ?>">re-assign them to <?php echo $author_name; ?></option>
141 + <?php endforeach; ?>
142 + <option value="newuser">re-assign them to a new user...</option>
143 + <option value="filter">delete them</option>
144 + </select>
145 +
146 + <span id="fix-mismatch-to-newuser">named <input type="text" name="fix_mismatch_to_newuser" value="" /></span>
147 + <input type="submit" class="button" name="fix_mismatch" value="Fix it!" />
148 + </td>
149 + </tr>
150 + </tbody>
151 + </table>
152 + <?php
153 + } /* FeedWordPressAuthorsPage::fix_authors_box () */
154 +} /* class FeedWordPressAuthorsPage */
155 +
4 156 function fwp_authors_page () {
5 157 global $wpdb, $wp_db_version;
6 158
159 + if (FeedWordPress::needs_upgrade()) :
160 + fwp_upgrade_page();
161 + return;
162 + endif;
163 +
7 164 FeedWordPressCompatibility::validate_http_request(/*action=*/ 'feedwordpress_author_settings', /*capability=*/ 'manage_links');
8 165
9 - if (isset($GLOBALS['fwp_post']['save']) or isset($GLOBALS['fwp_post']['fix_mismatch'])) :
10 - $link_id = $_REQUEST['save_link_id'];
11 - elseif (isset($_REQUEST['link_id'])) :
12 - $link_id = $_REQUEST['link_id'];
13 - else :
14 - $link_id = NULL;
15 - endif;
166 + $link = FeedWordPressAdminPage::submitted_link();
167 + $authorsPage = new FeedWordPressAuthorsPage($link);
16 168
17 - if (is_numeric($link_id) and $link_id) :
18 - $link =& new SyndicatedLink($link_id);
19 - else :
20 - $link = NULL;
21 - endif;
22 -
23 169 $mesg = null;
24 170
25 171 if (isset($GLOBALS['fwp_post']['fix_mismatch'])) :
26 172 if ('newuser'==$GLOBALS['fwp_post']['fix_mismatch_to']) :
@@ -56,9 +202,9 @@
56 202 SELECT {$wpdb->posts}.id
57 203 FROM {$wpdb->posts}, {$wpdb->postmeta}
58 204 WHERE ({$wpdb->posts}.id = {$wpdb->postmeta}.post_id)
59 205 AND {$wpdb->postmeta}.meta_key = 'syndication_feed_id'
60 - AND {$wpdb->postmeta}.meta_value = '{$link_id}'
206 + AND {$wpdb->postmeta}.meta_value = '{$link->id}'
61 207 AND {$wpdb->posts}.post_author = '{$fix_mismatch_from_id}'
62 208 ");
63 209
64 210 if (count($post_ids) > 0) :
@@ -138,26 +284,17 @@
138 284 $link->settings['map authors']['name'][$name] = $author_action;
139 285 endif;
140 286 endif;
141 287 endif;
142 -
143 - $alter[] = "link_notes = '".$wpdb->escape($link->settings_to_notes())."'";
144 -
145 - $alter_set = implode(", ", $alter);
146 -
147 - // issue update query
148 - $result = $wpdb->query("
149 - UPDATE $wpdb->links
150 - SET $alter_set
151 - WHERE link_id='$link_id'
152 - ");
288 +
289 + // Save settings
290 + $link->save_settings(/*reload=*/ true);
153 291 $updated_link = true;
154 -
155 - // reload link information from DB
156 - if (function_exists('clean_bookmark_cache')) :
157 - clean_bookmark_cache($link_id);
158 - endif;
159 - $link =& new SyndicatedLink($link_id);
292 +
293 + // Reset, reload
294 + $link_id = $link->id;
295 + unset($link);
296 + $link = new SyndicatedLink($link_id);
160 297 else :
161 298 if ('newuser'==$GLOBALS['fwp_post']['unfamiliar_author']) :
162 299 $newuser_name = trim($GLOBALS['fwp_post']['unfamiliar_author_newuser']);
163 300 if (strlen($newuser_name) > 0) :
@@ -196,266 +333,81 @@
196 333 endif;
197 334
198 335 $updated_link = true;
199 336 endif;
337 +
338 + do_action('feedwordpress_admin_page_authors_save', $GLOBALS['fwp_post'], $authorsPage);
200 339 else :
201 340 $updated_link = false;
202 341 endif;
342 +
343 + ////////////////////////////////////////////////
344 + // Prepare settings page ///////////////////////
345 + ////////////////////////////////////////////////
203 346
204 - $unfamiliar = array ('create' => '','default' => '','filter' => '');
205 -
206 - if (is_object($link) and $link->found()) :
207 - if (is_string($link->settings["unfamiliar author"])) :
208 - $key = $link->settings["unfamiliar author"];
209 - else:
210 - $key = 'site-default';
211 - endif;
212 - else :
213 - $key = FeedWordPress::on_unfamiliar('author');
214 - endif;
215 -
216 - $unfamiliar[$key] = ' selected="selected"';
217 -
218 - $match_author_by_email = !('yes' == get_option("feedwordpress_do_not_match_author_by_email"));
219 - $null_emails = FeedWordPress::null_email_set();
347 + if ($updated_link) :
220 348 ?>
221 -<script type="text/javascript">
222 - function contextual_appearance (item, appear, disappear, value, visibleStyle, checkbox) {
223 - if (typeof(visibleStyle)=='undefined') visibleStyle = 'block';
224 -
225 - var rollup=document.getElementById(item);
226 - var newuser=document.getElementById(appear);
227 - var sitewide=document.getElementById(disappear);
228 - if (rollup) {
229 - if ((checkbox && rollup.checked) || (!checkbox && value==rollup.value)) {
230 - if (newuser) newuser.style.display=visibleStyle;
231 - if (sitewide) sitewide.style.display='none';
232 - } else {
233 - if (newuser) newuser.style.display='none';
234 - if (sitewide) sitewide.style.display=visibleStyle;
235 - }
236 - }
237 - }
238 -</script>
239 -
240 -<?php if ($updated_link) : ?>
241 349 <div class="updated"><p>Syndicated author settings updated.</p></div>
242 350 <?php elseif (!is_null($mesg)) : ?>
243 -<div class="updated"><p><?php print wp_specialchars($mesg, 1); ?></p></div>
244 -<?php endif; ?>
351 +<div class="updated"><p><?php print esc_html($mesg); ?></p></div>
352 +<?php endif;
245 353
246 -<div class="wrap">
247 -<form style="position: relative" action="admin.php?page=<?php print $GLOBALS['fwp_path'] ?>/<?php echo basename(__FILE__); ?>" method="post">
248 -<div><?php
249 - FeedWordPressCompatibility::stamp_nonce('feedwordpress_author_settings');
250 -
251 - if (is_numeric($link_id) and $link_id) :
252 -?>
253 -<input type="hidden" name="save_link_id" value="<?php echo $link_id; ?>" />
254 -<?php
255 - else :
256 -?>
257 -<input type="hidden" name="save_link_id" value="*" />
258 -<?php
354 + if (function_exists('add_meta_box')) :
355 + add_action(
356 + FeedWordPressCompatibility::bottom_script_hook(__FILE__),
357 + /*callback=*/ array($authorsPage, 'fix_toggles'),
358 + /*priority=*/ 10000
359 + );
360 + FeedWordPressSettingsUI::ajax_nonce_fields();
259 361 endif;
260 -?>
261 -</div>
262 362
263 -<?php $links = FeedWordPress::syndicated_links(); ?>
264 -<?php if (fwp_test_wp_version(FWP_SCHEMA_27)) : ?>
265 - <div class="icon32"><img src="<?php print htmlspecialchars(WP_PLUGIN_URL.'/'.$GLOBALS['fwp_path'].'/feedwordpress.png'); ?>" alt="" /></div>
266 -<?php endif; ?>
267 -<h2>Syndicated Author Settings<?php if (!is_null($link) and $link->found()) : ?>: <?php echo wp_specialchars($link->link->link_name, 1); ?><?php endif; ?></h2>
268 -<?php if (fwp_test_wp_version(FWP_SCHEMA_27)) : ?>
269 - <style type="text/css">
270 - #post-search {
271 - float: right;
272 - margin:11px 12px 0;
273 - min-width: 130px;
274 - position:relative;
275 - }
276 - .fwpfs {
277 - color: #dddddd;
278 - background:#797979 url(<?php bloginfo('home') ?>/wp-admin/images/fav.png) repeat-x scroll left center;
279 - border-color:#777777 #777777 #666666 !important; -moz-border-radius-bottomleft:12px;
280 - -moz-border-radius-bottomright:12px;
281 - -moz-border-radius-topleft:12px;
282 - -moz-border-radius-topright:12px;
283 - border-style:solid;
284 - border-width:1px;
285 - line-height:15px;
286 - padding:3px 30px 4px 12px;
287 - }
288 - .fwpfs.slide-down {
289 - border-bottom-color: #626262;
290 - -moz-border-radius-bottomleft:0;
291 - -moz-border-radius-bottomright:0;
292 - -moz-border-radius-topleft:12px;
293 - -moz-border-radius-topright:12px;
294 - background-image:url(<?php bloginfo('home') ?>/wp-admin/images/fav-top.png);
295 - background-position:0 top;
296 - background-repeat:repeat-x;
297 - border-bottom-style:solid;
298 - border-bottom-width:1px;
299 - }
300 - </style>
301 -
302 - <script type="text/javascript">
303 - jQuery(document).ready(function($){
304 - $('.fwpfs').toggle(
305 - function(){$('.fwpfs').removeClass('slideUp').addClass('slideDown'); setTimeout(function(){if ( $('.fwpfs').hasClass('slideDown') ) { $('.fwpfs').addClass('slide-down'); }}, 10) },
306 - function(){$('.fwpfs').removeClass('slideDown').addClass('slideUp'); setTimeout(function(){if ( $('.fwpfs').hasClass('slideUp') ) { $('.fwpfs').removeClass('slide-down'); }}, 10) }
307 - );
308 - $('.fwpfs').bind(
309 - 'change',
310 - function () { this.form.submit(); }
311 - );
312 - $('#post-search .button').css( 'display', 'none' );
313 - });
314 - </script>
315 -<?php endif; /* else : */?>
316 -<p id="post-search">
317 -<select name="link_id" class="fwpfs" style="max-width: 20.0em;">
318 - <option value="*"<?php if (is_null($link) or !$link->found()) : ?> selected="selected"<?php endif; ?>>- defaults for all feeds -</option>
319 -<?php if ($links) : foreach ($links as $ddlink) : ?>
320 - <option value="<?php print (int) $ddlink->link_id; ?>"<?php if (!is_null($link) and ($link->link->link_id==$ddlink->link_id)) : ?> selected="selected"<?php endif; ?>><?php print wp_specialchars($ddlink->link_name, 1); ?></option>
321 -<?php endforeach; endif; ?>
322 -</select>
323 -<input class="button" type="submit" name="go" value="<?php _e('Go') ?> &raquo;" />
324 -</p>
325 -<?php /* endif; */ ?>
363 + $authorsPage->open_sheet('Syndicated Author');
364 + ?>
365 + <div id="post-body">
366 + <?php
367 + ////////////////////////////////////////////////
368 + // Display settings boxes //////////////////////
369 + ////////////////////////////////////////////////
326 370
327 -<?php if (!is_null($link) and $link->found()) : ?>
328 - <p>These settings only affect posts syndicated from
329 - <strong><?php echo wp_specialchars($link->link->link_name, 1); ?></strong>.</p>
330 -<?php else : ?>
331 - <p>These settings affect posts syndicated from any feed unless they are overridden
332 - by settings for that specific feed.</p>
333 -<?php endif; ?>
371 + $boxes_by_methods = array(
372 + 'syndicated_authors_box' => __('Syndicated Authors'),
373 + 'fix_authors_box' => __('Reassign Authors'),
374 + );
375 + if ($authorsPage->for_default_settings()) :
376 + unset($boxes_by_methods['fix_authors_box']);
377 + endif;
334 378
335 -<?php
336 - $authorlist = fwp_author_list();
337 -?>
338 -<table class="form-table">
339 -<tbody>
340 -<tr>
341 - <th>New authors</th>
342 - <td><span>Authors who haven't been syndicated before</span>
343 - <select style="max-width: 27.0em" id="unfamiliar-author" name="unfamiliar_author" onchange="contextual_appearance('unfamiliar-author', 'unfamiliar-author-newuser', 'unfamiliar-author-default', 'newuser', 'inline');">
344 -<?php if (is_object($link) and $link->found()) : ?>
345 - <option value="site-default"<?php print $unfamiliar['site-default']; ?>>are handled according to the default for all feeds</option>
346 -<?php endif; ?>
347 - <option value="create"<?php $unfamiliar['create']; ?>>will have a new author account created for them</option>
348 - <?php foreach ($authorlist as $author_id => $author_name) : ?>
349 - <option value="<?php echo $author_id; ?>"<?php print $unfamiliar[$author_id]; ?>>will have their posts attributed to <?php echo $author_name; ?></option>
350 - <?php endforeach; ?>
351 - <option value="newuser">will have their posts attributed to a new user...</option>
352 - <option value="filter"<?php print $unfamiliar['filter'] ?>>get filtered out</option>
353 - </select>
379 + foreach ($boxes_by_methods as $method => $row) :
380 + if (is_array($row)) :
381 + $id = $row['id'];
382 + $title = $row['title'];
383 + else :
384 + $id = 'feedwordpress_'.$method;
385 + $title = $row;
386 + endif;
354 387
355 - <span id="unfamiliar-author-newuser">named <input type="text" name="unfamiliar_author_newuser" value="" /></span></p>
356 - </td>
357 -</tr>
358 -
359 -<?php
360 -if (is_object($link) and $link->found()) :
388 + fwp_add_meta_box(
389 + /*id=*/ $id,
390 + /*title=*/ $title,
391 + /*callback=*/ array('FeedWordPressAuthorsPage', $method),
392 + /*page=*/ $authorsPage->meta_box_context(),
393 + /*context=*/ $authorsPage->meta_box_context()
394 + );
395 + endforeach;
396 + do_action('feedwordpress_admin_page_authors_meta_boxes', $authorsPage);
361 397 ?>
362 -<tr><th>Syndicated authors</th>
363 -<td>For attributing posts by specific authors. Blank out a name to delete the rule. Fill in a new name at the bottom to create a new rule.</p>
364 -<table style="width: 100%">
398 + <div class="metabox-holder">
365 399 <?php
366 - if (isset($link->settings['map authors'])) :
400 + fwp_do_meta_boxes($authorsPage->meta_box_context(), $authorsPage->meta_box_context(), $authorsPage);
367 401 ?>
368 -<?php
369 - $i=0;
370 - foreach ($link->settings['map authors'] as $author_rules) :
371 - foreach ($author_rules as $author_name => $author_action) :
372 - $i++;
373 -?>
374 -<tr>
375 -<th style="text-align: left; width: 15.0em">Posts by <input type="text" name="author_rules_name[]" value="<?php echo htmlspecialchars($author_name); ?>" size="11" /></th>
376 - <td>
377 - <select id="author-rules-<?php echo $i; ?>" name="author_rules_action[]" onchange="contextual_appearance('author-rules-<?php echo $i; ?>', 'author-rules-<?php echo $i; ?>-newuser', 'author-rules-<?php echo $i; ?>-default', 'newuser', 'inline');">
378 - <?php foreach ($authorlist as $local_author_id => $local_author_name) : ?>
379 - <option value="<?php echo $local_author_id; ?>"<?php if ($local_author_id==$author_action) : echo ' selected="selected"'; endif; ?>>are assigned to <?php echo $local_author_name; ?></option>
380 - <?php endforeach; ?>
381 - <option value="newuser">will be assigned to a new user...</option>
382 - <option value="filter"<?php if ('filter'==$author_action) : echo ' selected="selected"'; endif; ?>>get filtered out</option>
383 - </select>
384 -
385 - <span id="author-rules-<?php echo $i; ?>-newuser">named <input type="text" name="author_rules_newuser[]" value="" /></span>
386 - </td>
387 -</tr>
388 -<?php endforeach;
389 - endforeach;
390 - endif;
391 -?>
402 + </div> <!-- class="metabox-holder" -->
403 +</div> <!-- id="post-body" -->
404 +<?php $authorsPage->close_sheet(); ?>
392 405
393 -<tr>
394 -<th style="text-align: left; width: 15.0em">Posts by <input type="text" name="add_author_rule_name" size="11" /></th>
395 - <td>
396 - <select id="add-author-rule" name="add_author_rule_action" onchange="contextual_appearance('add-author-rule', 'add-author-rule-newuser', 'add-author-rule-default', 'newuser', 'inline');">
397 - <?php foreach ($authorlist as $author_id => $author_name) : ?>
398 - <option value="<?php echo $author_id; ?>">are assigned to <?php echo $author_name; ?></option>
399 - <?php endforeach; ?>
400 - <option value="newuser">will be assigned to a new user...</option>
401 - <option value="filter">get filtered out</option>
402 - </select>
403 -
404 - <span id="add-author-rule-newuser">named <input type="text" name="add_author_rule_newuser" value="" /></span>
405 - </td>
406 -</tr>
407 -</table>
408 -</td>
409 -</tr>
410 -<?php endif; ?>
411 -
412 -<?php if (!(is_object($link) and $link->found())) : ?>
413 -<tr>
414 -<th scope="row">Matching Authors</th>
415 -<td><ul style="list-style: none; margin: 0; padding: 0;">
416 -<li><div><label><input id="match-author-by-email" type="checkbox" name="match_author_by_email" value="yes" <?php if ($match_author_by_email) : ?>checked="checked" <?php endif; ?>onchange="contextual_appearance('match-author-by-email', 'unless-null-email', null, 'yes', 'block', /*checkbox=*/ true);" /> Treat syndicated authors with the same e-mail address as the same author.</label></div>
417 -<div id="unless-null-email">
418 -<p>Unless the e-mail address is one of the following anonymous e-mail addresses:</p>
419 -<textarea name="null_emails" rows="3" style="width: 100%">
420 -<?php print implode("\n", $null_emails); ?>
421 -</textarea>
422 -</div></li>
423 -</ul></td>
424 -</tr>
425 -<?php else : ?>
426 -<th scope="row">Fixing mis-matched authors:</th>
427 -<td><p style="margin: 0.5em 0px">Take all the posts from this feed attributed to
428 -<select name="fix_mismatch_from">
429 -<?php foreach ($authorlist as $author_id => $author_name) : ?>
430 - <option value="<?php echo $author_id; ?>"><?php echo $author_name; ?></option>
431 -<?php endforeach; ?>
432 -</select>
433 -and instead
434 -<select id="fix-mismatch-to" name="fix_mismatch_to" onchange="contextual_appearance('fix-mismatch-to', 'fix-mismatch-to-newuser', null, 'newuser', 'inline');">
435 -<?php foreach ($authorlist as $author_id => $author_name) : ?>
436 - <option value="<?php echo $author_id; ?>">re-assign them to <?php echo $author_name; ?></option>
437 -<?php endforeach; ?>
438 - <option value="newuser">re-assign them to a new user...</option>
439 - <option value="filter">delete them</option>
440 -</select>
441 -
442 - <span id="fix-mismatch-to-newuser">named <input type="text" name="fix_mismatch_to_newuser" value="" /></span>
443 - <input type="submit" class="button" name="fix_mismatch" value="Fix it!" />
444 - </td>
445 -</td>
446 -<?php endif; ?>
447 -</tbody>
448 -</table>
449 -
450 -<p class="submit">
451 -<input class="button-primary" type="submit" name="save" value="Save Changes" />
452 -</p>
453 -
454 406 <script type="text/javascript">
455 407 contextual_appearance('unfamiliar-author', 'unfamiliar-author-newuser', 'unfamiliar-author-default', 'newuser', 'inline');
456 408 <?php if (is_object($link) and $link->found()) : ?>
457 -<?php for ($j=1; $j<=$i; $j++) : ?>
409 +<?php for ($j=1; $j<=$authorsPage->rule_count; $j++) : ?>
458 410 contextual_appearance('author-rules-<?php echo $j; ?>', 'author-rules-<?php echo $j; ?>-newuser', 'author-rules-<?php echo $j; ?>-default', 'newuser', 'inline');
459 411 <?php endfor; ?>
460 412 contextual_appearance('add-author-rule', 'add-author-rule-newuser', 'add-author-rule-default', 'newuser', 'inline');
461 413 contextual_appearance('fix-mismatch-to', 'fix-mismatch-to-newuser', null, 'newuser', 'inline');
@@ -462,10 +414,8 @@
462 414 <?php else : ?>
463 415 contextual_appearance('match-author-by-email', 'unless-null-email', null, 'yes', 'block', /*checkbox=*/ true);
464 416 <?php endif; ?>
465 417 </script>
466 -</form>
467 -</div> <!-- class="wrap" -->
468 418 <?php
469 419 } /* function fwp_authors_page () */
470 420
471 421 fwp_authors_page();