| @@ -1,6 +1,194 @@ | ||
| 1 | 1 | FeedWordPress Change Log |
| 2 | 2 | ======================== |
| 3 | +Changes from 2009.0707 to Trunk | |
| 4 | +------------------------------- | |
| 5 | + | |
| 6 | +### Compatibility ### | |
| 7 | + | |
| 8 | +* SIMPLEPIE IS NOW USED TO PARSE FEEDS; NO MORE MAGPIERSS UPGRADES NEEDED: | |
| 9 | + One of the biggest changes in this release is that FeedWordPress no | |
| 10 | + longer depends on MagpieRSS to parse feeds, and has switched to the much | |
| 11 | + more up-to-date and flexible SimplePie feed parser, which is included as | |
| 12 | + a standard part of WordPress versions 2.8 and later. Using SimplePie will | |
| 13 | + hopefully allow for better handling of feeds going further, and will | |
| 14 | + allow me greater flexibility in determining how exactly the feed parser | |
| 15 | + will operate. It also means that FeedWordPress no longer requires | |
| 16 | + special upgrades to the WordPress core MagpieRSS files, and should | |
| 17 | + eliminate quite a bit of complexity. | |
| 18 | + | |
| 19 | +* MAGPIERSS COMPATIBILITY LAYER FOR EXISTING FILTERS AND ADD-ONS: However, | |
| 20 | + I have also implemented a compatibility layer to ensure that existing | |
| 21 | + filters and add-ons for FeedWordPress which depended on the MagpieRSS | |
| 22 | + data format *should not be broken* by the switch to SimplePie. Going | |
| 23 | + forward, I recommend that new filters and add-ons be written to take | |
| 24 | + advantage of the SimplePie object representations of items, feeds, etc., | |
| 25 | + rather than the MagpieRSS arrays, but the MagpieRSS arrays will still | |
| 26 | + be available and older filters should continue to work as they have in | |
| 27 | + the past. | |
| 28 | + | |
| 29 | +* COMPATIBILITY WITH WORDPRESS 2.9.x and 3.0: This release has been tested | |
| 30 | + for the existing WordPress 2.9.x branch and with the upcoming release of | |
| 31 | + WordPress 3.0. Changes in the user interface JavaScript between WordPress | |
| 32 | + 2.8.x and WordPress 2.9 caused the tag box interface element to break in | |
| 33 | + the Syndication --> Categories & Tags settings page; changes in the API | |
| 34 | + functions for adding new authors caused fatal errors under certain | |
| 35 | + conditions in WordPress 3.0. These breakages have been fixed. | |
| 36 | + | |
| 37 | +* DROPPED LEGACY SUPPORT FOR WORDPRESS PRIOR TO 2.8: Because SimplePie is | |
| 38 | + not included with versions of WordPress prior to 2.8, I have chosen to | |
| 39 | + drop legacy support for WordPress versions 1.5 through 2.7. If you are | |
| 40 | + using FeedWordPress with a version of WordPress before 2.8, you will | |
| 41 | + have to upgrade your installation of WordPress in order to take | |
| 42 | + advantage of this release. | |
| 43 | + | |
| 44 | +* PHP 5.3 COMPATIBILITY: A couple of compatibility issues, which were | |
| 45 | + causing fatal errors amd ugly warnings for users of PHP 5.3, | |
| 46 | + have been eliminated. | |
| 47 | + | |
| 48 | +### Features and Processing ### | |
| 49 | + | |
| 50 | +* INTERFACE REORGANIZATION: The interface restructuring, began with | |
| 51 | + Version 2009.0612, has been completed. Catch-all settings pages have | |
| 52 | + been eliminated entirely for pages that cover each aspect of handling | |
| 53 | + a feed: Feeds & Updates, Posts & Links, Authors, Categories & Tags, | |
| 54 | + and Back End handling of the database and diagnostic information. | |
| 55 | + Extensive new interface hooks allow add-on modules to significantly | |
| 56 | + change or extend the FeedWordPress admin interface and workflow. | |
| 57 | + | |
| 58 | +* STORING INFORMATION FROM THE FEED IN CUSTOM FIELDS: Many users | |
| 59 | + have written to request the ability to store information from elements | |
| 60 | + in the feed in a custom field on each post. (So that, for example, if | |
| 61 | + post includes a `itunes:duration` element, you could store the contents | |
| 62 | + in a Custom Field called `duration` on the post (for a Theme to access | |
| 63 | + later). The Custom Post Settings under Syndication --> Posts & Links now | |
| 64 | + allow you to access any item or feed tag, using a syntax similar to | |
| 65 | + a much-simplified version of XPath. See Posts & Links settings for | |
| 66 | + details. | |
| 67 | + | |
| 68 | +* UPDATE-FREEZING ON MANUALLY EDITED POSTS: FeedWordPress now allows you | |
| 69 | + to mark posts that have been manually edited, so that the changes you | |
| 70 | + make will not be overwritten by later updates from the feed. If you make | |
| 71 | + manual edits to a particular post, just check the "Manual editing" | |
| 72 | + checkbox in order to protect your changes from being overwritten. If you | |
| 73 | + want to block *all* posts from being updated after they are imported | |
| 74 | + for the first time, a new "Updated Posts" setting in Posts & Links | |
| 75 | + allows you to freeze all posts from a particular feed, or all syndicated | |
| 76 | + posts. | |
| 77 | + | |
| 78 | +* SETTING: FEED-BY-FEED SETTINGS FOR WHERE PERMALINKS POINT TO: You've | |
| 79 | + always been able to tell FeedWordPress whether permalinks for posts | |
| 80 | + should point to the original source of the story or the local copy. Now | |
| 81 | + you can choose different policies for different feeds, instead of one | |
| 82 | + global policy for all feeds. (Of course, you can still use a global | |
| 83 | + default if you prefer.) | |
| 84 | + | |
| 85 | +* SETTING: USER CONTROL OVER TIMING BASIS. You can now determine the | |
| 86 | + schedule on which feeds are considered ready to poll for updates -- | |
| 87 | + by default feeds become ready for polling after about 1 hour. You can | |
| 88 | + now increase or decrease the time window under Syndication --> Feeds & | |
| 89 | + Updates. (However, please pay *CAREFUL ATTENTION* to the recommendations | |
| 90 | + and DO NOT set the scheduling lower than 60 minutes unless you are | |
| 91 | + ABSOLUTELY SURE that you have specific permission from webmaster who | |
| 92 | + provides that specific feed to poll more frequently than that. If you | |
| 93 | + set this too low (and about 60 minutes is the polite minimum if you | |
| 94 | + haven't been given a different figure), most webmasters will consider | |
| 95 | + the frequent hits on their server as rude, or even downright abusive. | |
| 96 | + | |
| 97 | +* OTHER SETTINGS: New settings also include the ability to stop FWP from | |
| 98 | + resolving relative URLs within syndicated content, and the ability to | |
| 99 | + choose whether FeedWordPress should indicate the comment feed from the | |
| 100 | + original source, or the local comment feed, when providing the comment | |
| 101 | + feed URL for a syndicated post. | |
| 102 | + | |
| 103 | +### PARSING ### | |
| 104 | + | |
| 105 | +* BETTER DATE HANDLING -- FEWER FLASHBACKS TO 1969 and 1970: FeedWordPress | |
| 106 | + has made some bugfixes and some improvements in the logic for parsing | |
| 107 | + dates. This should allow FeedWordPress to correctly parse more dates in | |
| 108 | + more feeds; and, in the last resort, when FeedWordPress fails to | |
| 109 | + correctly parse a date, to fall back to a more intelligent default. This | |
| 110 | + should hopefully avoid most or all error conditions that have resulted | |
| 111 | + in articles being erroneously dated to the dawn of the Unix epoch | |
| 112 | + (31 December 1969 or 1 January 1970). | |
| 113 | + | |
| 114 | +* FULL-TEXT "EXCERPTS" NOW PROPERLY SHORTENED. Based on a straightforward | |
| 115 | + reading of the existing RSS specs, it's reasonable for the | |
| 116 | + rss:description element to be read as a plaintext summary or excerpt for | |
| 117 | + the item containing the description -- with the full text of the item, | |
| 118 | + if available, in another, better-suited element, such as the de facto | |
| 119 | + standard content:encoded extension element. The problem is that uses of | |
| 120 | + RSS rarely have much to do with anything like a straightforward reading | |
| 121 | + of the specs. As a result, many actual RSS producers in the wild put the | |
| 122 | + full text of the article in a description element. But since | |
| 123 | + FeedWordPress has treated this text as a summary, this produces | |
| 124 | + aggregated posts with lengthy "excerpts" containing the full text of the | |
| 125 | + article. This release of FeedWordPress fixes the problem by doing a | |
| 126 | + little digging before treating rss:description as a summary: if the | |
| 127 | + description element is used properly as a plain text summary, then | |
| 128 | + FeedWordPress will take the summary provided by the feed, rather than | |
| 129 | + recreating its own excerpt from the full text; but if an RSS item has no | |
| 130 | + full-text element other than description, FeedWordPress will treat the | |
| 131 | + description element as the full text of the article, and generate a | |
| 132 | + shortened excerpt automatically from that text. | |
| 133 | + | |
| 134 | +### API ### | |
| 135 | + | |
| 136 | +* TEMPLATE API: new template tags `get_local_permalink()` and | |
| 137 | + `the_local_permalink()` allow you to access the permalink for a post on | |
| 138 | + your aggregator site, even when FeedWordPress is rewriting permalinks to | |
| 139 | + point to the original source site. | |
| 140 | + | |
| 141 | +* NEW HOOKS FOR ADD-ONS AND FILTERS: I have added a number of new hooks | |
| 142 | + which allow add-on modules to filter more precisely, gather information | |
| 143 | + at more points, and to enhance the FeedWordPress admin interface. For | |
| 144 | + a list of new hooks and documentation, see the FeedWordPress | |
| 145 | + documentation wiki at | |
| 146 | + <http://feedwordpress.radgeek.com/wiki/add-ons-and-filters> | |
| 147 | + | |
| 148 | +* FILTER API: A number of new utility methods have been added to the | |
| 149 | + SyndicatedPost class to make it easier for filters and add-ons to | |
| 150 | + | |
| 151 | +* FILTER API: Globals $fwp_channel and $fwp_feedmeta DEPRECATED. These | |
| 152 | + global variables, originally introduced to allow filters access to | |
| 153 | + information about the source feed in `syndicated_item` filters (which | |
| 154 | + were passed in through global variables rather than as parameters | |
| 155 | + because of a bug in WP 1.5 which was then fixed in 1.5.1) have been | |
| 156 | + DEPRECATED. If you have any filters or add-ons which still depend on | |
| 157 | + these global variables, you should see about fixing them to access data | |
| 158 | + about the source feed using the SyndicatedPost::link element instead. | |
| 159 | + For documentation, see the FeedWordPress documentation wiki at | |
| 160 | + <http://feedwordpress.radgeek.com/wiki/syndicatedpost> and | |
| 161 | + <http://feedwordpress.radgeek.com/wiki/syndicatedlink>. | |
| 162 | + | |
| 163 | +* DIAGNOSTICS: I've included a number of new diagnostic options and | |
| 164 | + messages, which should allow an experienced user to better investigate | |
| 165 | + any problems that may crop up. | |
| 166 | + | |
| 167 | +### Bug Fixes ### | |
| 168 | + | |
| 169 | +* BUGFIX: & IN PERMALINKS NO LONGER CAUSING ATOM OR HTML VALIDATION | |
| 170 | + EFFORTS: Many users reported an issue in which syndicating a feed with | |
| 171 | + special XML characters in the URLs (& was the most common, since it is | |
| 172 | + used to separate HTTP GET parameters) would cause the aggregator's | |
| 173 | + feeds to produce invalid (malformed) XML. This update addresses the | |
| 174 | + issue in Atom feeds. Unfortunately, it has not been technically possible | |
| 175 | + to address the problem in RSS 2.0 feeds, due to limitations on | |
| 176 | + WordPress's internal templates for RSS feeds. | |
| 177 | + | |
| 178 | +* BUGFIX: BROKEN URLS IN "POPULAR POSTS" AND SIMILAR PLUGINS SHOULD NO | |
| 179 | + LONGER BE BROKEN. A number of users noticed an issue where plugins and | |
| 180 | + templates that listed posts in locations outside of the post loop | |
| 181 | + (for example, "Popular Posts"-style plugins that listed posts in the | |
| 182 | + sidebar), often produced the wrong URL for post links. (Typically, all | |
| 183 | + the posts listed would get the same wrong URL.) This should now be | |
| 184 | + fixed. Thanks to Björn for sending in a quick fix! | |
| 185 | + | |
| 186 | +* MINOR BUGFIXES: This release includes a number of fixes to minor bugs | |
| 187 | + and compatibility issues, including: silent failures of the "Syndicate" | |
| 188 | + button, "Illegal Offset Type" error messages from MagpieRSS, | |
| 189 | + | |
| 190 | + | |
| 3 | 191 | Changes from 2009.0618 to 2009.0707 |
| 4 | 192 | ----------------------------------- |
| 5 | 193 | * BUGFIX: WORDPRESS 2.8 AJAX COMPATIBILITY ISSUES RESOLVED (blank or |
| 6 | 194 | truncated "Syndicated Sites" administration page): Due to changes in the |