<?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>matty.co.za</title>
	<atom:link href="http://matty.co.za/feed/" rel="self" type="application/rss+xml" />
	<link>http://matty.co.za</link>
	<description>Code, Thoughts, Music and Wordpress</description>
	<lastBuildDate>Tue, 09 Mar 2010 10:34:43 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Why you need to be on the Wordpress Support forums</title>
		<link>http://matty.co.za/2010/03/wordpress-support-forums/</link>
		<comments>http://matty.co.za/2010/03/wordpress-support-forums/#comments</comments>
		<pubDate>Sun, 07 Mar 2010 18:21:17 +0000</pubDate>
		<dc:creator>Matty</dc:creator>
				<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[wordpress-support]]></category>

		<guid isPermaLink="false">http://matty.co.za/?p=768</guid>
		<description><![CDATA[Do you remember a time when those one or two lines of code just didn’t make sense? When your theme looked different across various internet browsers and you had no idea why? Do you remember when last that happened to you? Those were the times when you more than likely visited a support forum, posting with [...]]]></description>
			<content:encoded><![CDATA[<p>Do you remember a time when those one or two lines of code just didn’t make sense? When your theme looked different across various internet browsers and you had no idea why? Do you remember when last that happened to you? Those were the times when you more than likely visited a support forum, posting with the final few morsels of energy you had left. Did you find an answer?</p>
<p>Support forums, in general, seem to be notorious for hosting lots of posts about problems, with few posts offering solutions to those problems. I see this on a regular basis on many web development support forums… many queries and few answers.<span id="more-768"></span></p>
<h3>Why the Wordpress Support forums specifically then?</h3>
<p>The community behind Wordpress is rich and filled with users of all skill levels, modifying and creating themes and plugins, as well as creating many new and innovative offerings for the community to tinker with. As with the reach of the community, there are many users who post on the support forums with what, to some, may seem like “simple” or “basic” questions (for example; “How do I centre a background image in CSS?”). As mentioned previously, these kinds of queries may seem “simple” to some Wordpress users… however, this query may be really difficult for the poster. Users at different skill levels encounter different issues and post different queries.</p>
<h3>Okay, so what does that have to do with me?</h3>
<p>Ah ha. Here, ladies and gentlemen, is the crux of this post.</p>
<p>Being in the information and online media industry, I’ve had, on several occasions, a friend or family member who says “you know computers, right?”. I’m certain you’ve experienced this too. The question, followed by your inevitable inward sigh, which is then followed by an equally inward-sigh-worthy question. <strong>How about answering the question? </strong> <img src='http://matty.co.za/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>That friend or family member maybe doesn’t know the answer to the question they’re asking you (although, they probably wouldn’t be asking it if they did, but anyway), so why not give them the answer, if you know it? It’s not going to do any harm to anyone and will ultimately potentially benefit the question-ee (is that a word?).</p>
<p>The same goes for support forums. Why not just help the poster out, if you know the answer to a question? In order to keep the Wordpress community as rich and vast as it is, questions at all skill levels with the system should be answered, if a user has the answer. Could you really use the 10 minutes you’ve taken to help a user centre that background image <em>really</em> be put to better use?</p>
<h3>To infinity, and beyond!</h3>
<p>Right. To end off this post, lets try this. Every other day, pop over to the <a title="Visit the Wordpress Support Forums and help out" href="http://wordpress.org/support/">Wordpress Support forums</a> and browse around. If nothing else, you’ll be keeping up to date with what’s going on in a part of the community… and hey, you may just find the answer to an issue you’ve been tackling in your own code (that happened to me a few weeks ago, actually).</p>
<p>This post applies to any and all support forums, in the greater scheme of things. Be it Wordpress or any other system or community where support is a factor, why not rather play a role in the community and it’s development?</p>
<p>What do y’all say, hmmm? <img src='http://matty.co.za/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://matty.co.za/2010/03/wordpress-support-forums/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Child plugins in Wordpress. An idea?</title>
		<link>http://matty.co.za/2010/01/child-plugins-in-wordpress/</link>
		<comments>http://matty.co.za/2010/01/child-plugins-in-wordpress/#comments</comments>
		<pubDate>Thu, 14 Jan 2010 12:24:30 +0000</pubDate>
		<dc:creator>Matty</dc:creator>
				<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[thoughts]]></category>
		<category><![CDATA[wordpress-plugins]]></category>

		<guid isPermaLink="false">http://matty.co.za/?p=763</guid>
		<description><![CDATA[I’ve been reading a lot over the past few months about child themes in Wordpress and how users have found them to be an invaluable resource when creating Wordpress themes.
What’s this “child theme” thing?
For those unfamiliar with the concept, the way I’d explain it is as follows:
A user chooses a Wordpress theme (or theme framework) [...]]]></description>
			<content:encoded><![CDATA[<p>I’ve been reading a lot over the past few months about child themes in Wordpress and how users have found them to be an invaluable resource when creating Wordpress themes.</p>
<h3>What’s this “child theme” thing?</h3>
<p>For those unfamiliar with the concept, the way I’d explain it is as follows:</p>
<p>A user chooses a Wordpress theme (or theme framework) which they would like to customise. They then create a new theme with only the files required for the customisation. The main change comes in the style.css file where the theme details are specified. The line “Template” is added to the theme details, which then specifies the folder name of the main theme (chosen above). An example block would like like this:</p>
<pre><span id="more-763"></span>/*</pre>
<pre>Theme Name: WordPress Default</pre>
<pre>Theme URI: http://wordpress.org/</pre>
<pre>Description: The default WordPress theme based on the famous &lt;a href="http://binarybonsai.com/kubrick/"&gt;Kubrick&lt;/a&gt;.</pre>
<pre>Version: 1.6</pre>
<pre>Author: Michael Heilemann</pre>
<pre>Author URI: http://binarybonsai.com/</pre>
<pre>Template: parent_theme_folder_name_here</pre>
<pre>Tags: blue, custom header, fixed width, two columns, widgets</pre>
<pre>*/</pre>
<p>This allows, as I mentioned above, for the user to customise only the areas of the theme where customisation is required, without disturbing the structure of the main theme. Therefore, if the theme developer upgrades their theme, fixes bugs or develops for a newer version of Wordpress, the theme can easily be updated to the latest version.</p>
<p>And, onto the main point of this post…</p>
<h3>What about the idea of child plugins for Wordpress?</h3>
<p>Would it not be useful for users to be able to customise a particular section of the plugin to suit a specific situation, without modifying the main core of the plugin? This way, the plugin can be developed and maintained on a development path in accordance with Wordpress and the developer, while allowing the end user more freedom to develop the plugin in their own direction.</p>
<p>I find, often, that a plugin has been coded with the right idea in mind for the task at hand, but that it may be rather bulky and contain code that is unnecessary to achieve the main function of the plugin.</p>
<h3>OK, sounds cool… but how would you do it?</h3>
<p>At this point, I’d keep the approach simple. Following the same method as with child themes seems to me to be the most logical method. That way, users who are familiar with the concept can easily adapt and begin creating right out of the box.</p>
<p>The one requirement I would say, in order to make things a bit easier in the background, would be to keep the file names the same for the modified files. The main issue I can foresee with child plugins would be the multiple declaration of functions. If this issue can be overcome, using some form of bulk “function_exists()” call, the potential for child plugins could have an interesting impact on development for Wordpress. Users could potentially create “addons” for popular plugins, allowing for interesting customisations and to potentially take some of the pressure and workload off of the main plugin developers for that particular plugin.</p>
<h3>Closing words.</h3>
<p>In closing, I hope this thought sparks off some discussion about the concept. I look forward to hearing everyone’s thoughts on the topic of child plugins.</p>
]]></content:encoded>
			<wfw:commentRss>http://matty.co.za/2010/01/child-plugins-in-wordpress/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Foursquare enables check-ins from… everywhere!</title>
		<link>http://matty.co.za/2010/01/foursquare-enables-worldwide-checkin/</link>
		<comments>http://matty.co.za/2010/01/foursquare-enables-worldwide-checkin/#comments</comments>
		<pubDate>Fri, 08 Jan 2010 15:36:34 +0000</pubDate>
		<dc:creator>Matty</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[foursquare]]></category>
		<category><![CDATA[geo-tagging]]></category>
		<category><![CDATA[gowalla]]></category>

		<guid isPermaLink="false">http://matty.co.za/?p=753</guid>
		<description><![CDATA[Earlier this week, popular geo-social website, Foursquare, enabled their “Foursquare everywhere” feature. Since it’s inception, the company has offered their service (allowing users to “check in” at places and to discover new places in their area) in a select few cities. With the growing popularity of geo-social websites such as Foursquare and Gowalla, the demand [...]]]></description>
			<content:encoded><![CDATA[<p><a rel="nofollow" href="http://foursquare.com"><img class="alignright size-medium wp-image-755" title="Foursquare" src="http://matty.co.za/wp-content/uploads/2010/01/foursquare_logo-300x88.jpg" alt="Popular geo-social website, Foursquare" width="300" height="88" /></a>Earlier this week, popular geo-social website, Foursquare, enabled their “Foursquare everywhere” feature. Since it’s inception, the company has offered their service (allowing users to “check in” at places and to discover new places in their area) in a select few cities. With the growing popularity of geo-social websites such as Foursquare and <a title="Gowalla" rel="nofollow" href="http://gowalla.com" target="_blank">Gowalla</a>, the demand for access to Foursquare in non-support cities has, over the last few months, grown substantially.<span id="more-753"></span></p>
<p>The “Foursquare everywhere” service allows users to specify their current city via a text box instead of a dropdown selection menu of available cities. When logged in, however, it is displayed as “elsewhere”. Some form of moderated city addition would be really beneficial here, in my opinion. There are definite pro’s and con’s to the choice of retaining exclusivity within Foursquare. It is due to this choice, I believe, that many potential Foursquare users have chosen Gowalla, which has no restriction of exclusivity on their service and allows check-ins at any point as well as point creation, stamps for checking in, pins for accomplishments and various other features similar to those of Foursquare.</p>
<p>Over the last few years, each year or two has seemed to have had a “buzz word”. The last year or so was Twitter, the concept of tweeting and how it all worked and integrated into the average internet user’s daily online life. Before that was the Facebook craze, people finding old friends from their school days and joining groups about going out on the weekend, discussing popular topics of the moment or how much they love kittens. These trends don’t seem to fade away, but rather seem to overlap in a way, retaining their status while the next big one rises to the fore.</p>
<p>I see 2010 as the “year of the check in”. People will use services like Foursquare, Gowalla and any other services that arise from this growing trend, to share their experiences, find new places, meet people who share common interests and, essentially, as another tool in their social networking tool belt. Geo-tagging of images and tweets, Google Maps extensions for Flickr, Tumblr and Wordpress.com exist. This (although having been around for some time now) seems to be the logical next step.</p>
]]></content:encoded>
			<wfw:commentRss>http://matty.co.za/2010/01/foursquare-enables-worldwide-checkin/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A theory on approaching difficult tasks</title>
		<link>http://matty.co.za/2009/11/approaching-difficult-tasks/</link>
		<comments>http://matty.co.za/2009/11/approaching-difficult-tasks/#comments</comments>
		<pubDate>Mon, 09 Nov 2009 18:09:17 +0000</pubDate>
		<dc:creator>Matty</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[thoughts]]></category>
		<category><![CDATA[web developer]]></category>

		<guid isPermaLink="false">http://matty.co.za/?p=729</guid>
		<description><![CDATA[Whichever industry you work in, whether you work for yourself or a company and whatever your job description, there are days where things just aren’t going your way. No matter how long you sit at your desk, tapping your pencil, the solution to the problem at hand just isn’t apparent.
As a developer, the problem and [...]]]></description>
			<content:encoded><![CDATA[<p>Whichever industry you work in, whether you work for yourself or a company and whatever your job description, there are days where things just aren’t going your way. No matter how long you sit at your desk, tapping your pencil, the solution to the problem at hand just isn’t apparent.</p>
<p>As a developer, the problem and solution are usually quite clean-cut (such is the nature of code, prodominantly). The solution, however clean-cut it may be, isn’t always visible when approaching a coding task. At times like those, I employ a theory:<br />
<span id="more-729"></span></p>
<blockquote><p>Whatever you do to figure out the solution, whatever pencil-tapping or repeated contact between your head and desk occurs, the end result will work and be exactly as per the task set out to you.</p></blockquote>
<p>Knowing this, the task of achieving the goal becomes seemingly less stressful and a bit clearer to tackle. In addition, I find it important to clear one’s head, move away from the problem for a few minutes and give it some thought from a different angle.</p>
<p>That’s my theory, anyways.</p>
<p>Stop. Think. Re-evaluate.</p>
]]></content:encoded>
			<wfw:commentRss>http://matty.co.za/2009/11/approaching-difficult-tasks/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Custom URL rewrites in Wordpress — A Getting Started Guide</title>
		<link>http://matty.co.za/2009/11/custom-url-rewrites-in-wordpress/</link>
		<comments>http://matty.co.za/2009/11/custom-url-rewrites-in-wordpress/#comments</comments>
		<pubDate>Sat, 07 Nov 2009 10:11:06 +0000</pubDate>
		<dc:creator>Matty</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[custom url rewrites]]></category>
		<category><![CDATA[wordpress-plugins]]></category>

		<guid isPermaLink="false">http://matty.co.za/?p=701</guid>
		<description><![CDATA[Hey everyone.
I’ve been tweeting quite a bit recently about custom URL rewrites in Wordpress. After a few hours of trial and error, I’ve managed to get my specific custom URL rewrites working. After reading through several tutorials online (the majority of which used the same examples to explain only a portion the information I was [...]]]></description>
			<content:encoded><![CDATA[<p>Hey everyone.<br />
I’ve been tweeting quite a bit recently about custom URL rewrites in Wordpress. After a few hours of trial and error, I’ve managed to get my specific custom URL rewrites working. After reading through several tutorials online (the majority of which used the same examples to explain only a portion the information I was looking for), here’s my tutorial– a getting started guide to Custom URL rewrites in Wordpress.</p>
<h3>The process</h3>
<p>So, what exactly are we doing here? To put things in point form, this is the process:</p>
<ol>
<li>Create custom rewrite rules</li>
<li>Add our new variables to the public_query_vars array</li>
<li>Flush (and thus, regenerate) all Wordpress rewrite rules</li>
<li>Add our functions from steps 1, 2 and 3 into Wordpress via actions and filters</li>
</ol>
<p>Right, so lets get down to it then.<span id="more-701"></span></p>
<h3>Create custom rewrite rules</h3>
<p>Rewrite rules use a  token which is replaced by the necessary query variable. For example, we create a token called %token% which, using a regular expression, gets replaced by “id=”. This will be shown further below.</p>
<p><code></p>
<p style="margin-bottom: 0cm;">/**<br />
* create_custom_rewrite_rules()<br />
* Creates the custom rewrite rules.<br />
* return array $rules.<br />
**/</p>
<p style="margin-bottom: 0cm;">function create_custom_rewrite_rules() {<br />
global $wp_rewrite;</p>
<p style="margin-bottom: 0cm;">// Define custom rewrite tokens<br />
$rewrite_tag = ‘%exampletag%’;</p>
<p style="margin-bottom: 0cm;">// Add the rewrite tokens<br />
$wp_rewrite-&gt;add_rewrite_tag( $rewrite_tag, ‘(.+?)’, ‘car=’ );</p>
<p style="margin-bottom: 0cm;">// Define the custom permalink structure<br />
$rewrite_keywords_structure = $wp_rewrite-&gt;root . “%pagename%/$rewrite_tag/”;<br />
// $rewrite_keywords_structure = $wp_rewrite-&gt;root . “$slug/$rewrite_tag/”;</p>
<p style="margin-bottom: 0cm;">// Generate the rewrite rules<br />
$new_rule = $wp_rewrite-&gt;generate_rewrite_rules( $rewrite_keywords_structure );</p>
<p style="margin-bottom: 0cm;">// Add the new rewrite rule into the global rules array<br />
$wp_rewrite-&gt;rules = $new_rule + $wp_rewrite-&gt;rules;</p>
<p style="margin-bottom: 0cm;">return $wp_rewrite-&gt;rules;</p>
<p style="margin-bottom: 0cm;">} // End create_custom_rewrite_rules()</p>
<p></code></p>
<h3>Add our new variables to the public_query_vars array</h3>
<p>By default, Wordpress has an array of public query variables which can be used within templates and plugins. In order to access our query variables (ie: the “id=” in the above example), the variable needs to be added to the public query vars array.<br />
<code><br />
/**<br />
* add_custom_page_variables()<br />
* Add the custom token as an allowed query variable.<br />
* return array $public_query_vars.<br />
**/</code></p>
<p><code>function add_custom_page_variables( $public_query_vars ) {<br />
$public_query_vars[] = 'car';</code></p>
<p><code>return $public_query_vars;</p>
<p></code></p>
<p><code>} // End add_custom_page_variables()<br />
</code></p>
<h3>Flush all Wordpress rewrite rules</h3>
<p>By flushing the rules, we are forcing Wordpress to regenerate it’s rules list, including our new rules in the rules set.<br />
<code><br />
/**<br />
* flush_rewrite_rules()<br />
* Flush the rewrite rules, which forces the regeneration with new rules.<br />
* return void.<br />
**/</code></p>
<p><code>function flush_rewrite_rules() {</code></p>
<p><code>global $wp_rewrite;</p>
<p>$wp_rewrite-&gt;flush_rules();</p>
<p></code></p>
<p><code>} // End flush_rewrite_rules()<br />
</code></p>
<h3>Add our functions from steps 1, 2 and 3 into Wordpress via actions and filters</h3>
<p>Now that our functions have been created, we need to hook them into the various necessary processes within Wordpress. We do this using a combination of actions and filters.</p>
<p>Our first action runs on initialization. This is where we flush the rewrite rules in Wordpress, causing them to be regenerated.</p>
<p>The regeneration brings us to action number 2. This is where we create our custom rewrite rule, hook it on to the global rewrites array and generate the rules.</p>
<p>Our final line is our filter where we add the new public query variable into the global public_query_vars array. We then later use this array to access the variable in our theme.<br />
<code><br />
add_action( 'init', 'flush_rewrite_rules' );<br />
add_action( 'generate_rewrite_rules', 'create_custom_rewrite_rules' );<br />
add_filter( 'query_vars', 'add_custom_page_variables' );<br />
</code></p>
<h3>The scope of rewrite rules</h3>
<p>By default, Wordpress rules are applied across all pages. Thus, the tag “%pagename%” is used in place of a specific page slug. To use your rules on only a single page, replace “%pagename%” with a specific page slug. You can either generate this slug dynamically or staticly.</p>
<h3>That’s all, folks</h3>
<p>And there you have it. A custom rewrite rule in Wordpress. This post is intended as a starting point for using custom rewrite rules in Wordpress. There are virtually infinite possibilities created when using rewrite rules (either one or many) and some really interesting plugins and functionalities can come out of using rewrite rules.</p>
<p>Thanks must also go to <a href="http://www.joehoyle.co.uk/" target="_blank">Joe Hoyle</a> who’s use of rewrite rules provided the inspiration for this tutorial.</p>
<p>If there’s anything that isn’t clear, please comment below and I’ll do my best to clarify and help.</p>
<h3>Before I go… wouldn’t you like the files?</h3>
<p>I thought you might. Click below to download the code written above (it’s been written into a class for easy implementation in your projects).</p>
<p>Download the  “<a title="Custom URL rewrites in Wordpress" href="http://matty.co.za/wp-content/uploads/2009/11/matty_rewrite.class.zip">Custom URL rewrites in Wordpress — A Getting Started Guide</a>” code example.</p>
]]></content:encoded>
			<wfw:commentRss>http://matty.co.za/2009/11/custom-url-rewrites-in-wordpress/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Twitter introduces new Lists feature</title>
		<link>http://matty.co.za/2009/10/twitter-introduces-new-lists-feature/</link>
		<comments>http://matty.co.za/2009/10/twitter-introduces-new-lists-feature/#comments</comments>
		<pubDate>Wed, 28 Oct 2009 20:59:46 +0000</pubDate>
		<dc:creator>Matty</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[micro-blogging]]></category>
		<category><![CDATA[social media]]></category>

		<guid isPermaLink="false">http://matty.co.za/?p=713</guid>
		<description><![CDATA[So, I just logged in to my Twitter account via the web interface and saw a notice mentioning a new “Lists” feature that Twitter have just launched. The notice read:
“New! Lists. A great way to organize the people you follow and discover new and interesting accounts. (BETA)
Lists are timelines you build yourself, consisting of friends, [...]]]></description>
			<content:encoded><![CDATA[<p>So, I just logged in to my Twitter account via the web interface and saw a notice mentioning a new “Lists” feature that Twitter have just launched. The notice read:</p>
<h1 style="margin-top: 0px; margin-right: 0px; margin-bottom: 12px; margin-left: 0px; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-weight: bold; font-size: 16px; padding: 0px;"><span style="color: #cc0000; padding: 0px; margin: 0px;"><span style="color: #000000;"><em>“</em></span><em>New!</em></span><em> Lists. A great way to organize the people you follow and discover new and interesting accounts. </em><span style="color: #ababab; font-size: 15px; padding: 0px; margin: 0px;"><em>(BETA)</em></span></h1>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 14px; margin-left: 0px; font-family: 'Lucida Grande', sans-serif; font-size: 11px; line-height: 17px; padding: 0px;"><em>Lists are timelines you build yourself, consisting of friends, family, co-workers, sports teams, you name it. You’re part of a small group receiving this feature, so don’t tweet about it yet!”</em></p>
<p><em> </em></p>
<p><em><span style="font-style: normal;"><span id="more-713"></span>This looks like it will be quite an interesting feature to work with. It can also allow Twitter users to follow conversations between various groups of people as well as to create an interesting list (for example, <a title="South African bands on Twitter" href="http://matty.co.za/2009/04/south-african-music-on-twitter/">South African bands on Twitter</a>) and to share that list with others who may find it of interest (by the way, check out <a href="http://twitter.com/mattyza/south-african-music">my first Twitter list</a>).</span></em></p>
<p><em> </em></p>
<p>Twitter lists can, in a way, be thought of as similar to groups on other social platforms. They allow users to follow tweets by a group of users with a single click.</p>
<p>I look forward to seeing this feature rolled out fully and to see how it gets used by the Twitter community.</p>
]]></content:encoded>
			<wfw:commentRss>http://matty.co.za/2009/10/twitter-introduces-new-lists-feature/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Theming for Magento — Part 03 — Theming Basics</title>
		<link>http://matty.co.za/2009/10/magento-themes-part-03/</link>
		<comments>http://matty.co.za/2009/10/magento-themes-part-03/#comments</comments>
		<pubDate>Sun, 18 Oct 2009 16:54:00 +0000</pubDate>
		<dc:creator>Matty</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Magento]]></category>
		<category><![CDATA[magento-themes]]></category>
		<category><![CDATA[theming]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://matty.co.za/?p=711</guid>
		<description><![CDATA[Right. We’re in part 03 of our “Theming for Magento” tutorial collection. Time to get down to some theming.
A quick word on conventions
Magento, like many other content management systems, likes to follow conventions. Adopting these conventions when designing your theme, as well as during the theming process, can greatly minimize the amount of code required [...]]]></description>
			<content:encoded><![CDATA[<p>Right. We’re in part 03 of our “Theming for Magento” tutorial collection. Time to get down to some theming.</p>
<h3>A quick word on conventions</h3>
<p>Magento, like many other content management systems, likes to follow conventions. Adopting these conventions when designing your theme, as well as during the theming process, can greatly minimize the amount of code required by your theme. As mentioned on Part 02, Magento has a “fall back” feature where it looks for required files, when not in your theme, within all other themes in the current interface until it finds the file it requires. This essentially allows users to keep a copy of the default theme in the interface in which they are coding their theme (either the “default” or a custom interface) and to only modify the files that require customisation.<span id="more-711"></span></p>
<p>An example of the above-mentioned conventions can be seen in the way that boxes are styled within Magento. Boxes are not unlike “widgets” in Wordpress. Each box is assigned a unique class for specific styling to that box, as well as a generic class for global styling.</p>
<p>A CSS block for global Magento box styling looks like this (no attributes currently set for each class):</p>
<p><code>.box {}<br />
.box .head {}<br />
.box .head h4 {}<br />
.box .content {}</code></p>
<p>By styling the above tags in a CSS file within your theme, you should be able to style the majority of sidebar blocks within your Magento theme.</p>
<h3>Setting up your theme’s stylesheets</h3>
<p>As mentioned in Part 02, Magento themes are made up of templates and XML files, as well as a folder to hold all images, CSS files and other assets. For starters, I’d recommend making copies of all CSS files within the default theme and placing them in the same relative location within your custom theme (most likely the “CSS” folder within your theme’s “skin” folder). Once you’ve got the hang of working with these CSS files, or to add your own so your own CSS file conventions can be used, the calls to the CSS files are located in page.xml near the top of the file. Once you get the hang of the conventions used within Magento, adjusting the theme’s CSS becomes a lot easier.</p>
<h3>Great, so what other conventions are there?</h3>
<p>If you’re working in Firefox, I’d recommend installing the Firebug extension, or something similar. In Safari, use the “inspect Element” command. This will allow you to inspect the code of your Magento installation and to identify conventions within the code. As there are an almost endless amount of template files, when styling your theme I find it best to keep a copy of the default theme within the interface in which I’m coding and to make as many changes as possible via the CSS and images without modifying the template *.phtml files or *.xml files. This way, when your theme is done, you may end up with only several modified *.phtml and *.xml files. Also, if you want to then package your theme as a standalone theme (ie: without requiring the need of the default theme), you can simply copy the unmodified files from the default theme over to yours and voila!</p>
<h3>A Very Important Final Note</h3>
<p>Well, folks, that’s it for this round of the “Theming For Magento” tutorial collection. In Part 04, we’ll be opening up one or two *.xml and *.phtml files, checking out how they work and looking into ways to create smaller code snippets where possible.</p>
<p>A very important last note: when creating your Magento theme, make a note of all the files you’ve modified along the way. For example, if you only modify the CSS files, make a note of that. It will help greatly later in when identifying unmodified files for copying over from the default theme and can, in general, be a real time-saver.</p>
]]></content:encoded>
			<wfw:commentRss>http://matty.co.za/2009/10/magento-themes-part-03/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Wordpress theme features: What would you like to see?</title>
		<link>http://matty.co.za/2009/10/wordpress-theme-options-ideas/</link>
		<comments>http://matty.co.za/2009/10/wordpress-theme-options-ideas/#comments</comments>
		<pubDate>Sat, 03 Oct 2009 07:34:38 +0000</pubDate>
		<dc:creator>Matty</dc:creator>
				<category><![CDATA[Wordpress]]></category>
		<category><![CDATA["premium grade" wordpress themes]]></category>
		<category><![CDATA[wordpress-plugins]]></category>

		<guid isPermaLink="false">http://matty.co.za/?p=705</guid>
		<description><![CDATA[I’ve been rolling the idea around in my head for a while now to create a Wordpress theme, packed with all the features I find myself repeating on each project, as well as some new, useful features… and maybe a few whacky ones as well.
Yesterday, I jotted down a list of features I’d like to [...]]]></description>
			<content:encoded><![CDATA[<p>I’ve been rolling the idea around in my head for a while now to create a Wordpress theme, packed with all the features I find myself repeating on each project, as well as some new, useful features… and maybe a few whacky ones as well.</p>
<p>Yesterday, I jotted down a list of features I’d like to potentially include in this theme… some useful, some for repetitive tasks and some just weird and whacky. My question to you all is, <strong>what features would you like to see?</strong></p>
<p>They can be any of the above– minimise repetitive tasks, new and useful or just plain weird and whacky. Lets have it guys. <strong>W</strong><strong>hat features would you like to see in a Wordpress theme?</p>
<p><span id="more-705"></span><span style="font-weight: normal;"><a href="#respond">Leave a comment and share your feature request. </a></span></strong></p>
]]></content:encoded>
			<wfw:commentRss>http://matty.co.za/2009/10/wordpress-theme-options-ideas/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>The discovery of blogging</title>
		<link>http://matty.co.za/2009/09/the-discovery-of-blogging/</link>
		<comments>http://matty.co.za/2009/09/the-discovery-of-blogging/#comments</comments>
		<pubDate>Mon, 14 Sep 2009 18:09:52 +0000</pubDate>
		<dc:creator>Matty</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[blogging]]></category>
		<category><![CDATA[thoughts]]></category>

		<guid isPermaLink="false">http://matty.co.za/2009/09/the-discovery-of-blogging/</guid>
		<description><![CDATA[I find blogging to be such a unique and interesting medium for communication. Share news, thoughts and information with the world and interact with those who comment on your writings. This, on the surface, seems like a somewhat well-known concept. The question is, is it?

Over the last few years, and recently in particular, it seems [...]]]></description>
			<content:encoded><![CDATA[<p>I find blogging to be such a unique and interesting medium for communication. Share news, thoughts and information with the world and interact with those who comment on your writings. This, on the surface, seems like a somewhat well-known concept. The question is, is it?<br />
<span id="more-580"></span><br />
Over the last few years, and recently in particular, it seems like blogging has taken the world by storm. It’s funny how that works. I mean, I remember blogging several years ago, about random whatnots and such.</p>
<p>The other day, my mom discovered blogs. This got me thinking; how many people discover blogs and blogging for the first time every day?</p>
]]></content:encoded>
			<wfw:commentRss>http://matty.co.za/2009/09/the-discovery-of-blogging/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>I got an iPhone</title>
		<link>http://matty.co.za/2009/08/i-got-an-iphone/</link>
		<comments>http://matty.co.za/2009/08/i-got-an-iphone/#comments</comments>
		<pubDate>Sun, 30 Aug 2009 16:59:27 +0000</pubDate>
		<dc:creator>Matty</dc:creator>
				<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://matty.co.za/2009/08/i-got-an-iphone/</guid>
		<description><![CDATA[First weekend down, and I’m engulfed in iPhone mania. Having used Symbian and Java based phones prior to this, the iPhone, app store and overall approach to the mobile device is quite new and, although there’s nothing wrong with Symbian based phones, it’s a welcome change if pace.
I had one or two things to sort [...]]]></description>
			<content:encoded><![CDATA[<p>First weekend down, and I’m engulfed in iPhone mania. Having used Symbian and Java based phones prior to this, the iPhone, app store and overall approach to the mobile device is quite new and, although there’s nothing wrong with Symbian based phones, it’s a welcome change if pace.</p>
<p>I had one or two things to sort out with the phone when I got it. I’ll write another post listing those and how I resolved them.</p>
<p>P.S Written on my iPhone. <img src='http://matty.co.za/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://matty.co.za/2009/08/i-got-an-iphone/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
