<?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>Jeremy Clark - TechNet.com</title>
	<atom:link href="http://clark-technet.com/feed" rel="self" type="application/rss+xml" />
	<link>http://clark-technet.com</link>
	<description></description>
	<lastBuildDate>Wed, 23 Jun 2010 23:25:38 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Summer Time Rush</title>
		<link>http://clark-technet.com/2010/06/summer-time-rush</link>
		<comments>http://clark-technet.com/2010/06/summer-time-rush#comments</comments>
		<pubDate>Wed, 23 Jun 2010 23:24:28 +0000</pubDate>
		<dc:creator>Jeremy Clark</dc:creator>
				<category><![CDATA[Aside]]></category>

		<guid isPermaLink="false">http://clark-technet.com/?p=485</guid>
		<description><![CDATA[Summer time is a busy time for me at work and updates will be sparse but I will still be answering questions on the support forum. Please stay tuned for updates. If you&#8217;d like please subscribe to my RSS feed for updates. &#169;2010 Jeremy Clark - TechNet.com. All Rights Reserved.. Related posts:WordPress Theme Developers Tip [...]


Related posts:<ol><li><a href='http://clark-technet.com/2010/05/wordpress-theme-developers-tip-automatic-feed-links-in-3-0' rel='bookmark' title='Permanent Link: WordPress Theme Developers Tip &#8211; Automatic Feed Links in 3.0'>WordPress Theme Developers Tip &#8211; Automatic Feed Links in 3.0</a> <small>Version 3.0 of WordPress is due out soon, and theme...</small></li>
<li><a href='http://clark-technet.com/2007/07/summer' rel='bookmark' title='Permanent Link: Summer'>Summer</a> <small>I&#8217;ve been extremely busy this summer as a result I&#8217;ve...</small></li>
<li><a href='http://clark-technet.com/2008/08/still-alive' rel='bookmark' title='Permanent Link: Still Alive'>Still Alive</a> <small>I'm still alive, had a very busy summer at work...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Summer time is a busy time for me at work and updates will be sparse but I will still be answering questions on the support forum.  Please stay tuned for updates.  If you&#8217;d like please subscribe to my RSS feed for updates.</p>
<p>&copy;2010 <a href="http://clark-technet.com">Jeremy Clark - TechNet.com</a>. All Rights Reserved.</p>.

<br /><p>Related posts:<ol><li><a href='http://clark-technet.com/2010/05/wordpress-theme-developers-tip-automatic-feed-links-in-3-0' rel='bookmark' title='Permanent Link: WordPress Theme Developers Tip &#8211; Automatic Feed Links in 3.0'>WordPress Theme Developers Tip &#8211; Automatic Feed Links in 3.0</a> <small>Version 3.0 of WordPress is due out soon, and theme...</small></li>
<li><a href='http://clark-technet.com/2007/07/summer' rel='bookmark' title='Permanent Link: Summer'>Summer</a> <small>I&#8217;ve been extremely busy this summer as a result I&#8217;ve...</small></li>
<li><a href='http://clark-technet.com/2008/08/still-alive' rel='bookmark' title='Permanent Link: Still Alive'>Still Alive</a> <small>I'm still alive, had a very busy summer at work...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://clark-technet.com/2010/06/summer-time-rush/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPress Theme Developers Tip &#8211; Automatic Feed Links in 3.0</title>
		<link>http://clark-technet.com/2010/05/wordpress-theme-developers-tip-automatic-feed-links-in-3-0</link>
		<comments>http://clark-technet.com/2010/05/wordpress-theme-developers-tip-automatic-feed-links-in-3-0#comments</comments>
		<pubDate>Thu, 20 May 2010 17:12:55 +0000</pubDate>
		<dc:creator>Jeremy Clark</dc:creator>
				<category><![CDATA[tips]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[theme]]></category>

		<guid isPermaLink="false">http://clark-technet.com/?p=483</guid>
		<description><![CDATA[Version 3.0 of WordPress is due out soon, and theme developers are getting geared up to implement the new features. The new menu system has received much attention as it&#8217;s one of the biggest changes, besides the merge of the WPMU code, that most users will use. One feature that I didn&#8217;t know exists until [...]


Related posts:<ol><li><a href='http://clark-technet.com/2010/01/wordpress-theme-options-framework-ver-2' rel='bookmark' title='Permanent Link: WordPress Theme Options Framework Ver 2'>WordPress Theme Options Framework Ver 2</a> <small>An updated version of my Theme Options Framework rewritten for...</small></li>
<li><a href='http://clark-technet.com/2010/03/wordpress-theme-developers-tip-adding-theme-menu' rel='bookmark' title='Permanent Link: WordPress Theme Developers Tip &#8211; Adding Theme Menu'>WordPress Theme Developers Tip &#8211; Adding Theme Menu</a> <small>Sometimes a theme just outgrows having one menu page for...</small></li>
<li><a href='http://clark-technet.com/2010/01/wordpress-theme-developers-tip-call-dynamic-css-the-right-way' rel='bookmark' title='Permanent Link: WordPress Theme Developers Tip &#8211; Call Dynamic CSS the Right Way'>WordPress Theme Developers Tip &#8211; Call Dynamic CSS the Right Way</a> <small>While developing my Techozoic theme, I&#8217;ve progressed from adding custom...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><img src="http://clark-technet.com/wp-content/uploads/2008/10/wordpresstip.jpg" alt="" title="WordPress" width="75" height="75" class="alignleft size-full wp-image-316" />Version 3.0 of WordPress is due out soon, and theme developers are getting geared up to implement the new features.  The new menu system has received much attention as it&#8217;s one of the biggest changes, besides the merge of the WPMU code, that most users will use.  </p>
<p>One feature that I didn&#8217;t know exists until now is automatic feed links which will output all the different feed links to current page the users is on to the header.  It was added in 2.8 but has been changed how it works for 3.0.  For example on a single post page the main blog feed, and the single post comment feed links are added to the header allowing a user to easily subscribe to the either feed.  Another is on a category archive page the feed for the main blog, as well as the feed for all posts in that category are added.  So I&#8217;ve got this feature added to my Techozoic theme but to maintain backwards compatibility I though I would share the simple function I came up with.<br />
<span id="more-483"></span><br />
To enable the automatic feed links it&#8217;s very simple, just use the add_theme_support function with the automatic-feed-links as the parameter like this into your functions.php.</p>
<pre class="brush: php; light: true;">
if(function_exists('add_theme_support')) {
	add_theme_support('automatic-feed-links');
	//WP Auto Feed Links
}
</pre>
<p>It&#8217;s critical to test if a function exists before calling it to prevent errors.</p>
<pre class="brush: php;">
function remove_feed_link(){
	global $wp_version;
	$default_feed_link = '&lt;link rel=&quot;alternate&quot; type=&quot;application/rss+xml&quot; title=&quot;'. get_bloginfo('name'). ' RSS Feed&quot; href=&quot;'. get_bloginfo('rss2_url') .'&quot; /&gt;';
	if($wp_version &lt; 3){
		if(function_exists(automatic_feed_links)){
			$output .= automatic_feed_links();
		} else {
			$output .= $default_feed_link;
		}
	}
	echo $output;
}
	add_action('wp_head', 'remove_feed_link');
</pre>
<p>Most theme authors include the default RSS feed in the header of their themes, but the new feature requires those links to be removed to work correctly.  The trick to the automatic-feed-links is it&#8217;s a new 3.0 feature but the add_theme_support has exists since 2.9 so you can&#8217;t use the same check to disable your old feed links from the header.  But what you can do is to check if the check the wp_version variable is less than 3, and if it is use either automatic_feed_links function or echo your own RSS link.  Then you just add your function to be called with wp_head using add_action.</p>
<p>Futher Reference:<br />
<a href="http://codex.wordpress.org/Function_Reference/add_theme_support">add_theme_support Codex Article</a></p>
<p>&copy;2010 <a href="http://clark-technet.com">Jeremy Clark - TechNet.com</a>. All Rights Reserved.</p>.

<br /><p>Related posts:<ol><li><a href='http://clark-technet.com/2010/01/wordpress-theme-options-framework-ver-2' rel='bookmark' title='Permanent Link: WordPress Theme Options Framework Ver 2'>WordPress Theme Options Framework Ver 2</a> <small>An updated version of my Theme Options Framework rewritten for...</small></li>
<li><a href='http://clark-technet.com/2010/03/wordpress-theme-developers-tip-adding-theme-menu' rel='bookmark' title='Permanent Link: WordPress Theme Developers Tip &#8211; Adding Theme Menu'>WordPress Theme Developers Tip &#8211; Adding Theme Menu</a> <small>Sometimes a theme just outgrows having one menu page for...</small></li>
<li><a href='http://clark-technet.com/2010/01/wordpress-theme-developers-tip-call-dynamic-css-the-right-way' rel='bookmark' title='Permanent Link: WordPress Theme Developers Tip &#8211; Call Dynamic CSS the Right Way'>WordPress Theme Developers Tip &#8211; Call Dynamic CSS the Right Way</a> <small>While developing my Techozoic theme, I&#8217;ve progressed from adding custom...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://clark-technet.com/2010/05/wordpress-theme-developers-tip-automatic-feed-links-in-3-0/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>HTC Incredible &#8211; Name That Fits</title>
		<link>http://clark-technet.com/2010/05/htc-incredible-name-that-fits</link>
		<comments>http://clark-technet.com/2010/05/htc-incredible-name-that-fits#comments</comments>
		<pubDate>Tue, 18 May 2010 16:32:15 +0000</pubDate>
		<dc:creator>Jeremy Clark</dc:creator>
				<category><![CDATA[google]]></category>
		<category><![CDATA[tech]]></category>
		<category><![CDATA[HTC]]></category>
		<category><![CDATA[phone]]></category>

		<guid isPermaLink="false">http://clark-technet.com/?p=476</guid>
		<description><![CDATA[I've recently traded my trusted Blackberry smartphone for an HTC Droid Incredible and I have to say the name truly fits this tiny powerhouse called a phone.  The biggest feature that I'm loving right now is an usable app store, if you've every used Blackberry's app world you'll know what a painful experience that can be.


Related posts:<ol><li><a href='http://clark-technet.com/2008/09/google-chrome-screen-shots' rel='bookmark' title='Permanent Link: Google Chrome Screen Shots'>Google Chrome Screen Shots</a> <small>Screen shots and review of Google Chrome after being released....</small></li>
<li><a href='http://clark-technet.com/2008/09/100th-post' rel='bookmark' title='Permanent Link: 100th Post'>100th Post</a> <small>I just realized I posted my 100th post a couple...</small></li>
<li><a href='http://clark-technet.com/2008/10/suns-virtualbox' rel='bookmark' title='Permanent Link: Sun&#8217;s VirtualBox'>Sun&#8217;s VirtualBox</a> <small>Review of Sun's VirtualBox, a virutalization program for running multiple...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><img src="http://clark-technet.com/wp-content/uploads/2010/05/htc-droid-incredible-2-300x386-116x150.jpg" alt="" title="htc-droid-incredible" width="116" height="150" class="alignleft size-thumbnail wp-image-477" />I&#8217;ve recently traded my trusted Blackberry 8330 smartphone for a HTC Droid Incredible and I have to say the name truly fits this tiny powerhouse called a phone.  The biggest feature that I&#8217;m loving right now is an usable app store, if you&#8217;ve every used Blackberry&#8217;s app world you&#8217;ll know what a painful experience that can be. </p>
<p>I&#8217;m also love the camera, 8 megapixels is as same as my Canon DSLR.  Browsing the web is now a dream as well, the included browser even supports Flash albeit in a lite format.  Another handy feature is the speech recognition is very good and very well integrated into the built in Google search, allowing very quick searches via speaking rather than typing.  </p>
<p>Although I did have some doubts with the onscreen keyboard, I have fat fingers and always struggled to type on the tiny Blackberry keyboard, but the key recognition is spot on.  The predictive text is also very good and eases some of the typing.  Battery life can be a bit iffy for a full day of use, but as powerful as the phone is I&#8217;ll certainly trade having to charge it more often for the power.<span id="more-476"></span><br />
<div id="attachment_481" class="wp-caption aligncenter" style="width: 310px"><a href="http://clark-technet.com/wp-content/uploads/2010/05/clouds1.jpg"><img src="http://clark-technet.com/wp-content/uploads/2010/05/clouds1-300x179.jpg" alt="" title="Clouds" width="300" height="179" class="size-medium wp-image-481" /></a><p class="wp-caption-text">Photo Taken with HTC Incredible</p></div></p>
<h3>HTC Incredible Notable Specs</h3>
<ul>
<li>1Ghz Processor</li>
<li>512MB RAM</li>
<li>8GB Internal Memory/expandble to 40GB with 32GB microSD card</li>
<li>8 MegaPixel Camera with video</li>
<li>480 x 800 OLED Touchscreen</li>
<li>Android 2.1 with HTC Sense enhancements</li>
<li>WiFi</li>
<li>GPS Navigation</li>
<li>Speech Recoginition</li>
<li>Accelerometer</li>
</ul>
<p>If you have Verizon and in the market for a new smartphone I believe that the Incredible is the way to go.</p>
<p>&copy;2010 <a href="http://clark-technet.com">Jeremy Clark - TechNet.com</a>. All Rights Reserved.</p>.

<br /><p>Related posts:<ol><li><a href='http://clark-technet.com/2008/09/google-chrome-screen-shots' rel='bookmark' title='Permanent Link: Google Chrome Screen Shots'>Google Chrome Screen Shots</a> <small>Screen shots and review of Google Chrome after being released....</small></li>
<li><a href='http://clark-technet.com/2008/09/100th-post' rel='bookmark' title='Permanent Link: 100th Post'>100th Post</a> <small>I just realized I posted my 100th post a couple...</small></li>
<li><a href='http://clark-technet.com/2008/10/suns-virtualbox' rel='bookmark' title='Permanent Link: Sun&#8217;s VirtualBox'>Sun&#8217;s VirtualBox</a> <small>Review of Sun's VirtualBox, a virutalization program for running multiple...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://clark-technet.com/2010/05/htc-incredible-name-that-fits/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Transfer to new hosting provider</title>
		<link>http://clark-technet.com/2010/05/transfer-to-new-hosting-provider</link>
		<comments>http://clark-technet.com/2010/05/transfer-to-new-hosting-provider#comments</comments>
		<pubDate>Fri, 07 May 2010 19:21:02 +0000</pubDate>
		<dc:creator>Jeremy Clark</dc:creator>
				<category><![CDATA[Aside]]></category>

		<guid isPermaLink="false">http://clark-technet.com/?p=470</guid>
		<description><![CDATA[Over the weekend I will be transitioning over to my new hosting provider, DreamHost. During this time this site will be down, sorry for any inconvenience. I will update this post after the transfer is complete. Update: Transfer complete, if you notice any problems please let me know. &#169;2010 Jeremy Clark - TechNet.com. All Rights [...]


Related posts:<ol><li><a href='http://clark-technet.com/2009/02/sorry-if-you-missed-me' rel='bookmark' title='Permanent Link: Sorry if you missed me'>Sorry if you missed me</a> <small>My ISP had problems getting my DSL working until this...</small></li>
<li><a href='http://clark-technet.com/2007/09/bioshock-demo' rel='bookmark' title='Permanent Link: Bioshock Demo'>Bioshock Demo</a> <small>I just started downloading the massive demo for Bioshock, all...</small></li>
<li><a href='http://clark-technet.com/2007/03/spam-oh-how-i-hate-thee' rel='bookmark' title='Permanent Link: Spam, Oh how I hate thee'>Spam, Oh how I hate thee</a> <small>Today when I logged into my blog I was greeted...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Over the weekend I will be transitioning over to my new hosting provider, DreamHost.  During this time this site will be down, sorry for any inconvenience.  I will update this post after the transfer is complete.</p>
<p><strong>Update:</strong> Transfer complete, if you notice any problems please let me know.</p>
<p>&copy;2010 <a href="http://clark-technet.com">Jeremy Clark - TechNet.com</a>. All Rights Reserved.</p>.

<br /><p>Related posts:<ol><li><a href='http://clark-technet.com/2009/02/sorry-if-you-missed-me' rel='bookmark' title='Permanent Link: Sorry if you missed me'>Sorry if you missed me</a> <small>My ISP had problems getting my DSL working until this...</small></li>
<li><a href='http://clark-technet.com/2007/09/bioshock-demo' rel='bookmark' title='Permanent Link: Bioshock Demo'>Bioshock Demo</a> <small>I just started downloading the massive demo for Bioshock, all...</small></li>
<li><a href='http://clark-technet.com/2007/03/spam-oh-how-i-hate-thee' rel='bookmark' title='Permanent Link: Spam, Oh how I hate thee'>Spam, Oh how I hate thee</a> <small>Today when I logged into my blog I was greeted...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://clark-technet.com/2010/05/transfer-to-new-hosting-provider/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Techozoic Fluid now on Google Code</title>
		<link>http://clark-technet.com/2010/04/techozoic-fluid-now-on-google-code</link>
		<comments>http://clark-technet.com/2010/04/techozoic-fluid-now-on-google-code#comments</comments>
		<pubDate>Fri, 23 Apr 2010 20:08:54 +0000</pubDate>
		<dc:creator>Jeremy Clark</dc:creator>
				<category><![CDATA[google]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[svn]]></category>
		<category><![CDATA[theme]]></category>

		<guid isPermaLink="false">http://clark-technet.com/?p=466</guid>
		<description><![CDATA[I've just setup proper project management for my <a href="http://code.google.com/p/techozoic-fluid/">Techozoic Fluid</a> theme using <a href="http://code.google.com/">Google Code</a>.



Related posts:<ol><li><a href='http://clark-technet.com/2010/03/wordpress-theme-developers-tip-adding-theme-menu' rel='bookmark' title='Permanent Link: WordPress Theme Developers Tip &#8211; Adding Theme Menu'>WordPress Theme Developers Tip &#8211; Adding Theme Menu</a> <small>Sometimes a theme just outgrows having one menu page for...</small></li>
<li><a href='http://clark-technet.com/2009/09/wordpress-theme-dev-tip-dynamic-stylesheets' rel='bookmark' title='Permanent Link: WordPress Theme Dev Tip &#8211; Dynamic Stylesheets'>WordPress Theme Dev Tip &#8211; Dynamic Stylesheets</a> <small>A dynamic stylesheet using php is a powerful thing, when...</small></li>
<li><a href='http://clark-technet.com/consulting' rel='bookmark' title='Permanent Link: Consulting'>Consulting</a> <small>After being involved in the WordPress community for almost 3...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><a href="http://code.google.com/p/techozoic-fluid/"><img src="http://clark-technet.com/wp-content/uploads/2010/04/techozoic-logo.png" alt="Techozoic Fluid Logo" title="Techozoic Fluid" width="100" height="100" class="alignleft size-full wp-image-467" /></a>I&#8217;ve just setup proper project management for my Techozoic Fluid theme using <a href="http://code.google.com/">Google Code</a>.  I have also designed a logo for my theme.  If you would like to always have the latest version of Techozoic you may now use <a href="http://subversion.apache.org/faq.html">Subversion</a> to checkout a copy.  If you are like me and keep up with the latest WordPress nightly releases then you&#8217;ll know how to checkout code using svn.  I use Linux but I&#8217;m sure svn works the same for Windows as well.</p>
<p>View the <a href="http://code.google.com/p/techozoic-fluid/">Techozoic Fluid</a> project page.</p>
<h3>Svn Checkout Instructions</h3>
<div style="margin-left:10px"><code>#cd /path/to/your/blog/wp-content/themes/<br />
#svn checkout http://techozoic-fluid.googlecode.com/svn/trunk/ techozoic-fluid<br />
</code>
</div>
<p>&copy;2010 <a href="http://clark-technet.com">Jeremy Clark - TechNet.com</a>. All Rights Reserved.</p>.

<br /><p>Related posts:<ol><li><a href='http://clark-technet.com/2010/03/wordpress-theme-developers-tip-adding-theme-menu' rel='bookmark' title='Permanent Link: WordPress Theme Developers Tip &#8211; Adding Theme Menu'>WordPress Theme Developers Tip &#8211; Adding Theme Menu</a> <small>Sometimes a theme just outgrows having one menu page for...</small></li>
<li><a href='http://clark-technet.com/2009/09/wordpress-theme-dev-tip-dynamic-stylesheets' rel='bookmark' title='Permanent Link: WordPress Theme Dev Tip &#8211; Dynamic Stylesheets'>WordPress Theme Dev Tip &#8211; Dynamic Stylesheets</a> <small>A dynamic stylesheet using php is a powerful thing, when...</small></li>
<li><a href='http://clark-technet.com/consulting' rel='bookmark' title='Permanent Link: Consulting'>Consulting</a> <small>After being involved in the WordPress community for almost 3...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://clark-technet.com/2010/04/techozoic-fluid-now-on-google-code/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>WordPress Theme Developers Tip &#8211; Adding Theme Menu</title>
		<link>http://clark-technet.com/2010/03/wordpress-theme-developers-tip-adding-theme-menu</link>
		<comments>http://clark-technet.com/2010/03/wordpress-theme-developers-tip-adding-theme-menu#comments</comments>
		<pubDate>Fri, 26 Mar 2010 20:35:45 +0000</pubDate>
		<dc:creator>Jeremy Clark</dc:creator>
				<category><![CDATA[tips]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[theme]]></category>

		<guid isPermaLink="false">http://clark-technet.com/?p=463</guid>
		<description><![CDATA[Sometimes a theme just outgrows having one menu page for theme options.  Instead of adding a second page a separate menu might be best.  Outlined are the steps and functions needed for this.  Code examples are also shown.


Related posts:<ol><li><a href='http://clark-technet.com/2010/05/wordpress-theme-developers-tip-automatic-feed-links-in-3-0' rel='bookmark' title='Permanent Link: WordPress Theme Developers Tip &#8211; Automatic Feed Links in 3.0'>WordPress Theme Developers Tip &#8211; Automatic Feed Links in 3.0</a> <small>Version 3.0 of WordPress is due out soon, and theme...</small></li>
<li><a href='http://clark-technet.com/2010/01/wordpress-theme-developers-tip-call-dynamic-css-the-right-way' rel='bookmark' title='Permanent Link: WordPress Theme Developers Tip &#8211; Call Dynamic CSS the Right Way'>WordPress Theme Developers Tip &#8211; Call Dynamic CSS the Right Way</a> <small>While developing my Techozoic theme, I&#8217;ve progressed from adding custom...</small></li>
<li><a href='http://clark-technet.com/2009/09/wordpress-theme-dev-tip-dynamic-stylesheets' rel='bookmark' title='Permanent Link: WordPress Theme Dev Tip &#8211; Dynamic Stylesheets'>WordPress Theme Dev Tip &#8211; Dynamic Stylesheets</a> <small>A dynamic stylesheet using php is a powerful thing, when...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve already discussed how to add an <a href="http://clark-technet.com/2010/01/wordpress-theme-options-framework-ver-2">theme options page</a>.  Sometimes, as my theme has, a theme just outgrows having one menu page for everything.  Instead of adding a second page under the Appearance Menu a separate menu might be best.  The below code is an example of the functions required to use a separate menu.<br />
<span id="more-463"></span></p>
<pre class="brush: php;">
function mytheme_admin_page() {
	add_menu_page(&quot;Theme Options&quot;, &quot;Top Level Menu Name&quot;, 'edit_themes', 'menu_display_function','','',61);
	add_submenu_page('menu_display_function' ,&quot;Sub Page Title 1&quot;, &quot;Sub Page Menu Text&quot;, 'edit_themes', 'menu_display_function', 'sub_men_display_function');
	add_submenu_page('menu_display_function' ,&quot;Sub Page Title 2&quot;, &quot;Sub Page Menu Text 2&quot;, 'edit_themes', 'menu_display_function', 'sub_men_display_function_2');
}
menu_display_function(){
echo &quot;Top Level Menu Page&quot;;
}
sub_menu_display_function(){
echo &quot;Sub Page Level Page&quot;;
}
sub_menu_display_function_2(){
echo &quot;Sub Page Level Page 2&quot;;
}
add_action('admin_menu', 'mytheme_admin_page');
</pre>
<p>So what does this code do the add_menu_page function adds the top level container, this is like the Appearance, Plugins, Users &#8230; menu that already exist.</p>
<pre class="brush: php; light: true;">add_menu_page(page_title, menu_title, capability, handle, [function], [icon_url],menu_order);</pre>
<p>The parameters are </p>
<blockquote><p><strong>page_title</strong><br />
    Text that will go into the HTML page title for the page when the menu is active.<br />
<strong>menu_title</strong><br />
    The on-screen name text for the menu.<br />
<strong>capability</strong><br />
    The minimum capability required to display and use this menu page. Whilst for legacy reasons, you may also use user level â€“ the usage of user level is discouraged for future compatibility and has been deprecated since WordPress 1.5.<br />
<strong>handle/file</strong><br />
    If the function parameter is omitted, this should be the PHP file that handles the display of the menu page content. Otherwise, and more commonly, it will be a unique &#8220;handle&#8221; for the page. e.g. &#8220;my-awesome-plugin-settings&#8221;<br />
<strong>function</strong><br />
    The function that displays the page content for the menu page.<br />
<strong>icon_url</strong><br />
    The path to the icon for the menu, if not given default to a gear icon.<br />
<strong>menu_order</strong><br />
    A number for where the new menu should be inserted, defaults to below all other menus.  The 61 in the example code will place the menu right below the Appearance menu, which should work nicely for a theme admin menu.
</p></blockquote>
<p>To add the sub pages to the menu you call the add_submenu_page function.</p>
<pre class="brush: php; light: true;">add_submenu_page(parent, page_title, menu_title, capability required, file/handle, [function]);</pre>
<p>Parameters:</p>
<blockquote><p>
<strong>parent</strong><br />
    The filename of the core WordPress admin file that supplies the top-level menu in which you want to insert your submenu, or your plugin file if this submenu is going into a custom top-level menu.<br />
<strong>page_title</strong><br />
    Text that will go into the HTML page title for the page when the submenu is active.<br />
<strong>menu_title</strong><br />
    The on-screen name text for the submenu.<br />
<strong>capability</strong><br />
    The minimum capability required to display and use this menu page. Whilst for legacy reasons, you may also use user level the usage of user level is discouraged for future compatibility and has been deprecated since WordPress 1.5.<br />
file<br />
    For existing WordPress menus, the PHP file that handles the display of the menu page content. For submenus of a custom top-level menu, a unique identifier for this sub-menu page. </p>
<p>In situations where a plugin is creating its own top-level menu, the first submenu will normally have the same link title as the top-level menu and hence the link will be duplicated. The duplicate link title can be avoided by calling the add_submenu_page function the first time with the parent and file parameters being given the same value.</p>
<p><strong>function</strong><br />
    The function that displays the page content for the menu page. </p></blockquote>
<p>This is a very quick example of how this is done.  I will be updating my Theme Options Framework to include this as an option and to show how this is used in practice.  I&#8217;ve also done this for my <a href="http://http://wordpress.org/extend/themes/techozoic-fluid">Techozoic Fluid 1.8.6</a> theme which should be available soon.</p>
<p>Resources:
<ul>
<li><a href="http://codex.wordpress.org/Adding_Administration_Menus">Adding Administration Menus &#8211; WordPress Codex</a></li>
<li>
<a href="http://http://wpengineer.com/top-level-menu-in-wordpress-27/">Top Level Menu Page &#8211; WPEngineer</a></li>
</ul>
<p>&copy;2010 <a href="http://clark-technet.com">Jeremy Clark - TechNet.com</a>. All Rights Reserved.</p>.

<br /><p>Related posts:<ol><li><a href='http://clark-technet.com/2010/05/wordpress-theme-developers-tip-automatic-feed-links-in-3-0' rel='bookmark' title='Permanent Link: WordPress Theme Developers Tip &#8211; Automatic Feed Links in 3.0'>WordPress Theme Developers Tip &#8211; Automatic Feed Links in 3.0</a> <small>Version 3.0 of WordPress is due out soon, and theme...</small></li>
<li><a href='http://clark-technet.com/2010/01/wordpress-theme-developers-tip-call-dynamic-css-the-right-way' rel='bookmark' title='Permanent Link: WordPress Theme Developers Tip &#8211; Call Dynamic CSS the Right Way'>WordPress Theme Developers Tip &#8211; Call Dynamic CSS the Right Way</a> <small>While developing my Techozoic theme, I&#8217;ve progressed from adding custom...</small></li>
<li><a href='http://clark-technet.com/2009/09/wordpress-theme-dev-tip-dynamic-stylesheets' rel='bookmark' title='Permanent Link: WordPress Theme Dev Tip &#8211; Dynamic Stylesheets'>WordPress Theme Dev Tip &#8211; Dynamic Stylesheets</a> <small>A dynamic stylesheet using php is a powerful thing, when...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://clark-technet.com/2010/03/wordpress-theme-developers-tip-adding-theme-menu/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Server Migration &#8211; Part 2</title>
		<link>http://clark-technet.com/2010/02/server-migration-part-2</link>
		<comments>http://clark-technet.com/2010/02/server-migration-part-2#comments</comments>
		<pubDate>Thu, 11 Feb 2010 21:30:24 +0000</pubDate>
		<dc:creator>Jeremy Clark</dc:creator>
				<category><![CDATA[Aside]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[tech]]></category>
		<category><![CDATA[server]]></category>
		<category><![CDATA[virtualization]]></category>

		<guid isPermaLink="false">http://clark-technet.com/?p=450</guid>
		<description><![CDATA[I&#8217;ve finished the server migration and everything was successful and only maybe 30-45 minutes of downtime. The old computer I&#8217;m using for a server got an upgrade while I was migrating as well. A little faster processor and doubled the memory in it. I did run into a problem with ESXi, apparently since the motherboard [...]


Related posts:<ol><li><a href='http://clark-technet.com/2010/02/server-migration-part-1' rel='bookmark' title='Permanent Link: Server Migration &#8211; Part 1'>Server Migration &#8211; Part 1</a> <small>Before this week, my server that handles this website was...</small></li>
<li><a href='http://clark-technet.com/2006/12/welcome-to-the-new-server' rel='bookmark' title='Permanent Link: Welcome to the new server'>Welcome to the new server</a> <small>It&#8217;s so shiny and new feeling. Can you still smell...</small></li>
<li><a href='http://clark-technet.com/2007/03/home-server-review-part-1-of' rel='bookmark' title='Permanent Link: Home Server Review Part 1 of ?'>Home Server Review Part 1 of ?</a> <small>This weekend I got around to installing the beta for...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve finished the server migration and everything was successful and only maybe 30-45 minutes of downtime.  The old computer I&#8217;m using for a server got an upgrade while I was migrating as well.  A little faster processor and doubled the memory in it.  </p>
<p>I did run into a problem with ESXi, apparently since the motherboard was older in the server ESXi wouldn&#8217;t install correctly onto the drive I had in there, and the motherboard also didn&#8217;t support booting from USB to install ESXi to a flash drive, as suggested by a few sites.  So I scraped the idea for ESXi and installed CentOS 5.4 on the server without any desktop managers and disabled everything except a few essential services, this netted a server using less than 200 MB of memory.  Then I installed VMWare Server 2 on it and transferred my VM image over to the server.  Although there is more overhead having a complete OS and VM Server for my purposes it should be fine.</p>
<p>&copy;2010 <a href="http://clark-technet.com">Jeremy Clark - TechNet.com</a>. All Rights Reserved.</p>.

<br /><p>Related posts:<ol><li><a href='http://clark-technet.com/2010/02/server-migration-part-1' rel='bookmark' title='Permanent Link: Server Migration &#8211; Part 1'>Server Migration &#8211; Part 1</a> <small>Before this week, my server that handles this website was...</small></li>
<li><a href='http://clark-technet.com/2006/12/welcome-to-the-new-server' rel='bookmark' title='Permanent Link: Welcome to the new server'>Welcome to the new server</a> <small>It&#8217;s so shiny and new feeling. Can you still smell...</small></li>
<li><a href='http://clark-technet.com/2007/03/home-server-review-part-1-of' rel='bookmark' title='Permanent Link: Home Server Review Part 1 of ?'>Home Server Review Part 1 of ?</a> <small>This weekend I got around to installing the beta for...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://clark-technet.com/2010/02/server-migration-part-2/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Server Migration &#8211; Part 1</title>
		<link>http://clark-technet.com/2010/02/server-migration-part-1</link>
		<comments>http://clark-technet.com/2010/02/server-migration-part-1#comments</comments>
		<pubDate>Thu, 04 Feb 2010 21:05:37 +0000</pubDate>
		<dc:creator>Jeremy Clark</dc:creator>
				<category><![CDATA[Aside]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[server]]></category>
		<category><![CDATA[virtualization]]></category>
		<category><![CDATA[vmware]]></category>

		<guid isPermaLink="false">http://clark-technet.com/?p=447</guid>
		<description><![CDATA[Before this week, my server that handles this website was beginning to show signs that it need a fresh start. It&#8217;s currently running CentOS 4.4, so I decided it&#8217;s time to upgrade. So I grabbed the latest DVD iso from CentOS for 5.4 and installed a clean virtual machine on my desktop. I&#8217;ve just finished [...]


Related posts:<ol><li><a href='http://clark-technet.com/2010/02/server-migration-part-2' rel='bookmark' title='Permanent Link: Server Migration &#8211; Part 2'>Server Migration &#8211; Part 2</a> <small>I&#8217;ve finished the server migration and everything was successful and...</small></li>
<li><a href='http://clark-technet.com/2007/03/home-server-review-part-1-of' rel='bookmark' title='Permanent Link: Home Server Review Part 1 of ?'>Home Server Review Part 1 of ?</a> <small>This weekend I got around to installing the beta for...</small></li>
<li><a href='http://clark-technet.com/2007/03/vmware-new-enterprise-product' rel='bookmark' title='Permanent Link: Vmware&#8217;s New Enterprise Product'>Vmware&#8217;s New Enterprise Product</a> <small>Vmware&#8217;s newest virtualization product Vmware ACE 2 is now in...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><img src="http://clark-technet.com/wp-content/uploads/2008/09/linux-logo.jpg" alt="" title="Tux" width="125" height="150" class="alignleft size-full wp-image-314" /><!-- WSA: ad in context small-square not shown: too many ads -->Before this week, my server that handles this website was beginning to show signs that it need a fresh start.  It&#8217;s currently running CentOS 4.4, so I decided it&#8217;s time to upgrade.  So I grabbed the latest DVD iso from CentOS for 5.4 and installed a clean virtual machine on my desktop.  I&#8217;ve just finished migrating everything from the old server to the virtual machine.  I&#8217;ve also done away with the cobbled together mail solution of sendmail, dovecot, and assp I had running in favor of a very nice open-source Exchange-type replacement called <a href="http://www.zimbra.com">Zimbra</a>.  </p>
<p>The next step after a couple of days of testing will be wiping the old drive in the old server and installing VMWare ESXi on it.  I decided to virtualize to make it easier to upgrade in the future when I decide to build a new desktop.  I&#8217;ll retire my current desktop and recommission it as the new server and having everything virtualized should make the transition much smoother.  I&#8217;m hoping downtime will be minimal if any at all.</p>
<p>&copy;2010 <a href="http://clark-technet.com">Jeremy Clark - TechNet.com</a>. All Rights Reserved.</p>.

<br /><p>Related posts:<ol><li><a href='http://clark-technet.com/2010/02/server-migration-part-2' rel='bookmark' title='Permanent Link: Server Migration &#8211; Part 2'>Server Migration &#8211; Part 2</a> <small>I&#8217;ve finished the server migration and everything was successful and...</small></li>
<li><a href='http://clark-technet.com/2007/03/home-server-review-part-1-of' rel='bookmark' title='Permanent Link: Home Server Review Part 1 of ?'>Home Server Review Part 1 of ?</a> <small>This weekend I got around to installing the beta for...</small></li>
<li><a href='http://clark-technet.com/2007/03/vmware-new-enterprise-product' rel='bookmark' title='Permanent Link: Vmware&#8217;s New Enterprise Product'>Vmware&#8217;s New Enterprise Product</a> <small>Vmware&#8217;s newest virtualization product Vmware ACE 2 is now in...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://clark-technet.com/2010/02/server-migration-part-1/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPress Theme Developers Tip &#8211; Call Dynamic CSS the Right Way</title>
		<link>http://clark-technet.com/2010/01/wordpress-theme-developers-tip-call-dynamic-css-the-right-way</link>
		<comments>http://clark-technet.com/2010/01/wordpress-theme-developers-tip-call-dynamic-css-the-right-way#comments</comments>
		<pubDate>Mon, 25 Jan 2010 21:40:29 +0000</pubDate>
		<dc:creator>Jeremy Clark</dc:creator>
				<category><![CDATA[guides]]></category>
		<category><![CDATA[tech]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[theme]]></category>

		<guid isPermaLink="false">http://clark-technet.com/?p=446</guid>
		<description><![CDATA[While developing my Techozoic theme, I&#8217;ve progressed from adding custom CSS into the head section, to having an external file and using $_GET variables to pull options from the database, to now I believe is the right way to do it, using add_filter and a custom query in WordPress. By using this new method I&#8217;ve [...]


Related posts:<ol><li><a href='http://clark-technet.com/2010/01/wordpress-theme-options-framework-ver-2' rel='bookmark' title='Permanent Link: WordPress Theme Options Framework Ver 2'>WordPress Theme Options Framework Ver 2</a> <small>An updated version of my Theme Options Framework rewritten for...</small></li>
<li><a href='http://clark-technet.com/2009/09/wordpress-theme-dev-tip-dynamic-stylesheets' rel='bookmark' title='Permanent Link: WordPress Theme Dev Tip &#8211; Dynamic Stylesheets'>WordPress Theme Dev Tip &#8211; Dynamic Stylesheets</a> <small>A dynamic stylesheet using php is a powerful thing, when...</small></li>
<li><a href='http://clark-technet.com/2010/03/wordpress-theme-developers-tip-adding-theme-menu' rel='bookmark' title='Permanent Link: WordPress Theme Developers Tip &#8211; Adding Theme Menu'>WordPress Theme Developers Tip &#8211; Adding Theme Menu</a> <small>Sometimes a theme just outgrows having one menu page for...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>While developing my Techozoic theme, I&#8217;ve progressed from adding custom CSS into the head section, to having an external file and using $_GET variables to pull options from the database, to now I believe is the right way to do it, using <a href="http://codex.wordpress.org/Function_Reference/add_filter">add_filter</a> and a custom query in WordPress.  By using this new method I&#8217;ve done away with unsafe $_GET variables and can now use any builtin WP functions in the external file.<br />
First you&#8217;ll need to edit your functions.php file and add this block of code.</p>
<pre class="brush: php; light: true;">
	add_filter('query_vars', 'add_new_var_to_wp');
	function add_new_var_to_wp($public_query_vars) {
		$public_query_vars[] = 'my_theme_custom_var';
		//my_theme_custom_var is the name of the custom query variable that is created and how you reference it in the call to the file
		return $public_query_vars;
	}
</pre>
<p>This sets up WP to now accept a new variable in a query called my_theme_custom_var the format of the query would be <code>http://www.yourblog.com/index.php?my_theme_custom_var=css</code> .  The ? mark tells WP that this is a query and the = sign tells what the query variable should be set to.</p>
<p>Now to actually setup the function that will call the external file.  I found this gem when looking at how popular WP theme called Atahualpa handled it&#8217;s external CSS.</p>
<pre class="brush: php; light: true;">
	add_action('template_redirect', 'my_theme_css_display');
	function my_theme_css_display(){
		$css = get_query_var('my_theme_custom_var');
		if ($css == 'css'){
			include_once (TEMPLATEPATH . '/style.php');
			exit;  //This stops WP from loading any further
		}
	}
</pre>
<p>This code now will check if a query is passed to WP with the value my_theme_custom_var and if it is and has the value of css then it includes the style.php file which is our dynamic CSS file.  Then the code exits which stops any other functions from happening other wise the whole home page is outputted along with the style.php file, which isn&#8217;t what is needed only the file.<br />
Now you can use any WP functions on the style.php file as it is included from the functions.php file which is a standard WP file.<br />
Source : <a href="http://willnorris.com/2009/06/wordpress-plugin-pet-peeve-2-direct-calls-to-plugin-files">Will Norris</a></p>
<p>&copy;2010 <a href="http://clark-technet.com">Jeremy Clark - TechNet.com</a>. All Rights Reserved.</p>.

<br /><p>Related posts:<ol><li><a href='http://clark-technet.com/2010/01/wordpress-theme-options-framework-ver-2' rel='bookmark' title='Permanent Link: WordPress Theme Options Framework Ver 2'>WordPress Theme Options Framework Ver 2</a> <small>An updated version of my Theme Options Framework rewritten for...</small></li>
<li><a href='http://clark-technet.com/2009/09/wordpress-theme-dev-tip-dynamic-stylesheets' rel='bookmark' title='Permanent Link: WordPress Theme Dev Tip &#8211; Dynamic Stylesheets'>WordPress Theme Dev Tip &#8211; Dynamic Stylesheets</a> <small>A dynamic stylesheet using php is a powerful thing, when...</small></li>
<li><a href='http://clark-technet.com/2010/03/wordpress-theme-developers-tip-adding-theme-menu' rel='bookmark' title='Permanent Link: WordPress Theme Developers Tip &#8211; Adding Theme Menu'>WordPress Theme Developers Tip &#8211; Adding Theme Menu</a> <small>Sometimes a theme just outgrows having one menu page for...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://clark-technet.com/2010/01/wordpress-theme-developers-tip-call-dynamic-css-the-right-way/feed</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>WordPress Theme Options Framework Ver 2</title>
		<link>http://clark-technet.com/2010/01/wordpress-theme-options-framework-ver-2</link>
		<comments>http://clark-technet.com/2010/01/wordpress-theme-options-framework-ver-2#comments</comments>
		<pubDate>Tue, 12 Jan 2010 16:35:50 +0000</pubDate>
		<dc:creator>Jeremy Clark</dc:creator>
				<category><![CDATA[guides]]></category>
		<category><![CDATA[tech]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[theme]]></category>
		<category><![CDATA[tips]]></category>

		<guid isPermaLink="false">http://clark-technet.com/?p=444</guid>
		<description><![CDATA[An updated version of my Theme Options Framework rewritten for optimization.  Reduced the number of calls to database by reducing the number of entries added to database.  Also included a simple style.php file and header.php file to show how to use the options on an external file.


Related posts:<ol><li><a href='http://clark-technet.com/2008/09/wordpress-theme-options-framework' rel='bookmark' title='Permanent Link: WordPress Theme Options Framework'>WordPress Theme Options Framework</a> <small>Framework for those wanting to add an options page to...</small></li>
<li><a href='http://clark-technet.com/2009/09/wordpress-theme-dev-tip-dynamic-stylesheets' rel='bookmark' title='Permanent Link: WordPress Theme Dev Tip &#8211; Dynamic Stylesheets'>WordPress Theme Dev Tip &#8211; Dynamic Stylesheets</a> <small>A dynamic stylesheet using php is a powerful thing, when...</small></li>
<li><a href='http://clark-technet.com/2010/01/wordpress-theme-developers-tip-call-dynamic-css-the-right-way' rel='bookmark' title='Permanent Link: WordPress Theme Developers Tip &#8211; Call Dynamic CSS the Right Way'>WordPress Theme Developers Tip &#8211; Call Dynamic CSS the Right Way</a> <small>While developing my Techozoic theme, I&#8217;ve progressed from adding custom...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><img src="http://clark-technet.com/wp-content/uploads/2008/10/wordpresstip.jpg" alt="" title="WordPress" width="75" height="75" class="alignleft size-full wp-image-316" /><!-- WSA: ad in context small-square not shown: too many ads --> As I&#8217;ve worked more on my theme and increased my coding skills I&#8217;ve added to my <a href="http://clark-technet.com/2008/09/wordpress-theme-options-framework">original theme option framework</a>.  I&#8217;ve become more aware of best practices of coding and WordPress, a big issue with the original framework was the way options were added to the wp_options database table.  Each theme option got it&#8217;s own entry in the table, this might be okay for small theme, but I&#8217;ve grown to over 40 different options in my Techozoic theme.  It was time to optimize, with the new framework the entries added to the wp_options table went from 40 to 2.  I&#8217;ll continue below with code examples and explanations.  As an added bonus I&#8217;ve included an example of how to pull your theme options into a external stylesheet, based off of <a href="http://clark-technet.com/2009/09/wordpress-theme-dev-tip-dynamic-stylesheets">this concept</a>.</p>
<p><span class="alignright more"><span id="more-444"></span></span></p>
<p>Here is the updated framework files:</p>
<ul class="download alignleft">
<li class="aligncenter"><a href='http://clark-technet.com/wp-content/uploads/2010/01/theme_option_framework.zip'>Download</a></li>
</ul>
<p>
After you have the controlpanel.php file uploaded to your server into your theme&#8217;s main directory you&#8217;ll need to add this line to your functions.php file</p>
<pre class="brush: php; light: true;">&lt;?php require_once(TEMPLATEPATH . '/controlpanel.php'); ?&gt;</pre>
<p>Now you&#8217;ll need to start editing the array values to add your options.  The way you add options to the framework is still the same following the below templates.</p>
<pre class="brush: php;">
$options = array (
    array(  &quot;name&quot; =&gt; &quot;Radio Selection Set&quot;,
            &quot;desc&quot; =&gt; &quot;This is a descriptions&quot;,
            &quot;id&quot; =&gt; $shortname.&quot;_radio&quot;,
            &quot;type&quot; =&gt; &quot;radio&quot;,
            &quot;std&quot; =&gt; &quot;3&quot;,
            &quot;options&quot; =&gt; array(&quot;3&quot;, &quot;2&quot;, &quot;1&quot;)),

    array(  &quot;name&quot; =&gt; &quot;Text Box&quot;,
            &quot;desc&quot; =&gt; &quot;This is a descriptions&quot;,
            &quot;id&quot; =&gt; $shortname.&quot;_text_box&quot;,
            &quot;std&quot; =&gt; &quot;Some Default Text&quot;,
            &quot;type&quot; =&gt; &quot;text&quot;),

    array(  &quot;name&quot; =&gt; &quot;Bigger Text Box&quot;,
            &quot;desc&quot; =&gt; &quot;This is a descriptions&quot;,
            &quot;id&quot; =&gt; $shortname.&quot;_bigger_box&quot;,
            &quot;std&quot; =&gt; &quot;Default Text&quot;,
            &quot;type&quot; =&gt; &quot;textarea&quot;),

    array(  &quot;name&quot; =&gt; &quot;Dropdown Selection Menu&quot;,
            &quot;desc&quot; =&gt; &quot;This is a descriptions&quot;,
            &quot;id&quot; =&gt; $shortname.&quot;_dropdown_menu&quot;,
            &quot;type&quot; =&gt; &quot;select&quot;,
            &quot;std&quot; =&gt; &quot;Default&quot;,
            &quot;options&quot; =&gt; array(&quot;Default&quot;, &quot;Option 1&quot;, &quot;Option 2&quot;)),

    array(  &quot;name&quot; =&gt; &quot;Checkbox selection set&quot;,
            &quot;desc&quot; =&gt; &quot;This is a descriptions&quot;,
            &quot;id&quot; =&gt; $shortname.&quot;_checkbox_menu&quot;,
            &quot;type&quot; =&gt; &quot;checkbox&quot;,
            &quot;std&quot; =&gt; &quot;Default&quot;,
            &quot;options&quot; =&gt; array(&quot;Default&quot;, &quot;Option 1&quot;, &quot;Option 2&quot;)),

    array(  &quot;name&quot; =&gt; &quot;Multiple selection box&quot;,
            &quot;desc&quot; =&gt; &quot;This is a descriptions&quot;,
            &quot;id&quot; =&gt; $shortname.&quot;_multi_select_dropdown_menu&quot;,
            &quot;type&quot; =&gt; &quot;multiselect&quot;,
            &quot;std&quot; =&gt; &quot;Default&quot;,
            &quot;options&quot; =&gt; array(&quot;Defaults&quot;, &quot;Option 1s&quot;, &quot;Option 2s&quot;))
);
</pre>
<p>Another new feature I&#8217;ve added is a theme init script.  It&#8217;s useful for adding default values to the wp_options table.  This code will also pull values already in separate wp_options entries and put them into the single array wp_option, then delete the old entries.  Then the code sets a separate value in the wp_options table as a check so the script will only run if it doesn&#8217;t find that value.  Then the function is added to the dashboard and main page header via the action hook.  So the first time any visits a page in the dashboard or on the blog the mytheme_add_options will run, but only the first time.</p>
<pre class="brush: php;">
function mytheme_add_options() {
global $themename, $shortname, $options;
foreach ($options as $value) {
	$key = $value['id'];
	$val = $value['std'];
		if( $existing = get_option($key)){
			$new_options[$key] = $existing;
			delete_option($key);
		} else {
			$new_options[$key] = $val;
			delete_option($key);
		}
}
add_option($shortname.'_options', $new_options );
}

function first_run_options() {
global $shortname;
$check = get_option($shortname.'_activation_check');
	if ( $check != &quot;set&quot; ) {
		mytheme_add_options();
   		add_option($shortname.'_activation_check', &quot;set&quot;);
  	}
}
add_action('wp_head', 'first_run_options');
add_action('admin_head', 'first_run_options');
</pre>
<p>After you have your option page the way you like you&#8217;ll need some way of get the variables onto other pages of you theme.  You&#8217;ll need to add these next few lines to every page on which you plan to use the theme variables.  Then the variables will be called like an array with the key being the option id.</p>
<pre class="brush: php; light: true;">
&lt;?php
global $shortname;
$settings = get_option($shortname.'_options');
// Options are called like this $settings['option_id'];
?&gt;
</pre>
<p>Now you can use the variables on this page.  The variables will look like this let&#8217;s assume you set $shortname = &#8220;theme&#8221;, then your variables will look like this $theme_radio, $theme_text_box, $theme_bigger_box, $theme_dropdown_menu.  Also keep in mind that you can add one than one of any kind of element, you can also rename any of the elements for easier variable management.  Where &#8220;id&#8221; => $shortname.&#8221;_radio&#8221;, is defined you can change the _radio part to reflect what the option is actually for. To check the value of your multiple selection or checkbox variables you&#8217;ll need to use this.  Where Item is the value that your checking that is selected or checked.</p>
<pre class="brush: php; light: true;">
&lt;?php
if(in_array(&quot;Item&quot;,$settings['theme_checkbox']));
?&gt;
</pre>
<p>Now I&#8217;ll show how to use your theme options on an external stylesheet rather than placing them in the head of the theme, which is bad web practice.  It also has the added benefit of the page being cached by the browser so it will also save on bandwidth.</p>
<pre class="brush: php;">
&lt;?php
global $options, $shortname;
$settings = get_option($shortname.'_options');
//Options will be called like this $settings['shortname_option_name']
&lt;head&gt;
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; media=&quot;screen&quot; href=&quot;&lt;?php bloginfo('home') ?&gt;/?css=css&quot;/&gt;

&lt;?php
if ( is_singular() ) wp_enqueue_script( 'comment-reply' );
wp_head(); ?&gt;
&lt;/head&gt;
</pre>
<p>This code uses something called a query variable that is registered in the functions.php file like shown below to call the style.php file and allow it to use WordPress builtin functions for calling options.  Much cleaner and safer than the $_GET method I used earlier.</p>
<pre class="brush: php;">
&lt;?php

	function add_new_var_to_wp($public_query_vars) {

		$public_query_vars[] = 'css';

		return $public_query_vars;

	}

	function dynamic_css_display(){

		$css = get_query_var('css');

		if ($css == 'css'){

			include_once (TEMPLATEPATH . '/style.php');

			exit;

		}

	}

	add_filter('query_vars', 'add_new_var_to_wp');

	add_action('template_redirect', 'dynamic_css_display');

?&gt;
</pre>
<p>This registers the query variable called css and if that variable is set to css as it is when the stylesheet is called in the header with the ?css=css appended to the end then the style.php file is included then the everything else is stopped with the exit in the code.  </p>
<pre class="brush: php;">
&lt;?php
global $shortname;
header('Content-type: text/css');
header(&quot;Cache-Control: must-revalidate&quot;);
$offset = 72000 ;
$ExpStr = &quot;Expires: &quot; . gmdate(&quot;D, d M Y H:i:s&quot;, time() + $offset) . &quot; GMT&quot;;
header($ExpStr);
$settings = get_option($shortname.'_options');
// Variables should be added with {} brackets
echo &lt;&lt;&lt;CSS
/*Style Sheet Start*/
body {
background-color: {$settings['theme_option_color']};
}
CSS;
//More php can go here
echo &lt;&lt;&lt;CSS
/*Style Sheet End*/
CSS;
?&gt;
</pre>
<p>The style.php file can now use the WordPress function get_option for retrieving options from the database.  Once this is done then the option variables will be called as an array with the option id being the key ie: $settings['theme_option_color']</p>
<h3> Update </h3>
<p>I&#8217;ve had a request for adding an upload form to the options page for adding a custom header image.  I&#8217;ve done this same thing in my Techozoic theme, if you would like to look at it to see a practical use of it you can download it <a href="http://wordpress.org/extend/themes/techozoic-fluid">here</a>.  Basically you&#8217;ll need to add a separate file to process the uploaded files, and the form to upload the files.  An example upload file can be downloaded <a href='http://clark-technet.com/wp-content/uploads/2010/01/upload.zip'>here</a>.  Then the form can be added to the options page with this code.</p>
<pre class="brush: php; light: true;">
&lt;form enctype=&quot;multipart/form-data&quot; encoding=&quot;multipart/form-data&quot; action=&quot;&lt;?php bloginfo('template_directory') ?&gt;/upload.php&quot; method=&quot;post&quot;&gt;
&lt;input type=&quot;file&quot; name=&quot;file&quot; /&gt;&lt;br /&gt;
&lt;input type=&quot;submit&quot; name=&quot;submit&quot; value=&quot;Upload&quot; /&gt;
&lt;/form&gt;
</pre>
<p>You just need to upload the file and make sure it&#8217;s in the root of your theme directory and named upload.php.  You can also edit the upload.php file to change the restrictions on file size and file type.  I&#8217;ve set the upload.php file to only accept jpg, gif, and png files under 1 MB which should be fine for uploading header images.</p>
<p>&copy;2010 <a href="http://clark-technet.com">Jeremy Clark - TechNet.com</a>. All Rights Reserved.</p>.

<br /><p>Related posts:<ol><li><a href='http://clark-technet.com/2008/09/wordpress-theme-options-framework' rel='bookmark' title='Permanent Link: WordPress Theme Options Framework'>WordPress Theme Options Framework</a> <small>Framework for those wanting to add an options page to...</small></li>
<li><a href='http://clark-technet.com/2009/09/wordpress-theme-dev-tip-dynamic-stylesheets' rel='bookmark' title='Permanent Link: WordPress Theme Dev Tip &#8211; Dynamic Stylesheets'>WordPress Theme Dev Tip &#8211; Dynamic Stylesheets</a> <small>A dynamic stylesheet using php is a powerful thing, when...</small></li>
<li><a href='http://clark-technet.com/2010/01/wordpress-theme-developers-tip-call-dynamic-css-the-right-way' rel='bookmark' title='Permanent Link: WordPress Theme Developers Tip &#8211; Call Dynamic CSS the Right Way'>WordPress Theme Developers Tip &#8211; Call Dynamic CSS the Right Way</a> <small>While developing my Techozoic theme, I&#8217;ve progressed from adding custom...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://clark-technet.com/2010/01/wordpress-theme-options-framework-ver-2/feed</wfw:commentRss>
		<slash:comments>39</slash:comments>
		</item>
		<item>
		<title>Ubuntu 9.10 Released</title>
		<link>http://clark-technet.com/2009/10/ubuntu-9-10-released</link>
		<comments>http://clark-technet.com/2009/10/ubuntu-9-10-released#comments</comments>
		<pubDate>Thu, 29 Oct 2009 20:03:50 +0000</pubDate>
		<dc:creator>Jeremy Clark</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[9.10]]></category>
		<category><![CDATA[os]]></category>
		<category><![CDATA[release]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://clark-technet.com/?p=442</guid>
		<description><![CDATA[Ubuntu, Canonical flagship Linux OS is now in version 9.10 which released 10/29/2009.  New features are included for both the Desktop and Server versions.


Related posts:<ol><li><a href='http://clark-technet.com/2009/04/ubuntu-and-kubuntu-904-released' rel='bookmark' title='Permanent Link: Ubuntu &#038; Kubuntu 9.04 Released'>Ubuntu &#038; Kubuntu 9.04 Released</a> <small>Ubuntu/Kubuntu 9.04 aka Jaunty Jackalope is now ready for download....</small></li>
<li><a href='http://clark-technet.com/2009/03/ubuntu-904-beta-available' rel='bookmark' title='Permanent Link: Ubuntu 9.04 beta available'>Ubuntu 9.04 beta available</a> <small>Ubuntu 9.04 beta has been released and new features include...</small></li>
<li><a href='http://clark-technet.com/2009/04/vmware-launches-its-cloud-os-vsphere-4' rel='bookmark' title='Permanent Link: VMware Launches It&#8217;s Cloud OS &#8211; vSphere 4'>VMware Launches It&#8217;s Cloud OS &#8211; vSphere 4</a> <small>VMware announced it's newest product dubbed vSphere 4. vSphere allows...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.ubuntu.com/products/whatisubuntu"><img src="http://clark-technet.com/wp-content/uploads/2008/03/ubuntulogo.jpg" alt="ubuntulogo" title="ubuntulogo" width="150" height="41" class="alignleft size-full wp-image-240" /></a> Ubuntu the Linux distro from Canonical has released a new version 9.10.  The biggest new features are Firefox 3.5 and access to &#8220;<a href="https://one.ubuntu.com/">Ubuntu One</a>&#8220;, online storage space.  Every user gets 2GB of free space for backup and sharing.  Of course access to thousands of applications and games is available through the software center as well.  This release was focused on beautification of the desktop rather than major feature inclusion.  </p>
<p>The server edition wasn&#8217;t overlooked though, it now includes <a href="http://www.ubuntu.com/cloud/private">Ubuntu Enterprise Cloud</a>.  Organizations that use Ubuntu Server can now take advantage of <a href="http://en.wikipedia.org/wiki/Cloud_computing">cloud computing</a>.</p>
<ul>
<li><a href="http://www.ubuntu.com/products/whatisubuntu/910features/">Ubuntu Desktop</a></li>
<li><a href="http://www.ubuntu.com/news/ubuntu-910-server-edition">Ubuntu Server</a></li>
</ul>
<p>&copy;2010 <a href="http://clark-technet.com">Jeremy Clark - TechNet.com</a>. All Rights Reserved.</p>.

<br /><p>Related posts:<ol><li><a href='http://clark-technet.com/2009/04/ubuntu-and-kubuntu-904-released' rel='bookmark' title='Permanent Link: Ubuntu &#038; Kubuntu 9.04 Released'>Ubuntu &#038; Kubuntu 9.04 Released</a> <small>Ubuntu/Kubuntu 9.04 aka Jaunty Jackalope is now ready for download....</small></li>
<li><a href='http://clark-technet.com/2009/03/ubuntu-904-beta-available' rel='bookmark' title='Permanent Link: Ubuntu 9.04 beta available'>Ubuntu 9.04 beta available</a> <small>Ubuntu 9.04 beta has been released and new features include...</small></li>
<li><a href='http://clark-technet.com/2009/04/vmware-launches-its-cloud-os-vsphere-4' rel='bookmark' title='Permanent Link: VMware Launches It&#8217;s Cloud OS &#8211; vSphere 4'>VMware Launches It&#8217;s Cloud OS &#8211; vSphere 4</a> <small>VMware announced it's newest product dubbed vSphere 4. vSphere allows...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://clark-technet.com/2009/10/ubuntu-9-10-released/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPress, Caching, and Compression</title>
		<link>http://clark-technet.com/2009/10/wordpress-caching-and-compression</link>
		<comments>http://clark-technet.com/2009/10/wordpress-caching-and-compression#comments</comments>
		<pubDate>Tue, 27 Oct 2009 20:09:52 +0000</pubDate>
		<dc:creator>Jeremy Clark</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[tech]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[blog]]></category>
		<category><![CDATA[caching]]></category>
		<category><![CDATA[compression]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://clark-technet.com/?p=440</guid>
		<description><![CDATA[After reading an interesting article dealing with optimizing your WordPress blog I decided to optimize mine.  I detail how I cut page load times in half by simply enabling caching and compression in an Apache web server.


Related posts:<ol><li><a href='http://clark-technet.com/2009/09/wordpress-theme-dev-tip-dynamic-stylesheets' rel='bookmark' title='Permanent Link: WordPress Theme Dev Tip &#8211; Dynamic Stylesheets'>WordPress Theme Dev Tip &#8211; Dynamic Stylesheets</a> <small>A dynamic stylesheet using php is a powerful thing, when...</small></li>
<li><a href='http://clark-technet.com/2009/01/minor-technical-issue' rel='bookmark' title='Permanent Link: Minor Technical Issue'>Minor Technical Issue</a> <small>Sometime during the night the power went out and the...</small></li>
<li><a href='http://clark-technet.com/2006/05/installing-php-v-5' rel='bookmark' title='Permanent Link: Installing PHP v. 5'>Installing PHP v. 5</a> <small>As promised I&#8217;m writing a guide for installing PHP on...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><img src="http://clark-technet.com/wp-content/uploads/2009/10/apache.jpg" alt="Apache" title="Apache" width="100" height="76" class="alignleft size-full wp-image-441" />After reading this <a href="http://sewmyheadon.com/2009/5-free-ways-to-bulletproof-your-wordpress-site/">article</a> dealing with &#8220;bulletproofing&#8221; a blog, I started looking at my own blog.  Over the past few months as more and more great plugins come out that I depend on now, my page load times had started suffering.  A load time of 14 seconds on a T1 was not unheard of, and it could get as bad as 20 seconds on some days.  The article by Eric Amundson had a <a href="http://sewmyheadon.com/2009/5-free-ways-to-bulletproof-your-wordpress-site/#wcsea3">link</a> to a couple of Firefox plugins that looked promising in helping diagnose ailing websites.  One is <a href="http://code.google.com/speed/page-speed/">Page Speed</a> from Google.  The other from Yahoo! called <a href="http://addons.mozilla.org/en-US/firefox/addon/5369">YSlow</a>.</p>
<p><span id="more-440"></span></p>
<p>After downloading both of these and running them against my blog both were suggesting what I thought at the time would be a major project, enabling <a href="http://httpd.apache.org/docs/2.2/caching.html">caching</a> and <a href="http://httpd.apache.org/docs/2.2/mod/mod_deflate.html">gzip compression</a> on my server.  To enable caching I found this <a href="http://www.askapache.com/htaccess/speed-up-your-site-with-caching-and-cache-control.html">site</a> that had great examples of a simple addition to the .htaccess file in the blog directory would enable caching.  The only thing needing to be edited in Apache is making sure that mod_cache and mod_expires modules are loaded.  Most standard installations will already have these loaded for you.  </p>
<p>After this I started working on enabling compression.  I again found another good resource on how to do that <a href="http://www.techiegyan.com/?p=251">here</a>.  I left out the section of mod_expires since I had a .htaccess file with that code already.  After doing this and a few other minor adjustments, my page load times were cut in half.  On average 7-8 seconds for a first time visit and under 2 seconds for opening a post or another page thanks to most elements already being cached.</p>
<p>&copy;2010 <a href="http://clark-technet.com">Jeremy Clark - TechNet.com</a>. All Rights Reserved.</p>.

<br /><p>Related posts:<ol><li><a href='http://clark-technet.com/2009/09/wordpress-theme-dev-tip-dynamic-stylesheets' rel='bookmark' title='Permanent Link: WordPress Theme Dev Tip &#8211; Dynamic Stylesheets'>WordPress Theme Dev Tip &#8211; Dynamic Stylesheets</a> <small>A dynamic stylesheet using php is a powerful thing, when...</small></li>
<li><a href='http://clark-technet.com/2009/01/minor-technical-issue' rel='bookmark' title='Permanent Link: Minor Technical Issue'>Minor Technical Issue</a> <small>Sometime during the night the power went out and the...</small></li>
<li><a href='http://clark-technet.com/2006/05/installing-php-v-5' rel='bookmark' title='Permanent Link: Installing PHP v. 5'>Installing PHP v. 5</a> <small>As promised I&#8217;m writing a guide for installing PHP on...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://clark-technet.com/2009/10/wordpress-caching-and-compression/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Comment Problem Fixed</title>
		<link>http://clark-technet.com/2009/10/comment-problem-fixed</link>
		<comments>http://clark-technet.com/2009/10/comment-problem-fixed#comments</comments>
		<pubDate>Tue, 06 Oct 2009 14:04:50 +0000</pubDate>
		<dc:creator>Jeremy Clark</dc:creator>
				<category><![CDATA[Aside]]></category>

		<guid isPermaLink="false">http://clark-technet.com/?p=439</guid>
		<description><![CDATA[If anyone has tried to comment and couldn&#8217;t the problem is now fixed. While cleaning my database I accidentally deleted a needed field in the comment table. No big deal I readded it and now up and going again. So if you had a question or comment you should be able to post it now. [...]


Related posts:<ol><li><a href='http://clark-technet.com/2009/04/expandable-comment-replies-plugin-review' rel='bookmark' title='Permanent Link: Expandable Comment Replies &#8211; Plugin Review'>Expandable Comment Replies &#8211; Plugin Review</a> <small>My review of a new plugin that is running on...</small></li>
<li><a href='http://clark-technet.com/2008/11/wordpress-27-comment-callback-function' rel='bookmark' title='Permanent Link: WordPress 2.7 Comment Callback Function'>WordPress 2.7 Comment Callback Function</a> <small>Tutorial on WordPress 2.7 new comment callback function, complete with...</small></li>
<li><a href='http://clark-technet.com/2009/03/optimize-your-wordpress-theme-for-search-engines-part-1' rel='bookmark' title='Permanent Link: Optimize your WordPress theme for Search Engines &#8211; Part 1'>Optimize your WordPress theme for Search Engines &#8211; Part 1</a> <small>1st in the series of SEO for you WordPress theme....</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>If anyone has tried to comment and couldn&#8217;t the problem is now fixed.  While cleaning my database I accidentally deleted a needed field in the comment table.  No big deal I readded it and now up and going again.  So if you had a question or comment you should be able to post it now.  Sorry for any inconvience.</p>
<p>&copy;2010 <a href="http://clark-technet.com">Jeremy Clark - TechNet.com</a>. All Rights Reserved.</p>.

<br /><p>Related posts:<ol><li><a href='http://clark-technet.com/2009/04/expandable-comment-replies-plugin-review' rel='bookmark' title='Permanent Link: Expandable Comment Replies &#8211; Plugin Review'>Expandable Comment Replies &#8211; Plugin Review</a> <small>My review of a new plugin that is running on...</small></li>
<li><a href='http://clark-technet.com/2008/11/wordpress-27-comment-callback-function' rel='bookmark' title='Permanent Link: WordPress 2.7 Comment Callback Function'>WordPress 2.7 Comment Callback Function</a> <small>Tutorial on WordPress 2.7 new comment callback function, complete with...</small></li>
<li><a href='http://clark-technet.com/2009/03/optimize-your-wordpress-theme-for-search-engines-part-1' rel='bookmark' title='Permanent Link: Optimize your WordPress theme for Search Engines &#8211; Part 1'>Optimize your WordPress theme for Search Engines &#8211; Part 1</a> <small>1st in the series of SEO for you WordPress theme....</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://clark-technet.com/2009/10/comment-problem-fixed/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPress Theme Dev Tip &#8211; Dynamic Stylesheets</title>
		<link>http://clark-technet.com/2009/09/wordpress-theme-dev-tip-dynamic-stylesheets</link>
		<comments>http://clark-technet.com/2009/09/wordpress-theme-dev-tip-dynamic-stylesheets#comments</comments>
		<pubDate>Fri, 18 Sep 2009 20:32:51 +0000</pubDate>
		<dc:creator>Jeremy Clark</dc:creator>
				<category><![CDATA[tips]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[Techozoic]]></category>
		<category><![CDATA[theme]]></category>

		<guid isPermaLink="false">http://clark-technet.com/?p=436</guid>
		<description><![CDATA[A dynamic stylesheet using php is a powerful thing, when accompanied by a user options page it can really make a theme.  I've recently done this to my Techozoic theme, and I'm going to share how this works and some time saving tips.


Related posts:<ol><li><a href='http://clark-technet.com/2008/09/wordpress-theme-options-framework' rel='bookmark' title='Permanent Link: WordPress Theme Options Framework'>WordPress Theme Options Framework</a> <small>Framework for those wanting to add an options page to...</small></li>
<li><a href='http://clark-technet.com/2010/01/wordpress-theme-developers-tip-call-dynamic-css-the-right-way' rel='bookmark' title='Permanent Link: WordPress Theme Developers Tip &#8211; Call Dynamic CSS the Right Way'>WordPress Theme Developers Tip &#8211; Call Dynamic CSS the Right Way</a> <small>While developing my Techozoic theme, I&#8217;ve progressed from adding custom...</small></li>
<li><a href='http://clark-technet.com/2010/01/wordpress-theme-options-framework-ver-2' rel='bookmark' title='Permanent Link: WordPress Theme Options Framework Ver 2'>WordPress Theme Options Framework Ver 2</a> <small>An updated version of my Theme Options Framework rewritten for...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><a href="http://clark-technet.com/wp-content/uploads/2008/10/wordpresstip.jpg"><img src="http://clark-technet.com/wp-content/uploads/2008/10/wordpresstip.jpg" alt="WordPress" title="WordPress" width="75" height="75" class="alignleft size-full wp-image-316" /></a>A <a href="http://clark-technet.com/2009/09/dynamic-stylesheets-using-php">dynamic stylesheet</a> using php is a powerful thing, when accompanied by a user options page it can really make a theme.  I&#8217;ve recently done this to my <a href="http://wordpress.org/extend/themes/techozoic-fluid">Techozoic</a> theme, and I&#8217;m going to share how this works and some time saving tips.</p>
<p>First you&#8217;ll want some way of letting the theme user choose what will change in the stylesheet, I explain how to do this with a theme options framework<a href="http://clark-technet.com/2008/09/wordpress-theme-options-framework"> here</a>.  After you&#8217;ve got all the options set the way you want you need some way of getting those into your theme.  At first I was just using <code>&lt;style&gt;&lt;/style&gt;</code> tags in the header of the theme, while this works it just isn&#8217;t an efficient way of writing a theme.  What I wanted to do was have an external file that changed with the options but that could also be cached by the web browser, to improve performance, save bandwidth and overall have a better written theme.</p>
<p>Now if your using a framework similar to mine or your using mine then you know you have to pull some info from the WordPress database to fill in your variables from your option page.  This posed the biggest problem because since this was an external page none of the WordPress functions would work.  To get around this in the first version I just loaded the wp-config.php and wp-load.php files in the top of the file.  This is bad practice because WordPress site owners can move these files around now and there is now way to know where to load these from.  So I spotted the solution from another theme developer.  Making an array of all the option values then using php GET variable on the external stylesheet.  Now onto the actual code.</p>
<p><span class="alignright more"><span id="more-436"></span></span></p>
<p>First this is the code that my framework uses to pull the options from the WordPress database.</p>
<pre class="brush: php; light: true;">
&lt;?php
global $options;
foreach ($options as $value) {
	if($value['type']!=&quot;checkbox&quot; and $value['type']!=&quot;multiselect&quot;){
		if (get_settings( $value['id'] ) === FALSE) { $$value['id'] = $value['std']; } else {
		$$value['id'] = get_settings( $value['id'] ); }
	}else{
		if (get_settings( $value['id'] ) === FALSE) { $$value['id'] = explode(&quot;,&quot;,$value['std']); } else {
		$$value['id'] = explode(&quot;,&quot;,get_settings( $value['id'] )); }
	}
} ?&gt;
</pre>
<p>I just modified it to add all the values to another variable seperated by a |.</p>
<pre class="brush: php; light: true;">
&lt;?php
global $options;
foreach ($options as $value) {
	if($value['type']!=&quot;checkbox&quot; and $value['type']!=&quot;multiselect&quot;){
		if (get_settings( $value['id'] ) === FALSE) { $$value['id'] = $value['std']; } else {
		$$value['id'] = get_settings( $value['id'] ); }
	}else{
		if (get_settings( $value['id'] ) === FALSE) { $$value['id'] = explode(&quot;,&quot;,$value['std']); } else {
		$$value['id'] = explode(&quot;,&quot;,get_settings( $value['id'] )); }
	}
$css .= $$value['id'].&quot;|&quot;; }
$css = urlencode($css);
?&gt;
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; media=&quot;screen&quot; href=&quot;&lt;?php bloginfo('template_directory') ?&gt;/style.php?css=&lt;?php echo $css;?&gt;&quot;/&gt;
</pre>
<p>So now the variable $css now holds all the values of the options set by the theme user.  Then for the external stylesheet it should be named whatever you like except instead of a .css extension give it a .php extension so the php processing engine of the web server will know it has php in it.  Then the link tag gives the path to the style.php file but also notice it appends the<code>?css=&lt;?php echo $css;?&gt;</code> this actually sends all the options to the dynamic stylesheet called style.php.  Then you&#8217;ll just need to add this to the top of the style.php file.</p>
<pre class="brush: php; light: true;">
&lt;?php
header('Content-type: text/css');
header(&quot;Cache-Control: must-revalidate&quot;);
$offset = 72000 ;
$ExpStr = &quot;Expires: &quot; . gmdate(&quot;D, d M Y H:i:s&quot;, time() + $offset) . &quot; GMT&quot;;
header($ExpStr);
$css = $_GET[&quot;css&quot;];
$css = urldecode($css);
$s = explode(&quot;|&quot;, $css);
</pre>
<p>This tells the web browser to process the output of this file as plain text and use a stylesheet instructions.  This also sets up the caching that was important to me.  Then it gets the value of $css which was passed to the style.php file when it was called in the header.php of the theme.  After that it decodes it and then <a href="http://us3.php.net/explode">explodes</a> it into an <a href="http://us3.php.net/manual/en/language.types.array.php">array</a>.  Now to access your option values you&#8217;ll just use variables like this.</p>
<pre class="brush: php; light: true;">
$s[0]
$s[1]
</pre>
<p>It&#8217;s important to know the order your options will be added to the array so you can call the right value when needed, also keep in mind that arrays start at 0 so the first value will not be 1.  For an example you can download my <a href="http://wordpress.org/extend/themes/techozoic-fluid">Techozoic</a> theme and look in the controlpanel.php for the options framework then in the header.php for the code to pull the options into the array then in the style.php file itself to see how to use the variables in the stylesheet.  In my theme however since I already had most of the variables already named I just assigned the value of the array to the different variables I already had setup.  It makes it easier in the long run I think because you can give more descriptive names to make everything more readable and easier to understand.</p>
<p>&copy;2010 <a href="http://clark-technet.com">Jeremy Clark - TechNet.com</a>. All Rights Reserved.</p>.

<br /><p>Related posts:<ol><li><a href='http://clark-technet.com/2008/09/wordpress-theme-options-framework' rel='bookmark' title='Permanent Link: WordPress Theme Options Framework'>WordPress Theme Options Framework</a> <small>Framework for those wanting to add an options page to...</small></li>
<li><a href='http://clark-technet.com/2010/01/wordpress-theme-developers-tip-call-dynamic-css-the-right-way' rel='bookmark' title='Permanent Link: WordPress Theme Developers Tip &#8211; Call Dynamic CSS the Right Way'>WordPress Theme Developers Tip &#8211; Call Dynamic CSS the Right Way</a> <small>While developing my Techozoic theme, I&#8217;ve progressed from adding custom...</small></li>
<li><a href='http://clark-technet.com/2010/01/wordpress-theme-options-framework-ver-2' rel='bookmark' title='Permanent Link: WordPress Theme Options Framework Ver 2'>WordPress Theme Options Framework Ver 2</a> <small>An updated version of my Theme Options Framework rewritten for...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://clark-technet.com/2009/09/wordpress-theme-dev-tip-dynamic-stylesheets/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Dynamic Stylesheets using PHP</title>
		<link>http://clark-technet.com/2009/09/dynamic-stylesheets-using-php</link>
		<comments>http://clark-technet.com/2009/09/dynamic-stylesheets-using-php#comments</comments>
		<pubDate>Thu, 17 Sep 2009 15:41:33 +0000</pubDate>
		<dc:creator>Jeremy Clark</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[tips]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://clark-technet.com/?p=437</guid>
		<description><![CDATA[Recently while doing some work on my theme for WordPress I came across a very helpful idea.  Using PHP in a stylesheet to make it more dynamic.  The basic idea is to use PHP variables and define certain elements that repeat in various places such as a color code to make it easily changeable by only having to change one line instead of searching for and replacing multiple times.  Other examples are fonts, images, widths, even whole sections of code could be shown or hidden with the use of variables and an if statement.


Related posts:<ol><li><a href='http://clark-technet.com/2009/09/wordpress-theme-dev-tip-dynamic-stylesheets' rel='bookmark' title='Permanent Link: WordPress Theme Dev Tip &#8211; Dynamic Stylesheets'>WordPress Theme Dev Tip &#8211; Dynamic Stylesheets</a> <small>A dynamic stylesheet using php is a powerful thing, when...</small></li>
<li><a href='http://clark-technet.com/2010/01/wordpress-theme-options-framework-ver-2' rel='bookmark' title='Permanent Link: WordPress Theme Options Framework Ver 2'>WordPress Theme Options Framework Ver 2</a> <small>An updated version of my Theme Options Framework rewritten for...</small></li>
<li><a href='http://clark-technet.com/2010/01/wordpress-theme-developers-tip-call-dynamic-css-the-right-way' rel='bookmark' title='Permanent Link: WordPress Theme Developers Tip &#8211; Call Dynamic CSS the Right Way'>WordPress Theme Developers Tip &#8211; Call Dynamic CSS the Right Way</a> <small>While developing my Techozoic theme, I&#8217;ve progressed from adding custom...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><img src="http://clark-technet.com/wp-content/uploads/2008/10/css1.jpg" alt="CSS" title="CSS" width="100" height="100" class="alignleft size-full wp-image-320" /><!-- WSA: ad in context small-square not shown: too many ads -->Recently while doing some work on my <a href="http://wordpress.org/extend/themes/techozoic-fluid">theme</a> for WordPress I came across a very helpful idea.  Using PHP in a stylesheet to make it more dynamic.  The basic idea is to use PHP <a href="http://us3.php.net/language.variables">variables</a> and define certain elements that repeat in various places such as a color code to make it easily changeable by only having to change one line instead of searching for and replacing multiple times.  Other examples are fonts, images, widths, even whole sections of code could be shown or hidden with the use of variables and an <a href="http://us3.php.net/manual/en/control-structures.if.php">if statement</a>.</p>
<p><span class="alignright"><span id="more-437"></span></span></p>
<p>The first difference with using PHP in a stylesheet is the extension of the file has to change, from .css to .php for the web server to know how to process the PHP language in the file.  Then since the file is now a php file it wont be cached by web browsers and will be reloaded every page view which is unnecessary, but there is a way to fix that.  I&#8217;ll now show a very simple dynamic stylesheet then explain each part individually.</p>
<pre class="brush: php;">
&lt;?php
header('Content-type: text/css');
header(&quot;Cache-Control: must-revalidate&quot;);
$offset = 72000 ;
$ExpStr = &quot;Expires: &quot; . gmdate(&quot;D, d M Y H:i:s&quot;, time() + $offset) . &quot; GMT&quot;;
header($ExpStr);

$bg_color = &quot;#FFFF00&quot;;
$body_font = &quot;Tahoma&quot;;
$link_color = &quot;#0000FF&quot;;
$alt_color = &quot;1&quot;;

echo &lt;&lt;&lt;CSS
body {
background-color: {$bg_color};
font-family:{$body_font};
}
a {
color: {$link_color};
}
CSS;

if ($alt_color = 1) {
echo &lt;&lt;&lt;CSS
body {
background-color: #FFFFFF;
}
CSS;
} // Closing If tag
?&gt;
</pre>
<p>Lines 1-6 setup the headers of the file to allow for browser caching, the will reduce bandwidth usage and save on some server processing.  </p>
<pre class="brush: php;">
&lt;?php
header('Content-type: text/css');
header(&quot;Cache-Control: must-revalidate&quot;);
$offset = 72000 ;
$ExpStr = &quot;Expires: &quot; . gmdate(&quot;D, d M Y H:i:s&quot;, time() + $offset) . &quot; GMT&quot;;
header($ExpStr);
</pre>
<p>Next 8-11 then set up the variables that will be used through the rest of the stylesheet.  Notice that everything is enclosed in quotation marks, if for some reason you need to include quotation marks in the variable then you must <a href="http://us3.php.net/manual/en/language.types.string.php">escape</a> it by adding a slash in front of the mark like this \&#8221; .</p>
<pre class="brush: php; first-line: 8;">
$bg_color = &quot;#FFFF00&quot;;
$body_font = &quot;Tahoma&quot;;
$link_color = &quot;#0000FF&quot;;
$alt_color = &quot;1&quot;;
</pre>
<p>On lines 13- 21 the actual styles are <a href="http://us3.php.net/manual/en/function.echo.php">echoed</a> which will print it to the text of the file, but the good thing about having the php is that you can mix in your variables when echoing.  Notice the <code>echo &lt;&lt;&lt;CSS</code> this tells php to output text until it sees CSS again which is on line 21.  Then you also see the <code>{$bg_color}</code>, this is the way to use your variables the {} tell it that it&#8217;s a php variable and to output it&#8217;s value instead of the actual text $bg_color.</p>
<pre class="brush: php; first-line: 13;">
echo &lt;&lt;&lt;CSS
body {
background-color: {$bg_color};
font-family:{$body_font};
}
a {
color: {$link_color};
}
CSS;
</pre>
<p>Finally on lines 23-30 is a simple if statement checking the value of the $alt_color and if it equals 1 then to add lines 24-28 to the output as well.  Then you&#8217;ll see the closing <code>?&gt;</code> tag which says to stop processing the file.</p>
<pre class="brush: php; first-line: 23;">
if ($alt_color = 1) {
echo &lt;&lt;&lt;CSS
body {
background-color: #FFFFFF;
}
CSS;
} // Closing If tag
?&gt;
</pre>
<p>Other Resources:</p>
<ul>
<li><a href="http://us3.php.net/docs.php">PHP Documentation</a></li>
<li><a href="http://www.w3schools.com/php/default.asp">W3Schools PHP tutorials</a></li>
<li><a href="http://www.w3schools.com/css/default.asp">W3Schools CSS tutorials</a></li>
<li><a href="http://www.digital-web.com/articles/generating_dynamic_css_with_php/">Digital Web Magazine Article</a></li>
</ul>
<p>&copy;2010 <a href="http://clark-technet.com">Jeremy Clark - TechNet.com</a>. All Rights Reserved.</p>.

<br /><p>Related posts:<ol><li><a href='http://clark-technet.com/2009/09/wordpress-theme-dev-tip-dynamic-stylesheets' rel='bookmark' title='Permanent Link: WordPress Theme Dev Tip &#8211; Dynamic Stylesheets'>WordPress Theme Dev Tip &#8211; Dynamic Stylesheets</a> <small>A dynamic stylesheet using php is a powerful thing, when...</small></li>
<li><a href='http://clark-technet.com/2010/01/wordpress-theme-options-framework-ver-2' rel='bookmark' title='Permanent Link: WordPress Theme Options Framework Ver 2'>WordPress Theme Options Framework Ver 2</a> <small>An updated version of my Theme Options Framework rewritten for...</small></li>
<li><a href='http://clark-technet.com/2010/01/wordpress-theme-developers-tip-call-dynamic-css-the-right-way' rel='bookmark' title='Permanent Link: WordPress Theme Developers Tip &#8211; Call Dynamic CSS the Right Way'>WordPress Theme Developers Tip &#8211; Call Dynamic CSS the Right Way</a> <small>While developing my Techozoic theme, I&#8217;ve progressed from adding custom...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://clark-technet.com/2009/09/dynamic-stylesheets-using-php/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Firefox 4 Mockups</title>
		<link>http://clark-technet.com/2009/07/firefox-4-mockups</link>
		<comments>http://clark-technet.com/2009/07/firefox-4-mockups#comments</comments>
		<pubDate>Tue, 28 Jul 2009 14:25:10 +0000</pubDate>
		<dc:creator>Jeremy Clark</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[browser]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[Mozilla]]></category>

		<guid isPermaLink="false">http://clark-technet.com/?p=433</guid>
		<description><![CDATA[Mozilla has starting thinking about Firefox 4 and with their new mock ups have starting throwing ideas around.  There are two different versions as of now, tabs below address bar and one with the tabs above the address bar.


Related posts:<ol><li><a href='http://clark-technet.com/2009/05/multi-process-firefox' rel='bookmark' title='Permanent Link: Multi-Process Firefox'>Multi-Process Firefox</a> <small>Mozilla is taking a hint from Google's Chrome, by splitting...</small></li>
<li><a href='http://clark-technet.com/2009/05/mozilla-moving-away-from-tabs' rel='bookmark' title='Permanent Link: Mozilla Moving Away From Tabs'>Mozilla Moving Away From Tabs</a> <small>Mozilla the company behind Firefox thinks that the tabbed interface...</small></li>
<li><a href='http://clark-technet.com/2009/03/microsoft-internet-explorer-8-released' rel='bookmark' title='Permanent Link: Microsoft Internet Explorer 8 Released'>Microsoft Internet Explorer 8 Released</a> <small>IE 8 is set to be released today, some of...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><img src="http://clark-technet.com/wp-content/uploads/2008/03/firefox-logo.png" alt="firefox-logo" title="firefox-logo" width="100" height="99" class="alignleft size-full wp-image-233" />Mozilla has starting thinking about Firefox 4 and with these <a href="https://wiki.mozilla.org/Firefox/4.0_Windows_Theme_Mockups">mock ups</a> have starting throwing ideas around.  There are two different versions as of now, tabs below address bar and one with the tabs above the address bar.  Another thing their showing off is a combo refresh/go/stop button, where depending on what&#8217;s being done in the browser the button changes.<br />
<a href="http://clark-technet.com/wp-content/uploads/2009/07/firefox-mockup.jpg"><img src="http://clark-technet.com/wp-content/uploads/2009/07/firefox-mockup-300x90.jpg" alt="firefox-mockup" title="firefox-mockup" width="300" height="90" class="alignleft size-medium wp-image-434" /></a></p>
<p>&copy;2010 <a href="http://clark-technet.com">Jeremy Clark - TechNet.com</a>. All Rights Reserved.</p>.

<br /><p>Related posts:<ol><li><a href='http://clark-technet.com/2009/05/multi-process-firefox' rel='bookmark' title='Permanent Link: Multi-Process Firefox'>Multi-Process Firefox</a> <small>Mozilla is taking a hint from Google's Chrome, by splitting...</small></li>
<li><a href='http://clark-technet.com/2009/05/mozilla-moving-away-from-tabs' rel='bookmark' title='Permanent Link: Mozilla Moving Away From Tabs'>Mozilla Moving Away From Tabs</a> <small>Mozilla the company behind Firefox thinks that the tabbed interface...</small></li>
<li><a href='http://clark-technet.com/2009/03/microsoft-internet-explorer-8-released' rel='bookmark' title='Permanent Link: Microsoft Internet Explorer 8 Released'>Microsoft Internet Explorer 8 Released</a> <small>IE 8 is set to be released today, some of...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://clark-technet.com/2009/07/firefox-4-mockups/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Firefox 3.5 RC2 available</title>
		<link>http://clark-technet.com/2009/06/firefox-3-5-rc2-available</link>
		<comments>http://clark-technet.com/2009/06/firefox-3-5-rc2-available#comments</comments>
		<pubDate>Mon, 22 Jun 2009 18:11:14 +0000</pubDate>
		<dc:creator>Jeremy Clark</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[browser]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[RC]]></category>

		<guid isPermaLink="false">http://clark-technet.com/?p=432</guid>
		<description><![CDATA[Firefox 3.5 RC2 is available for download from <a href="http://blog.mozilla.com/blog/2009/06/21/firefox-35-release-candidate-available-now/">Mozilla's Blog</a>.  There are big improvements in memory management which has always haunted Firefox.  According to this <a href="http://dotnetperls.com/chrome-memory">site</a> it is now a non-issue, even out performing the other big free browsers.


Related posts:<ol><li><a href='http://clark-technet.com/2007/11/fedora-8-released' rel='bookmark' title='Permanent Link: Fedora 8 Released'>Fedora 8 Released</a> <small>Fedora 8 was released and some of the biggest improvements...</small></li>
<li><a href='http://clark-technet.com/2009/05/multi-process-firefox' rel='bookmark' title='Permanent Link: Multi-Process Firefox'>Multi-Process Firefox</a> <small>Mozilla is taking a hint from Google's Chrome, by splitting...</small></li>
<li><a href='http://clark-technet.com/2009/03/windows-7-may-allow-ie8-to-be-disabled' rel='bookmark' title='Permanent Link: Windows 7 may allow IE8 to be disabled'>Windows 7 may allow IE8 to be disabled</a> <small>Some speculate the inclusion of a way to disable Internet...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><img src="http://clark-technet.com/wp-content/uploads/2008/03/firefox-logo.png" alt="firefox-logo" title="firefox-logo" width="100" height="99" class="alignleft size-full wp-image-233" />For those who don&#8217;t know Firefox is the leading alternative browser to Internet Explorer.  In constant development Firefox is continually improving and version 3.5 should be released soon.  For those that can&#8217;t wait or want to help find bugs the second release candidate has been publicly released.  It&#8217;s available for download from <a href="http://blog.mozilla.com/blog/2009/06/21/firefox-35-release-candidate-available-now/">Mozilla&#8217;s Blog</a>.  There are big improvements in memory management which has always haunted Firefox.  According to this <a href="http://dotnetperls.com/chrome-memory">site</a> it is now a non-issue, even out performing the other big free browsers.  Another big feature is the inclusion of HTML 5 elements, and native support for open-source audio codec Ogg Vorbis.</p>
<p>Source: <a href="http://www.pcmag.com/article2/0,2817,2349115,00.asp">PCMag</a></p>
<p>&copy;2010 <a href="http://clark-technet.com">Jeremy Clark - TechNet.com</a>. All Rights Reserved.</p>.

<br /><p>Related posts:<ol><li><a href='http://clark-technet.com/2007/11/fedora-8-released' rel='bookmark' title='Permanent Link: Fedora 8 Released'>Fedora 8 Released</a> <small>Fedora 8 was released and some of the biggest improvements...</small></li>
<li><a href='http://clark-technet.com/2009/05/multi-process-firefox' rel='bookmark' title='Permanent Link: Multi-Process Firefox'>Multi-Process Firefox</a> <small>Mozilla is taking a hint from Google's Chrome, by splitting...</small></li>
<li><a href='http://clark-technet.com/2009/03/windows-7-may-allow-ie8-to-be-disabled' rel='bookmark' title='Permanent Link: Windows 7 may allow IE8 to be disabled'>Windows 7 may allow IE8 to be disabled</a> <small>Some speculate the inclusion of a way to disable Internet...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://clark-technet.com/2009/06/firefox-3-5-rc2-available/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google&#8217;s Chrome Released on Mac and Linux</title>
		<link>http://clark-technet.com/2009/06/googles-chrome-released-on-mac-and-linux</link>
		<comments>http://clark-technet.com/2009/06/googles-chrome-released-on-mac-and-linux#comments</comments>
		<pubDate>Fri, 05 Jun 2009 12:25:00 +0000</pubDate>
		<dc:creator>Jeremy Clark</dc:creator>
				<category><![CDATA[google]]></category>
		<category><![CDATA[browser]]></category>
		<category><![CDATA[chrome]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[open-source]]></category>

		<guid isPermaLink="false">http://clark-technet.com/?p=431</guid>
		<description><![CDATA[Google's Chromium browser (open-source Chrome) has been released for Mac and select Linux Distros, but the release page warns not to download unless you like incomplete software.


Related posts:<ol><li><a href='http://clark-technet.com/2008/09/google-chromes-first-bug' rel='bookmark' title='Permanent Link: Google Chrome&#8217;s First Bug'>Google Chrome&#8217;s First Bug</a> <small>The first vulnerability of Google's new browser has been announced...</small></li>
<li><a href='http://clark-technet.com/2008/09/google-chrome-screen-shots' rel='bookmark' title='Permanent Link: Google Chrome Screen Shots'>Google Chrome Screen Shots</a> <small>Screen shots and review of Google Chrome after being released....</small></li>
<li><a href='http://clark-technet.com/2009/01/want-firefox-installed-on-your-new-oem-pc' rel='bookmark' title='Permanent Link: Want Firefox Installed on Your New OEM PC?'>Want Firefox Installed on Your New OEM PC?</a> <small>The EU claims Microsoft is hurting the browser competitors by...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><img src="http://clark-technet.com/wp-content/uploads/2008/09/chromecolour31.jpg" alt="Google Chrome" title="Google Chrome" width="75" height="76" class="alignleft size-full wp-image-300" />Google&#8217;s Chromium browser (open-source Chrome) has been released for Mac and select Linux Distros, but the <a href="http://blog.chromium.org/2009/06/danger-mac-and-linux-builds-available.html">release page</a> warns not to download unless you like incomplete software.  Keep in mind this isn&#8217;t even beta yet, for Google that&#8217;s something.  Pretty soon though Mac, Linux, and Windows user will get to enjoy Chrome.  Me personally I&#8217;m waiting for an extension system like Firefox before I&#8217;ll use it solely as my browser of choice. </p>
<p>&copy;2010 <a href="http://clark-technet.com">Jeremy Clark - TechNet.com</a>. All Rights Reserved.</p>.

<br /><p>Related posts:<ol><li><a href='http://clark-technet.com/2008/09/google-chromes-first-bug' rel='bookmark' title='Permanent Link: Google Chrome&#8217;s First Bug'>Google Chrome&#8217;s First Bug</a> <small>The first vulnerability of Google's new browser has been announced...</small></li>
<li><a href='http://clark-technet.com/2008/09/google-chrome-screen-shots' rel='bookmark' title='Permanent Link: Google Chrome Screen Shots'>Google Chrome Screen Shots</a> <small>Screen shots and review of Google Chrome after being released....</small></li>
<li><a href='http://clark-technet.com/2009/01/want-firefox-installed-on-your-new-oem-pc' rel='bookmark' title='Permanent Link: Want Firefox Installed on Your New OEM PC?'>Want Firefox Installed on Your New OEM PC?</a> <small>The EU claims Microsoft is hurting the browser competitors by...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://clark-technet.com/2009/06/googles-chrome-released-on-mac-and-linux/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Mozilla Moving Away From Tabs</title>
		<link>http://clark-technet.com/2009/05/mozilla-moving-away-from-tabs</link>
		<comments>http://clark-technet.com/2009/05/mozilla-moving-away-from-tabs#comments</comments>
		<pubDate>Mon, 18 May 2009 15:15:21 +0000</pubDate>
		<dc:creator>Jeremy Clark</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[browser]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[Mozilla]]></category>

		<guid isPermaLink="false">http://clark-technet.com/?p=430</guid>
		<description><![CDATA[Mozilla the company behind Firefox thinks that the tabbed interface it&#8217;s so famous for is reaching the end of it&#8217;s lifespan. So they&#8217;re launching a design competition to come up with the next big thing in browsers. Tabs worked well on slow machines on a thin Internet, where ten browser sessions were &#8220;many browser sessions&#8221;. [...]


Related posts:<ol><li><a href='http://clark-technet.com/2009/05/multi-process-firefox' rel='bookmark' title='Permanent Link: Multi-Process Firefox'>Multi-Process Firefox</a> <small>Mozilla is taking a hint from Google's Chrome, by splitting...</small></li>
<li><a href='http://clark-technet.com/2009/07/firefox-4-mockups' rel='bookmark' title='Permanent Link: Firefox 4 Mockups'>Firefox 4 Mockups</a> <small>Mozilla has starting thinking about Firefox 4 and with their...</small></li>
<li><a href='http://clark-technet.com/2008/12/firefox-31-beta-2-is-ready-for-download' rel='bookmark' title='Permanent Link: Firefox 3.1 Beta 2 is ready for download'>Firefox 3.1 Beta 2 is ready for download</a> <small>New features being introduced in Firefox 3.1, new support for...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Mozilla the company behind Firefox thinks that the tabbed interface it&#8217;s so famous for is reaching the end of it&#8217;s lifespan.  So they&#8217;re launching a <a href="http://design-challenge.mozilla.com/summer09/">design competition</a> to come up with the next big thing in browsers.</p>
<blockquote><p>Tabs worked well on slow machines on a thin Internet, where ten browser sessions were &#8220;many browser sessions&#8221;. Today, 20+ parallel sessions are quite common; the browser is more of an operating system than a data display application; we use it to manage the web as a shared hard drive.<br />
&#8211;  Mozilla Labs</p></blockquote>
<p>One <a href="http://www.azarask.in/blog/post/firefoxnext-tabs-on-the-side/">interesting idea</a> is already floating around from Mozilla Labs, having the tabs on the side instead of the top.</p>
<p>Source: <a href="http://www.pcpro.co.uk/news/252991/mozilla-preparing-to-scrap-tabbed-browsing.html">PCPro</a></p>
<p>&copy;2010 <a href="http://clark-technet.com">Jeremy Clark - TechNet.com</a>. All Rights Reserved.</p>.

<br /><p>Related posts:<ol><li><a href='http://clark-technet.com/2009/05/multi-process-firefox' rel='bookmark' title='Permanent Link: Multi-Process Firefox'>Multi-Process Firefox</a> <small>Mozilla is taking a hint from Google's Chrome, by splitting...</small></li>
<li><a href='http://clark-technet.com/2009/07/firefox-4-mockups' rel='bookmark' title='Permanent Link: Firefox 4 Mockups'>Firefox 4 Mockups</a> <small>Mozilla has starting thinking about Firefox 4 and with their...</small></li>
<li><a href='http://clark-technet.com/2008/12/firefox-31-beta-2-is-ready-for-download' rel='bookmark' title='Permanent Link: Firefox 3.1 Beta 2 is ready for download'>Firefox 3.1 Beta 2 is ready for download</a> <small>New features being introduced in Firefox 3.1, new support for...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://clark-technet.com/2009/05/mozilla-moving-away-from-tabs/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Windows 7 &#8220;XP Mode&#8221; Mistake</title>
		<link>http://clark-technet.com/2009/05/windows-7-xp-mode-mistake</link>
		<comments>http://clark-technet.com/2009/05/windows-7-xp-mode-mistake#comments</comments>
		<pubDate>Sat, 09 May 2009 11:30:27 +0000</pubDate>
		<dc:creator>Jeremy Clark</dc:creator>
				<category><![CDATA[microsoft]]></category>
		<category><![CDATA[amd]]></category>
		<category><![CDATA[intel]]></category>
		<category><![CDATA[virtualization]]></category>
		<category><![CDATA[windows 7]]></category>

		<guid isPermaLink="false">http://clark-technet.com/?p=427</guid>
		<description><![CDATA[Recently Microsoft had announced a big feature of Windows 7, â€œXP Modeâ€ as most call it. This allows people to install all their favorite XP software that won&#8217;t run in Vista or 7 in a XP virtual pc. Or at least as it was supposed to work, but many people with Intel processors won&#8217;t be [...]


Related posts:<ol><li><a href='http://clark-technet.com/2008/02/vmware-server-20-beta' rel='bookmark' title='Permanent Link: VMWare Server 2.0 Beta'>VMWare Server 2.0 Beta</a> <small>Vmware has announced the beta of their virtualization product. I...</small></li>
<li><a href='http://clark-technet.com/2008/11/amd-new-phenom-chip-overclocks-to-6ghz' rel='bookmark' title='Permanent Link: AMD new Phenom chip overclocks to 6Ghz'>AMD new Phenom chip overclocks to 6Ghz</a> <small>AMD's new 45nm processor the Phenom II looks to be...</small></li>
<li><a href='http://clark-technet.com/2007/03/amd-releases-teraflop-in-a-box' rel='bookmark' title='Permanent Link: AMD releases &#8220;TeraFLOP in a Box&#8221;'>AMD releases &#8220;TeraFLOP in a Box&#8221;</a> <small>AMD just released this press release, stating that they now...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><img src="http://clark-technet.com/wp-content/uploads/2009/01/install5-150x35.jpg" alt="Logo" title="Logo" width="150" height="35" class="alignleft size-thumbnail wp-image-366" />Recently Microsoft had announced a big feature of Windows 7, <a href="http://clark-technet.com/2009/04/windows-7-to-contain-xp-mode">â€œXP Modeâ€</a> as most call it.  This allows people to install all their favorite XP software that won&#8217;t run in Vista or 7 in a XP virtual pc.  Or at least as it was supposed to work, but many people with Intel processors won&#8217;t be able to use this feature.  Microsoft is requiring that the computer on which 7 is installed to have hardware virtualization support.  Since VirtualPC that the XP mode uses is a software hypervisor the decision makes no sense.  </p>
<p>AMD processors have AMD-V (hardware virtualization) on all but their Sempron line.  Intel on the other hand used the feature as a way to divide their processor models and don&#8217;t have as many models with the support.  Tom&#8217;s Hardware has a <a href="http://www.tomshardware.com/news/windows-xp-mode-virtualization-intel,7709.html">list</a> of all the Intel models that support VT-x.</p>
<p>Source: <a href="http://arstechnica.com/microsoft/news/2009/05/r2e-microsoft-intel-goof-up-windows-7s-xp-mode.ars">ArsTechnica</a></p>
<p>&copy;2010 <a href="http://clark-technet.com">Jeremy Clark - TechNet.com</a>. All Rights Reserved.</p>.

<br /><p>Related posts:<ol><li><a href='http://clark-technet.com/2008/02/vmware-server-20-beta' rel='bookmark' title='Permanent Link: VMWare Server 2.0 Beta'>VMWare Server 2.0 Beta</a> <small>Vmware has announced the beta of their virtualization product. I...</small></li>
<li><a href='http://clark-technet.com/2008/11/amd-new-phenom-chip-overclocks-to-6ghz' rel='bookmark' title='Permanent Link: AMD new Phenom chip overclocks to 6Ghz'>AMD new Phenom chip overclocks to 6Ghz</a> <small>AMD's new 45nm processor the Phenom II looks to be...</small></li>
<li><a href='http://clark-technet.com/2007/03/amd-releases-teraflop-in-a-box' rel='bookmark' title='Permanent Link: AMD releases &#8220;TeraFLOP in a Box&#8221;'>AMD releases &#8220;TeraFLOP in a Box&#8221;</a> <small>AMD just released this press release, stating that they now...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://clark-technet.com/2009/05/windows-7-xp-mode-mistake/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Served from: clark-technet.com @ 2010-07-19 03:58:39 by W3 Total Cache -->