<?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>Idealien Studios &#187; Wordpress</title>
	<atom:link href="http://idealienstudios.com/category/blog/wordpress/feed/" rel="self" type="application/rss+xml" />
	<link>http://idealienstudios.com</link>
	<description>We will turn your dreams into reality together!</description>
	<lastBuildDate>Mon, 19 Jul 2010 05:59:57 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	
		<item>
		<title>WordPress Themes and the GPL – again?</title>
		<link>http://idealienstudios.com/blog/gpl-again/</link>
		<comments>http://idealienstudios.com/blog/gpl-again/#comments</comments>
		<pubDate>Mon, 19 Jul 2010 05:58:30 +0000</pubDate>
		<dc:creator>Jamie</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://idealienstudios.com/?p=756</guid>
		<description><![CDATA[This issue of theme theft, re-selling  (or conflicting business models and the GPL) comes up every couple months. This obviously sucks, but based on the current WordPress code structure and theme distribution model, there isn't a lot which can be done - it is the nature of the beneficial beast that is working with open source licensing models. It caused me to think outside the box and ponder a different approach to resolve the problem at hand.

In the 2 years since I originally wrote that article, the premium theme industry developed around a number of thriving businesses. Today, most of the theme developers who sell their wares do so entirely under the GPL. The symptoms causing the questions to be raised may have changed, but the important ones still remain:

   1. Can (or will) developers distribute their work under multiple licenses which would respect the source code base license?
   2. What do you do if someone does not respect the license that your product is distributed under?
   3. How will this on-going conversation affect the open-source community surrounding WordPress?
]]></description>
			<content:encoded><![CDATA[<p><img class="alignright size-medium wp-image-757" title="Secure WordPress Theme" src="http://idealienstudios.com/wp-content/uploads/my002_080222_securetheme-300x224.jpg" alt="" width="300" height="224" /><strong>NOTE:</strong> <em>I originally wrote the bulk of this post circa February 2008 (In fact, I had to go re-load a 2.1 version of WordPress to find it &#8211; how very LiveJournal the admin console was back then) &#8221; The discussion then was whether premium themes exist within the community / ecosystem of WordPress and what to do about theme theft / re-distribution.  Similar question(s) have come up again with the recent <a title="WordPress Themes and the GPL" href="http://markjaquith.wordpress.com/2010/07/17/why-wordpress-themes-are-derivative-of-wordpress/">Thesis / GPL</a> debate and the alternatives I suggest are no less timely now.</em></p>
<p>The <a href="http://www.gnu.org/licenses/gpl-faq.html#GPLAndPlugins">GPL website FAQ</a> does mostly addresses this concept, &#8220;If the program dynamically links plug-ins, and they make function calls to each other and share data structures, we believe they form a single program, which must be treated as an extension of both the main program and the plug-ins.&#8221;</p>
<p>Bryan at <a href="http://onemansgoal.com/310/premium-themes-and-digital-copyright-leeching/">One Man’s Goal</a> pondered the issues surrounding digital copyright leeching and the following quotes summarize the (then) prevaling opinions on this situation:</p>
<blockquote>
<div>By designing on a GPL platform…when you release it to the public you are releasing it licensed to everyone not just those who pay for it. Companies like Redhat linux make their money not by charging for the linux o/s which is open source, but by charing for support and tweaking packages that are added to it. That’s why CentOS can directly clone what Redhat Enterprise is and not be touched.</div>
</blockquote>
<blockquote>
<div>The part of themes or plugins which makes them subject to the terms of the GPL is that they use WordPress code hooks to extract data from the WordPress database. While theme designers can SAY that their theme is licensed under some non-GPL model, they have no legal basis to do so. Someone profiting from reselling the work of another is ethically rotten, but in the current legal landscape is technically fair.</div>
</blockquote>
<p>This issue of <a href="http://bloggingexperiment.com/archives/is-blogging-experiment-breaking-the-law.php">theme theft</a>, <a href="http://www.adii.co.za/2008/02/17/pirated-wordpress-themes-get-a-100-theme-for-only-6/">re-selling</a> (or conflicting business models and the GPL) comes up every couple months. This obviously sucks, but based on the current WordPress code structure and theme distribution model, there isn&#8217;t a lot which can be done &#8211; it is the nature of the beneficial beast that is working with open source licensing models. It caused me to think outside the box and ponder a different approach to resolve the problem at hand.</p>
<h2>Distribute separate theme packages with split license</h2>
<ol>
<li><strong>GPL-licensed files which include all references to WordPress logic</strong><br />
This .zip archive would only contain the .php files which make up the theme &#8211; sidebar, header, index, comments, etc. These files would only have integration to css through the id / class names applied to div containers. A blog owner that deploys this package alone will have their content displayed in a reasonable approximation of the theme structure without any styles applied.</li>
<li><strong>Images, javascript and css files licensed under whatever terms the designer wishes</strong><br />
This second .zip file would contain all the elements required to convert that basic structure into the beautiful presentation shown in the theme screenshot / demo. After purchasing this set of files, the user would have to upload these into the theme directory – a process which has been proven simple enough for most blog owners to execute without issue.</li>
</ol>
<h2>What are the benefits?</h2>
<ul>
<li><strong>Separate downloads equals separate licenses</strong><br />
This concept would be viable because of the difference the GPL affords non-dynamically linked plugins. As the visual elements could be used with any system they would not be subject to the terms of the GPL.</li>
<li><strong>Separating form from function</strong><br />
Decoupling the business logic and presentation layer is a best practice which simplifies future development efforts. Developers already recognize the benefit of separating substance and style &#8211; html and css anyone? Automattic made a sound decision to separate blog operations (wp-admin) from custom functionality (plugins) and presentation (themes).</li>
<li><strong>Consistent with standard design processes</strong><br />
Designers usually cut a photoshop file up into images and use a static .html template file to perfect the css with them. The non-gpl .zip file would represent this stage of design. The PHP code which uses WordPress hooks to dynamicize this template would become the GPL-licensed .zip file in effect.</li>
<li><strong>Developing architecture agnostic solutions</strong><br />
With the graphics and css separated from WordPress specific code, your theme is now portable to other open source architectures: Joomla, Drupal or Expression Engine. Whether the premium designer does the work themselves or partners with someone else, they have diversified their potential markets. Including the static .html file(s) you built during the design phase and it could be sold as a generic css template as well.</li>
<li><strong>Multiple premium themes from one template</strong><br />
If the css elements are well-designed it would be easy to create multiple themes from the same template. A fishing blog and could buy incremental series of graphics for ice fishing, fly fishing or bass fishing, or a seasonal treatment to a single outdoor painted scene.</li>
</ul>
<p>I would suggest that the designers be nice, and implement a basic styles.css with the GPL code. Give the user a rough guideline based on sizes of the placeholders for where the graphics would go. Include a link in the comments at the top – which show up in the WordPress theme page – where they can / should download the graphics if they want the full effect of the premium design.</p>
<h2>What are the problems?</h2>
<ul>
<li><strong>A challenge for premium theme galleries?</strong><br />
The dozens of free WordPress theme galleries would not require any change, but any <a href="http://hackwordpress.com/best-premium-wordpress-themes-gallery/">premium theme galleries</a> would. One might argue that since they already have a different download process with credit card collection &#8211; it&#8217;s not like there is a high degree of learned behaviour to overcome so this isn&#8217;t that much of a problem.</li>
<li><strong>Asking users to do more in order to implement a design</strong><br />
The majority of blog owners seem comfortable with the process of downloading to PC, unzipping into the wp-content/themes/ directory, uploading to server and activating, so adding a second download/unzip/upload is another non-issue of sorts I suspect. If this idea takes hold and all premium theme developers begin to adopt this process, eventually users learn that is the expected set of actions required to install a premium theme.</li>
<li><strong>A thief is a thief is a thief!</strong><br />
Not much you can do about someone who has no moral issue with theft. Yet this con becomes a pro by the fact that you now have a legal recourse to sue Mr. Thiefy McStealerton as your original artistic works are not subject to the GPL but to the license you chose to make them available for purchase under.</li>
</ul>
<p>I could only come up with one other option, which was to suggest that designers host the css / graphic files on their own servers and restrict who has access to them. Obviously this puts an external dependancy on blog performance which many would not like, but would give a more significant level of control as the styles.css file and images would be on your server. Perhaps this concept would work for WordPress.com users and the marketplace concept which Automattic has been hinted is coming in the near future.</p>
<p>In the 2 years since I originally wrote that article, the premium theme <em>industry</em> developed around a number of thriving businesses. Today, most of the theme developers who sell their wares do so entirely under the GPL. The symptoms causing the questions to be raised may have changed, but the important ones still remain:</p>
<ol>
<li>Can (or will) developers distribute their work under multiple licenses which would respect the source code base license?</li>
<li>What do you do if someone does not respect the license that your product  is distributed under?</li>
<li>How will this on-going conversation affect the open-source community surrounding WordPress?</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://idealienstudios.com/blog/gpl-again/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Solving a custom field query quandry</title>
		<link>http://idealienstudios.com/blog/wordpress/custom-field-query-quandry/</link>
		<comments>http://idealienstudios.com/blog/wordpress/custom-field-query-quandry/#comments</comments>
		<pubDate>Tue, 21 Jul 2009 01:30:14 +0000</pubDate>
		<dc:creator>Jamie</dc:creator>
				<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://idealienstudios.com/?p=678</guid>
		<description><![CDATA[Storing the details of a rideshare offer / request lends itself well to custom fields, especially when <a href="http://wordpress.org/extend/plugins/more-fields/">More Fields</a> is used for data capture. I found a solution to a complex display challenge: How to display a set of posts based on multiple custom field values? This post demonstrates get_post_meta_multiple, a function you could include in your theme to allow you to filter based on an infinite number of custom field key / value pairs.]]></description>
			<content:encoded><![CDATA[<h3>How to filter for multiple custom field key / values</h3>
<p><div id="attachment_665" class="wp-caption alignright" style="width: 194px"><img class="size-medium wp-image-665" title="Custom Fields w/ More Fields" src="http://idealienstudios.com/wp-content/uploads/blog_09july_rideshare-184x300.jpg" alt="Rideshare Custom Fields captured via More Fields" width="184" height="300" /><p class="wp-caption-text">Rideshare Custom Fields captured via More Fields</p></div>
<p>As I mentioned at the end of my last post on the Power of Custom Fields, I recently started working on a prototype site that required rideshare board functionality. Storing the details lends itself well to custom fields, especially when <a href="http://wordpress.org/extend/plugins/more-fields/">More Fields</a> is used for data capture as you can see from the inset image. However, I struggled to find a solution within WordPress to solve a display challenge: How to display a set of posts based on multiple custom field values? In my case, how to loop through rideshares base on event and ride-givers or ride-wanters.</p>
<p>I explored looping through each post in my rideshare category to match the rideshare event to an array value and then using get_post_meta within to see if results belonged to the ride-giver or ride-wanter. While this might have worked, it certainly wouldn&#8217;t be an elegant &#8211; or Idealien solution. Dan Butcher did provide a functional solution in the <a href="http://wordpress.org/support/topic/161154">WordPress Support Forums</a> for a similar challenge, but it is not a solution a novice / intermediate WordPress developer would be comfortable customizing, nor would it scale well. Barry @ <a href="http://clearskys.net/">clearskys.net</a> informed me that,</p>
<blockquote><p>Whilst the JOINS work, and will work quite well with a few meta-data criteria passed in, I&#8217;ve had problems (particularly on shared hosting) in the past when creating an SQL query to search based on a series of tags which used a similar method.</p></blockquote>
<h3>Introducing get_post_meta_multiple</h3>
<p>This function I created, with sql optomization support from Barry @ <a href="http://clearskys.net/">clearskys.net</a>:</p>
<ul>
<li>accepts a variable length array of custom field key/value pairs</li>
<li>returns a list of post IDs which you can loop through</li>
<li>Could be implemented into your site in one of 3 ways: Added to a functions.php file as a part of your theme, included in a plugin related to enhanced custom field functionality or <a href="http://codex.wordpress.org/Submitting_Bugs">report a (feature request) bug</a> for a more evolved version of it be included in a future release of the core of WordPress.</li>
</ul>
<p>The demonstration code below has been prepared for the most common scenario as part of a functions.php file in a theme.</p>
<h3>The Demonstration</h3>
<p><img src="http://idealienstudios.com/wp-content/uploads/blog_09july_rideshare2.jpg" alt="Custom Field Table" title="Custom Field Table" width="500" height="138" class="alignnone size-full wp-image-687" /><br />
A series of tables with columns for number of seats available, departure / return dates plus contact / additional info. I have kept the code below intentionally short so the example doesn&#8217;t overwhelm. I have posted a <a href="http://pastebin.com/m4fafcb59">more complete version</a> on pastebin that has the markup to match the image above.</p>
<h3>The function</h3>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">function</span> get_post_meta_multiple<span style="color: #009900;">&#40;</span><span style="color: #000088;">$metaDataList</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">global</span> <span style="color: #000088;">$wpdb</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #000088;">$querystr</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;SELECT p.* FROM <span style="color: #006699; font-weight: bold;">$wpdb-&gt;posts</span> AS p WHERE p.ID IN ( &quot;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #000088;">$querystr</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">&quot;SELECT post_id FROM <span style="color: #006699; font-weight: bold;">$wpdb-&gt;postmeta</span> WHERE &quot;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$innerqry</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #b1b100;">foreach</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$metaDataList</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$key</span> <span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$value</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000088;">$innerqry</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$wpdb</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">prepare</span><span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;(meta_key = <span style="color: #009933; font-weight: bold;">%s</span> AND meta_value = <span style="color: #009933; font-weight: bold;">%s</span>)&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$key</span><span style="color: #339933;">,</span> <span style="color: #000088;">$value</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>	
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #000088;">$querystr</span> <span style="color: #339933;">.=</span> <span style="color: #990000;">implode</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot; OR &quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$innerqry</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #000088;">$querystr</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">&quot; GROUP BY post_id &quot;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$querystr</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">&quot;HAVING count(*) = &quot;</span> <span style="color: #339933;">.</span> <span style="color: #990000;">count</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$metaDataList</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #000088;">$querystr</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">&quot;) AND p.post_status = 'publish' &quot;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #000088;">$metaResults</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$wpdb</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">get_results</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$querystr</span><span style="color: #339933;">,</span> OBJECT<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>					
	<span style="color: #b1b100;">return</span> <span style="color: #000088;">$metaResults</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<h3>Example Usage</h3>
<p>Place this inside your category.php or whatever template file you are using to display the results from.</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #666666; font-style: italic;">//Create your array of custom field key / values to filter to</span>
	<span style="color: #000088;">$metaDataList</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span>
	<span style="color: #0000ff;">'rideshare_event'</span>	<span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'Ottawa Blues Fest'</span><span style="color: #339933;">,</span>
	<span style="color: #0000ff;">'rideshare_type'</span>	<span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'Driver'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> 
&nbsp;
	<span style="color: #000088;">$resultList</span> <span style="color: #339933;">=</span> get_post_meta_multiple<span style="color: #009900;">&#40;</span><span style="color: #000088;">$metaDataList</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$resultList</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">:</span>
	<span style="color: #666666; font-style: italic;">//Loop through each result post to display appropriate contents</span>
	<span style="color: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$resultList</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$post</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">:</span>
		setup_postdata<span style="color: #009900;">&#40;</span><span style="color: #000088;">$post</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #666666; font-style: italic;">// Define your custom field key</span>
		<span style="color: #000088;">$key</span><span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;rideshare_spaces&quot;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #666666; font-style: italic;">// Display value of custom field		</span>
		<span style="color: #b1b100;">echo</span> get_post_meta<span style="color: #009900;">&#40;</span><span style="color: #000088;">$post</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">ID</span><span style="color: #339933;">,</span> <span style="color: #000088;">$key</span><span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
   	<span style="color: #b1b100;">endforeach</span><span style="color: #339933;">;</span>
	<span style="color: #b1b100;">else</span> <span style="color: #339933;">:</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
		&lt;p&gt;<span style="color: #000000; font-weight: bold;">&lt;?php</span> _e<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'No rides are currently available for this event.'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>&lt;/p&gt;
	<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">endif</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span></pre></div></div>

<h3>The future of the function?</h3>
<p>Once I have finished the prototype site that started this concept, I will attempt to package up the pieces in a more manageable method to share for wider use. In the interim, feel free to use and share in whatever ways are most convenience for you. Much like WordPress as a whole, I think this idea can continue to evolve in some great ways that will make it easier for designers, developers and clients to build / use sites based on it. Please link back to this post as you do so that I can keep tabs on how this idea evolves.</p>
]]></content:encoded>
			<wfw:commentRss>http://idealienstudios.com/blog/wordpress/custom-field-query-quandry/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>The Power of Custom Fields</title>
		<link>http://idealienstudios.com/blog/wordpress/power-of-custom-fields/</link>
		<comments>http://idealienstudios.com/blog/wordpress/power-of-custom-fields/#comments</comments>
		<pubDate>Tue, 21 Jul 2009 01:29:34 +0000</pubDate>
		<dc:creator>Jamie</dc:creator>
				<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://idealienstudios.com/?p=652</guid>
		<description><![CDATA[Custom Fields are the way of enabling authors to store meta-data against an individual post / page in Wordpress. If you are doing more than just basic data storage / display with custom fields in Wordpress, the list of links in this post will be of great interest to you.]]></description>
			<content:encoded><![CDATA[<p>Custom Fields are the way of enabling authors to store meta-data against an individual post / page in WordPress. The Codex describes some <a href="http://codex.wordpress.org/Using_Custom_Fields">basic uses for this meta data</a> such as displaying your current mood, weather, or listening habits, etc. Compared to other parts of the posting process, custom fields have received very little active development. I&#8217;ve been using them since WP 2.3 and can&#8217;t recall much aside from UI improvements that kept it consistent with the rest of the updates in 2.5 / 2.7. However, many people have begun to explore significant ways to enhance the CMS capabilities of WordPress through the functionality that custom fields do offer.</p>
<h3>Learn to love get_post_meta</h3>
<p>The <a href="http://codex.wordpress.org/Function_Reference/get_post_meta">get_post_meta</a> function is a function you will come to know and love when working with custom fields in WordPress. It is used within the loop to present the value based on the name of the custom field.</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #000088;">$key</span><span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;rideshare_name&quot;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">echo</span> get_post_meta<span style="color: #009900;">&#40;</span><span style="color: #000088;">$post</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">ID</span><span style="color: #339933;">,</span> <span style="color: #000088;">$key</span><span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></div></div>

<h3>Beyond the basics</h3>
<p>If you are doing more than just basic data storage / display with custom fields, the following links / examples will be of interest to you:</p>
<ul>
<li><a href="http://webdesignernotebook.com/wordpress/wordpress-how-to-display-multiple-values-of-a-custom-field-key/">Web Designer Notebook</a> covers how to display multiple values for the same custom field name. This might be useful to display a list of ingredients for a recipe site or the parts needed for a set of DIY instructions.</li>
<li><a href="http://www.tutorial9.net/web-tutorials/add-thumbnails-to-wordpress-with-custom-fields/">Tutorial9</a> has a great tutorial on the many different ways to use custom fields for storing images to represent a post. After uploading the photo, you store the filename of a full-size or thumbnail photo in a custom field and use get_post_meta to extract / display in the appropriate theme file locations.</li>
<li><a href="http://www.cagintranet.com/archive/wordpress-tip-3-awesome-custom-field-tricks/">Cagintranet</a> has 3 custom field tricks that operate per post: custom read more tags, thumbnails of related posts and post-specific css overrides.</li>
<li><a href="http://www.livexp.net/wordpress/get-wordpress-custom-fields-outside-the-loop.html">LiveXP</a> shows how to get custom fields outside the loop. If creating a theme options page is beyond your skill, you can create a private page and store / retrieve the meta values from custom fields attached to that page wherever you need to.</li>
<li>Two Words: <a href="http://wordpress.org/extend/plugins/more-fields/">More Fields</a>. This plugin enables you to create custom write panels with custom field data types (radio buttons, drop-down, textbox, wysiwyg, etc). My most recent screencast gives a good overview of using More Fields to design a <a href="http://idealienstudios.com/blog/wordpress/template-retail-locations/">store location list</a> using the plugin.</li>
<li><em>Sidetrack Suggestion</em>: I can easily see (and hope that) the type of functionality More Fields has explored gets built into the core as a part of the post-types being considered for 3.0. With the drag-drop interface of the widgets management area applied to the design of write panels, this would be a fantastic feature of a future version of WordPress.</li>
<li><a href="http://justintadlock.com/tags/custom-fields">Justin Tadlock</a> has written immensely on the power of custom fields. If you want a crash course in custom fields, his site is a great place to start.</li>
<li><a href="http://www.smashingmagazine.com/2009/06/10/10-useful-wordpress-loop-hacks/">Smashing Magazine</a> shows how to get posts with a specific custom field and specific value as one of their 10 useful WordPress Loop hacks. This is invaluable when capturing data that you want to filter for in query loops.</li>
</ul>
<p>What actually inspired me to write this post was my recent efforts to build an elegant solution to a query quandry I was having related to custom fields &#8211; <a href="/blog/wordpress/custom-field-query-quandry/">How to filter / query for multiple custom field key / values</a>? The solution is one that could be of interest to theme / framework designers, plugin developers or possibly even the base concept for implementation into the core of advanced custom field functions WordPress.</p>
<p>If you have any other great custom field tutorials, please share them in the comments of this post.</p>
]]></content:encoded>
			<wfw:commentRss>http://idealienstudios.com/blog/wordpress/power-of-custom-fields/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Template &#8211; Retail Locations</title>
		<link>http://idealienstudios.com/blog/wordpress/template-retail-locations/</link>
		<comments>http://idealienstudios.com/blog/wordpress/template-retail-locations/#comments</comments>
		<pubDate>Thu, 09 Jul 2009 13:36:06 +0000</pubDate>
		<dc:creator>Jamie</dc:creator>
				<category><![CDATA[ICE]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://idealienstudios.com/?p=647</guid>
		<description><![CDATA[Learn how to capture and display custom fields in a template using <a title="More Fields" href="http://wordpress.org/extend/plugins/more-fields/">More Fields</a>, a plugin that "enables you to define post types, which are custom Write/Edit pages that contains a pre-defined set of boxes"]]></description>
			<content:encoded><![CDATA[<div id="attachment_648" class="wp-caption alignright" style="width: 310px"><img class="size-medium wp-image-648" title="Retail Locations" src="http://idealienstudios.com/wp-content/uploads/projects_ice_09july9_retail-300x200.jpg" alt="Capture and display custom data types" width="300" height="200" /><p class="wp-caption-text">Capture and display custom data types using ICE and More Fields</p></div>
<p>Building on the concept of category templates which I started with the <a title="FAQ template tutorial" href="http://idealienstudios.com/projects/ice/template-demo-faq/">FAQ template tutorial</a> last week, this tutorial will cover how to capture and display custom fields in a template. What&#8217;s more, I&#8217;ll go through the step-by-step process of how to implement this using <a title="More Fields" href="http://wordpress.org/extend/plugins/more-fields/">More Fields</a> which is a plugin that &#8220;enables you to define post types, which are custom Write/Edit pages that contains a pre-defined set of boxes&#8221; that store their data behind the scenes in custom fields. The concepts from this tutorial will be of interest for anyone who:</p>
<ul>
<li>Has multiple categories of blog content with unique data to capture / present. Thumbnail per post, photo of the day or other customized items.</li>
<li>Uses WordPress as a CMS for unique page data types (event calendar, classified ads, business partners, etc)</li>
<li>Finds the selection of custom fields from a drop-down to not be the best user interface experience for capturing structured data.</li>
</ul>
<p><object width="590" height="346"><param name="movie" value="http://content.screencast.com/users/Idealien/folders/ICE/media/98b832dc-fc7e-4d98-8ac7-d60e39ccfb18/flvplayer.swf"></param><param name="quality" value="high"></param><param name="bgcolor" value="#FFFFFF"></param><param name="flashVars" value="thumb=http://content.screencast.com/users/Idealien/folders/ICE/media/98b832dc-fc7e-4d98-8ac7-d60e39ccfb18/FirstFrame.jpg&#038;containerwidth=590&#038;containerheight=346&#038;content=http://content.screencast.com/users/Idealien/folders/ICE/media/98b832dc-fc7e-4d98-8ac7-d60e39ccfb18/ICEMoreFields.mp4"></param><param name="allowFullScreen" value="true"></param><param name="scale" value="showall"></param><param name="allowScriptAccess" value="always"></param><param name="base" value="http://content.screencast.com/users/Idealien/folders/ICE/media/98b832dc-fc7e-4d98-8ac7-d60e39ccfb18/"></param>  <embed src="http://content.screencast.com/users/Idealien/folders/ICE/media/98b832dc-fc7e-4d98-8ac7-d60e39ccfb18/flvplayer.swf" quality="high" bgcolor="#FFFFFF" width="590" height="346" type="application/x-shockwave-flash" allowScriptAccess="always" flashVars="thumb=http://content.screencast.com/users/Idealien/folders/ICE/media/98b832dc-fc7e-4d98-8ac7-d60e39ccfb18/FirstFrame.jpg&#038;containerwidth=590&#038;containerheight=346&#038;content=http://content.screencast.com/users/Idealien/folders/ICE/media/98b832dc-fc7e-4d98-8ac7-d60e39ccfb18/ICEMoreFields.mp4" allowFullScreen="true" base="http://content.screencast.com/users/Idealien/folders/ICE/media/98b832dc-fc7e-4d98-8ac7-d60e39ccfb18/" scale="showall"></embed></object></p>
<p>Direct Video Link:<a href="http://www.screencast.com/t/2dcpYsSlk">http://www.screencast.com/t/2dcpYsSlk</a></p>
<h2>Example Code</h2>
<p>The only real code in this template that is unique is the retrieval of data from a <a href="http://codex.wordpress.org/Using_Custom_Fields">custom field</a> using the <a href="http://codex.wordpress.org/Function_Reference/get_post_meta">get_post_meta</a> function.</p>
<p><strong>A single custom field retrieval</strong><br />
Place this example within the loop of an existing category / post template.</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #000088;">$locationPhone</span> <span style="color: #339933;">=</span> get_post_meta<span style="color: #009900;">&#40;</span><span style="color: #000088;">$post</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">ID</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'locationPhone'</span><span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$locationPhone</span> <span style="color: #339933;">!=</span> <span style="color: #0000ff;">''</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
	&lt;div class=&quot;locationInfo&quot;&gt;
		&lt;h4&gt;Phone Number&lt;/h4&gt;
		<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">echo</span>  <span style="color: #000088;">$locationPhone</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
	&lt;/div&gt;
<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #009900;">&#125;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span></pre></div></div>

<p><strong>Full retail location fields</strong><br />
This example is the full loop for use within a category.php file to display the contents of custom fields named: location</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span>have_posts<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">:</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
	<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">while</span> <span style="color: #009900;">&#40;</span>have_posts<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">:</span> the_post<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
&nbsp;
	&lt;h2&gt;<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">echo</span> the_title<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">''</span><span style="color: #339933;">,</span><span style="color: #0000ff;">''</span><span style="color: #339933;">,</span><span style="color: #009900; font-weight: bold;">false</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>&lt;/h2&gt;
	<span style="color: #000000; font-weight: bold;">&lt;?php</span> the_content<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
	&lt;div class=&quot;clear&quot;&gt;&lt;/div&gt;
&nbsp;
	<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #000088;">$locationAddress</span> <span style="color: #339933;">=</span> get_post_meta<span style="color: #009900;">&#40;</span><span style="color: #000088;">$post</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">ID</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'locationAddress'</span><span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$locationAddress</span> <span style="color: #339933;">!=</span> <span style="color: #0000ff;">''</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
		&lt;div class=&quot;locationInfo&quot;&gt;
			&lt;h4&gt;Address&lt;/h4&gt;
			<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #000088;">$locationMapURL</span> <span style="color: #339933;">=</span> get_post_meta<span style="color: #009900;">&#40;</span><span style="color: #000088;">$post</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">ID</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'locationMapURL'</span><span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
&nbsp;
			<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$locationMapURL</span> <span style="color: #339933;">!=</span> <span style="color: #0000ff;">''</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
				<span style="color: #b1b100;">echo</span>  <span style="color: #0000ff;">&quot;&lt;a href='&quot;</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$locationMapURL</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">&quot;'&gt;&quot;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
			<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #009900;">&#125;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
&nbsp;
			<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">echo</span>  <span style="color: #000088;">$locationAddress</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
&nbsp;
			<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$locationMapURL</span> <span style="color: #339933;">!=</span> <span style="color: #0000ff;">''</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
				<span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">&quot;&lt;/a&gt;&quot;</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
		&lt;/div&gt;
	<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #009900;">&#125;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
&nbsp;
&nbsp;
	<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #000088;">$locationPhone</span> <span style="color: #339933;">=</span> get_post_meta<span style="color: #009900;">&#40;</span><span style="color: #000088;">$post</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">ID</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'locationPhone'</span><span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$locationPhone</span> <span style="color: #339933;">!=</span> <span style="color: #0000ff;">''</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
		&lt;div class=&quot;locationInfo&quot;&gt;
			&lt;h4&gt;Phone Number&lt;/h4&gt;
			<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">echo</span>  <span style="color: #000088;">$locationPhone</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
		&lt;/div&gt;
	<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #009900;">&#125;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
&nbsp;
	&lt;div class=&quot;clear&quot;&gt;&lt;/div&gt;
&nbsp;
	<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #000088;">$locationHours</span> <span style="color: #339933;">=</span> get_post_meta<span style="color: #009900;">&#40;</span><span style="color: #000088;">$post</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">ID</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'locationHours'</span><span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$locationHours</span> <span style="color: #339933;">!=</span> <span style="color: #0000ff;">''</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
		&lt;div class=&quot;locationInfo&quot;&gt;
			&lt;h4&gt;Business Hours&lt;/h4&gt;
			<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">echo</span>  <span style="color: #000088;">$locationHours</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
		&lt;/div&gt;
	<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #009900;">&#125;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #000088;">$locationWebsite</span> <span style="color: #339933;">=</span> get_post_meta<span style="color: #009900;">&#40;</span><span style="color: #000088;">$post</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">ID</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'locationWebsite'</span><span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$locationWebsite</span> <span style="color: #339933;">!=</span> <span style="color: #0000ff;">''</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
		&lt;div class=&quot;locationInfo&quot;&gt;
			&lt;h4&gt;Website&lt;/h4&gt;
			<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">echo</span>  <span style="color: #0000ff;">&quot;&lt;a href='&quot;</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$locationWebsite</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">&quot;'&gt;&quot;</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$locationWebsite</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">&quot;&lt;/a&gt;&quot;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
		&lt;/div&gt;
	<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #009900;">&#125;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
&nbsp;
	&lt;div class=&quot;clear&quot;&gt;&lt;/div&gt;
&nbsp;
	<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">endwhile</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #b1b100;">else</span> <span style="color: #339933;">:</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
&nbsp;
	&lt;p&gt;<span style="color: #000000; font-weight: bold;">&lt;?php</span> _e<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Sorry, no posts matched your criteria.'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>&lt;/p&gt;
&nbsp;
<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">endif</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://idealienstudios.com/blog/wordpress/template-retail-locations/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>WordPress Developer Pub Night</title>
		<link>http://idealienstudios.com/blog/wordpress/1st-wp-developer-pub-night/</link>
		<comments>http://idealienstudios.com/blog/wordpress/1st-wp-developer-pub-night/#comments</comments>
		<pubDate>Fri, 03 Jul 2009 14:53:43 +0000</pubDate>
		<dc:creator>Jamie</dc:creator>
				<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://idealienstudios.com/?p=642</guid>
		<description><![CDATA[Tuesday July 7th, 2009 will be the first <a href="http://ottawadevelopers.wordpress.com/2009/07/03/pub-night-july-7th-2009/">Ottawa WordPress Developers Pub Night</a>. Location and time are subject to interest from the community. Current theory is a start time of 8pm at Shoeless Joe’s at 3049 Carling Ave which has cheap wing night on Tues and very nice booths.

The two best ways to let them know you're interested in attending are either post a comment on their blog or follow and tweet to them on Twitter - <a href="http://www.twitter.com/wdgo">@wdgo</a>. I know there are more than a few people in Ottawa who use Wordpress for great things including myself. I look forward to meeting them for a few pints to talk about what we would all like to give / get from a community developer group for our platform of choice.]]></description>
			<content:encoded><![CDATA[<p>Courtesy of the <a href="http://ottawadevelopers.wordpress.com">Ottawa WordPress Developers Group</a>:</p>
<blockquote><p>Tuesday July 7th, 2009 will be the first <a href="http://ottawadevelopers.wordpress.com/2009/07/03/pub-night-july-7th-2009/">Ottawa WordPress Developers Pub Night</a>. Location and time are subject to interest from the community. Current theory is a start time of 8pm at Shoeless Joe’s at 3049 Carling Ave which has cheap wing night on Tues and very nice booths.</p></blockquote>
<p>The two best ways to let them know you&#8217;re interested in attending are either post a comment on their blog or follow and tweet to them on Twitter &#8211; <a href="http://www.twitter.com/wdgo">@wdgo</a>. I know there are more than a few people in Ottawa who use WordPress for great things including myself. I look forward to meeting them for a few pints to talk about what we would all like to give / get from a community developer group for our platform of choice.</p>
]]></content:encoded>
			<wfw:commentRss>http://idealienstudios.com/blog/wordpress/1st-wp-developer-pub-night/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>What&#8217;s on WordPress.tv?</title>
		<link>http://idealienstudios.com/blog/wordpress/whats-on-wordpresstv/</link>
		<comments>http://idealienstudios.com/blog/wordpress/whats-on-wordpresstv/#comments</comments>
		<pubDate>Sat, 17 Jan 2009 16:35:14 +0000</pubDate>
		<dc:creator>Jamie</dc:creator>
				<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://idealienstudios.com/?p=211</guid>
		<description><![CDATA[Automattic has launched their own "visual resource for all things WordPress". I explore what channels I'd like to see on Wordpress.tv.]]></description>
			<content:encoded><![CDATA[<p>Automattic has launched their own <span style="text-decoration: line-through;">Youtube </span>&#8220;visual resource for all things WordPress&#8221;. The initial load of content features tutorials and support oriented videos, including a high quality production video of my <a title="Wordpress: Beyond A Blog" href="http://wordpress.tv/2009/01/14/wordcamp-toronto-2008-jamie-oastler-on-pushing-wordpress-beyond-blogging/">WordPress: Beyond a Blog</a> presentation from Wordcamp 2008. You can also download the slides for it from the <a title="Idealien Studios Presentations" href="http://idealienstudios.com/presentations/">presentations </a>section of Idealien Studios as the lighting in the venue made it hard to see the screen on film.</p>
<p>In the introduction of WordPress.tv, they suggested that &#8220;now you can shape what comes next&#8221; by offering suggestions of what we would like to see on the site. The following list are a few of my suggestions:<span id="more-211"></span></p>
<h3>Channels dedicated to release notes / details</h3>
<p>A series of channels dedicated to covering the significant fixes / upgrades that occur in each release of WordPress. One could focus on the changes from a user perspective, although those have generally been well-covered by the blog-o-sphere in print. Documentation is usually the last thing to happen on projects (and gets short-changed as a result) it has the biggest impact on the ability for others to use / enhance the system.</p>
<p>I would like to see a series of videos dedicated to giving developers who use WordPress but aren&#8217;t involved in committing code to the core, a more in-depth understanding of what has happened behind the scenes to make the changes happen. A few examples from my own experience:</p>
<ul>
<li>The 2.7 release overhauled how admin menus are loaded which had the potential to affect how every single plugin was integrated. A video on the new different options would be been incredibly useful.</li>
<li>The same goes for creating menus using the new table-less standards which were noticeably short on documentation at launch.</li>
<li>See my previous <a title="Idealien Twitter" href="http://twitter.com/Idealien/status/1096065976">twitter rant</a> about the lack of details on Administrative Hooks that were added / removed. Putting //TODO into public facing documentation is not cool.</li>
</ul>
<h3>Insight into Automattic</h3>
<p>From conversations with Jane and Matt during my most recent Wordcamp, it sounds like the folks at Automattic have some lively discussions about the approach to implementing new / enhanced features. Perhaps record one weekly meeting to give developers a chance to see this process in action. This could be expanded to be a web-based conference call for those who have access / interest in contributing code to the core and the results posted online. You might consider this a request to open the source of the development process <img src='http://idealienstudios.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<h3>Strongbad Matt</h3>
<p><img class="size-full wp-image-213 alignright" title="Strongbad Matt" src="http://idealienstudios.com/wp-content/uploads/blog_wptv_strongbad1.jpg" alt="" width="280" height="181" />For those few souls who haven&#8217;t discovered Strongbad, you could take the boring <a href="http://en.wikipedia.org/wiki/Strong_Bad">Wikipedia approach</a> to learning about this episodic web cartoon or enjoy a half-hour of humour at Homestarrunner.com (personal faves are <a title="Strongbad Email - Virus" href="http://www.homestarrunner.com/sbemail119.html">virus </a>and <a title="Strongbad Email - Techno" href="http://www.homestarrunner.com/sbemail45.html">techno</a>). Each email answered results in a random series of adventures. Given his travel schedule, this could be a great way to see some of the more entertaining behind the scenes of the <em>defacto public face of WordPress</em>.</p>
<p>If you have more suggestions, either add them in the comments here or submit via the <a title="Contact WordPress.tv" href="http://wordpress.tv/contact/">WordPress.tv contact form</a>.</p>
<p><a href="http://idealienstudios.com/wp-content/uploads/blog_wptv_strongbad1.jpg"><br />
</a></p>
]]></content:encoded>
			<wfw:commentRss>http://idealienstudios.com/blog/wordpress/whats-on-wordpresstv/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>WordPress: Commited to open source</title>
		<link>http://idealienstudios.com/blog/wordpress/commited-to-open-source/</link>
		<comments>http://idealienstudios.com/blog/wordpress/commited-to-open-source/#comments</comments>
		<pubDate>Mon, 22 Dec 2008 00:01:37 +0000</pubDate>
		<dc:creator>Jamie</dc:creator>
				<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://idealienstudios.com/?p=204</guid>
		<description><![CDATA[Do you believe in open source because it has lower overhead or because it is the right thing to do? Where is the balance between capitalistic goals and social obligations?]]></description>
			<content:encoded><![CDATA[<p><em>This post is the second in a series looking at the business of theme design using WordPress based on a discussion that Automattic lead <a href="http://ma.tt/">Matt Mullenweg</a> gave on a recent episode of <a href="http://www.talkshoe.com/talkshoe/web/talkCast.jsp?masterId=34224&amp;cmd=tc">WordPress Weekly</a> surrounding the topic. I would recommend reading the first article, <a href="http://idealienstudios.com/blog/wordpress/themes/premium-or-proprietary/">Premium or Proprietary?</a> to gain more context to the conversation.</em></p>
<p>I first heard about the WordPress theme repository submission guideline changes through a post on the topic at <a href="http://xfep.com/wordpress/wordpress-gpl-and-theme-mess/">XFEP.com</a> in which David Peralty pontificates that:</p>
<blockquote>
<div>Matt blames theme creators for not thinking creatively when it comes to building a business around theme development, but if he keeps cutting off their arms when they try to find ways to build a business, eventually, they will give up and move on to something that gives them a better return on investment regarding their time.</div>
</blockquote>
<p>As I summarized in my <a href="http://idealienstudios.com/blog/wordpress/themes/premium-or-proprietary/">last post</a>, the actions Matt has taken only affect the WordPress.org site &#8211; one destination amongst the vastness of the Internet. The actions are based on their open source roots and approach to the GPL which it is licensed under. Giving away free themes that are primarily created to be an upsell engagement is completely fine, but it won&#8217;t be something that gets promoted on WordPress.org. In the same way that they won&#8217;t support those businesses / business models which prevent you from redistributing or using their product on multiple sites.</p>
<blockquote><p>WordPress is something that is going to be around for decades – 5, 10, 20 years from now. So the decisions that we make now are going to influence which direction it goes. You can look to other open source projects to how this happens. What is going to keep WordPress from becoming a post-nuke, or even like a Joomla? Where you go to it and it seems like most of the stuff is paid and there aren’t that many free resources. Ultimately this is going to hurt the viability of the underlying platform. I think it’s really a commitment to what got us to where we are today…..I think that would ultimately kill the project. We need to be true to what got us to this point in order to stay around and stay relevant.<span id="more-204"></span></p></blockquote>
<h2>The business of open source</h2>
<p>So really, theme developers need only ask themselves whether they believe in open source and wish to support and benefit from it or work with a closed source / proprietary operation. Matt touched on this during the WordPress Weekly discussion in context of proprietary themes with Joomla, &#8220;Joomla has said anything goes and it seems to be the situation that premium themes are really crowding out the free resources. Which kind of makes sense if you align the economic incentives where you&#8217;re actually disincentivizing anyone to make open source stuff, eventually what&#8217;s going to happen is over-time the community will be more and more commercial.&#8221;</p>
<p>Over the long-term proprietary business models that seek to create demand by exclusivity are doomed to failure when competing against the shared resource model of open source. If you look at the largest and most influential software companies of the world you see integration with open source on some level. Early adopters like Unix and IBM gave heaps of foundation code to Linux and Eclipse respectively. Other companies have seen this shift and are adapting their existing business models to the new reality.  Adobe has released parts or all of their development frameworks to the community, although I don&#8217;t see them doing this for Photoshop to Gimp any time soon. Even Microsoft is slowly shifting towards a software-as-a-service  business model which can contribute and benefit from open source. They all realize that with the development technologies available to the world today, anyone can build a competitive product that offers 80 &#8211; 90% of the functionality. Each in their own way have wisely chosen to be a part of the solution rather than a competitor.</p>
<h2>Why do you believe in open source?</h2>
<p>David also made a bold statement that &#8220;Theme developers and plugin developers only believe in open source when they can make a business from it.&#8221; while true, is a highly flawed argument. I have made a successful business using open source products but my prices are based on the services I provide, not the products I use. Any overhead of product licenses incurred would be passed directly on to the customer. I believe in open source because it is the right thing to do:</p>
<ul>
<li>The majority of websites developed by Idealien Studios are built using open source software such as WordPress, PHP and mySQL. In each of these cases I can justify how a particular open-source tool is as good or better than a proprietary alternative.</li>
<li>I am fully knowledgeable / capable of working with other closed source platforms. Yet in the absense of a direct requirement by a client to use a closed source technologies, my preference is open source.</li>
<li>I believe in open source for the same reasons that I believe in the value of a public education system. Sharing knowledge, information and opportunity with anyone who wants it is the right thing to do.</li>
<li>As much as I build websites for people, I strive to build tools and technologies that enable my clients to be self-sufficient. This probably has something to do with my upbringing with two parents for teachers and a desire interact with people who can get more from working with me than just the end product. After all, life is not about the destination but the journey.</li>
</ul>
<h2>Why is WordPress wonderful?</h2>
<p>I think WordPress has built a perfect balance between capitalistic goals and social obligations. The .com site is an implementation of the open source tools that the .org provides for free to the world. There are other tools starting to come to market (<a title="DimDim" href="http://www.dimdim.com/">DimDim</a>, <a title="Screencast.com" href="http://www.screencast.com/">Screencast.com</a> / <a title="Jing" href="http://www.jingproject.com/">Jing</a>) emulating this model.</p>
<p>WordPress has shown &#8211; both in the past with the plugin repository and now again with this new theme repository &#8211; what their stance is on open source and that they are willing to reward those who share their vision by prominant placement on WP.org which can result in a significant amount of traffic. The best analogy that Matt made during the conversation on WordPress Weekly was to compare this situation to ones that Google encounters with people getting bent out of shape about changes their algorithms (in response to the very same people trying to &#8220;game&#8221; the system). Neither Google nor WordPress is stopping you from doing anything you want with your own site or sites you build or maintain for clients. Both of them are saying that if you want to be supported by them or get a share of the significant amount of eyeballs that can come from their respective sites, you&#8217;ll have to agree to play by their rules.</p>
]]></content:encoded>
			<wfw:commentRss>http://idealienstudios.com/blog/wordpress/commited-to-open-source/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Premium or Proprietary Themes?</title>
		<link>http://idealienstudios.com/blog/wordpress/premium-or-proprietary/</link>
		<comments>http://idealienstudios.com/blog/wordpress/premium-or-proprietary/#comments</comments>
		<pubDate>Fri, 19 Dec 2008 21:55:38 +0000</pubDate>
		<dc:creator>Jamie</dc:creator>
				<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://idealienstudios.com/?p=182</guid>
		<description><![CDATA[Premium implies being inherrently better than the alternatives. Proprietary is an accurate representation of the licensing restrictions. Which one is better or right?]]></description>
			<content:encoded><![CDATA[<p>There has been a flurry of discussion lately within the WordPress community as 200+ themes were removed from the <a title="Wordpress Themes Directory" href="http://wordpress.org/extend/themes/">WordPress Themes Directory</a>. Had Matt Mullenweg and the other parties involved in this action done a better job of disclosing the details of how / why this was being done in advance, I doubt as much controversy would have been stirred up. The bulk of the issues relate to the fact that WordPress is a <a title="GPL" href="http://www.gnu.org/copyleft/gpl.html">General Public License</a> (GPL) software and many people have conflicting interpretations / points of view about how one can or cannot make a viable business within that intellectual property landscape.</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="173" height="60" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" class="alignright"><param name="id" value="LastFramePlayer" /><param name="align" value="top" /><param name="allowScriptAccess" value="always" /><param name="allowFullScreen" value="false" /><param name="quality" value="high" /><param name="bgcolor" value="#EEF9C1" /><param name="wmode" value="transparent" /><param name="src" value="http://www.talkshoe.com/resources/talkshoe/images/swf/lastEpisodePlayer.swf?fileUrl=http://recordings.talkshoe.com/TC-34224/TS-173505.mp3" /><embed id="LastFramePlayer" type="application/x-shockwave-flash" width="173" height="60" src="http://www.talkshoe.com/resources/talkshoe/images/swf/lastEpisodePlayer.swf?fileUrl=http://recordings.talkshoe.com/TC-34224/TS-173505.mp3" wmode="transparent" bgcolor="#EEF9C1" quality="high" allowfullscreen="false" allowscriptaccess="always" align="top" class="alignright"></embed></object>In order to shed some light on the details involved in the situation, Matt spent over two hours yesterday on a special edition of <a title="Wordpress Weekly" href="http://www.talkshoe.com/talkshoe/web/talkCast.jsp?masterId=34224&amp;cmd=tc">WordPress Weekly</a> to answer any and all questions put forth by the community. If you have the time to listen to it the entire conversation it is worthwhile (accessible in the embedded audio player to the right). A good deal of the discussion could be applied to any open-soure project.</p>
<p>I started to transcribe a few of the questions / responses that I felt were noteworthy and ended up with 4+ pages of notes. Rather than create a Neal Stephenson-esque post, I&#8217;m going to break it down into several pieces over posts in the days ahead.<span id="more-182"></span></p>
<h2>Do you get what you pay for?</h2>
<p>The question was asked, &#8220;Have premium themes furthered the development of themes as a whole?&#8221; and Matt made note of the fact that premium implies it is inherrently better than the alternatives. This is not necessarily the case, especially over the long-term. When you begin to look at the restrictions that are written into most of these purchase agreements, they restrict what you can / cannot do with the theme you purchased. His preference would be to use the term <em>proprietary</em> themes as it is a more accurate representation of the non-GPL licensing restrictions. The GPL always has been about protecting the freedoms of end users, not preventing developers from making a profit. Matt quoted the four fundamental guidelines in context of this conversation:</p>
<ol>
<li>The Freedom to run the program for any purpose.</li>
<li>The freedom to study how the program works and adapt it to your needs.<br />
Access to the source code is a pre-condition for this.</li>
<li>Freedom to redistribute copies so you can help your neighbour.</li>
<li>Freedom to improve the program, release your modified versions in general to the public.</li>
</ol>
<p><img class="size-medium alignleft wp-image-189" title="Kubrick Screenshot" src="http://idealienstudios.com/wp-content/uploads/blogwptheme_kubrick-150x150.jpg" />The third and fourth elements are particularily damaging given the themes are derivitive works from WordPress. The litmus test for this is to ask whether something will run without the original work and  a theme would certainly not display the content from a database without all of the WordPress functions. Matt drew on the contrasting examples from a developer perspective of the &#8220;<a href="http://www.soothbrush.com/wordpress-magazine-themes/">premium magazine themes</a>&#8221; versus Kubrick which is the default theme for WordPress installations.</p>
<blockquote><div>If I want to build on top of a cool magazine theme is, I have to basically start from scratch and in fact be very careful not to be too close to what I&#8217;m trying to emulate. Compare that to some of the free themes that have rocked the WordPress world in their time. Including the one we all know and love now, Kubrick. Instantly on top of Kubrick there are a bunch of things that people just start copying and pasting the code and tweak it and make it better. You have this really fast innovation.</p>
<p>I don&#8217;t know if any of you guys remember the very first Kubrick versus what we eventually put into WordPress; it changed significantly. What happend was an open source community developed around it and started tweaking the design, the code, everything like that. I think that is sort of a  good example, and there have been many others since then,  of where you really get the benefits of open source. Both in the quality, the users and the developers benefit because the developers get people helping him out making it easier and better. The users get this rapid innovation and a lot of themes based around the things they like.</p></div>
</blockquote>
<p>What I believe has been missed in the current controversy surrounding theme removal from the WordPress.org site is that these actions were all taken with the same overall guideline in order to stay true to the root concept / philosophy of open-source that WordPress came from. Everyone is free to do what they want with the software, including creating a fork version of their own if they truly disagree that the approach Automattic has taken the platform. Just the same way as they would be able to compete with WordPress.com by launching their own WordPress MU installation. All Matt has suggested is that, &#8220;Ultimately it&#8217;s about freedom. Not talking about whether it is illegal or not to do these things. All I&#8217;m talking about is WordPress.org, the site we run and host, do we want this stuff in there and that&#8217;s all I&#8217;ll really speak of authoritatively.&#8221;</p>
<p>In the coming days I intend to take this discussion towards more extended concepts surrounding WordPress including:</p>
<ul>
<li>How a theme designer can structure their files to fit the theme gallery approval requirements.</li>
<li>What business models based around WordPress Matt believes are viable</li>
<li>How much community involvement exists with the development process of WordPress.org</li>
<li>Matt Mullenweg&#8217;s true conspiracy theory which I am in complete support of!</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://idealienstudios.com/blog/wordpress/premium-or-proprietary/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>A taste of things to come with 2.7</title>
		<link>http://idealienstudios.com/blog/wordpress/wordpress27-firstlook/</link>
		<comments>http://idealienstudios.com/blog/wordpress/wordpress27-firstlook/#comments</comments>
		<pubDate>Fri, 17 Oct 2008 18:43:08 +0000</pubDate>
		<dc:creator>Jamie</dc:creator>
				<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[2.7]]></category>
		<category><![CDATA[features]]></category>
		<category><![CDATA[functionality]]></category>
		<category><![CDATA[interface]]></category>

		<guid isPermaLink="false">http://idealienstudios.com/?p=155</guid>
		<description><![CDATA[Screenshots of what the new admin UI for Wordpress will look like and further analysis of why I am excited about the next release.]]></description>
			<content:encoded><![CDATA[<p>The <a href="http://wordpress.org/development/2008/10/the-visual-design-of-27/">WordPress Development blog</a> just put out two teaser images of the gorgeous interface visuals we can expect to see and use with the coming release of WordPress 2.7. Or as Jane Wells puts it, &#8220;The long months of your tolerance and forbearance as you suffered through the inelegance of our hacked-together, leftover Crazyhorse interface are almost at an end.&#8221; Jane also gave a demonstration of the new interface functionality at Wordcamp Toronto, but more on that later, on with the shiny graphics!<span id="more-155"></span></p>
<h2>These really are worth 2,000 words!</h2>
<p><img class="alignnone size-full wp-image-156" title="2.7 Post Window" src="http://idealienstudios.com/wp-content/uploads/blogwp_27wireframe1.png" alt="" width="499" height="336" /></p>
<p><img class="alignnone size-full wp-image-157" title="One fine looking dashboard" src="http://idealienstudios.com/wp-content/uploads/blogwp_27wireframe2.png" alt="" width="499" height="630" /></p>
<h2>This release will feature form AND function improvements</h2>
<p>When version 2.5 of WordPress was released there was a lot of uproar in the community, most of which was based on the fact that the admin panel changes felt to be change for the sake of change. You still:</p>
<ul>
<li>Needed two clicks to get from anywhere to writing a new page</li>
<li>Only had a limited amount of real estate horizontally for plugins to put their options screens.</li>
<li>Depended on <a title="Admin Drop down menu" href="http://planetozh.com/blog/my-projects/wordpress-admin-menu-drop-down-css/">great plugins</a> to make the admin interface significantly more usable.</li>
</ul>
<p>With 2.7 &#8211; and the integration of the usability test efforts codenamed Crazyhorse &#8211; you are beginning to see the fruits of Automattic&#8217;s effort to support people who have been using WordPress as a  robust platform for more than just writing blogs. The WordPress <a title="Wordpress Admin Wireframes" href="http://wpdotorg.files.wordpress.com/2008/10/wf-dashboard_v002_093008jw.pdf">2.7 admin wireframes</a> released late in September gave a taste of this, but the real reason I say this has less to do with the screenshots above and more to do with the demonstration I mentioned earlier.</p>
<p>Unfortunately, it doesn&#8217;t look like the video from that event made it online, but WTC has a <a title="First look at WP 2.7" href="http://weblogtoolscollection.com/archives/2008/09/02/first-look-at-wordpress-27/">good starting list</a> of the great things you can expect from this release. With a little less than a month to go before the planned release date of November 10th, I&#8217;m sure there will be a flurry of activity and beta releases to have a chance to get hands-on experience with the new UI. I am excited to get the opportunity to use it and can already think of a number of ways in which I will be able to leverage the new form / function:</p>
<ul>
<li>Reposition the admin panels which my clients use most into places where it is easy for them to use.</li>
<li>Turn-off all of the interface panels which they never use and need not know about.</li>
<li>Integration of the plugin repository functionality into the plugin installation area.</li>
<li>More image size options &#8211; a very important thing for those who use WP for portfolios, product display, etc.</li>
<li>On the non-admin side &#8211; THREADED COMMENTS!</li>
</ul>
<p>Between these tidbits of information and the recent announcements that Automattic has acquired <a title="IntenseDebate" href="http://intensedebate.com/">IntenseDebate</a> and <a title="Poll Daddy" href="http://www.polldaddy.com/">PollDaddy</a>, it seems like 2008 is going to finish on a very high note!</p>
]]></content:encoded>
			<wfw:commentRss>http://idealienstudios.com/blog/wordpress/wordpress27-firstlook/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Flash + WordPress = Flashpress</title>
		<link>http://idealienstudios.com/blog/wordpress/flashpress/</link>
		<comments>http://idealienstudios.com/blog/wordpress/flashpress/#comments</comments>
		<pubDate>Tue, 14 Oct 2008 15:41:23 +0000</pubDate>
		<dc:creator>Jamie</dc:creator>
				<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[customization]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Toronto]]></category>
		<category><![CDATA[user experience]]></category>
		<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://idealienstudios.com/?p=132</guid>
		<description><![CDATA[An overview and developer interview of a plugin which aims to mix the UI design strengths of Flash with the backend content management excellence of Wordpress.]]></description>
			<content:encoded><![CDATA[<p>One of the more articulate people that I met during the most recent <a title="Wordcamp Toronto" href="http://www.wordcamptoronto.com">Wordcamp Toronto</a> was Brendan Sera-Shriar who presented on a similar topic to <a href="http://www.idealienstudios.com/presentations/">my own presentation</a>, Making the Most of Plug-ins. The most interesting element of his presentation was <a title="Flashpress" href="http://www.flashpress.ca">Flashpress</a> &#8211; a Toronto PHP User Group (<a href="http://www.phug.ca/">PHUG</a>) effort to mix the front-end design strengths of Flash with the backend content management excellence of WordPress. While the term plugin is technically accurate for what they are creating, I think a new term should be coined to describe substantial development activities they have undertaken. In much the same way that PC game developers recognize the difference between a mod and a total conversion.<span id="more-132"></span></p>
<h2>What are the benefits of Flashpress?</h2>
<p><a href="http://www.flashpress.ca"><img class="size-full wp-image-140 alignleft" title="Flashpress" src="http://idealienstudios.com/wp-content/uploads/blogwp_flashpresslogo.png" alt="" width="331" height="77" /></a>There are things which Flash does very well, particularily interactivity and branded user experience, which the php / css platform of WordPress has a hard time replicating. By the same token, the strengths of state of the art publishing platform known overlap very closely with the weaknesses of Flash. It is user friendly, easy to install, update and extend. The tagline for Flashpress is better than any description I could give, &#8220;Briding the best of both worlds. Imagine if you could easily update flash and provide a WordPress installation with the interactive experience that only Flash could offer&#8221;.</p>
<h2>Understanding how Flashpress works</h2>
<p><a href="http://idealienstudios.com/wp-content/uploads/blogwp_flashpresshowto.jpg"><img class="alignright size-medium wp-image-142" title="Flashpress Process Overview" src="http://idealienstudios.com/wp-content/uploads/blogwp_flashpresshowto-300x193.jpg" alt="" width="300" height="193" /></a>For those who are already excited by the prospect of this plugin, there is a <a title="FlashPress Overview Slideshow" href="http://backspacestudios.com/blog///mnt/w0706/d44/s27/b0287d11/www/backspacestudios.com//blog//wp-content/uploads/2008/02/kucha_press.swf">flash slideshow on Brendan&#8217;s site</a> that explains the process in detail. At a high-level, the process which the will be executed when a user requests a page from a site using this plugin is:</p>
<ul>
<li>Flashpress requests XML data from WordPress</li>
<li>WordPress retrieves the data from the database</li>
<li>Flashpress sends that XML data to Flash</li>
<li>Flash both creates an instance of the page template and loads the data into it</li>
<li>The interactive elements are then applied and a user can initiate another action</li>
<li>The cycle gets repeated</li>
</ul>
<p>I sent Brendan a series of questions by e-mail that he was kind enough to take the time to answer to get more information out about Flashpress, its history, status and future.</p>
<h2>When / how did you come up with the idea to write a completely new front-end user interface for WordPress in Flash?</h2>
<p>Just over a year ago, I decided to start a PHP user group in Toronto. There was no functioning group, and I had over 90 students in my PHP class at Seneca (<a title="Seneca College" href="http://www.senecac.on.ca/">School of Communications Arts, Digital Media Arts Program</a>), and many were excited to be a part of this. We had a few meetings and were looking for a project to get it all started. I had mentioned we should do some WordPress plugins, because all my students where familiar with since I was teaching WordPress development in class. At the same time I was getting this user group (UG) together, I was still very involved in the Flash community, and thought about ways I could more designers interested in WordPress&#8230;and then&#8230;.it just came to me&#8230;what if I merge Flash and WordPress togther, then I can get the best of both worlds.</p>
<p>So, I discussed it with my students, they liked the sound of. I and suggested that we take it one step further and build and entire Flash site using WordPress as the backend cms.  This is one of the major problems in the Flash industry. It costs a lot to develop a site in Flash and then it costs almost as much to maintain it. A lot of our students go freelance and want to build Flash, but can&#8217;t get smaller clients to pay. So I thought this could be the answer. Make it easy to update and manage. Plus, we bridge two worlds, open source and commercial projects, and we get more developers and designers to work together. Which is PHUG&#8217;s philosophy. Any ways, long story short I came up with the name FlashPress and it eventually became a PHUG project.</p>
<p>The primary developers for the plugin now are Alex Nasser and Logan Aube (from <a href="http://www.bogaroo.com/">www.bogaroo.com</a>)</p>
<h2>What is the status of the project? How much is WordPress 2.7 affecting the development?</h2>
<p>This is an interesting question. WP has changed many times since the inception of FlashPress. However, most changes have been made to the look and feel of the dashboard, security issues, and better management of content. Luckily, they have not changed the DB architecture or core files enough, and some cases not at all, to affect FlashPress. 2.7 is a different story, there are some changes that may affect development, but at this point it has not been an issue. we will continue to develop along the same roadmap, and we are ready to distribute it, we figure people will contribute to areas they feel have not yet been covered. Like any good open source project, we will never be finished.</p>
<h2>How much customization will one be able to do to the UI? How much flash will one have to know?</h2>
<p>This has always been a big topic of debate for us. Initially the project was geared mostly towards Flash developers. This is for 2 reasons:</p>
<ol>
<li>We felt there was a greater need in the Flash community for a Flash driven CMS.</li>
<li>Most of the code to make this work is AS. We have had to write many custom AS libraries to get WordPress to communicate with Flash the way we want it to. The PHP end was simple, WP only needed a couple lines of code to pass date to Flash, however, Flash requires more, we need to parse all the incoming data, re-organize it, and make sure it is displayed correctly.</li>
</ol>
<p>Now to answer your question, We have decided that it would be best for this project to be accessible for both Flash and WordPress developers, meaning, we are trying very hard to ensure that as a WP developer, you will not have to play with the AS in Flash, unless they want to. It will be mostly design work and everything can be handled in WP. However, we want to make sure that both ends of the app are open source, so that either a Flash or WP developer can extend the AS and PHP to add more functionality. We have discussed heading in an interesting direction, allowing contributors on both ends to continue developemt and meet somewhere in the middle for the final distribution. It also depends which community picks up on this more.</p>
<h2>Could this also be used to build a UI in Flex since they compile to the same native code base?</h2>
<p>Yes! In fact currently most of development team have been using <a title="Adobe Flex" href="http://www.adobe.com/products/flex/">Flex</a> and <a title="FlashDevelop" href="http://www.flashdevelop.org/wikidocs/index.php?title=Features">FlashDevelop</a>. We tend not stay out of the Flash IDE. The idea is to make completely open source accessible.</p>
<h2>What functionality will be in version 1.0? What is on the whiteboard fo version 2.0?</h2>
<p>Version 1 is essentially going to cover all the basics. You will be able to use FlashPress to generate and manage all content in a Flash site. So, this means the ability to create, edit, and manage all<br />
pages, posts, and media. Version 2, will be a whole new bundle. It will hopefully allow for anything Flash and Wp related. This willl also depend on our contributors and the success of our community and project.</p>
<p>A key element on the whiteboard for version 2 is a complete installable bundle. This will have all the necessities, including plugins, special modules, sample sites, .flas and so on. We want FlashPress to be as easy to download, install, and run, as WP is now. One other things to mention: We are hoping to add some really cool open source flash tools to the bundle. The abbility to easily create red5 apps, papervision3d development, and AIR.</p>
<p><a href="http://workshops.phug.ca"><img class="alignleft size-full wp-image-145" title="PHUG Flashpress Workshops available now!" src="http://idealienstudios.com/wp-content/uploads/blogwp_flashpressworkshop.png" alt="" width="400" height="309" /></a>If anyone wants to learn more about FlashPress, PHUG are running FREE workshops about it &#8211; schedule details are available through the <a title="PHP User Group" href="http://www.phug.ca">PHUG website</a> or <a title="PHUG Workshops" href="http://workshops.phug.ca">workshops.phug.ca</a>. Presenters will upload their presentations and files there for those who miss the chance to attend. Plus this gives people the ability to continue to talk about it and share. You can also get more info at <a href="http://www.flashpressdevelopers.com/">flashpressdevelopers.com</a></p>
<p>A big thanks very much for taking the time both to answer my questions and instigate the development of such a great plugin. I look forward to being able to use it when it&#8217;s launched.</p>
]]></content:encoded>
			<wfw:commentRss>http://idealienstudios.com/blog/wordpress/flashpress/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
