=== Tweet Blender === Contributors: kirilln Tags: sidebar, twitter, tweets, multiple authors, favorites, tweet, tags, lists, hashtags, archive, widget, admin, AJAX, jquery, keywords, BuddyPress, blender Requires at least: 2.8.0 Tested up to: 3.7.1 Stable tag: 4.0.2 Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=5907095 Provides several Twitter widgets: show your own tweets, show tweets relevant to post's tags, show tweets for Twitter lists, show tweets for hashtags, show tweets for keyword searches. Multiple widgets on the same page are supported. Can combine sources and blend all of them into a single stream. == Description == Better than Twitter's own widgets - Tweet Blender is tag-aware and has support for multiple authors, lists, hashtags, and keywords all blended together. The plugin can show tweets from just one user or a list of users (as all other Twitter plugins do); however, it can also show tweets for a topic which you can define via Twitter hashtag or keyword. But there is more! It can also show tweets for multiple authors AND multiple lists AND multiple keywords AND multiple hashtags all blended together into a single stream. Submit ideas, ask questions, or report problems on the [GetSatisfaction.com community site for Tweet Blender widget](http://getsatisfaction.com/tweet_blender "Get Satisfaction!") Follow [Tweet Blender on Twitter](http://twitter.com/tweetblender "@tweetblender") to keep up to date on bug fixes and releases and join the conversation using [#tweetblender](http://search.twitter.com/search?q=%23tweetblender "#tweetblender") hashtag = Features = * Checkboxes on the archive page allowing to see archive for just some of the sources * Fully localizable! Russian translation available as of 3.3.6, more languages coming soon (please get in touch if you can help) * Ability to apply filtering to lists e.g. @tweetblender/testlist|plugin will pull all tweets from that list that contain word "plugin" * Ability to get Cache Manager addon ($) that allows to backup/restore cache and delete individual tweets * If you use custom field "tb_tags" for a post its value overrides actual tags and gets used by Tweet Blender for Tags widget (requested by Thomas P via GetSatisfaction) * Support for non-English hashtags and filter words * A filter that allows to filter out tweets that are from different screen names but have exactly same content * A filter that allows to show only replies and hide original tweets * Ability to define custom text for "view more" link * Support for multi-keyword phrase searches (e.g. Tweet Blender) * Ability to define name that shows up instead of twitter handle using a colon (e.g. @joesmith:Joe Smith would show "Joe Smith" for each tweet instead of "@joesmith") * Throttling that allows to limit number of tweets to show for each user account. You can now have X tweets for each user in the list no matter how frequently each of them tweets. * Favorites widget that shows favorite tweets or one or multiple users * Improved cache management controls * Ability to qualify searches using a pipe symbol. For example @user|#fun will get all tweets from @user that contain #fun in them * Ability to filter out tweets that come from ceratin users or contain certain undersired keywords or hashtags * Ability to turn ON/OFF display of mentions * Quick, simple and secure way to insert widget into your posts and pages * Multi-widget support - include any number of widgets in the sidebar or on the page with different sources in each. * Database-driven efficient caching * Widget that automatically shows relevant tweets by using post's tags * Show tweets for one or more Twitter lists (e.g. [@tweetblender/testlist](http://twitter.com/tweetblender/testlist "example Twitter list")) * Allows to blend tweets from private accounts if you authorize access to your Twitter account that follows these private users (requires oAuth so PHP5 only). * Status tab in the admin panel that shows API limits remaining and cache information * Shows tweets from one or more Twitter users (e.g. [@tweetblender](http://twitter.com/tweetblender "@tweetblender")) * Shows tweets for one or more topic defined by keywords (e.g. ['wordpress'](http://search.twitter.com/search?q=wordpress "wordpress Twitter search")) * Shows tweets for one or more topic defined by Twitter hashtag (e.g. [#wordpress](http://search.twitter.com/search?q=%23wordpress "#wordpress Twitter hashtag search")) * Shows tweets for multiple users, multiple topics, and multiple hashtags blended together into single stream * Allows to turn display of user's photo ON/OFF. Photos can be OFF in the sidebar to conserve screen space and ON on the archive page. * Allows to replace @screennames in tweets with links to user accounts (open in new window) * Allows to replace #hastags in tweets with links to Twitter search results for that hashtag (open in new window) * Allows to replace URLs in tweets with links to those URLs (open in new window) * Automatically creates a page with archive (a longer, expanded list of tweets). Can be disabled if you want to create archive manually or don't need an archive. * Allows to specify number of tweets to show in each widget * Allows to specify number of tweets to show on the archive page * Provides template tag `` to include one or more widgets on any page * Provides "refresh" icon that allows users to manually refresh tweet list * Allows to specify refresh period which turns ON automatic refresh of the tweet list. Can be set for each individual widget instance * Checks screennames, lists, keywords, and hashtags for validity prior to saving * Displays "reply" and "follow" links for each tweet that appear when user places mouse over the tweet area. Can be turned ON/OFF * Allows to create individual twitter streams for different authors by using tweet_blender_widget() tag * Provides advanced distributed caching mechanism to store Twitter data and work around Twitter API's connection limit * Allows to reroute all Twitter API requests via blog's web server to take advantage of white-listed server (with oAuth) * Allows to filter tweets by language (for hashtags and keyword sources only) == Installation == This section describes how to install the plugin and get it working. 1. Upload the entire tweet-blender directory to the /wp-content/plugins/ directory 2. Activate the plugin through the 'Plugins' menu in WordPress 3. Use admin Settings > Tweet Blender to specify configuration options 4. Make sure to authenticate to Twitter and allow read-only access to the tweet stream (under Status tab) = Adding Tweet Blender to Sidebar = If you'd like to show one or more widgets in your sidebar follow these simple steps. 1. Go to WP admin > Appearance > Widgets 2. Drag and drop widget of your choice into the appropriate place on your sidebar. You can add multiple widgets and have each of them blend different sources. 3. Update configuration options and Save them 4. If prompted to authenticate to Twitter, click the link and login to enable access to tweets Note: The Tweet Blender For Tags widget will show up in your sidebar only on a dedicated post page and only if that post has tags. For index and custom pages (and for posts without tags) nothing will be shown. = Adding Tweet Blender to Posts and Pages = You can insert the widget directly into the body of your post or page by following these simple steps: 1. Click on New Post in WP Admin to start working on your new post 2. In editor, click on the HTML tab in the upper right corner so you are looking at the HTML source of your post 3. Enter the following HTML where you want the widget to appear and update configuration options `<form id="tweetblender1" class="tb-widget-configuration" action="#"><div> <input type="hidden" name="sources" value="@tweetblender,#tweetblender,@tweetblender/testlist,tweetblender" /> <input type="hidden" name="refreshRate" value="60" /> <input type="hidden" name="tweetsNum" value="4" /> <input type="hidden" name="viewMoreUrl" value="http://twitter.com/tweetblender" /> <input type="hidden" name="viewMoreText" value="Follow Us!" /> 'tweetblender-t1', 'sources' => '@knovitchenko,@tweetblender/testlist,#tweetblender,twitter', 'refresh_rate' => 60, 'tweets_num' => 5, 'view_more_url' => 'http://twitter.com/tweetblender', 'view_more_text' => 'follow us!' ));` = Options = * unique_id_id = Required. The ID of your widget. It has to be unique on each page where widget(s) is on. Widgets added through Appearance > Widgets automatically have unique IDs because WordPress creates them for you using 'tweetblender-X' format where X is a number. It is recommended that you use a similar format for this ID e.g. 'tweetblender-t1' or 'tweetblender-tag1' * sources = Required. List of sources to blend separated by comma. Don't forget the single quotes around this parameter. * refresh_rate = Optional. How often to refresh the list. In seconds i.e. 60 = 1 minute. Set to 0 to disable automatic refresh. * tweets_num = Optional. How many tweets to show in the widget. * view_more_url = Optional. The url where "view more" link points to. Don't forget the single quotes around this parameter. For the related tweets widget that uses post's tags you would use the following: `tweet_blender_widget_for_tags(array( 'unique_div_id' => 'tweetblender-tt1', 'refresh_rate' => 60, 'tweets_num' => 5 ));` = Options = * unique_div_id = Required. The ID of your widget. As mentioned above, it has to be unique on each page where widget(s) is on. * refresh_rate = Optional. How often to refresh the list. In seconds i.e. 60 = 1 minute. Set to 0 to disable automatic refresh. * tweets_num = Optional. How many tweets to show in the widget = Adding TweetBlender Archive to Pages = To add archive block to any page simly copy and paste the following shortcode into the content of the page where you'd like the archive to appear: [TweetBlender Archive] Note: the tag would be ignored on regular blog posts, only pages are supported. == Screenshots == 1. Widget in the sidebar blending tweets for @tweetblender user, #tweetblender hashtag, and tweets from @knovitchenko user with #tweetblender hashtags in them 2. Tweets archive page. Created automatically and tweets are inserted into content automatically; however, you can edit title, tags, and text of the page using regular admin features 3. Widget settings for Tweet Blender widget. This widget can blend tweets for users (e.g. @knovitchenko), hashtages (e.g. #tweetblender), lists (e.g. @user/listname), keywords (e.g. twitter), and filtered sources such as twets from a user that contain a hashtag (e.g. @knovitchenko|#tweetblender) or tweets from a list that mention a keyword (e.g. @user/listname|keyword) 4. Widget settins for Tweet Blender for Tags. This widget shows tweets relevant to tags of the post/page. 5. Widget settings for Tweet Blender Favorites widget. This widget shows only tweets that were favorited by listed users. 6. Admin: widgets settings for the plugin 7. Admin: archive page settings 8. Admin: filtering options 9. Admin: SEO options 10. Admin: advanced settings 11. Admin: status information 12. Admin: Cache Manager addon (note: paid module) == Getting Help == [Tweet Blender support community page](http://getsatisfaction.com/tweet_blender "Get Satisfaction!") Email: tweetblender AT gmail DOT com *Note #1: I might not get back to you immediately.* This software is written and supported by an individual, not a company or a group. I have a demanding full time job and family with two kids. All of my free time is spent on fun projects like this one. *Note #2: Please don't flame me for bugs.* Twitter is notoriously unstable and has some bugs in the API. On top of it, I use jQuery library that has some bugs in it as well. On top of it you might have other plugins installed that have bugs or introduce conflicts. Finally, 90% of the code works within browsers which have all sorts of different bugs of their own. Before calling TweetBlender "crap" give it a benefit of a doubt - it might not be its problem. I'm really striving to make it the best it could be == Changelog == = 4.0.2 = * Bug fix: XSS in admin script as covered by security advisory https://www.htbridge.com/advisory/HTB23180 * Bug fix: php error from ws.php on line 151 - division by zero error = 4.0.1 = * Bug fix: timestamp parsing issues "Warning: gmmktime() expects parameter 5 to be long, string given in ...wp-content/plugins/tweet-blender/lib/lib.php on line 381 = 4.0.0 = * Tested with WordPress 3.5.2 * Upgraded to work with the new Twitter API v1.1: one-time authentication is now required for admin, rate limits are observed for each endpoint, no more client-side requests - everything goes through server, caching feature can't be turned off * Upgraded to comply with Twitter's new display requiements: removed alias feature, photos are always shown, urls/screennames/hashtags in tweets are always linked, user's full name is shown in addition to screen name, all widgets have headers with twitter logo * New feature: Source selector on the archive page * New feature: Short tag [TweetBlender Archive] for inserting the archive block into any page or post * Bug fix: form-based embeds were broken when SEO features were on (thanks to mikejds for reporting via WP forums) * Bug fix: "flase" instead of "false" in one of the JS functions (thanks to zyend for reporting via WP forums) = 3.3.15 = * Bug fix: made "view more" link appear again (thanks to Somino for reporting via GetSatisfaction) * Improvement: both PHP tag and form embed now support view more text config option - see Installation tab (thanks to jenkins2541 for requesting via GetSatisfaction) * Improvement: faster page loads because JavaScript now loads in the footer (thanks to Alexander P for suggesting via GetSatisfaction) * Improvement: main.js is now minifiable (thanks to Martin E for requesting the fix via GetSatisfaction) = 3.3.14 = * Bug fix: duplicate widgets are shown in sidebar = 3.3.13 = * Bug fix: form-based embeds did not work in posts and pages * Improvement: filtered bad words are now encoded so they don't appear in page HTML source in plain text * Tested with WordPress 3.2.1 = 3.3.12 = * Bug fix: error during activation "Fatal error: Cannot redeclare class Services_JSON in /.../wp-content/plugins/tweet-blender/lib/JSON.php on line 116" (thanks to Peter O for reporting via WP Support forum) * Bug fix: checkbox state was not shown as checked after settings were saved in admin (thanks to @JDub82 for reporting via Twitter) = 3.3.11 = * Replaced non-GPL jQuery.lightbox plugin with jQuery.fancybox plugin to deal with new WP policy enforcement = 3.3.10 = * Tested with WordPress 3.2 = 3.3.9 = * Improvement: special workaround for an issue where english and localized labels did not load on some hosts. = 3.3.8 = * Bug fix: javascript error "js_labels is not defined" (thanks to ianam for reporting via WP Support Forums) = 3.3.7 = * Bug fix: problems in IE due to console debug output (thanks to Ken M for reporting via GetSatisfaction) * Added Dutch translation (thanks to @afoka for translating the plugin) = 3.3.6 = * New feature: ability to filter a list using pipe symbol e.g. @user/list|#hash or @user/list|keyword * Bug fix: plugin allowed to have an empty string or space under filtered keywords which filtered out all tweets and produced "No tweets found message" * Bug fix: plugin allowed to select both "hide mentions" and "hide NOT mentions" under Filters tab which produced "No tweets found message" * Improvement: all labels are now translatable. Russian translations available as of this version. Dutch coming next * Improvement: plugin now works even when extra markup is added to the form by other misbehaving plugins (thanks to doug S for reporting via GetSatisfaction) * Tested with WordPress 3.1.1 and 3.1.2 = 3.3.5 = * Bug fix: Cache Manager not working if your blog is not in the root of your domain (thanks to Brad for reporting via GetSatisfaction) * Improvement: Filters are now only used internally and not supplied to Twitter API queries to work around limitations and special character issues (thanks to Phil B for reporting via email) = 3.3.4 = * Bug fix: Cache Manager installer not working after purchase is complete (thanks to Stef N for reporting via Get Satisfaction) * Bug fix: "Warning: require_once(.../wp-includes/class-json.php): failed to open stream: No such file or directory" (thanks to Angilee S for reporting via Facebook) * Bug fix: If your filters included "xxx" tweets from @somexxxuser still showed up (thanks to Mark S for reporting via GetSatisfactin) = 3.3.3 = * Bug fix: visual editor and other AJAX features broken in WP3.1 on PHP4 when plugin is active due to JSON library conflict (thanks to Nezi, Gabor R, Geoffrey F, and @ILoveStyle_be for reporting) * Bug fix: Cache panel layout broken if blog is not at root url and Cache Manager addon is not installed = 3.3.2 = * Bug fix: blending private/pass-protected accounts did not find any tweets * Bug fix: error "Fatal error: Cannot redeclare class OAuthSignatureMethod_HMAC_SHA1" when other OAuth-based plugins installed (thanks to Tomislav V for reporting via Facebook) * Bug fix: same tweets in cache and from Twitter were treated as different and appeared twice (thanks to mark for reporting via GetSatisfaction) * Bug fix: WP Admin > Settings > Tweet Blender was not working in IE7 on Windows * Tested with IE7 and Opera11 on Windows XP * Tested with WordPress 3.1 = 3.3.1 = * Bug fix: hashtag links in the infobox that appears after click on Twitter logo were broken * Bug fix: tweets not refreshed due to "jQuery.jsonp is not a function" error (thanks to Ryan M for reporting via GetSatisfaction) * Bug fix: Cache Manager installation failed with "Failed opening required 'uploader/pclzip.lib.php'" error (thanks to Lucas S for reporting via GetSatisfaction) * Bug fix: lists validation when saving widget settings - "json error: can't get json" (thanks to @aaronhudspeth for reporting via Twitter) = 3.3.0 = * New feature: ability to get Cache Manager addon ($) that allows to backup/restore cache and delete individual tweets * New feature: if you use custom field "tb_tags" for a post its value overrides actual tags and gets used by Tweet Blender for Tags widget (requested by Thomas P via GetSatisfaction) * Bug fix: multiple escapes for filter phrases in quotes broke searches (thanks to @drtanz for reporting via WP Forums) * Bug fix: problem retrieving cached tweets for hashtags when API limit is reached * Bug fix: filters now support words in any lanugage, not just in English (thanks to Dmitry Sh for reporting via Facebook) * Bug fix: Twitter default number of search results (15) was returned even when widget was configured to show more (thanks to Brent S for reporting via GetSatisfaction) * Bug fix: non-English hashtags support (thanks to Esben R for reporting via GetSatisfaction) * Bug fix: jQuery conflict with CadabraPress theme (thanks to Dave G for reporting via GetSatisfaction) * Bug fix: multiple tweets created at the same second by the same user had only the first one show up in the stream * Improvement: switched to new Twitter API endpoint for user timelines * Improvement: "Loading tweets" message now hides if Twitter had an error and loading is done * Improvement: Made admin section use the latest jquery shipping with WP and stopped bundling local copy with plugin * Tested with WordPress 3.0.3, 3.0.4, 3.0.5 = 3.2.4 = * Bug fix: not able to use "Show author's username for each tweet" checkbox under Archive tab in admin * Tested with WordPress 3.0.2 = 3.2.3 = * Bug fix: not able to turn off search API use under Advanced tab in admin * Bug fix: cache not being saved properly (reported by Daniel M via GetSatisfaction) = 3.2.2 = * New feature: filter that allows to filter out tweets that are from different screen names but have exactly same content * New feature: filter that allows to show only replies and hide original tweets (requested by @mobloggers via Twitter) * New feature: ability to define custom label for "view more" link for Favorites widgets * Bug fix: follow and reply mouseover links not showing on cached tweets (thanks to dale.rogers for reporting via GetSatisfaction) * Bug fix: JavaScript error on clean installation with caching disabled * Bug fix: custom "view more" url not used when default archive page is present * Bug fix: additional changes to prevent duplicate tweets = 3.2.1 = * New feature: ability to define custom label for "view more" link in each Tweet Blender widget * Bug fix: tweets not being refreshed (thanks to MijniPad for reporting via GetSatisfaction site) * Improvement: additional code clean up (thanks to @Frumph for pointing out issues) = 3.2.0 = * New feature: ability to use multi-keyword phrases as search queries such as Tweet Blender * Bug fix: Some tweets were apearing twice in the widget due to integer conversion accuracy bug * Bug fix: Limit of number of tweets was not honored and old tweets didn't fall off the list * Bug fix: Tweet Blender for Tags was failing if there were no tags (bug fix contributed by Leif E) * Improvement: more efficient cache storage * Improvement: better architecture for tweet handling and indexing in prepration for Twitter's migration off numeric tweet IDs * Improvement: numerous security and realiability fixes (contributed by @Frumph) = 3.1.18 = * Bug fix: if more than 9 bad words defined in the filters the tweets are not pulled in (reported by mike via GetSatisfactionx) = 3.1.17 = * Bug fix: Some tweets apearing twice in the widget or not falling off the widget after limit is reached (additional fixes for cached tweets) * Bug fix: throttle settings not saving (reported by @algebrawl via Twitter) = 3.1.16 = * Bug fix: Some tweets apearing twice in the widget or not falling off the widget after limit is reached (additional fixes for cached tweets) = 3.1.15 = * Bug fix: "Any language" in filters pulling English-only tweets (reported by Geert V via GetSatisfaction) * Bug fix: Some tweets apearing twice in the widget (reported by Lefty F via GetSatisfaction) = 3.1.14 = * Bug fix: message "Check boxes above to clear cached tweets from the database" showed up even if there were no cached tweets. * Added ability to define name that shows up instead of twitter handle using a colon. Using @joesmith:Joe Smith as source would show "Joe Smith" for each tweet instead of "@joesmith" = 3.1.13 = * Added new time period options for throttling feature (requested by jfgagne via GetSatisfaction site) = 3.1.11,3.1.12 = * New Feature: throttling settings under the Filters tab * Tested with WordPress 3.0.1 = 3.1.10 = * Bug fix: incorrect links when screennames are inside parenthesis in a tweet (reported by debattierklubwien via GetSatisfaction) * Bug fix: added debugging info to fix caching problem when subdomains point to main domain site (reported by Nunzia R via GetSatisfaction) * Improved security of admin tools by adding nonces = 3.1.9 = * New feature: Favorites widget that's just like Twitter's own but supports multiple accounts (requested by Varun C via GetSatisfaction) * New feature: cache table has a separate column with only tweet text - simplifies manual table management (requested by Victoria A via Facebook) = 3.1.8 = * New feature: for better SEO there is now ability to include googleoff/googleon tags around dates and tweets (requested by jmuribe via GetSatisfaction site) * New feature: ability to control how long the cached tweets are kept in the database * New feature: ability to delete cached tweets for each source or for all sources together * Improved automated cache clean up handling - now happens when Settings page is loaded/saved in WP Admin = 3.1.7 = * Bug fix: Cannot use object of type WP_Error as array in .../plugins/tweet-blender/ws.php on line 112 * Bug fix: Cache not being refreshed properly (thanks to djustus for reporting via WP support forum) * Bug fix: 2nd attempt to fix "Invalid argument supplied for foreach() in ...plugins/tweet-blender/lib/lib.php on line 374" (reported by Texiwill via WP Support forums) * Added comment output when Tweet Blender for Tags is not shown to assist debugging (for pedrgon on GetSatisfaction) * Made plugin available for BuddyPress = 3.1.6 = * Bug fix: Tweet number limit not obeyed in Google Chrome (reported by Kristian.39 via GetSatisfaction site) * Bug fix: Error "Invalid argument supplied for foreach() in ...plugins/tweet-blender/lib/lib.php on line 374" (reported by Texiwill via WP Support forums) * New feature: ability to switch back to user_timeline API if Twitter search does not return tweets for your accounts * Improvement: widget no longer contacts tweet-blender.com to check opt out status = 3.1.5 = * Bug fix: 'Fatal error: Cannot instantiate non-existent class: twitteroauth in .../plugins/tweet-blender/widget.php on line 111' (reported by Will C via Facebook) * Bug fix: 'Fatal error: Cannot use object of type WP_Error as array in .../plugins/tweet-blender/lib/lib.php on line 337' (reported by gavster via GetSatisfaction and Jed V via Facebook) * Improvement: no default sources pre-filled for widgets so there is no confusion and widget doesn't pull tweets from strangers = 3.1.4 = * Bug fix: JavaScript error when max tweets set to 1 for a widget (reported by Neil via GetSatisfaction site) * Bug fix: Due to OAuth library conflict, when activating the plugin browser shows blank screen and all admin tools disappear (reported by Markos I via email) * Bug fix: Error "jQuery("#" + f.id).next().attr("id") is undefined" that appeared if form tag was placed before an element that had no id attribute (reported by koenhendricks via GetSatisfaction site) * Bug fix: Error in WP 3.0 can't find WP_HTTP * Bug fix: target="_blank" didn't validate for Strict DTD. Replaced with JS equivalent (requested by David via GetSatisfaction site) = 3.1.3 = * Bug fix: with many screen names as sources the widget still pulled in mentions even when setting was set to filter mentions out (reported by artbykelly via GetSatisfaction site) = 3.1.2 = * New feature: checkbox under Filters that allows to tun display of tweets with mentions ON/OFF * Bug fix: widget not detecting private accounts and showing no tweets as result (reported by nerdsden via GetSatisfaction site) * Bug fix: "Hide tweets that are in reply to other tweets" was not working since v3.1.0. Fixed now = 3.1.1 = * New feature: checkbox under Widgets tab allows to turn username display in the widget ON/OFF (requested by daramjit via GetSatisfaction site) * Bug fix: problems with spaces and blank lines in sources (Reported by @yvesdetalleur via WP Support and Twitter) * Bug fix: SQL error in blogs that use non-standard prefixes for DB tables (Reported by Karl-Heinz K via blog/email) * Bug fix: plugin pulled mentions in addition to tweets from users themselves (Reported by artbykelly via GetSatisfaction and Carsten F via Facebook) * Bug fix: form embeds showed “Twitter sources to blend are not defined” message due to markup change (Reported by @prabhasp via Twitter and Michael R via blog) = 3.1.0 = * New feature: in addition to "Manual" refresh setting there is now a "Only once (on load)" option to help keep cache fresh (Requested by Xeross via GetSatisfaction site) * New feature: advanced source selection using pipe "|" symbol e.g. @knovitchenko|#tweetblender would show tweets from me that use the hashtag * New feature: blacklist users, keywords and hashtags so tweets that contain them are filtered out from the blend * New feature: toggle widget header ON/OFF * New feature: JavaScript hook TB_customFormat(tweetHTML) for advanced tweet HTML formatting (requested by Mikkel W B via Facebook) * New feature: archive page is not created automatically by default. You need to check a box under Admin > Settings > TweetBlender > Archive (requested by SM Wordpress via GetSatisfaction site) * New feature: checkbox under Widgets tab in admin that turns source verification ON/OFF to work around firewall/proxy issues (reported by Rose L via Twitter) * Improvement: quicker timeout on calls to tweet-blender.com (requested by Johnny P via WordPress support) * Improvement: title that has only spaces is treated as empty (requested by Mick via WordPress support) * Improvement: widget uses timezone from WordPress config when making custom formatted time stamps (requested by Keith F via GetSatisfaction site) * Improvement: ensured markup passes W3C validation (suggested by @buildaroo via Twitter) * Bug fix: callback.php 404 error after trying to authorize private account via oAuth (thanks to @MsTT for reporting via Twitter) = 3.0.8 = * Bug fix: widget not showing up on some pages when archive page is disabled (thanks to Markos I for reporting via email) * Bug fix: javascript incompatibility with some themes due to Array object extension conflict (thanks to Viktor C for reporting via GetSatisfaction site) = 3.0.7 = * Tested with WordPress 2.9.2 * Bug fix: "view more" always pointed to archive page when using simple embed method (thanks to Ralf S for reporting via blog) = 3.0.6 = * Bug fix: finally found the bug that wipes out settings on every upgrade. Now upgrades should be much more seamless. = 3.0.5 = * New feature: simple HTML short code that allows to include Tweet Blender into a post or page. Exec-PHP plugin is no longer needed! See *Installation* tab for more info. = 3.0.4 = * Bug fix: fixed 'Warning: Invalid argument supplied for foreach() in .../plugins/tweet-blender/widget-tags.php on line 35' message in Tweet Blender For Tags (thanks to Jean-Francois G. for reporting via email) * Bug fix: widget and archive page showing duplicate cached tweets if a tweet matched several sources/keywoards (thanks to John C. for reporting via Facebook) * Bug fix: tweet_blender_widget() tag didn't work when inserted directly into post/page body with Exec-PHP plugin (thanks to Jean-Francois G. for testing and reporting via email) = 3.0.3 = * Bug fix: setting were wiped out on every upgrade. Moved uninstall.php to tb_uninstall.php - looks like a bug in WP * Bug fix: hastags, links, and scrennames were not linked when cached tweets were showing even if admin setting was configured to link them * Bug fix: cache not being saved thus producing blank archive page and warning message under Admin > Tweet Blender > Status * Bug fix: too much white space between header and tweets in some themes (thanks to @robcolbert for reporting via Twitter) = 3.0.2 = * Bug fix: tweets not showing in themes that don't have multi-widget support and thus don't assign unique IDs to containers (thanks to @triplecrankset and @Diambi for reporting via Twitter) * Bug fix: "Loading tweets..." message not hidden even after tweets are loaded when multiple widgets with keyword sources are on the same page (thanks to Adam P for reporting via email) = 3.0.1 = * For backward compatiblity, added back tb_widget() and tb_archive() template tags that output empty string. * Bug fix: fixed 'Warning: include_once(...../plugins/tweet-blender/lib/twitteroauthconfig.php) [function.include-once]: failed to open stream: No such file or directory in ..../plugins/tweet-blender/lib/twitteroauth/callback.php on line 13' (thanks to Jean-Francois G. for reporting via email) * Bug fix: fixed 'Warning: extract() [function.extract]: First argument should be an array in .../blog/wp-content/plugins/tweet-blender/widget.php on line 13' (thanks to Fabien T. for reporting via Facebok) * Bug fix: animation wasn't showing on the refresh icon (thanks to Jurjis K. and @sobaka_ebaka for reporting via Facebook and Twitter) = 3.0.0 = * New feature: Multi-widget support. Place any number of widgets into sidebar or page and have them blend different sources. * New feature: DB-based super-efficient cache. Only new tweets are sent to server thus conserving bandwidth. * New feature: automatic daily clean-up of cache database * New feature: ability to re-route tweets via server using whitelisted account (oAuth) and not just IP * New feature: major SEO improvement - widgets loads on the page with cached tweets already in it. Now page looks good to search engine bots and people without JavaScript * New feature: a new widgets that takes tags of your post and uses them as keywords to show relevant tweets in the sidebar * Enhancement: additional options for number of tweets on the archive page. Now goes up to 500 * Enhancement: additional options for number of tweets in the widget. Now goes up to 100 * Enhancement: additional options for refresh periods. Now can be as frequent as every 5 seconds * Enhancement: performance improvements for both bandwidth and CPU use. If you had issues with your ISP they should be resolved now. * Enhancement: checks for PHP5 and disables oAuth on PHP4 hosts * Enhancement: uninstall script that removes database table and options when plugin is removed thus making clean exit * Enhancement: re-organized code and directory structure * Removed URLexpand.com use - not ready for prime time * Removed refresh on the archive page = 2.4.7 = * Tested with WordPress 2.9.1 * Bug fix: On GoDaddy servers only, 404 status returned by cache requests but caching was still OK (thanks to @prgully for reporting via Twitter) * Bug fix: "view more" link is misaligned vertically in some themes (thanks to @lorenzguitar for reporting via Twitterl) * New feature: admin "Status" tab's label becomes red if any warnings are present on that tab. This way it's more visual and you don't have to check it explicitly. = 2.4.6 = * Bug fix: message "Initializing..." is shown but nothing happens (thanks to Daniel F, Frank R, bodylovewellness for reporting via email, Facebook, and WP support forums) * Bug fix: first tweet in the list is shifted to the right on some sites (thanks to Dbdevils for reporting via email) * New feature: under "Status" tab, shows number of API requests for each refresh. A hint is shown if using Twitter lists would add efficiency. = 2.4.5 = * Bug fix: connections to Twitter were still made even if page didn't have a widget on it (thanks to @MJLaRue for reporting via Twitter) = 2.4.4 = * Tested with WordPress 2.9 * Bug fix: "headers already sent" error in admin when plugin is activated (thanks to Jörgen C. for reporting via Twitter) * Bug fix: plugin not starting due to other plugins overloading window.onload event (thanks to @DanielFarrellNZ for reporting via Twitter) = 2.4.3 = * Bug fix: "jQuery.toJSON is not a function" error that was shown if you disabled caching (thanks to jasicom & x3r0ss for reporting via WP Support) * Bug fix: "d.user is undefined" error that was shown if you had a private source but no oAuth credentials to follow it * Switched from `