PluginProbe
FeedWordPress / 2011.0211
FeedWordPress v2011.0211
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 +200 -243 2010.01272011.0211 View file →
@@ -4,25 +4,36 @@
4 4 class FeedWordPressAuthorsPage extends FeedWordPressAdminPage {
5 5 var $authorlist = NULL;
6 6 var $rule_count = 0;
7 7
8 - function FeedWordPressAuthorsPage ($link) {
8 + function FeedWordPressAuthorsPage ($link = -1) {
9 + if (is_numeric($link) and -1 == $link) :
10 + $link = FeedWordPressAdminPage::submitted_link();
11 + endif;
12 +
9 13 FeedWordPressAdminPage::FeedWordPressAdminPage('feedwordpressauthors', $link);
10 - $this->authorlist = fwp_author_list();
14 + $this->refresh_author_list();
11 15 $this->dispatch = 'feedwordpress_author_settings';
12 16 $this->filename = __FILE__;
17 +
18 + $this->pagenames = array(
19 + 'default' => 'Authors',
20 + 'settings-update' => 'Syndicated Authors',
21 + 'open-sheet' => 'Syndicated Author',
22 + );
13 23 }
14 24
25 + function refresh_author_list () {
26 + $this->authorlist = fwp_author_list();
27 + }
28 +
15 29 /*static*/ function syndicated_authors_box ($page, $box = NULL) {
16 30 $link = $page->link;
17 31 $unfamiliar = array ('create' => '','default' => '','filter' => '');
18 32
19 33 if ($page->for_feed_settings()) :
20 - if (is_string($link->settings["unfamiliar author"])) :
21 - $key = $link->settings["unfamiliar author"];
22 - else:
23 - $key = 'site-default';
24 - endif;
34 + $key = $this->link->setting('unfamiliar author', NULL, 'site-default');
35 + $unfamiliar['site-default'] = '';
25 36 else :
26 37 $key = FeedWordPress::on_unfamiliar('author');
27 38 endif;
28 39 $unfamiliar[$key] = ' selected="selected"';
@@ -32,47 +43,54 @@
32 43
33 44 // Hey ho, let's go...
34 45 ?>
35 46 <table class="form-table">
36 -<tbody>
37 -<tr>
38 - <th>New authors</th>
39 - <td><span>Authors who haven't been syndicated before</span>
40 - <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');">
41 -<?php if ($page->for_feed_settings()) : ?>
42 - <option value="site-default"<?php print $unfamiliar['site-default']; ?>>are handled according to the default for all feeds</option>
47 +<?php
48 +if ($page->for_feed_settings()) :
49 + $map = $this->link->setting('map authors', NULL, array());
50 +?>
51 +<tr><th>Matching authors</th>
52 +<td><p>How should FeedWordPress attribute posts from this feed to WordPress
53 +authors?</p>
54 +<ul class="settings">
55 +<li><p><input type="radio" name="author_rules_name[all]" value="*"
56 +<?php if (isset($map['name']['*'])) : $author_action = $map['name']['*']; ?>
57 + checked="checked"
58 +<?php else : $author_action = NULL; ?>
43 59 <?php endif; ?>
44 - <option value="create"<?php $unfamiliar['create']; ?>>will have a new author account created for them</option>
45 - <?php foreach ($page->authorlist as $author_id => $author_name) : ?>
46 - <option value="<?php echo $author_id; ?>"<?php print $unfamiliar[$author_id]; ?>>will have their posts attributed to <?php echo $author_name; ?></option>
60 + /> All posts syndicated
61 +from this feed <select class="author-rules" id="author-rules-all"
62 +name="author_rules_action[all]" onchange="contextual_appearance('author-rules-all', 'author-rules-all-newuser', 'author-rules-all-default', 'newuser', 'inline');">
63 + <?php foreach ($page->authorlist as $local_author_id => $local_author_name) : ?>
64 + <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>
47 65 <?php endforeach; ?>
48 - <option value="newuser">will have their posts attributed to a new user...</option>
49 - <option value="filter"<?php print $unfamiliar['filter'] ?>>get filtered out</option>
66 + <option value="newuser">will be assigned to a new user...</option>
67 + <option value="filter"<?php if ('filter'==$author_action) : echo ' selected="selected"'; endif; ?>>get filtered out</option>
50 68 </select>
69 + <span class="author-rules-newuser" id="author-rules-all-newuser">named
70 + <input type="text" name="author_rules_newuser[all]" value="" /></span></p></li>
71 +<li><p><input type="radio" name="author_rules_name[all]" value=""
72 +<?php if (!isset($map['name']['*'])) : ?>
73 + checked="checked"
74 +<?php endif; ?>
75 +/> Attribute posts to authors based on automatic mapping rules. (Blank out a
76 +name to delete the rule. Fill in a new name at the bottom to create a new rule.)</p>
51 77
52 - <span id="unfamiliar-author-newuser">named <input type="text" name="unfamiliar_author_newuser" value="" /></span></p>
53 - </td>
54 -</tr>
55 -
56 -<?php
57 -if ($page->for_feed_settings()) :
58 -?>
59 -<tr><th>Syndicated authors</th>
60 -<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>
61 78 <table style="width: 100%">
62 79 <?php
63 - if (isset($link->settings['map authors'])) :
80 + if (isset($this->link->settings['map authors'])) :
64 81 ?>
65 82 <?php
66 83 $page->rule_count=0;
67 - foreach ($link->settings['map authors'] as $author_rules) :
84 + foreach ($this->link->settings['map authors'] as $author_rules) :
68 85 foreach ($author_rules as $author_name => $author_action) :
69 - $page->rule_count++;
86 + if ($author_name != '*') :
87 + $page->rule_count++;
70 88 ?>
71 89 <tr>
72 90 <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>
73 91 <td>
74 - <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');">
92 + <select class="author-rules" 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');">
75 93 <?php foreach ($page->authorlist as $local_author_id => $local_author_name) : ?>
76 94 <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>
77 95 <?php endforeach; ?>
78 96 <option value="newuser">will be assigned to a new user...</option>
@@ -78,12 +96,14 @@
78 96 <option value="newuser">will be assigned to a new user...</option>
79 97 <option value="filter"<?php if ('filter'==$author_action) : echo ' selected="selected"'; endif; ?>>get filtered out</option>
80 98 </select>
81 99
82 - <span id="author-rules-<?php echo $page->rule_count; ?>-newuser">named <input type="text" name="author_rules_newuser[]" value="" /></span>
100 + <span class="author-rules-newuser" id="author-rules-<?php echo $page->rule_count; ?>-newuser">named <input type="text" name="author_rules_newuser[]" value="" /></span>
83 101 </td>
84 102 </tr>
85 -<?php endforeach;
103 +<?php
104 + endif;
105 + endforeach;
86 106 endforeach;
87 107 endif;
88 108 ?>
89 109
@@ -100,11 +120,33 @@
100 120
101 121 <span id="add-author-rule-newuser">named <input type="text" name="add_author_rule_newuser" value="" /></span>
102 122 </td>
103 123 </tr>
104 -</table>
124 +
125 +<tr>
126 +<th style="text-align: left; width: 15.0em">Unmatched authors</th>
127 +<td>
128 +<span>Authors who haven't been syndicated before</span>
129 + <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');">
130 +<?php if ($page->for_feed_settings()) : ?>
131 + <option value="site-default"<?php print $unfamiliar['site-default']; ?>>are handled according to the default for all feeds</option>
132 +<?php endif; ?>
133 + <option value="create"<?php print $unfamiliar['create']; ?>>will have a new author account created for them</option>
134 + <?php foreach ($page->authorlist as $author_id => $author_name) : ?>
135 + <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>
136 + <?php endforeach; ?>
137 + <option value="newuser">will have their posts attributed to a user named ...</option>
138 + <option value="filter"<?php print $unfamiliar['filter'] ?>>get filtered out</option>
139 + </select>
140 +
141 + <span id="unfamiliar-author-newuser"><input type="text" name="unfamiliar_author_newuser" value="" /></span></p>
105 142 </td>
106 143 </tr>
144 +</table></li>
145 +</ul>
146 +
147 +</td>
148 +</tr>
107 149 <?php endif; ?>
108 150
109 151 <?php if ($page->for_default_settings()) : ?>
110 152 <tr>
@@ -153,283 +195,198 @@
153 195 </tbody>
154 196 </table>
155 197 <?php
156 198 } /* FeedWordPressAuthorsPage::fix_authors_box () */
157 -} /* class FeedWordPressAuthorsPage */
158 199
159 -function fwp_authors_page () {
160 - global $wpdb, $wp_db_version;
200 + function display () {
201 + $this->boxes_by_methods = array(
202 + 'syndicated_authors_box' => __('Syndicated Authors'),
203 + 'fix_authors_box' => __('Reassign Authors'),
204 + );
205 + if ($this->for_default_settings()) :
206 + unset($this->boxes_by_methods['fix_authors_box']);
207 + endif;
161 208
162 - if (FeedWordPress::needs_upgrade()) :
163 - fwp_upgrade_page();
164 - return;
165 - endif;
209 + parent::display();
210 + ?>
211 +<script type="text/javascript">
212 + contextual_appearance('unfamiliar-author', 'unfamiliar-author-newuser', 'unfamiliar-author-default', 'newuser', 'inline');
213 +</script>
166 214
167 - FeedWordPressCompatibility::validate_http_request(/*action=*/ 'feedwordpress_author_settings', /*capability=*/ 'manage_links');
215 +<?php if ($this->for_feed_settings()) : ?>
216 +<script type="text/javascript">
217 + jQuery('.author-rules').each ( function () {
218 + contextual_appearance(this.id, this.id+'-newuser', this.id+'-default', 'newuser', 'inline');
219 + } );
168 220
169 - $link = FeedWordPressAdminPage::submitted_link();
170 - $link_id = $link->id;
171 - $authorsPage = new FeedWordPressAuthorsPage($link);
221 + contextual_appearance('add-author-rule', 'add-author-rule-newuser', 'add-author-rule-default', 'newuser', 'inline');
222 + contextual_appearance('fix-mismatch-to', 'fix-mismatch-to-newuser', null, 'newuser', 'inline');
223 +</script>
224 +<?php else : ?>
225 +<script type="text/javascript">
226 + contextual_appearance('match-author-by-email', 'unless-null-email', null, 'yes', 'block', /*checkbox=*/ true);
227 +</script>
228 +<?php endif;
229 + } /* FeedWordPressAuthorsPage::display () */
172 230
173 - $mesg = null;
231 + function accept_POST ($post) {
232 + if (isset($post['fix_mismatch']) and (strlen($post['fix_mismatch']) > 0)) :
233 + $this->fix_mismatch($post);
234 + else :
235 + parent::accept_POST($post);
236 + endif;
237 + }
174 238
175 - if (isset($GLOBALS['fwp_post']['fix_mismatch'])) :
176 - if ('newuser'==$GLOBALS['fwp_post']['fix_mismatch_to']) :
177 - $newuser_name = trim($GLOBALS['fwp_post']['fix_mismatch_to_newuser']);
178 - if (strlen($newuser_name) > 0) :
179 - $userdata = array();
180 - $userdata['ID'] = NULL;
181 -
182 - $userdata['user_login'] = sanitize_user($newuser_name);
183 - $userdata['user_login'] = apply_filters('pre_user_login', $userdata['user_login']);
184 -
185 - $userdata['user_nicename'] = sanitize_title($newuser_name);
186 - $userdata['user_nicename'] = apply_filters('pre_user_nicename', $userdata['user_nicename']);
187 -
188 - $userdata['display_name'] = $wpdb->escape($newuser_name);
239 + function fix_mismatch ($post) {
240 + global $wpdb;
189 241
190 - $newuser_id = wp_insert_user($userdata);
191 - if (is_numeric($newuser_id)) :
192 - $fix_mismatch_to_id = $newuser_id;
193 - else :
194 - // TODO: Add some error detection and reporting
195 - endif;
196 - else :
197 - // TODO: Add some error reporting
198 - endif;
242 + if ('newuser'==$post['fix_mismatch_to']) :
243 + $newuser_name = trim($post['fix_mismatch_to_newuser']);
244 + $to = fwp_insert_new_user($newuser_name);
199 245 else :
200 - $fix_mismatch_to_id = $GLOBALS['fwp_post']['fix_mismatch_to'];
246 + $to = $post['fix_mismatch_to'];
201 247 endif;
202 - $fix_mismatch_from_id = (int) $GLOBALS['fwp_post']['fix_mismatch_from'];
203 - if (is_numeric($fix_mismatch_from_id)) :
204 - // Make a list of all the items by this author syndicated from this feed...
248 +
249 + $from = (int) $post['fix_mismatch_from'];
250 + if (is_numeric($from)) :
251 + // Make a list of all the items by this author
252 + // syndicated from this feed...
205 253 $post_ids = $wpdb->get_col("
206 254 SELECT {$wpdb->posts}.id
207 255 FROM {$wpdb->posts}, {$wpdb->postmeta}
208 256 WHERE ({$wpdb->posts}.id = {$wpdb->postmeta}.post_id)
209 257 AND {$wpdb->postmeta}.meta_key = 'syndication_feed_id'
210 - AND {$wpdb->postmeta}.meta_value = '{$link_id}'
211 - AND {$wpdb->posts}.post_author = '{$fix_mismatch_from_id}'
258 + AND {$wpdb->postmeta}.meta_value = '{$this->link->id}'
259 + AND {$wpdb->posts}.post_author = '{$from}'
212 260 ");
213 261
214 262 if (count($post_ids) > 0) :
263 + $N = count($post_ids);
264 + $posts = 'post'.(($N==1) ? '' : 's');
265 +
215 266 // Re-assign them all to the correct author
216 - if (is_numeric($fix_mismatch_to_id)) : // re-assign to a particular user
267 + if (is_numeric($to)) : // re-assign to a particular user
217 268 $post_set = "(".implode(",", $post_ids).")";
218 269
219 270 // Getting the revisions too, if there are any
220 - if (fwp_test_wp_version(FWP_SCHEMA_26)) :
221 - $parent_in_clause = "OR {$wpdb->posts}.post_parent IN $post_set";
222 - else :
223 - $parent_in_clause = '';
224 - endif;
271 + $parent_in_clause = "OR {$wpdb->posts}.post_parent IN $post_set";
225 272
226 273 $wpdb->query("
227 274 UPDATE {$wpdb->posts}
228 - SET post_author='{$fix_mismatch_to_id}'
275 + SET post_author='{$to}'
229 276 WHERE ({$wpdb->posts}.id IN $post_set
230 277 $parent_in_clause)
231 278 ");
232 - $mesg = "Re-assigned ".count($post_ids)." post".((count($post_ids)==1)?'':'s').".";
279 + $this->mesg = sprintf(__("Re-assigned %d ${posts}."), $N);
233 280
234 281 // ... and kill them all
235 - elseif ($fix_mismatch_to_id=='filter') :
282 + elseif ('filter'==$to) :
236 283 foreach ($post_ids as $post_id) :
237 284 wp_delete_post($post_id);
238 - endforeach;
239 - $mesg = "Deleted ".count($post_ids)." post".((count($post_ids)==1)?'':'s').".";
285 + endforeach;
286 +
287 + $this->mesg = sprintf(__("Deleted %d ${posts}."), $N);
240 288 endif;
241 289 else :
242 - $mesg = "Couldn't find any posts that matched your criteria.";
290 + $this->mesg = __("Couldn't find any posts that matched your criteria.");
243 291 endif;
244 292 endif;
245 - elseif (isset($GLOBALS['fwp_post']['save'])) :
246 - if (is_object($link) and $link->found()) :
293 + $this->updated = false;
294 + }
295 +
296 + function save_settings ($post) {
297 +
298 + if ($this->for_feed_settings()) :
247 299 $alter = array ();
248 300
249 301 // Unfamiliar author rule
250 - if (isset($GLOBALS['fwp_post']["unfamiliar_author"])) :
251 - if ('site-default'==$GLOBALS['fwp_post']["unfamiliar_author"]) :
252 - unset($link->settings["unfamiliar author"]);
253 - elseif ('newuser'==$GLOBALS['fwp_post']["unfamiliar_author"]) :
254 - $newuser_name = trim($GLOBALS['fwp_post']["unfamiliar_author_newuser"]);
255 - $link->map_name_to_new_user(/*name=*/ NULL, $newuser_name);
302 + if (isset($post["unfamiliar_author"])) :
303 + if ('newuser'==$post['unfamiliar_author']) :
304 + $new_name = trim($post["unfamiliar_author_newuser"]);
305 + $this->link->map_name_to_new_user(/*name=*/ NULL, $new_name);
256 306 else :
257 - $link->settings["unfamiliar author"] = $GLOBALS['fwp_post']["unfamiliar_author"];
307 + $this->link->update_setting(
308 + "unfamiliar author",
309 + $post['unfamiliar_author'],
310 + 'site-default'
311 + );
258 312 endif;
259 313 endif;
260 314
261 315 // Handle author mapping rules
262 - if (isset($GLOBALS['fwp_post']['author_rules_name']) and isset($GLOBALS['fwp_post']['author_rules_action'])) :
263 - unset($link->settings['map authors']);
264 - foreach ($GLOBALS['fwp_post']['author_rules_name'] as $key => $name) :
316 + if (isset($post['author_rules_name'])
317 + and isset($post['author_rules_action'])) :
318 + if (isset($post['author_rules_name']['all'])) :
319 + if (strlen($post['author_rules_name']['all']) > 0) :
320 + $post['author_rules_name'] = array(
321 + 'all' => $post['author_rules_name']['all'],
322 + );
323 +
324 + // Erase all the rest.
325 + endif;
326 + endif;
327 +
328 + unset($this->link->settings['map authors']);
329 + foreach ($post['author_rules_name'] as $key => $name) :
265 330 // Normalize for case and whitespace
266 331 $name = strtolower(trim($name));
267 - $author_action = strtolower(trim($GLOBALS['fwp_post']['author_rules_action'][$key]));
332 + $author_action = strtolower(trim($post['author_rules_action'][$key]));
268 333
269 334 if (strlen($name) > 0) :
270 335 if ('newuser' == $author_action) :
271 - $newuser_name = trim($GLOBALS['fwp_post']['author_rules_newuser'][$key]);
272 - $link->map_name_to_new_user($name, $newuser_name);
336 + $new_name = trim($post['author_rules_newuser'][$key]);
337 + $this->link->map_name_to_new_user($name, $new_name);
273 338 else :
274 - $link->settings['map authors']['name'][$name] = $author_action;
339 + $this->link->settings['map authors']['name'][$name] = $author_action;
275 340 endif;
276 341 endif;
277 342 endforeach;
278 343 endif;
279 344
280 - if (isset($GLOBALS['fwp_post']['add_author_rule_name']) and isset($GLOBALS['fwp_post']['add_author_rule_action'])) :
281 - $name = strtolower(trim($GLOBALS['fwp_post']['add_author_rule_name']));
282 - $author_action = strtolower(trim($GLOBALS['fwp_post']['add_author_rule_action']));
345 + if (isset($post['add_author_rule_name'])
346 + and isset($post['add_author_rule_action'])) :
347 + $name = strtolower(trim($post['add_author_rule_name']));
348 + $author_action = strtolower(trim($post['add_author_rule_action']));
349 +
283 350 if (strlen($name) > 0) :
284 351 if ('newuser' == $author_action) :
285 - $newuser_name = trim($GLOBALS['fwp_post']['add_author_rule_newuser']);
286 - $link->map_name_to_new_user($name, $newuser_name);
352 + $new_name = trim($post['add_author_rule_newuser']);
353 + $this->link->map_name_to_new_user($name, $new_name);
287 354 else :
288 - $link->settings['map authors']['name'][$name] = $author_action;
355 + $this->link->settings['map authors']['name'][$name] = $author_action;
289 356 endif;
290 357 endif;
291 358 endif;
292 -
293 - $alter[] = "link_notes = '".$wpdb->escape($link->settings_to_notes())."'";
294 -
295 - $alter_set = implode(", ", $alter);
296 -
297 - // issue update query
298 - $result = $wpdb->query("
299 - UPDATE $wpdb->links
300 - SET $alter_set
301 - WHERE link_id='$link_id'
302 - ");
303 - $updated_link = true;
304 -
305 - // reload link information from DB
306 - if (function_exists('clean_bookmark_cache')) :
307 - clean_bookmark_cache($link_id);
308 - endif;
309 - $link =& new SyndicatedLink($link_id);
310 359 else :
311 - if ('newuser'==$GLOBALS['fwp_post']['unfamiliar_author']) :
312 - $newuser_name = trim($GLOBALS['fwp_post']['unfamiliar_author_newuser']);
313 - if (strlen($newuser_name) > 0) :
314 - $userdata = array();
315 - $userdata['ID'] = NULL;
316 -
317 - $userdata['user_login'] = sanitize_user($newuser_name);
318 - $userdata['user_login'] = apply_filters('pre_user_login', $userdata['user_login']);
319 -
320 - $userdata['user_nicename'] = sanitize_title($newuser_name);
321 - $userdata['user_nicename'] = apply_filters('pre_user_nicename', $userdata['user_nicename']);
322 -
323 - $userdata['display_name'] = $wpdb->escape($newuser_name);
324 -
325 - $newuser_id = wp_insert_user($userdata);
326 - if (is_numeric($newuser_id)) :
327 - update_option('feedwordpress_unfamiliar_author', $newuser_id);
328 - else :
329 - // TODO: Add some error detection and reporting
330 - endif;
360 + if ('newuser'==$post['unfamiliar_author']) :
361 + $new_name = trim($post['unfamiliar_author_newuser']);
362 + $new_id = fwp_insert_new_user($new_name);
363 + if (is_numeric($new_id)) :
364 + update_option('feedwordpress_unfamiliar_author', $new_id);
331 365 else :
332 - // TODO: Add some error reporting
333 - endif;
366 + // TODO: Add some error detection and reporting
367 + // Put WP_Error stuff into $this->mesg ?
368 + endif;
334 369 else :
335 - update_option('feedwordpress_unfamiliar_author', $GLOBALS['fwp_post']['unfamiliar_author']);
370 + update_option('feedwordpress_unfamiliar_author', $post['unfamiliar_author']);
336 371 endif;
337 372
338 - if (isset($GLOBALS['fwp_post']['match_author_by_email']) and $GLOBALS['fwp_post']['match_author_by_email']=='yes') :
339 - update_option('feedwordpress_do_not_match_author_by_email', 'no');
340 - else :
341 - update_option('feedwordpress_do_not_match_author_by_email', 'yes');
342 - endif;
373 + update_option('feedwordpress_do_not_match_author_by_email',
374 + (isset($post['match_author_by_email'])
375 + and 'yes'==$post['match_author_by_email'])
376 + ? 'no'
377 + : 'yes'
378 + );
343 379
344 - if (isset($GLOBALS['fwp_post']['null_emails'])) :
345 - update_option('feedwordpress_null_email_set', $GLOBALS['fwp_post']['null_emails']);
380 + if (isset($post['null_emails'])) :
381 + update_option('feedwordpress_null_email_set', $post['null_emails']);
346 382 endif;
347 -
348 - $updated_link = true;
349 383 endif;
350 384
351 - do_action('feedwordpress_admin_page_authors_save', $GLOBALS['fwp_post'], $authorsPage);
352 - else :
353 - $updated_link = false;
354 - endif;
355 -
356 - ////////////////////////////////////////////////
357 - // Prepare settings page ///////////////////////
358 - ////////////////////////////////////////////////
385 + parent::save_settings($post);
386 + $this->refresh_author_list();
387 + }
388 +} /* class FeedWordPressAuthorsPage */
359 389
360 - if ($updated_link) :
361 -?>
362 -<div class="updated"><p>Syndicated author settings updated.</p></div>
363 -<?php elseif (!is_null($mesg)) : ?>
364 -<div class="updated"><p><?php print wp_specialchars($mesg, 1); ?></p></div>
365 -<?php endif;
366 -
367 - if (function_exists('add_meta_box')) :
368 - add_action(
369 - FeedWordPressCompatibility::bottom_script_hook(__FILE__),
370 - /*callback=*/ array($authorsPage, 'fix_toggles'),
371 - /*priority=*/ 10000
372 - );
373 - FeedWordPressSettingsUI::ajax_nonce_fields();
374 - endif;
375 -
376 - $authorsPage->open_sheet('Syndicated Author');
377 - ?>
378 - <div id="post-body">
379 - <?php
380 - ////////////////////////////////////////////////
381 - // Display settings boxes //////////////////////
382 - ////////////////////////////////////////////////
383 -
384 - $boxes_by_methods = array(
385 - 'syndicated_authors_box' => __('Syndicated Authors'),
386 - 'fix_authors_box' => __('Reassign Authors'),
387 - );
388 - if ($authorsPage->for_default_settings()) :
389 - unset($boxes_by_methods['fix_authors_box']);
390 - endif;
391 -
392 - foreach ($boxes_by_methods as $method => $row) :
393 - if (is_array($row)) :
394 - $id = $row['id'];
395 - $title = $row['title'];
396 - else :
397 - $id = 'feedwordpress_'.$method;
398 - $title = $row;
399 - endif;
400 -
401 - fwp_add_meta_box(
402 - /*id=*/ $id,
403 - /*title=*/ $title,
404 - /*callback=*/ array('FeedWordPressAuthorsPage', $method),
405 - /*page=*/ $authorsPage->meta_box_context(),
406 - /*context=*/ $authorsPage->meta_box_context()
407 - );
408 - endforeach;
409 - do_action('feedwordpress_admin_page_authors_meta_boxes', $authorsPage);
410 -?>
411 - <div class="metabox-holder">
412 -<?php
413 - fwp_do_meta_boxes($authorsPage->meta_box_context(), $authorsPage->meta_box_context(), $authorsPage);
414 -?>
415 - </div> <!-- class="metabox-holder" -->
416 -</div> <!-- id="post-body" -->
417 -<?php $authorsPage->close_sheet(); ?>
418 -
419 -<script type="text/javascript">
420 - contextual_appearance('unfamiliar-author', 'unfamiliar-author-newuser', 'unfamiliar-author-default', 'newuser', 'inline');
421 -<?php if (is_object($link) and $link->found()) : ?>
422 -<?php for ($j=1; $j<=$authorsPage->rule_count; $j++) : ?>
423 - contextual_appearance('author-rules-<?php echo $j; ?>', 'author-rules-<?php echo $j; ?>-newuser', 'author-rules-<?php echo $j; ?>-default', 'newuser', 'inline');
424 -<?php endfor; ?>
425 - contextual_appearance('add-author-rule', 'add-author-rule-newuser', 'add-author-rule-default', 'newuser', 'inline');
426 - contextual_appearance('fix-mismatch-to', 'fix-mismatch-to-newuser', null, 'newuser', 'inline');
427 -<?php else : ?>
428 - contextual_appearance('match-author-by-email', 'unless-null-email', null, 'yes', 'block', /*checkbox=*/ true);
429 -<?php endif; ?>
430 -</script>
431 -<?php
432 -} /* function fwp_authors_page () */
433 -
434 - fwp_authors_page();
390 + $authorsPage = new FeedWordPressAuthorsPage;
391 + $authorsPage->display();
435 392