<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>fusi0n &#187; wordpress</title>
	<atom:link href="http://fusi0n.org/tag/wordpress/feed" rel="self" type="application/rss+xml" />
	<link>http://fusi0n.org</link>
	<description>pL&#039;s blog on tech/mobile</description>
	<lastBuildDate>Wed, 29 Feb 2012 20:19:57 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Grey Hat Programming on Big Commerce</title>
		<link>http://fusi0n.org/coding/grey-hat-programming-on-big-commerce</link>
		<comments>http://fusi0n.org/coding/grey-hat-programming-on-big-commerce#comments</comments>
		<pubDate>Fri, 15 Jul 2011 07:21:25 +0000</pubDate>
		<dc:creator>pluc</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[hacking]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[technology]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://fusi0n.org/?p=1873</guid>
		<description><![CDATA[One of my clients has a website constituting of two platforms: WordPress and Big Commerce. I was mandated to, among other things, create a symbiosis between the two platforms so that users didn't have to register twice. The only problem with that is being a commercial platform, Big Commerce doesn't want you messing around in [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-1875" title="bigc" src="http://fusi0n.org/wp-content/uploads/2011/07/bigc.png" alt="" width="180" height="180" />One of my clients has a website constituting of two platforms: WordPress and Big Commerce. I was mandated to, among other things, create a symbiosis between the two platforms so that users didn't have to register twice. The only problem with that is being a commercial platform, Big Commerce doesn't want you messing around in their proprietary database - their API really is only for <em>read</em> stuff, you never <em>write</em> anywhere. Understandable... but my client still wants user synchronicity, and to be honest I don't think he's exaggerating.</p>
<p>So... how do we remotely create users on a platform that doesn't let you create users with their API? After a bit of looking around for solution, I stumbled upon my client's store registration form (which is hosted, like everything related to Big Commerce, on a server you don't control). Different domains, different servers, no API methods... but I have a form. Have you ever heard of <a href="https://secure.wikimedia.org/wikipedia/en/wiki/Cross-site_scripting">XSS</a>? In the world of developers, it's a real annoyance. Essentially, if you fail to secure your forms properly, anyone can grab your form, put it somewhere else on the internet and submit bogus data (because the form still sends to <em>you</em>, get it?). Anyway, it's usually really only a security concern, but for this particular project, it became a feature.<span id="more-1873"></span></p>
<p>Big Commerce does not validate their registration form, so you can submit it from anywhere... like right after a WordPress (or in my case, BuddyPress) user is created for example! A simple cURL request with the proper data set and we've got ourselves a relatively easy bridge. Now, there are cons to this method... for example, if Big Commerce ever realizes that their lack of respect for good practices is used <em>as a feature</em>, I'm not sure they'll keep it up for long. Notice how this post doesn't have a single link...? Yeah.</p>
<p>If this reaches their ears, can we please make a compromise? You pull the non-feature in exchange for a user creation method in your API. Deal?</p>
<p>On to other things..</p>
<p>That wasn't the only thing I was tasked with doing. My client also wanted the ability to use the header from his WordPress theme on his Big Commerce site. Again, Big Commerce doesn't let you put <em>any</em> code on their servers (except static files like HTML and CSS) even though that's where your store resides. Not hating, it's a business model... it's just not a very convenient one. So I have a WordPress header (including a carousel and a drop-down menu of WordPress-centric items) and a lousy API. I initially tried to use BC's <em>%%Include%%</em> "feature", but as you can guess, it fails for remote resources.</p>
<p>Long story short, I created a new file at the root of my client's WordPress site and tossed this in:</p>
<pre class="brush: php; title: ; notranslate">
define('WP_USE_THEMES', false);
require('./wp-blog-header.php');
get_header('store');
</pre>
<p>With that, I can essentially be <em>inside</em> WordPress while remaining outside of its scope. Notice the <em>get_header()</em> parameter that allows you to use specific files (such as, in my case, header-store.php). Alright, so I have a decent looking header (that's a few lines of random HTML, JavaScript and CSS) but I still can't fetch it from the store. So I had to get creative. After a fair amount of digging around, I found that I could upload files to Big Commerce - but only static (HTML, CSS, JS, etc) and only in a very specific location (that's <em>/content</em> by the way). With that, I can build something:</p>
<pre class="brush: php; title: ; notranslate">
#!/usr/bin/php
$ch = curl_init('http://secret.url/headerForBC.php');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, false);
$header = curl_exec($ch);
$file = tempnam('/tmp', 'bc2wp');
file_put_contents($file, $header);

$context = stream_context_create(array('ftp' =&amp;gt; array('overwrite' =&amp;gt; true)));
// Big Commerce requires a secure connection
$ftp = ftp_ssl_connect('server2600.bigcommerce.com');
$login_result = ftp_login($ftp, 'duh', 'ohai');
echo ftp_put($ftp, '/content/wpheader.html', $file, FTP_ASCII)? 'success' : 'fail';
ftp_close($ftp);
</pre>
<p>Then toss it in a cron that'll run it every 24 hours and use <em>%%Include.http://my.store-url.com/content/wpheader.html%%</em> to render it. That wasn't so bad, was it?</p>
]]></content:encoded>
			<wfw:commentRss>http://fusi0n.org/coding/grey-hat-programming-on-big-commerce/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>10 of the Best WordPress Plugins</title>
		<link>http://fusi0n.org/coding/10-of-the-best-wordpress-plugins</link>
		<comments>http://fusi0n.org/coding/10-of-the-best-wordpress-plugins#comments</comments>
		<pubDate>Fri, 12 Nov 2010 03:23:07 +0000</pubDate>
		<dc:creator>pluc</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[list]]></category>
		<category><![CDATA[marketing]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[seo]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[WP-prettyPhoto]]></category>

		<guid isPermaLink="false">http://fusi0n.org/?p=1452</guid>
		<description><![CDATA[WordPress is an extremely powerful and popular blogging platform. There are over 27 million WordPress publishers as of September 2010: 13.9 million blogs hosted on WordPress.com plus 13.8 million active installations of the WordPress.org software (source). If that's not enough, there are 17,428 registered plugins to extend its functionality and 4,406 registered themes to modify [...]]]></description>
			<content:encoded><![CDATA[<p><a title="WordPress.org" href="http://www.wordpress.org" target="_blank"></a>WordPress is an extremely powerful and popular blogging <a title="WordPress.com" href="http://www.wordpress.com" target="_blank">platform</a>. There are over <strong>27 million</strong> WordPress publishers as of September 2010: <strong> 13.9 million</strong> blogs hosted on <a title="WordPress.com" href="http://www.wordpress.com" target="_blank">WordPress.com</a> plus <strong>13.8 million</strong> active  installations of the <a title="WordPress.org" href="http://www.wordpress.org" target="_blank">WordPress.org software</a> (<a title="WordPress Stats" href="http://en.wordpress.com/stats/" target="_blank">source</a>). If that's not enough, there are <strong>17,428</strong> registered <a title="WordPress Plugins" href="http://wordpress.org/extend/plugins/" target="_blank">plugins</a> to extend its functionality and <strong>4,406</strong> registered <a title="WordPress Themes" href="http://wordpress.org/extend/themes/" target="_blank">themes</a> to modify its look. With all that, it can get complicated to choose the best plugins to achieve what you want. Here's a list of my personal favourites.  <span id="more-1452"></span></p>
<h3><a title="Disqus Comment System" href="http://wordpress.org/extend/plugins/disqus-comment-system/" target="_blank">Disqus Comment System</a></h3>
<p><a title="Disqus" href="http://www.disqus.com" target="_blank">Disqus</a> is a third-party commenting platform that facilitates user interaction by providing a single log in for every Disqus-enabled site. They also offer various login options (Twitter, Facebook, etc) as well as content appreciation features. Essentially, it's a very simple comment system that doesn't require local registrations or theming. One of its great feature is the ability to export all the local WordPress-based comments into their database for a smooth transition.</p>
<h3><a title="Google Analytics for WordPress" href="http://wordpress.org/extend/plugins/google-analytics-for-wordpress/" target="_blank">Google Analytics for WordPress</a></h3>
<p>I'm not much of an SEO person, but I'm still aware it has a definitive importance and impact to have a properly indexed website. There's a bunch of options that I don't understand, but luckily I have friends who make a living of <a title="AOD Marketing" href="http://www.aodmarketing.com" target="_blank">SEO and Analytics</a> and they insist <a title="Joost de Valk" href="http://yoast.com/" target="_blank">Joost de Valk</a>'s <a title="Google Analytics for WordPress" href="http://yoast.com/wordpress/google-analytics/" target="_blank">Google Analytics for WordPress</a> is there best option available.</p>
<h3><a title="Google XML Sitemaps" href="http://wordpress.org/extend/plugins/google-sitemap-generator/" target="_blank">Google XML Sitemaps</a></h3>
<p>In June 2005, Google announced a new service called <a href="https://www.google.com/webmasters/sitemaps">Google Sitemaps</a>.  This plugin allows webmasters to submit an index of URLs which they  want to have included in Googles web search. It's free to use and helps  Google to get a <a href="#" onclick="$.prettyPhoto.open('/wp-content/uploads/2010/11/sitemaps.png', 'Google XML Sitemaps', 'Google Webmaster Tool Sitemaps');return false;">more complete overview</a> of your website. More information regarding Google Sitemaps and how this plugin implements it over at <a title="Google Sitemaps FAQ (Sitemap Issues And Errors)" href="http://www.arnebrachhold.de/2006/04/07/google-sitemaps-faq-sitemap-issues-errors-and-problems/" target="_blank">Arne Brachhold's FAQ</a></p>
<h3><a title="SyntaxHighlighter Evolved" href="http://wordpress.org/extend/plugins/syntaxhighlighter/" target="_blank">SyntaxHighlighter Evolved</a></h3>
<p>My blog can get somewhat <a title="Coding" href="http://fusi0n.org/category/coding" target="_self">technical</a> when I write about <a title="WordPress" href="http://fusi0n.org/tag/wordpress" target="_self">WordPress</a>, <a title="PHP" href="http://fusi0n.org/tag/php" target="_self">PHP</a>, <a title="Linux" href="http://fusi0n.org/tag/linux" target="_self">Linux</a> or <a title="JavaScript" href="http://fusi0n.org/tag/javascript" target="_self">JavaScript</a>. <a title="SyntaxHighlighter Evolved" href="http://www.viper007bond.com/wordpress-plugins/syntaxhighlighter/" target="_blank">SyntaxHighlighter Evolved</a> allows code to be highlighted and formatted nicely using a predefined set of language-based shortcodes.</p>
<h3><a title="Widget Logic" href="http://wordpress.org/extend/plugins/widget-logic/" target="_blank">Widget Logic</a></h3>
<p>This one is kind of complicated to get your head around. Essentially, Widget Logic will <a href="#" onclick="$.prettyPhoto.open('/wp-content/uploads/2010/11/widgets.png', 'Widget Logic', 'Widget Logic');return false;">add an input box</a> inside every widget that allows you to use WordPress template tags to conditionally display (or not) the widget's content.</p>
<h3><a title="WordPress Admin Bar" href="http://wordpress.org/extend/plugins/wordpress-admin-bar/" target="_blank">WordPress Admin Bar</a></h3>
<p>I have to admit I found this little gem only today, and I don't know how I was able to live without it before. <a title="WordPress Admin Bar" href="http://www.viper007bond.com/wordpress-plugins/wordpress-admin-bar/" target="_blank">WordPress Admin Bar</a> will, if configured to do so, add a nice little bar at the top your WordPress content <a href="#" onclick="$.prettyPhoto.open('/wp-content/uploads/2010/11/adminbar.png', 'WordPress Admin Bar', 'WordPress Admin Bar');return false;">like this</a> giving you easy access to all your administrative functions while surfing the non-admin part of your blog. It's worth noting that WordPress Admin Bar is made by the same developer who makes SyntaxHighlighter Evolved (and who works for <a title="Automattic" href="http://automattic.com/" target="_blank">Automattic</a>). For more of Alex's plugins, check out the full list <a title="Viper007Bond's WordPress Plugins" href="http://www.viper007bond.com/wordpress-plugins/" target="_blank">on his website</a></p>
<h3><a title="WPtouch" href="http://wordpress.org/extend/plugins/wptouch/" target="_blank">WPtouch</a></h3>
<p>The guys at <a title="BraveNewCode" href="http://www.bravenewcode.com/" target="_blank">BraveNewCode</a> have been around ever since there was an interest for mobile-friendly versions of standard websites. It was the first mobile-rendering plugin that WordPress had, and as far as I'm concerned, it's still the very best. The only downside is that it lacks a design modification aspect - but then again, how else are you going to render if not <a href="#" onclick="$.prettyPhoto.open('/wp-content/uploads/2010/11/wptouch.png', 'WPtouch', 'WPtouch render of fusi0n.org');return false;">this way</a>? In today's mobile-crazed world, it's a pretty good idea to use <a title="WPtouch" href="http://www.bravenewcode.com/products/wptouch-pro/" target="_blank">WPtouch</a> to render a mobile-friendly version to known mobile browsers.</p>
<h3><a title="WP Super Cache" href="http://wordpress.org/extend/plugins/wp-super-cache/" target="_blank">WP Super Cache</a></h3>
<p>WordPress <a title="WordPress Optimization/Caching" href="http://codex.wordpress.org/WordPress_Optimization/Caching" target="_blank">does not come</a> with a file caching system by default. If your blog has high pageviews, using <a title="WP Super Cache" href="http://ocaoimh.ie/wp-super-cache/" target="_blank">WP Super Cache</a> will significantly reduce the load on your server, which can then stay responsive longer because it doesn't have to call and process the files queued for serving.</p>
<h3><a title="Akismet" href="http://wordpress.org/extend/plugins/akismet/" target="_blank">Akismet</a></h3>
<p>One of the very few plugin that comes bundled with WordPress by default, <a title="Akismet" href="http://akismet.com/" target="_blank">Akismet</a> is a merciless spam filter for your comments. It's been <a href="#" onclick="$.prettyPhoto.open('/wp-content/uploads/2010/11/akismet.png', 'Akismet Stats', 'Akismet');return false;">pretty good</a> to me since I've started using it. It can also be used in various independent user-input-based plugins like <a title="Contact Form 7" href="http://wordpress.org/extend/plugins/contact-form-7/" target="_blank">Contact Form 7</a>.</p>
<h3><a title="WP-prettyPhoto" href="http://wordpress.org/extend/plugins/wp-prettyphoto/" target="_blank">WP-prettyPhoto</a></h3>
<p>Obligatory self-promotion, yes, but I genuinely believe it my plugin deserves a spot on this list. <a title="StÃ©phane Caron" href="http://www.no-margin-for-errors.com/" target="_blank">StÃ©phane Caron</a> did a fantastic job with his <a title="prettyPhoto" href="http://www.no-margin-for-errors.com/projects/prettyphoto-jquery-lightbox-clone/" target="_blank">prettyPhoto jQuery plugin</a>, (<a title="StÃ©phane Caron's Projects" href="http://www.no-margin-for-errors.com/projects/" target="_blank">more StÃ©phane projects</a>) even more so with the <a title="prettyPhoto 3.0" href="http://www.no-margin-for-errors.com/blog/2010/09/15/prettyphoto-3-0-is-live/" target="_blank">3.0 release</a> which will be implemented in <a title="WP-prettyPhoto" href="http://fusi0n.org/category/wp-prettyphoto" target="_blank">WP-prettyPhoto</a> soon. This plugin automatically makes all self-linked images open in a cute <a href="#" onclick="$.prettyPhoto.open('/wp-content/uploads/2010/11/prettyphoto.png', 'prettyPhoto Gallery', 'prettyPhoto Window');return false;">prettyPhoto inline window</a> that supports multiple media formats, YouTube, Vimeo, QuickTime and Flash videos, external sites and even inline (textual!) content. Read up on the <a title="WP-prettyPhoto Technical Information and Usage Instructions" href="http://fusi0n.org/wp-prettyphoto/technical-information-and-usage-instructions" target="_blank">current version's usage instructions </a>to get an idea of what it's capable of!</p>
]]></content:encoded>
			<wfw:commentRss>http://fusi0n.org/coding/10-of-the-best-wordpress-plugins/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Change localized strings in the WordPress admin</title>
		<link>http://fusi0n.org/coding/change-localized-strings-in-the-wordpress-admin</link>
		<comments>http://fusi0n.org/coding/change-localized-strings-in-the-wordpress-admin#comments</comments>
		<pubDate>Wed, 10 Nov 2010 16:22:16 +0000</pubDate>
		<dc:creator>pluc</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[HOWTO]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://fusi0n.org/?p=1349</guid>
		<description><![CDATA[The other day, I ran into an interesting issue with a feature on a WordPress-powered site I was building for a client. Essentially, we're using the WordPress' default structure and functioning of posts, categories and tags in order to make it something different. Think of it like this lyrics site where categories are artist names [...]]]></description>
			<content:encoded><![CDATA[<p>The other day, I ran into an interesting issue with a feature on a WordPress-powered site I was building for a client. Essentially, we're using the WordPress' default structure and functioning of posts, categories and tags in order to make it something different. Think of it like <a href="http://lyrics.fusi0n.org/" target="_blank">this lyrics site</a> where categories are artist names and post titles are song titles. It's one of the reason WordPress implemented custom post types. Since the platform I'm building for this client doesn't really allow for other types of posts, I decided not to add a layer of posts on top of hiding the default things,</p>
<p>I wanted to rename the "Posts" menu in the WordPress admin.<img class="size-full wp-image-1350 alignleft" title="Add New Post â€¹ fusi0n â€” WordPress_1289372489871" src="https://fusi0n.org/wp-content/uploads/2010/11/Add-New-Post-â€¹-fusi0n-â€”-WordPress_1289372489871.png" alt="" width="154" height="128" /> In the example I've described above, I wanted to rename the "Posts" to "Songs" and "Categories" to "Artists". The problem with that is that those are hardcoded in the a WordPress file and no hooks are defined, so we can't dynamically change it. It's also useless to manipulate the $menu variable which contains the admin sidebar items since "Posts" is also displayed on pages and at a bunch of other places. So how to efficiently turn that into a different string without hacking up the core?</p>
<p>The solution I came up with was to use WordPress' built-in localization mechanism. When theme and plugin developers want to output a string, they can enclose it in the<a href="http://codex.wordpress.org/Translating_WordPress#Localization_Technology" target="_blank">__('string');</a> function, which calls up a gettext parser to translate. I'm not a fan of the system, it obliges you to compile a new language file for every version of your theme/plugin - and add one more for every language. But it's what WordPress uses, so we'll deal with it.<span id="more-1349"></span></p>
<p>The first thing we need to do is get a copy of the default language files since they're not included with WordPress. Make sure you get the appropriate version of the file - it has to match your WordPress version. The latest one can be found <a href="http://svn.automattic.com/wordpress-i18n/pot/" target="_blank">here</a>. Once we have that, check out what <a href="http://codex.wordpress.org/Translating_WordPress" target="_blank">WordPress says about translating</a> using gettext and POT/PO/MO files. You'll agree then that it's not a very convenient way. If you want to replace specific words like posts, categories - I was able to use <a href="http://www.activestate.com/komodo-edit" target="_blank">Komodo Edit</a>'s regular expression replace to change everything at once with some regex voodoo (search for <em>^msgstr \"(.*)posts (.*)\"$</em> and replace with <em>msgstr "\1songs\2"</em> for example). Once you've done that for all your strings, either upload it to ./wp-includes/languages/LOCALE.mo (where locale is whatever locale you'll enable in the WordPress admin - I used "default.mo") which will make WordPress automatically parse it or, the smart and portable way make a plugin to dynamically replace the language:</p>
<pre class="brush: php; title: ; notranslate">add_filter('load_textdomain_mofile', create_function('$moFile', &quot;return dirname(__FILE__).'/lang/default.mo';&quot;));</pre>
<p>Using that will dynamically replace the default localization file (if any) with the one you've uploaded in your plugin/lang directory named "default.mo".</p>
<p>In the end, WordPress is a great flexible platform. You can literally do anything you want with it even something that it completely isn't usually thought to be in the "blogging application" domain. I guess this is where I reiterate that if you can use custom posts type and keep the regular menu, you're definitely encouraged to do so, or even remove the menus altogether by manipulating the $menu variable. However if you need global translation of the admin while keeping a few or all of the WordPress default features, it's still a pretty interesting way to do it.</p>
]]></content:encoded>
			<wfw:commentRss>http://fusi0n.org/coding/change-localized-strings-in-the-wordpress-admin/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>New Look</title>
		<link>http://fusi0n.org/fusi0n/new-look</link>
		<comments>http://fusi0n.org/fusi0n/new-look#comments</comments>
		<pubDate>Tue, 09 Nov 2010 22:15:34 +0000</pubDate>
		<dc:creator>pluc</dc:creator>
				<category><![CDATA[fusi0n]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://fusi0n.org/?p=1345</guid>
		<description><![CDATA[I got tired of the previous design - aside from the fact that it was cool and up to date in 2002, it did its time. I've accumulated much WordPress knowledge since that setup was thought of, and I felt it was time. So here goes, a brand new design. I've kept several elements from [...]]]></description>
			<content:encoded><![CDATA[<p>I got tired of the previous design - aside from the fact that it was cool and up to date in 2002, it did its time. I've accumulated much WordPress knowledge since that setup was thought of, and I felt it was time. So here goes, a brand new design. I've kept several elements from the past one, such as the Disqus comments and WP-prettyPhoto, but it brought more interesting features not only in terms of display but also in terms of embedded plugins. The <a href="http://www.lightworddesign.com/" target="_blank">author of the theme</a> hardcoded (obviously with function_exists checks) to ensure good compatibility, such as Yoast Breadcrumbs, PageNavi and others. So I got to play with a bunch of new toys and hack this theme up a bit.</p>
<p>I've also incorporated ads into this design. Yes. This blog is amazingly popular for mobile-related stuff (mostly Cydia), and well I'd be stupid not to monetize it. There's one ad unit in the sidebar that's low enough to be unobtrusive and another more obvious one at the top of single posts. I've discovered why my blog has been showing public service ads for the last 2 years and fixed that (shows how much I care).</p>
<p>Ideally, I'll start posting interesting stuff here eventually about WordPress, Mobile and general development. Stay tuned, and thanks for your loyalty - I still don't understand why anyone would read this blog, but whatever floats your boats.</p>
]]></content:encoded>
			<wfw:commentRss>http://fusi0n.org/fusi0n/new-look/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Post-Mortem: WordCamp Montreal 2010</title>
		<link>http://fusi0n.org/coding/post-mortem-wordcamp-montreal-2010</link>
		<comments>http://fusi0n.org/coding/post-mortem-wordcamp-montreal-2010#comments</comments>
		<pubDate>Thu, 02 Sep 2010 16:04:36 +0000</pubDate>
		<dc:creator>pluc</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[montreal]]></category>
		<category><![CDATA[review]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://fusi0n.org/?p=1272</guid>
		<description><![CDATA[On August 28th, the second edition of WordCamp Montreal took place at UQAM's "Coeur des Sciences". Last year, at the SAT, we were around 100 people to attend. This year's attendance easily topped the 200, thanks to the organizers and the sponsors, which were also more generous than the year before, with giveaways of goodies [...]]]></description>
			<content:encoded><![CDATA[<div>
<div>
<p>On August 28th, the second edition of WordCamp Montreal took place at UQAM's "Coeur des Sciences". Last year, at the SAT, we were around 100 people to attend. This year's attendance easily topped the 200, thanks to the organizers and the sponsors, which were also more generous than the year before, with giveaways of goodies likeÂ <a href="http://wordcampmontreal.org/2010/08/20/this-company-called-adobe-sent-us-some-prizes-to-give-away-maybe-youve-heard-of-them/" target="_blank">Adobe software</a>,Â <a href="http://wordcampmontreal.org/2010/08/19/netfirms-ca-sponsors-wordcamp-and-offers-1-hosting-to-all-attendees/" target="_blank">$1 hosting packs,Â two iPads</a> and aÂ <a href="http://www.flickr.com/photos/andrea_r/4945229780/">table full of stickers</a>. The organizers (Shannon "cafenoirdesign" Smith, Jeremy Clarke and Brendan "digibomb" Sera-Shriar) worked hard to Â fillÂ <a href="http://wordcampmontreal.org/schedule/" target="_blank">the schedule</a> with interesting topics and speakers, keep the attendees interested,Â <a href="http://www.flickr.com/photos/andrea_r/4945251288/" target="_blank">fed</a>:Â St-Viateur bagels with Starbucks coffee in the morning, catered lunch on day one, pizza on day two, and evenÂ <a href="http://www.flickr.com/photos/montrealtechwatch/4936170036/" target="_blank">cupcakes</a>!</p>
<p>There were two talks attendees could choose from at any given time, 21 in all. Here are the ones I attended and bit of a summary for each.<img title="Lire la suiteâ€¦" src="https://fusi0n.org/wp-content/uploads/2010/09/trans.gif" alt="" /><span id="more-1272"></span></p>
<h2>Plugin Development Best Practices and Troubleshooting User Issues</h2>
<p>The first talk of Saturday was byÂ <a href="http://wordcampmontreal.org/schedule/#yannick" target="_blank">Yannick Lefebvre</a>. The first talk of any conference/event is always a bit complicated. Most people aren't too sure what to expect and the first few talks set the standard and the mood of the audience. Yannick did a decent job at explaining his own trajectory but neglected the fact that people were there to learn about plugin development, not development ofÂ hisÂ plugins. There were lots of real-life examples and scenarios, which didn't work for me. There were however some good tips regarding coding standards such as avoiding jQuery conflicts, properly enqueuing JavaScript libraries, prefixing function names, using arrays to store WordPress options and using short open tags. Basically, the talk covered what it advertised, best practices and user issues, but I expected it to be more technical and less example-based. Still, I learned a thing or two.</p>
<p><a href="http://www.slideshare.net/ylefebvre/201008-wordcamp-presentation" target="_blank">View presentation slides</a>.</p>
<h2>Optimizing WordPress for Search and Social</h2>
<p>Second talk of the day, usually at this point people are wired up and ready to be fed some geeky knowledge. NVI's CT Moore was up next with a bit of a marketing talk. I'm a developer, I have very little interest for shady SEO/SMO techniques - but the other talk was (a sponsored) Microsoft pretending to care about open-source and plugging their IDE somehow thinking that the community would compare them toÂ <a href="http://automattic.com/" target="_blank">Automattic</a> because they've Â implemented a PHP syntax highlighter, so I figured I'd go with this one instead. Surprisingly, it was pretty interesting. Not only was it the only talk of the weekend where the presenter openly didn't care about swearing (which is always entertaining), but the subject itself and the way it was presented was refreshing. An optimized way to output your WordPress stuff was suggested by Chris to play nice the very annoying duplicate content algorithm from Google using excerpts to render post lists instead of actual content.</p>
<p><a href="http://www.slideshare.net/gypsybandito/optimizing-wordpress-for-search-social" target="_blank">View presentation slides</a>.</p>
<h2>WordPress &amp; E-commerce: Beyond the Basics</h2>
<p>After a (great) lunch,Â <a href="http://wordcampmontreal.org/schedule/#justin" target="_blank">Justin Sainton</a> was talking about theÂ <a href="http://getshopped.org/" target="_blank">WP-Ecommerce plugin</a> with which he is involved. Ironically, the most interesting part of this talk was not about the plugin itself but more about the insights Justin was sharing on e-commerce such as the top reasons why your online store does not generate decent revenue. For example, according to Justin, the very first reason your visitors don't convert is because you force registration. Anonymous check-in is key! Also, stores asking for that annoying little 3-digit code (CVV2) from the back of your credit card lose 40% of purchases. Some more tips: have a return policy, make sure your search is visible and returns relevant results, display that your checkout is secure and have a toll-free number your customers can use for inquiries.</p>
<p><a href="http://www.slideshare.net/ZaoWebDesign/montreal-presentation-5077090" target="_blank">View presentation slides</a>.</p>
<h2>Unleashing WordPress: Building Web Applications using the WordPress Platform</h2>
<p>This talk is a big deception for the 2010 edition of WordCamp. Carl Alexander had a great technical presentation, but was pretty nervous about talking about it in front of 50 people. Having presented nervously at WordCamp last year, I can tell you itÂ isÂ a very stressful thing to do, especially if you're not an experienced speaker. This guy is a developer. He tried as best as he could, and he succeeded moderately, to explain concepts such as (H)MVC and how to basically turn WordPress into an application platform. Sadly (1) the presentation isn't online so it's difficult to remember specific things, especially due to its technical nature and (2) he really didn't make it worth remembering. I'm pretty sure he wants to forget it too. Hopefully, he'll present next year or the year after - practice makes perfect.</p>
<h2>WordPress as a CMS: Advice for taking it to the next level</h2>
<p>I think that, along with CT Moore (mostly for the swearing),Â <a href="http://wordcampmontreal.org/schedule/#rotsztein" target="_blank">Brian Rotsztein</a> has to be my favorite presenter this year. He was relaxed andÂ jet-laggedÂ (just the way we like our presenters) and knew very well what he was talking about. It was one of the talks I was looking forward to since using WordPress as a CMS is something I have to do often. The talk was a great mix of humour, technicalities and marketing-oriented thinking.Brian suggested a bunch of plugins that kept the audience taking notes, I won't summarize it here because I'd have to talk about pretty much every slide - just use the link below to view it yourself.</p>
<p><a href="http://www.slideshare.net/brianrotsztein/wordpress-as-a-cms" target="_blank">View Presentation Slides</a>.</p>
<h2>Raise and Measure your blog's influence with Twitter and Facebook</h2>
<p>The last talk of the day was a marketing-oriented presentation byÂ <a href="http://wordcampmontreal.org/schedule/#jerome" target="_blank">Jerome Paradis</a>. Marketing isn't really my cup of tea, but Jerome managed to make it interesting. The thing I'll remember from that talk is what Jerome said about the Facebook "Like" interaction with the Facebook search. Did you know that if you click "Like" on this blog post, it will appear in your feed and if you search for the name of the item you liked (for example searching for "Post-mortem" will bring the "like" you performed on this article) and click it, it will send you directly to the original website (this one)? I didn't, and I find it pretty cool. There's plenty more you can learn by clicking the link below.</p>
<p><a href="http://www.slideshare.net/jeromeparadis/raise-and-measure-your-blogs-influence-with-twitter-and-facebook-wordcamp-montreal-2010" target="_blank">View Presentation Slides</a>.</p>
<p>And then there was nothing... and by that, I mean we all got free beer at Saint-Sulpice for the night, which is why the next day's presentation didn't make it into my system. Besides, I originally thought that Saturday's presentations were much more interesting than Sunday's, except for two (Tweaking plugins to be 3.0 Network compatible by Ron Rennick and Twenty-Ten: The Last Team You'll Ever Need? by Alexandre Simard). My hangover made it so I missed the first one, but I was able to attend Alexandre's talk...</p>
<h2>Twenty-Ten: The Last Team You'll Ever Need?</h2>
<p>This was the last presentation of the day and of the conference, and it was about a subject that every other presenter barely spoke of but mentioned profusely: the new Twenty Ten theme (fun littleÂ anecdote: the WordPress developers named the official theme "twenty ten" so that they would feel ashamed for not making a new one in 2011). Alexandre Simard did a fairly good job of explaining the new features and how to exploit them.</p>
<p><a href="http://www.slideshare.net/brocheafoin/twenty-ten-the-last-theme-youll-ever-need-5088772" target="_blank">View Presentations Slides</a>.</p>
<p>All in all, WordCamp Montreal 2010 can definitely be considered a success. The best part of every WordCamp is to hang out with likeminded individuals from all over the world. Okay, maybe all over America, but we're getting there. Until next year!</p>
</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://fusi0n.org/coding/post-mortem-wordcamp-montreal-2010/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Hacking WordPress: Introduction to custom plugins and advanced templating</title>
		<link>http://fusi0n.org/fusi0n/hacking-wordpress-introduction-to-custom-plugins-and-advanced-templating</link>
		<comments>http://fusi0n.org/fusi0n/hacking-wordpress-introduction-to-custom-plugins-and-advanced-templating#comments</comments>
		<pubDate>Sat, 04 Jul 2009 00:37:23 +0000</pubDate>
		<dc:creator>pluc</dc:creator>
				<category><![CDATA[fusi0n]]></category>
		<category><![CDATA[montreal]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[talk]]></category>
		<category><![CDATA[WordCamp Montreal]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://blog.fusi0n.org/?p=1003</guid>
		<description><![CDATA[For those of you who don't know (which may very well be all of you right now), I will be presenting a talk at WordCamp Montreal July 12th. The title of the presentation, if you haven't guessed, is "Hacking WordPress: Introduction to custom plugins and advanced templating". I'll explain how you can use your own [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://wordcampmontreal.org" target="_blank"><img class="alignright" title="Im Speaking at WordCamp Montreal - Jul 11-12" src="https://fusi0n.org/wp-content/uploads/2009/07/wcmtl-badge-presenter-en-150.gif" alt="" width="150" height="57" /></a>For those of you who don't know (which may very well be all of you right now), I will be presenting a talk at WordCamp Montreal July 12th. The title of the presentation, if you haven't guessed, is "<strong>Hacking WordPress: Introduction to custom plugins and advanced templating</strong>". I'll explain how you can use your own plugins and functions to make your WordPress site sing. In other words, it will basically be a relatively improvised primer on the following things:</p>
<ul>
<li>Introduction to creating <a title="WordPress Plugins" href="http://wordpress.org/extend/plugins/" target="_blank">WordPress plugins</a></li>
<li>Managing your <a title="WordPress Sidebars" href="http://wordpress.org/extend/plugins/tags/sidebar" target="_blank">sidebars</a> and <a title="WordPress Widgets" href="http://wordpress.org/extend/plugins/tags/widget" target="_blank">widgets</a></li>
<li>Using WordPress' <a title="WordPress Codex" href="http://codex.wordpress.org/Main_Page" target="_blank">Codex</a> and <a title="WordPress API Documentation" href="http://codex.wordpress.org/Plugin_API" target="_blank">API documentation</a></li>
<li>Hacking up your <a title="WordPress Themes" href="http://wordpress.org/extend/themes/" target="_blank">templates</a> to use all the power provided by WordPress</li>
</ul>
<p>If you're not registered yet, you have until July 9th to do so on <a title="WordCamp Montreal 2009 Registration" href="http://wcmtl.eventbrite.com/" target="_blank">EventBrite</a>. For more information regarding WordPress Montreal 2009, check out the <a title="WordCamp Montreal 2009" href="http://wordcampmontreal.org/" target="_blank">official site</a>, <a title="WordCamp Montreal Mailing List" href="https://groups.google.com/group/wordcampmtl" target="_blank">mailing list</a>, <a title="WordCamp Montreal Blog" href="http://wordcampmontreal.org/blog/" target="_blank">blog</a>, <a title="Facebook | WordCamp Montreal 2009" href="http://www.facebook.com/group.php?gid=199180685044" target="_blank">Facebook group</a> and <a title="WordCamp Montreal on Twitter" href="http://twitter.com/wordcampmtl" target="_blank">Twitter account</a> or see what's going on by <a title="Twitter Search: #wcmtl" href="http://twitter.com/#search?q=#wcmtl" target="_blank">looking up</a> the #wcmtl tag.</p>
<p><span id="more-1003"></span></p>
<p>This will be my first talk on WordPress. I started working with WordPress as a platform not too long ago, when working at <a title="CloudRaker" href="http://www.cloudraker.com" target="_blank">CloudRaker</a> with <a title="StÃ©phane Caron" href="http://www.no-margin-for-errors.com/" target="_blank">StÃ©phane Caron</a>, who happened to have a really nice jQuery plugin to replicate the behavior of the famous Lightbox, called <a title="prettyPhoto" href="http://www.no-margin-for-errors.com/projects/prettyPhoto-jquery-lightbox-clone/" target="_blank">prettyPhoto</a>. Since WordPress uses jQuery (and so do most of its plugins), I figured it'd be a good idea to <a title="WP-prettyPhoto" href="http://wordpress.org/extend/plugins/wp-prettyphoto/" target="_blank">integrate his plugin in WordPress</a> while adding flexibility. That's how it all started. I still can't believe I'll be telling anyone my take on how to do things, but it's happening!</p>
<p>I'll probably be using this post to mark my progress in the elaboration of my talk. I'd love to get feedback and comments on what I'm doing since this is a first for me. Stay tuned!</p>
]]></content:encoded>
			<wfw:commentRss>http://fusi0n.org/fusi0n/hacking-wordpress-introduction-to-custom-plugins-and-advanced-templating/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WP-prettyPhoto Technical Information and Usage Instructions</title>
		<link>http://fusi0n.org/wp-prettyphoto/technical-information-and-usage-instructions</link>
		<comments>http://fusi0n.org/wp-prettyphoto/technical-information-and-usage-instructions#comments</comments>
		<pubDate>Sun, 24 May 2009 09:34:16 +0000</pubDate>
		<dc:creator>pluc</dc:creator>
				<category><![CDATA[WP-prettyPhoto]]></category>
		<category><![CDATA[HOWTO]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://blog.fusi0n.org/?p=966</guid>
		<description><![CDATA[Lots has changed since the last article I made about WP-prettyPhoto usage, and so it is time to revamp the instructions, explain new features and hopefully be a bit more thorough. First off, let me first mention the following thing:Â  prettyPhoto is written by StÃ©phane Caron. Here are some related links to avoid repeating them [...]]]></description>
			<content:encoded><![CDATA[<p>Lots has changed since the last article I made about WP-prettyPhoto usage, and so it is time to revamp the instructions, explain new features and hopefully be a bit more thorough. First off, let me first mention the following thing:Â   prettyPhoto is written by StÃ©phane Caron. Here are some related links to avoid repeating them throughout this article: <a title="StÃ©phane Caron" href="http://www.no-margin-for-errors.com/" target="_blank">StÃ©phane's blog</a>, <a title="jQuery lightbox for images, YouTube, iframes - by StÃ©phane Caron" href="http://www.no-margin-for-errors.com/projects/prettyPhoto-jquery-lightbox-clone/" target="_blank">prettyPhoto's project page</a>, <a title="prettyPhoto on GitHub" href="http://github.com/scaron/prettyphoto/tree/master" target="_blank">prettyPhoto on GitHub</a>, <a title="Stephane Caron on Twitter" href="http://twitter.com/scaron" target="_blank">StÃ©phane on Twitter</a>, <a title="WP-prettyPhoto" href="http://wordpress.org/extend/plugins/wp-prettyphoto/" target="_blank">WP-prettyPhoto at WordPress Extend</a>, <a title="WP-prettyPhoto Support Forum" href="http://forums.no-margin-for-errors.com/?CategoryID=8" target="_blank">WP-prettyPhoto Support Forum</a>.</p>
<div class="alignright" style="padding-left: 20px;"><a href="https://www.paypal.com/cgi-bin/webscr?cmd=_donations&amp;business=pL%40fusi0n%2eorg&amp;lc=CA&amp;item_name=Pier%2dLuc%20Petitclerc%20%2d%20Code%20Support&amp;currency_code=CAD&amp;bn=PP%2dDonationsBF%3abtn_donate_SM%2egif%3aNonHostedGuest"><img src="https://fusi0n.org/wp-content/uploads/2009/05/btn_donate_LG2.gif" border="0" alt="PayPal - The safer, easier way to pay online!" /></a></div>
<p>Revision History: This article is intended to document the <em>current</em> WP-prettyPhoto (<strong>1.5.1</strong>) &amp; prettyPhoto (<strong>2.5.2</strong>) versions.<br />
<span id="more-966"></span><br />
Now for some organization, here are the topics that will be discussed in this article:</p>
<ul>
<li>1. <a href="#technical-information">Technical Information</a></li>
<li>2. <a href="#installing">Installing WP-prettyPhoto</a></li>
<li>3. <a href="#using">Using WP-prettyPhoto</a>
<ul>
<li>3.1. <a href="#using-on-images">On Images</a></li>
<li>3.2. <a href="#using-on-videos-and-flash">On Videos (MOV) and Flash (SWF)</a></li>
<li>3.3. <a href="#using-on-youtube">On YouTube Videos</a></li>
<li>3.4. <a href="#using-on-external-sites">On External Sites (iFrame)</a></li>
<li>3.5. <a href="#shortcode-api-calls">Shortcode API Calls</a></li>
</ul>
</li>
<li>4. <a href="#examples">Examples</a></li>
</ul>
<h4><a name="technical-information"></a>1. Technical Information</h4>
<p>The idea behind WP-prettyPhoto is to avoid having to use Lightbox to display pictures. Lightbox is based on the Prototype JavaScript library, and most WordPress plugins tend to use jQuery. Using WP-prettyPhoto thus allows you to avoid loading multiple libraries to perform a single task. Stephane Caron developed prettyPhoto because the jQuery Lightbox clones, at the time, were close enough to the real Lightbox.</p>
<p>prettyPhoto uses attribute hooks to bind itself on elements to display. In other words, if prettyPhoto finds a <a title="Links in HTML documents" href="http://www.w3.org/TR/REC-html40/struct/links.html#adef-rel" target="_blank">rel attribute</a> inside a link pointing to one of its supported format (bmp, gif, jpg, jpeg, png, swf, mov), and that rel attribute matches the one prettyPhoto looks for, it will know that link is meant to be displayed within a prettyPhoto box. Since prettyPhoto 2.4, it also looks for simple text links with the configured rel attribute and the string "iframes=true" within the target URL. Since prettyPhoto 2.5, an API is available.</p>
<h4><a name="installing"></a>2. Installing WP-prettyPhoto</h4>
<p>The installation of WP-prettyPhoto is pretty straightforward, as with most WordPress plugins. Once you have <a title="Download WP-prettyPhoto at WordPress Extend" href="http://wordpress.org/extend/plugins/wp-prettyphoto/" target="_blank">downloaded the current version of WP-prettyPhoto</a>, you have two options:</p>
<ol>
<li>Use WordPress' builtin plugin installation system located in your WordPress admin panel, labeled as the "Add New" options in the "Plugins" menu to upload the zip file you downloaded</li>
<li>Extract the zip file and upload the resulting "wp-prettyphoto" folder on your server under "wp-content/plugins/".</li>
</ol>
<p>All you need to do after that is navigate to your blog's administration panel, go in the plugins section and enable WP-prettyPhoto.</p>
<p>For more information, see the <a title="Installing Plugins" href="http://codex.wordpress.org/Managing_Plugins#Installing_Plugins" target="_blank">"Installing Plugins" article from the WordPress Codex</a>.</p>
<h4><a name="using"></a>3. Using WP-prettyPhoto</h4>
<p>There are several ways to use WP-prettyPhoto on your blog. All of them can be automatically achieved by enabling the "All Formats" option in the "Automate" section of the WP-prettyPhoto settings, located inside WordPress' Media settings page. All of the "Automate" options will trigger automatic activation of the specific format. That is how to use WP-prettyPhoto automatically. However, some of prettyPhoto's formats require specific instructions. For all formats, you will need to do the following: Insert the media you want prettyPhoto to bind itself on in your post or page, surround it by a link and make the <a title="HREF" href="http://www.w3.org/TR/REC-html40/struct/links.html#adef-href" target="_blank">HREF attribute</a> point to the original media Then, simply add WP-prettyPhoto's configurable REL string to the link.</p>
<p>It is important to note that there is also a way to exclude specific elements from being displayed in prettyPhoto. To do so, simply make the link point to a new window using "_blank" as the value of the link's TARGET attribute.</p>
<h5><a name="using-on-images"></a>3.1. On images</h5>
<p>Manually using prettyPhoto on images is simple.Â  If you want to display a title inside the prettyPhoto box, make sure the "Display title" setting is activated. When active, prettyPhoto will use whatever is inside the image's <a title="ALT" href="http://www.w3.org/TR/REC-html40/struct/objects.html#adef-alt" target="_blank">ALT attribute</a>. To display a description, use the link's <a title="TITLE" href="http://www.w3.org/TR/REC-html40/struct/global.html#adef-title" target="_blank">TITLE attribute</a>.</p>
<p>To manually insert a prettyPhoto gallery, the process is similar. All you need to do is make sure all your images have the same REL attribute with a slight modification. The REL attribute should define the gallery's unique name between [square brackets]. Doing so will allow prettyPhoto to display next/previous links as well as display the current picture count and the total pictures found in the gallery.</p>
<h5><a name="using-on-videos-and-flash"></a>3.2. On videos and flash</h5>
<p>The process of linking prettyPhoto to your video files is the same as images. Link to the .swf or .mov file, then specify the width and height. In the case your flash needs specifics parameters, add &amp;flashparams to the URL specify the parameters.</p>
<h5><a name="using-on-youtube"></a>3.3. On YouTube Videos</h5>
<p>To load a YouTube video, simply link to the YouTube video url. You can also add "&amp;width" and "&amp;height" to specify the sizes, if not provided, default dimensions will be applied.</p>
<h5><a name="using-on-external-sites"></a>3.4. On External Sites</h5>
<p>To load sites in an iframe inside prettyPhoto, link to the desired website and add the following params. "?iframe=true", to tell prettyPhoto to open the page in an iframe and "&amp;width=300" "&amp;height=300", to specify the iframe dimensions.</p>
<h5><a name="shortcode-api-calls"></a>3.5. Shortcode API Calls</h5>
<p>Since WP-prettyPhoto 1.5 and prettyPhoto 2.5, API calls are supported through WordPress <a href="http://codex.wordpress.org/Shortcode_API" target="_blank">shortcodes</a>. There are two distinct shortcodes available to users, please note that shortcode usage must first be enabled in WP-prettyPhoto settings.</p>
<ul>
<li><a href="#" onclick="$.prettyPhoto.open('', '', '');return false;"><em>Text</em></a>: Opens a prettyPhoto box using <em>img</em> value for image source, <em>title</em> value for title, <em>desc</em> value for description. If you want to display a button instead of a link, set the button parameter to <em>true</em>.</li>
<li><a href="#" onclick="$.prettyPhoto.open([''], [''], ['']);return false;">Text</a>: Opens a prettyPhoto gallery using <em>files</em> values for images, <em>titles</em> value for image titles and <em>desc</em> values for descriptions. All values should be comma-separated and ordered properly. The second <em>desc</em> item corresponds to the description of the second <em>files</em> item. Here again, you can output a button instead of a link using button="true".</li>
</ul>
<h4><a name="examples"></a>4. Examples</h4>
<ul>
<li><a title="Simple image hook with no title and with description." href="https://fusi0n.org/wp-content/uploads/2009/05/avatar-trans1.png" rel="wp-prettyPhoto[g966]">Simple image hook with no title and with description.</a>
<pre class="brush: xml; title: ; notranslate">&lt;a title=&quot;Simple image hook with no title and with description.&quot; href=&quot;http://blog.fusi0n.org/wp-content/uploads/2009/05/avatar-trans.png&quot;&gt;Simple image hook with no title and with description.&lt;/a&gt;</pre>
</li>
<li><a rel="wp-prettyPhoto" href="http://www.youtube.com/watch?v=oHg5SJYRHA0" rel="wp-prettyPhoto[g966]"">YouTube video</a>
<pre class="brush: xml; title: ; notranslate">&lt;a href=&quot;http://www.youtube.com/watch?v=oHg5SJYRHA0&quot; rel=&quot;wp-prettyPhoto&quot;&gt;YouTube video&lt;/a&gt;</pre>
</li>
<li><a rel="wp-prettyPhoto" href="http://movies.apple.com/movies/weinstein/nine/nine-tlr1_h.480.mov?width=480&amp;height=204">Flash Movie</a>
<pre class="brush: xml; title: ; notranslate">&lt;a href=&quot;http://movies.apple.com/movies/weinstein/nine/nine-tlr1_h.480.mov?width=480&amp;height=204&quot; rel=&quot;wp-prettyPhoto&quot;&gt;Flash Movie&lt;/a&gt;</pre>
</li>
<li><a rel="wp-prettyPhoto" href="http://m.reddit.com/?iframe=true">External Site</a>
<pre class="brush: xml; title: ; notranslate">&lt;a href=&quot;http://m.reddit.com/?iframe=true&quot; rel=&quot;wp-prettyPhoto&quot;&gt;External Site&lt;/a&gt;</pre>
</li>
</ul>
<p>[plugin_downloads]</p>
]]></content:encoded>
			<wfw:commentRss>http://fusi0n.org/wp-prettyphoto/technical-information-and-usage-instructions/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://movies.apple.com/movies/weinstein/nine/nine-tlr1_h.480.mov?width=480&amp;amp" length="78" type="video/quicktime" />
		</item>
		<item>
		<title>Konami Code Hook for your WordPress blog!</title>
		<link>http://fusi0n.org/wp-konami/konami-code-hook-for-your-wordpress-blog</link>
		<comments>http://fusi0n.org/wp-konami/konami-code-hook-for-your-wordpress-blog#comments</comments>
		<pubDate>Sat, 16 May 2009 21:48:13 +0000</pubDate>
		<dc:creator>pluc</dc:creator>
				<category><![CDATA[WP-Konami]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://blog.fusi0n.org/?p=938</guid>
		<description><![CDATA[Soooo... I was bored earlier today and decided to code a plugin just for kicks. So, lo and behold, I give you WP-Konami! Hey I never said it was useful. WP-Konami uses jQuery to add a hook listening for a Konami Code input sequence, and redirects successful sequences to a URL you specify in the [...]]]></description>
			<content:encoded><![CDATA[<p>Soooo... I was bored earlier today and decided to code a plugin just for kicks. So, lo and behold, I give you <a title="WP-Konami" href="http://wordpress.org/extend/plugins/wp-konami/" target="_self">WP-Konami</a>! Hey I never said it was useful. WP-Konami uses jQuery to add a hook listening for a <a href="http://en.wikipedia.org/wiki/Konami_Code" target="_blank">Konami Code</a> input sequence, and redirects successful sequences to a URL you specify in the options. You can get your site listed at <a title="Konami Code Sites" href="http://konamicodesites.com/" target="_blank">Konami Code Sites</a> once you have it installed, too!</p>
<div class="alignright">
<a href="https://www.paypal.com/cgi-bin/webscr?cmd=_donations&#038;business=pL%40fusi0n%2eorg&#038;lc=CA&#038;item_name=Pier%2dLuc%20Petitclerc%20%2d%20Code%20Support&#038;currency_code=CAD&#038;bn=PP%2dDonationsBF%3abtn_donate_SM%2egif%3aNonHostedGuest"><img src="https://fusi0n.org/wp-content/uploads/2009/05/btn_donate_LG1.gif" border="0" alt="PayPal - The safer, easier way to pay online!"/></a>
</div>
<p>Enjoy!</p>
]]></content:encoded>
			<wfw:commentRss>http://fusi0n.org/wp-konami/konami-code-hook-for-your-wordpress-blog/feed</wfw:commentRss>
		<slash:comments>22</slash:comments>
		</item>
		<item>
		<title>WP-prettyPhoto 1.2 released!</title>
		<link>http://fusi0n.org/wp-prettyphoto/wp-prettyphoto-12-released</link>
		<comments>http://fusi0n.org/wp-prettyphoto/wp-prettyphoto-12-released#comments</comments>
		<pubDate>Sat, 09 May 2009 21:03:21 +0000</pubDate>
		<dc:creator>pluc</dc:creator>
				<category><![CDATA[WP-prettyPhoto]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://blog.fusi0n.org/?p=924</guid>
		<description><![CDATA[It's been a while since any activity has happened with prettyPhoto and WP-prettyPhoto. I was waiting for some changes to the prettyPhoto code to release a new version, and StÃ©phane Caron has released version 2.3 of his prettyPhoto jQuery plugin recently, so it was time to roll out a new WP-prettyPhoto version, 1.2, with all [...]]]></description>
			<content:encoded><![CDATA[<div class="alignright" style="padding-left:20px;"><a href="https://www.paypal.com/cgi-bin/webscr?cmd=_donations&amp;business=pL%40fusi0n%2eorg&amp;lc=CA&amp;item_name=Pier%2dLuc%20Petitclerc%20%2d%20Code%20Support&amp;currency_code=CAD&amp;bn=PP%2dDonationsBF%3abtn_donate_SM%2egif%3aNonHostedGuest"><img src="https://fusi0n.org/wp-content/uploads/2009/05/btn_donate_LG.gif" border="0" alt="PayPal - The safer, easier way to pay online!" /></a></div>
<p>It's been a while since any activity has happened with prettyPhoto and WP-prettyPhoto. I was waiting for some changes to the prettyPhoto code to release a new version, and StÃ©phane Caron has <a title="prettyPhoto 2.3" href="http://www.no-margin-for-errors.com/2009/05/08/prettyphoto-23/" target="_blank">released version 2.3</a> of his prettyPhoto jQuery plugin recently, so it was time to roll out a new WP-prettyPhoto version, 1.2, with all the changes and features that have been suggested since the last release. To skip the blah blah and go straight to downloading, head over to <a title="WP-prettyPhoto on WordPress Extend" href="http://wordpress.org/extend/plugins/wp-prettyphoto/">WordPress Extend</a>.<span id="more-924"></span></p>
<p>What's new in this version? There's quite a lot! First off, let's talk of the changes made by StÃ©phane to prettyPhoto:</p>
<ul>
<li><strong>Video and flash support</strong> has been reinstated! prettyPhoto can now handle prettifying links to MOV (Apple QuickTime) and SWF (Shockwave Flash/Small Web Format). There is a specific format you need to respect when linking to those media types. More information can be obtained on the <a title="jQuery Lightbox Clone - How To Use" href="http://www.no-margin-for-errors.com/projects/prettyPhoto-jquery-lightbox-clone/#howtouse" target="_blank">prettyPhoto project page</a> (near the bottom)</li>
<li>Code has been <strong>optimized</strong> and design tweaked</li>
<li>More information on the 2.3 release of prettyPhoto can be obtained on the <a title="prettyPhoto version history" href="http://www.no-margin-for-errors.com/projects/prettyPhoto-jquery-lightbox-clone/#history" target="_blank">project page</a>.</li>
</ul>
<p>As for WP-prettyPhoto, I have obviously integrated the changes from prettyPhoto inside this release, that means:</p>
<ul>
<li><strong>Video and flash support</strong> for links pointing to .mov and .swf media files. Again, be aware there's a specific format to respect if you want your movies and animations to be hooked correctly. More info on this on the <a title="prettyPhoto How To Use" href="http://www.no-margin-for-errors.com/projects/prettyPhoto-jquery-lightbox-clone/#howtouse" target="_blank">prettyPhoto project page</a>.</li>
<li>Added an option to <strong>toggle media hooks</strong> (disabling it will disable WP-prettyPhoto prettifying your video and animations)</li>
</ul>
<p>There's also a few new features that will improve usability and user-friendliness such as...</p>
<ul>
<li>There's now an option to <strong>disable jQuery substitution</strong>. prettyPhoto relies on version 2.3.1 of jQuery. WordPress bundles a jQuery version that was inadequate to use with prettyPhoto, so to solve that problem, WP-prettyPhoto removes the JavaScript library that is shipped with WordPress and substitutes it for an adequate version that's shipped with WP-prettyPhoto, namely 2.3.1. More info on how to do that here, should you find yourself wondering. Thanks to StÃ©phane Caron for suggesting this feature.</li>
<li>There's a new feature to <strong>exclude prettyPhoto hooking</strong> on certain links. In order to do so, all you need to do is set the link of your image, flash animation or QuickTime video to a new window (<em>target="_blank"</em>) and WP-prettyPhoto will skip prettifying it. Thanks to <a title="Tommy Jones" href="http://www.standonyourbrand.com" target="_blank">Tommy Jones</a> for suggesting this feature.</li>
<li><strong>Upgraded bundled <a title="jQuery" href="http://www.jquery.com" target="_blank">jQuery</a></strong> from 1.3.1 to 1.3.2. Not really something that's necessary for the plugin, but I figured that since I substitute it, it might as well be the version that users might want, namely the most current at the time of the release. You can always disable substitution and include the version you desire by some other means.</li>
<li><strong>Switched prettyPhoto version type</strong> from uncompressed (17.5kb) to compressed (11.5kb), more fitting to production environments. Should you want to hack it up, there's an uncompressed version over at the <a title="prettyPhoto" href="http://www.no-margin-for-errors.com/projects/prettyPhoto-jquery-lightbox-clone/#download" target="_blank">prettyPhoto project</a>.</li>
<li>Obviously with the new changes, <strong>English and French localizations</strong> have been updated.</li>
<li>Fixed a bug where DD_belatedPNG (PNG transparency hack for IE6) would be included even if the selected theme wasn't dark, which made it useless.</li>
</ul>
<p>That's enough for now, isn't it? As always, if you have feature suggestions do not hesitate to contact me, they might make it to the next release! Now that you're educated as to what and how, feel free to head over to <a title="WP-prettyPhoto" href="http://wordpress.org/extend/plugins/wp-prettyphoto/">WordPress Extend</a> to download this new version. Enjoy!</p>
<p><em>Note: Version 1.2 pretty much hit a wall.. I made the mistake not to add jQuery 1.3.2 in the package.. so yeah.. nothing worked. It's fixed in 1.2.0.1. Sorry about that.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://fusi0n.org/wp-prettyphoto/wp-prettyphoto-12-released/feed</wfw:commentRss>
		<slash:comments>16</slash:comments>
		</item>
		<item>
		<title>Make your WordPress plugins use a different version of a bundled JavaScript library</title>
		<link>http://fusi0n.org/coding/make-your-wordpress-plugins-use-a-different-version-of-a-bundled-javascript-library</link>
		<comments>http://fusi0n.org/coding/make-your-wordpress-plugins-use-a-different-version-of-a-bundled-javascript-library#comments</comments>
		<pubDate>Fri, 13 Feb 2009 05:45:10 +0000</pubDate>
		<dc:creator>pluc</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[hack]]></category>
		<category><![CDATA[HOWTO]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[WP-prettyPhoto]]></category>

		<guid isPermaLink="false">http://blog.fusi0n.org/?p=575</guid>
		<description><![CDATA[I've recently coded my first WordPress plugin, for the fun of it. I've been using WordPress for some time, and I know PHP quite well, so I figured it'd be fun. WordPress has a weird/interesting way of being extendable. I won't go into too much technical details about that, but suffices to say that it's [...]]]></description>
			<content:encoded><![CDATA[<p>I've recently coded my first <a href="http://codex.wordpress.org/Plugins" target="_blank">WordPress plugin</a>, for the fun of it. I've been using <a href="http://wordpress.org/" target="_blank">WordPress</a> for some time, and I know <a title="PHP" href="http://www.php.net" target="_blank">PHP</a> quite well, so I figured it'd be fun. WordPress has a <a href="http://codex.wordpress.org/Developer_Documentation" target="_blank">weird/interesting</a> way of being <em>extendable</em>. I won't go into too much technical details about that, but suffices to say that it's easy yet complicated to perform tasks you want to. Yeah, <em>that</em> weird.</p>
<p>All that being said, I upgraded my WordPress from 2.7 to <a href="http://wordpress.org/download/" target="_blank">2.7.1</a> in the middle of coding some new features for the latest release of <a title="WP-prettyPhoto" href="http://wordpress.org/extend/plugins/wp-prettyphoto" target="_blank">WP-prettyphoto</a>, 1.1. That made me realize that updating WordPress' core also <em>updates</em> the installed JavaScript modules, namely <a href="http://jquery.com/" target="_self">jQuery</a> (among <a href="http://codex.wordpress.org/Function_Reference/wp_enqueue_script#Parameters" target="_blank">many others</a>). When I first coded <a title="WP-prettyPhoto" href="http://wordpress.org/extend/plugins/wp-prettyphoto" target="_blank">WP-prettyphoto</a>, when things weren't working I just replaced the <a href="http://jquery.com" target="_blank">jQuery</a> I had with the <a href="http://docs.jquery.com/Downloading_jQuery" target="_blank">latest official stable releas</a>e and things worked fine. I didn't give it much thought. So when I updated WordPress,  all hell broke loose and <a title="WP-prettyPhoto" href="http://wordpress.org/extend/plugins/wp-prettyphoto" target="_blank">WP-prettyphoto</a> was metaphorically crying in agony because jQuery wasn't man enough for it. I then tried performing the same manual updating procedure, and without really surprising anyone -- I was alone anyway -- <a title="WP-prettyPhoto" href="http://wordpress.org/extend/plugins/wp-prettyphoto" target="_blank">WP-prettyphoto</a> was back prettyfying my stuff like a starving fat kid eats a cheesecake.</p>
<p><span id="more-575"></span></p>
<p>Morale of the story, I needed to code a jQuery version check in my <a title="WP-prettyPhoto" href="http://wordpress.org/extend/plugins/wp-prettyphoto" target="_blank">WP-prettyphoto</a> code, and if jQuery's version wasn't matching what I wanted, I had to replace the script with one that would make <a title="WP-prettyPhoto" href="http://wordpress.org/extend/plugins/wp-prettyphoto/" target="_blank">WP-prettyPhoto</a> work the way it's supposed to. The goal's clear, the execution, however, was somewhat more obscure. Obviously, not being a WordPress plugin genius, I googled for solutions or anything that could help me achieve what I wanted. I didn't find much on how to replace a bundled script loaded by default. I found what I was looking for in a competing (and I use that term very, very loosely!) plugin for a jQuery Lightbox clone cleverly called <a href="http://wordpress.org/extend/plugins/jquery-lightbox-balupton-edition/" target="_blank">jQuery Lightbox</a> by <a href="http://www.pedrolamas.com/" target="_blank">Pedro Lamas</a>. It's basically de-registering the default WordPress jQuery plugin and replacing it with one bundled with the plugin. Using native functions. Nice. Here's the code:</p>
<pre class="brush: php; title: ; notranslate">// jQuery - removing to make sure we're using 1.3.1
//Deregister bundled jQuery (1.2.6 as of WP 2.7.1)
wp_deregister_script('jquery');
//Registering our up to date jQuery
//$wppp_url is WP_CONTENT_URL.'/plugins/'.plugin_basename(dirname(__FILE__));
wp_register_script('jquery', (&quot;$wppp_url/js/jquery-1.3.1.min.js&quot;), false, '1.3.1');
//Giving WordPress our new jQuery script to enqueue (display)
wp_enqueue_script('jquery');</pre>
<p>So there you have it. That's how to replace the version of a bundled WordPress JavaScript library.</p>
]]></content:encoded>
			<wfw:commentRss>http://fusi0n.org/coding/make-your-wordpress-plugins-use-a-different-version-of-a-bundled-javascript-library/feed</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
	</channel>
</rss>

