<div class="rss-widget"><ul><li><a class='rsswidget' href='http://feedproxy.google.com/~r/WordpressTavern/~3/F6uyX3Wt0E8/seamless-integration-for-wordpress-and-magento' title='Believe it or not, there are a lot of WordPress fans in the Magento community. While Magento provides supremely robust e-commerce capabilities with support for complex product variations and multiple shipping options, it’s entirely lacking in CMS features. As a result, many sites merge WordPress and Magento in order to take advantage of each platform’s unique strengths.  However, it is unbelievably difficult to make WordPress and Magento work together in a seamless fashion without some sort of bridge. That’s where James Kemp‘s Magento WordPress Integration plugin comes in. It does all the fancy footwork necessary to make your Magento store look like part of your WordPress site.   The Magento WordPress Integration plugin (MWI), is a solution that Kemp has been developing for several years. It provides the easiest way to get blocks, sessions and products from your Magento store and is capable of doing the following:  Bring out any of the default Magento Blocks in your WordPress theme Bring out any Magento blocks that you have created yourself Bring out any static blocks that you have made in your Magento admin area Show Magento products on a WordPress post or page by using the shortcode add-on Show products from any category using the widget add-on  Think there’s no demand for this? Think again. Kemp’s plugin has been downloaded more than 10,000 times. To celebrate, Kemp has made the code available on BitBucket. He’s hoping that having the code available to the public will help to spark more contribution. James Kemp, creator of the Magento WordPress Integration pluginI’ve been following James Kemp’s work for several years and finally had the chance to chat with him about how the plugin is doing.  He continues to develop the plugin due to the demand, which comes from both “light” users and developers. “The demand for MWI is fairly consistent,” he said. “On a calm day the mwi-plugin site gets ~30 unique visits, and mid-week on a busier day it will get ~100. It’s a very niche plugin, so I don’t expect thousands! The core plugin is mainly useful for developers I’d say, but I also get “light” users who are interested in the add-ons, so they can display products within their blogs. The demand for it is fairly steady at the moment.” The Magento and WordPress communities are fairly disconnected, which is understandable. You don’t see too many developers wanting to specialize in both platforms. Yet many users want them to work together. When building sites with a bridge, Kemp relies on WordPress for the more content-heavy aspects of the site: Each system has solutions for the other, but none of them are quite as good as WordPress or Magento. I personally prefer to use WP for all aspects of content management; pages, news, callouts – using Magento for this is a bit of a nightmare. I use Magento for large stores, with complex product set-ups and discount systems, purely for the product catalogue and back-end ecommerce system. Although he is an expert Magento developer, he has also built many sites using WooCommerce and Jigoshop. I asked him when he might opt for Magento over a WordPress-based e-commerce solution and he replied:  I tend to use Magento for larger sites, where there are thousands of products and likely to be a lot of activity. This is because of the back-end system of Magento; it offers so much more in terms of tax rules, discounts, product set-up, import/export, order history, invoicing, etc. it’s just a full, heavy-duty, ecommerce system. The WordPress solutions are great, but not for bigger ecommerce store owners who need more control. The Magento WordPress Integration plugin provides a much needed bridge between the two open source projects and enables them to work together seamlessly. It can also save you from having to do too much theming to Magento, which is quite a pain because all the files are located about 10 directories deep. MWI allows you to feature your categories and products on your WordPress pages, as well as any blocks created within Magento. If you want to synchronize your sites even further, Kemp has also developed a plugin providing Single Sign-On For Magento And WordPress. Kemp and his colleague Jay Pick have formed a new WordPress development company called Platførm, based out of their rural office in Lutterworth, England. He plans to continue supporting the MWI plugin for as long as it’s needed. You can find documentation at the Magento WordPress Integration homepage and can download the plugin from the WordPress repository. If you want to get involved contributing, check out MWI on BitBucket. '>WPTavern: Seamless Integration for WordPress and Magento</a></li><li><a class='rsswidget' href='http://feedproxy.google.com/~r/WordpressTavern/~3/7J40V67FxqE/new-holiday-talk-like-a-spammer-day' title=' Jonathan Dingman over at WPForce.com has published a funny piece that illustrates how comment spammers are able to be so randomly creative with their posts. One of his spam comments contained the entire template of text used to generate random comments. How many combinations of spam can you make with the following template? I {want to|wish to|desire to} read {more|even more} things about it!| {It is|It’s} {appropriate|perfect|the best} time to make {a few|some} plans for {the future|the longer term|the long run} and {it is|it’s} time to be happy. Check out the long list of different replies on his post. I think this calls for a new holiday. Talk like a spammer day! We humans have to guess which combination is the correct one! But giving this some more thought, if there was a talk like a spammer day and we were legitimately using templates like the ones presented in the post to generate our comments and those comments were published even though Akismet thinks they are spam, how big of an impact would we have on screwing up the Akismet spam algorithm? Maybe this holiday is not such a good idea! '>WPTavern: New Holiday – Talk Like a Spammer Day!</a></li><li><a class='rsswidget' href='http://ocaoimh.ie/2013/10/21/shiny-new-dynamic-content-wp-super-cache/' title='With the next release of WP Super Cache in a day or two the long awaited move away from mfunc, mclude and friends will be complete. This means that if you have been using mfunc, mclude or dynamic-cached-content the dynamic portions of your sites will go blank if you upgrade WP Super Cache without updating that dynamic code. This may seem complicated but there’s an example script included and detailed explanations below. A lot of effort was made to make this backwards compatible but unfortunately it wasn’t possible. In their place is a new cacheaction filter called wpsc_cachedata and it’s sidekick wpsc_cachedata_safety. In the future when a site owner using WP Super Cache wants to make part of their website dynamic they will use those filters to modify pre-defined text strings and replace them with the data they want displayed to the end user. There’s an example script ready to be ripped apart to help you figure all this out. There are two ways of using this:   The dynamic content is the return value of a simple process, be it date() or any of the numerous get_*() functions in WordPress. That data can simply be slotted in place of the pre-defined text mentioned above.  The more difficult bit comes when you need to use an output buffer to collect the data for display. Due to a limitation in PHP it’s impossible to run an output buffer in the callback function of another output buffer, which is when the wpsc_cachedata filter runs. We need to collect that data before the callback function executes.  The first way above is easy. Simply add a text string of random characters to your theme where you want the dynamic content to appear, then hook a function on to the wpsc_cachedata filter to str_replace() it with your dynamic content. These functions in this script do that:  dynamic_cache_test_filter() dynamic_cache_test_template_tag() dynamic_cache_test_init()  You’ll have to hook on to the wpsc_cachedata_safety action and return the numeral 1 to actually run the wpsc_cachedata filter. This is a fail safe used by the plugin to make sure things are ok when the filter runs. Unfortunately if you want to use an output buffer it’s a lot harder. As stated above an output buffer can’t run in the callback function of another output buffer. This means you have to generate your dynamic content earlier in the PHP process. This could be as easy as calling your dynamic content function (dynamic_output_buffer_test() in the example script) from the wp_footer action, or calling it from any action before shutdown, whichever is appropriate. You’ll also need to add a template tag of your own choosing to your theme. Your dynamic content function will run just fine for cached pages, so after the new page has run it store the output in a constant or global variable that the same function can look for when the wpsc_cacheaction runs it. If it finds that information, it can do the search and replace of your template tag without running the output buffer again. Some pages won’t run the dynamic content function however. This includes feeds and sitemaps. Those pages will generate a PHP error because the output buffer will try to run in the callback! “PHP Fatal error:  ob_start(): Cannot use output buffering in output buffering display handlers in…” To stop that happening you must check that there’s text to shove in the cached page. That’s what happens in the function dynamic_output_buffer_test_safety() in the example script. It fires on the wpsc_cachedata_safety filter and returns the numeral 1 if successful.  Anatomy of an Output Buffer I’m going to try and explain the output buffer functions in more detail here. They’re only example functions and if you spot a bug or can suggest improvements please do! define( &#039;DYNAMIC_OUTPUT_BUFFER_TAG&#039;, &#039;&#039; ); // CHANGE THIS! This is the string you add to your theme where your dynamic content will appear. The plugin will replace this string with the code generated by your dynamic content function. function dynamic_output_buffer_test( &amp;$cachedata = 0 ) { 	if ( defined( &#039;DYNAMIC_OB_TEXT&#039; ) ) 		return str_replace( DYNAMIC_OUTPUT_BUFFER_TAG, DYNAMIC_OB_TEXT, $cachedata ); 	ob_start(); 	// call the sidebar function, do something dynamic 	echo &quot;This is a test. The current time on the server is: &quot; . date( &#039;H:i:s&#039; ) . &quot;&quot;; 	$text = ob_get_contents(); 	ob_end_clean();  	if ( $cachedata === 0 ) // called directly from the theme so store the output 		define( &#039;DYNAMIC_OB_TEXT&#039;, $text ); 	else // called via the wpsc_cachedata filter. We only get here in cached pages in wp-cache-phase1.php 		return str_replace( DYNAMIC_OUTPUT_BUFFER_TAG, $text, $cachedata );  } add_cacheaction( &#039;wpsc_cachedata&#039;, &#039;dynamic_output_buffer_test&#039; );   1. dynamic_output_buffer_test() is the function that will generate the dynamic content inserted into the cached page.  2-3. DYNAMIC_OB_TEXT stores the previous output of this function. If it’s set that means we’re in the wpsc_cachedata filter and should insert it into the cached page and return it.  4-8. This creates the output buffer, echoes a string with the current time and copies the buffer into a variable called $text before closing the output buffer.  10-13. This is how we decide to return data. If $cachedata is 0 that means this function was called from the theme so we should define the constant DYNAMIC_OB_TEXT for later use. Otherwise, we must be dealing with an already cached page so insert the dynamic content into the page and return it.  16. Add the dynamic_output_buffer_test() function to the wpsc_cachedata action. “add_cacheaction” is used as it loads before the regular WordPress action code loads.  function dynamic_output_buffer_test_safety( $safety ) { 	if ( defined( &#039;DYNAMIC_OB_TEXT&#039; ) ) 		return 1; // ready to replace tag with dynamic content. 	else 		return 0; // tag cannot be replaced. } add_cacheaction( &#039;wpsc_cachedata_safety&#039;, &#039;dynamic_output_buffer_test_safety&#039; );  1-6. dynamic_output_buffer_test_safety() is a function that checks if dynamic content was generated correctly. If that constant is not defined the output buffer will run within the callback function of the main WP Super Cache output buffer and generate a PHP error.  7. Add the wpsc_cachedata_safety() function to the dynamic_output_buffer_test_safety action.  sidebar.php As an example, if I wanted to display my dynamic content in the sidebar of my blog I would load sidebar.php in my theme’s directory and add the following code.  if ( function_exists( &#039;dynamic_output_buffer_test&#039; ) )     dynamic_output_buffer_test(); ?&gt;WORDPRESS ROCKS THE WORLD'>Donncha: The shiny new dynamic content in WP Super Cache</a></li><li><a class='rsswidget' href='http://wordpress.tv/2013/10/21/wordcamp-europe-2013-interviews/' title='     '>WordPress.tv: WordCamp Europe 2013 Interviews</a></li><li><a class='rsswidget' href='http://feedproxy.google.com/~r/WordpressTavern/~3/zYcZG5ycFZE/gpl-ethics-right-wrong-winners-losers' title='Kevin Muldoon has published a great post that may change the mindset of both WordPress end users and developers. In his post, he talks about WordPress, GPL, and ethics but further into the post, he mentions that perhaps we should not be thinking about what sites like GPL Avengers or GPL Club are doing as right or wrong but rather, good or bad.  When you start talking about premium GPL products, the line between what is right or wrong gets a little blurred. Perhaps the terms “Right” and “Wrong” should not be used in this debate at all. “Good” and “Bad” are more suitable. GPL is supposed to benefit the WordPress community. So we need to consider what is good and what is bad for the community? Ethics is subjective so let’s skip that word. It’s as bad as saying “spirit” when talking about the GPL. What GPL Avengers and GPL CLub are doing is not illegal and I don’t think anyone will argue that point. Let’s take the good and bad approach. The Good:  Both are offering commercial products either for free or for a substantially lower price. This is good because those who don’t need support can make do with the lower price. It’s also good in that it exposes the commercial offerings to a larger market segment that perhaps otherwise wouldn’t be able to afford purchasing from the original developer. The Bad:  GPL Club points out that support is only provided by the original product authors. Meanwhile, WP Avengers provides automatic updates and premium support via forums and support credits. I am not sure how this works but their forum is not publicly accessible. In general, the best people to provide support for the product are the people who created it. By acquiring products through either of these two sites, unknowing customers will either be out of luck in getting support, or may not get the best support money can buy.  There are a number of great comments about this situation that I encourage you to read like, this one from Paul, or Andrew. What is boils down to is these two sites have started a race to the bottom but I think that race has been going on for a long time.  One of the scenarios that Kevin laid out was the following: With regards to where the buck stops :) WP Avengers and GPL Club are charging money for premium plugins that other people developed. Here’s a thought….what if someone went one step further and released all premium plugins free. For example, a plugin and theme directory that allowed every single premium WordPress theme and plugin to be downloaded free of charge. No malware, no hidden agenda. Simply someone who wanted to share all premium plugins with the world. How do you think the WordPress community would react to this? Would it kill the market for premium WordPress products or would developers have to focus on support? – Kevin Muldoon I think it would be fantastic. On paper, it seems pretty stupid to pay for GPL code. We hear the phrase “paying for support and product updates” repeatedly but it still seems as though we’re paying for the code first. So let’s make all code free. If we pay money, we’re actually paying for upgrades and support of that free code. But I know exactly what this would do to commercial themes and plugins. We’d end up with free code that only has one purpose. To serve up a prompt asking for an API key. In a way, I’d be ok with this because it would be less code running on my site but on the flip side, I’d then be relying on an increasing number of third-party sites to be online to make sure my forms worked. If all commercial themes and plugins were free, it wouldn’t be the end of the world. We would just rapidly make the transition to purchasing support and upgrades or service add-ons. Also, if commercial themes and plugins were free, sites like GPL Club and WP Avengers suddenly become the losers as they would then be charging for GPL code without the support to back it.  A Few Questions For My Commercial WordPress Developer Friends It’s fascinating to think about all GPL licensed code in themes and plugins being free as in beer. How would this change the way vendors today do business? If the real value is in support and upgrades, then the question I have for commercial plugin and theme developers is why are they charging for their GPL licensed code? The GPL license says you can do it, but what’s the point? I’ll guess and say that it would then be too confusing for customers to figure this all out so it’s easier to bundle everything in one purchase. At the end of the day, WP Avengers, GPL Club and sites like them are not going to put the original vendors out of business. All they are is an inconvenience.  '>WPTavern: Why Are We Paying For GPL Licensed Code?</a></li></ul></div>