<ul><li><strong>woo_about</strong> - </li><li><strong>woo_ad_image_1</strong> - /images/ad.gif</li><li><strong>woo_ad_image_2</strong> - /images/ad.gif</li><li><strong>woo_ad_url_1</strong> - http://example.com</li><li><strong>woo_ad_url_2</strong> - http://example.com</li><li><strong>woo_alt_stylesheet</strong> - default.css</li><li><strong>woo_archives</strong> - </li><li><strong>woo_auto_img</strong> - false</li><li><strong>woo_bio</strong> - Wannabe writer, real (freelance) reporter, \'just cool\' and very much in love. </li><li><strong>woo_cat_mid_1</strong> - false</li><li><strong>woo_cat_mid_3</strong> - true</li><li><strong>woo_cat_mid_4</strong> - true</li><li><strong>woo_cat_mid_6</strong> - false</li><li><strong>woo_cat_mid_7</strong> - true</li><li><strong>woo_cat_thumb_height</strong> - 76</li><li><strong>woo_cat_thumb_width</strong> - 207</li><li><strong>woo_custom_css</strong> - </li><li><strong>woo_custom_favicon</strong> - http://www.stefanpopa.nl/wp-content/woo_uploads/5-Schermafbeelding_2009-10-11_om_00.png</li><li><strong>woo_email</strong> - </li><li><strong>woo_exclude_cats</strong> - false</li><li><strong>woo_featured_category</strong> - Blog</li><li><strong>woo_feedburner_url</strong> - </li><li><strong>woo_flickr_entries</strong> - Select a number:</li><li><strong>woo_flickr_id</strong> - </li><li><strong>woo_google_analytics</strong> - <script type=\"text/javascript\">
var gaJsHost = ((\"https:\" == document.location.protocol) ? \"https://ssl.\" : \"http://www.\");
document.write(unescape(\"%3Cscript src=\'\" + gaJsHost + \"google-analytics.com/ga.js\' type=\'text/javascript\'%3E%3C/script%3E\"));
</script>
<script type=\"text/javascript\">
try {
var pageTracker = _gat._getTracker(\"UA-11075059-1\");
pageTracker._trackPageview();
} catch(err) {}</script></li><li><strong>woo_home_posts</strong> - 5</li><li><strong>woo_image_disable</strong> - false</li><li><strong>woo_image_height</strong> - 173</li><li><strong>woo_image_width</strong> - 230</li><li><strong>woo_logo</strong> - http://www.stefanpopa.nl/wp-content/woo_uploads/6-popalogo.png</li><li><strong>woo_manual</strong> - http://www.woothemes.com/support/theme-documentation/open-air/</li><li><strong>woo_resize</strong> - true</li><li><strong>woo_shortname</strong> - woo</li><li><strong>woo_show_blog</strong> - false</li><li><strong>woo_themename</strong> - Open Air</li><li><strong>woo_the_content</strong> - false</li><li><strong>woo_thumb_height</strong> - 145</li><li><strong>woo_thumb_width</strong> - 218</li><li><strong>woo_twitter</strong> - SCPopa</li><li><strong>woo_uploads</strong> - a:4:{i:0;s:62:"http://www.stefanpopa.nl/wp-content/woo_uploads/6-popalogo.png";i:1;s:92:"http://www.stefanpopa.nl/blog/wp-content/woo_uploads/5-Schermafbeelding_2009-10-11_om_00.png";i:2;s:92:"http://www.stefanpopa.nl/blog/wp-content/woo_uploads/4-Schermafbeelding_2009-09-09_om_22.png";i:3;s:92:"http://www.stefanpopa.nl/blog/wp-content/woo_uploads/3-Schermafbeelding_2009-09-10_om_01.png";}</li><li><strong>woo_video_posts</strong> - Select a number:</li><li><strong>woo_vidpage</strong> - Select a page:</li></ul>