<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"
    xmlns:dc="http://purl.org/dc/elements/1.1/"
    xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
    xmlns:admin="http://webns.net/mvcb/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:content="http://purl.org/rss/1.0/modules/content/">

    <channel>
    
    <title>Low Weblog</title>
    <link>http://loweblog.com/</link>
    <description>Weblog by Lodewijk Schutte ~ Low. Personal bits in Dutch, professional stuff in English.</description>
    <dc:language>en</dc:language>
    <dc:creator>Low</dc:creator>
    <dc:rights>Copyright 2010</dc:rights>
    <dc:date>2010-03-04T11:09:48+00:00</dc:date>
    <admin:generatorAgent rdf:resource="http://expressionengine.com/" />
    

    <item>
      <title>Simple navigation with Low Variables</title>
      <link>http://loweblog.com/feeder/?FeederAction=clicked&amp;feed=Weblog&amp;seed=http%3A%2F%2Floweblog.com%2Ffreelance%2Farticle%2Fsimple-navigation-with-low-variables%2F&amp;seed_title=Simple+navigation+with+Low+Variables</link>
      <guid>http://loweblog.com/freelance/article/simple&#45;navigation&#45;with&#45;low&#45;variables/</guid>
      <description>How to build navigation in ExpressionEngine has always been a debatable issue amongst developers. Some use Categories, maybe a devoted Weblog or Channel, others just hard code navigation in the templates. Third party options would include Navigator, Structure or maybe even some kind of Playa setup. But since version 1.1.6, Low Variables offers a simple and elegant solution to building navigation, too.</description>
      <dc:subject>Add&#45;Ons, ExpressionEngine, Low Variables</dc:subject>
      <content:encoded><![CDATA[<p>How to build navigation in <a href="http://expressionengine.com/index.php?affiliate=lodewijk">ExpressionEngine</a> has always been a debatable issue amongst developers. Some use Categories, maybe a devoted Weblog or Channel, others just hard code navigation in the templates. Third party options would include <a href="http://devot-ee.com/add-ons/modules/navigator/">Navigator</a>, <a href="http://buildwithstructure.com/">Structure</a> or maybe even some kind of <a href="http://www.pixelandtonic.com/playa">Playa</a> setup. But since version 1.1.6, <a href="http://loweblog.com/software/low-variables/">Low Variables</a> offers a simple and elegant solution to building navigation, too.</p>
<h2>Template tags</h2>
<p>The secret lies in <a href="http://loweblog.com/software/low-variables/docs/tags/">Low Variables&#8217; template tags</a>: <code>&#123;exp:low_variables:parse&#125;</code>. Apart from parsing variables early (like path.php vars) or late (like user defined template vars) in the parsing order, you can parse Low Variables using the template tags, which allows you to do extra stuff apart from just a simple string replace.</p>
<p>For example, in the case of multiple valued variables, you can loop through the values. This means you could create a simple navigation menu that your users can manage.</p>
<h2>Create a Select variable</h2>
<p>First you need to create a variable with type Select. In this example, we&#8217;ll name the variable <code>low_site_menu</code>. You can turn early parsing off, since we&#8217;re going to use the template tags to parse it. In the Options field, we&#8217;ll add the menu items, putting each item on a new line and separating paths and labels with <code>&#160;:&#160;</code>. For example:</p>
<pre><code>/ : Home
about-us : About us
services : Services
news : News
contact : Contact
pages/copyright : Copyright</code></pre>
<p>Next, we&#8217;ll allow multiple values to be selected and select the Drag and drop lists as interface. This means your user can turn off any menu item, as well as sort them in a preferred order.</p>
<p><img src="/images/screenshots/lvex-menu.png" width="500" height="220" alt="Low Variables: Select type with menu" /></p>
<h2>Edit your template</h2>
<p>In your template, add the following code:</p>
<pre><code>&#60;ul id="nav"&#62;&#123;exp:low_variables:parse var="low_site_menu" multiple="yes"&#125;
  &#60;li&#62;&#60;a href="&#123;path="&#123;value&#125;"&#125;"&#62;&#123;label&#125;&#60;/a&#62;&#60;/li&#62;&#123;/exp:low_variables:parse&#125;
&#60;/ul&#62;</code></pre>
<p>That&#8217;s it! You could even enter full urls as values and omit the <code>&#123;path=""&#125;</code> variable, so external menu items are possible as well. This approach is very efficient; I compared it to using a <code>&#123;exp:weblog:categories&#125;</code> tag instead, and saved up to 3 queries per request, depending on caching settings.</p>
]]></content:encoded>
      <dc:date>2010-03-04T11:09:48+00:00</dc:date>
    </item>

    <item>
      <title>Custom images with Low Variables</title>
      <link>http://loweblog.com/feeder/?FeederAction=clicked&amp;feed=Weblog&amp;seed=http%3A%2F%2Floweblog.com%2Ffreelance%2Farticle%2Fcustom-images-with-low-variables%2F&amp;seed_title=Custom+images+with+Low+Variables</link>
      <guid>http://loweblog.com/freelance/article/custom&#45;images&#45;with&#45;low&#45;variables/</guid>
      <description>If you need to give your users the ability to change the header or masthead image of their site, then Low Variables for ExpressionEngine comes in handy once again. And as an added bonus, if you throw in the Low Random plugin, creating rotating headers or mastheads is a piece of cake.</description>
      <dc:subject>Add&#45;Ons, ExpressionEngine, Low Variables</dc:subject>
      <content:encoded><![CDATA[<p>If you need to give your users the ability to change the header or masthead image of their site, then <a href="http://loweblog.com/software/low-variables/">Low Variables</a> for <a href="http://expressionengine.com/index.php?affiliate=lodewijk">ExpressionEngine</a> comes in handy once again. And as an added bonus, if you throw in the <a href="http://loweblog.com/software/low-random/">Low Random plugin</a>, creating rotating headers or mastheads is a piece of cake.</p>
<h2>Custom header image</h2>
<p>In this example, we&#8217;ve defined the default header image in a CSS file. We&#8217;ll override that by adding a <code>&#60;style&#62;</code> block to our templates. But first, we need to create a variable with type &#8216;Select Files&#8217;. Let&#8217;s name the variable <code>&#123;my_custom_header&#125;</code>. Select the upload destination(s) that the user can choose images from and check the &#8216;Allow uploads&#8217; checkbox.</p>
<p><a href="http://loweblog.com/images/lvex4_imgvar.png" rel="lightbox[lvex]" title="Low Variables: Select Files variable type"><img src="http://loweblog.com/images/lvex4_imgvar_thumb.png" width="151" height="100" alt="Low Variables: Edit Variable form for Select Files variable type" /></a></p>
<p>Then, just add this code to your templates:</p>
<pre><code>&#60;style type="text/css"&#62;
	#header &#123;background-image:url(&#123;my_custom_header&#125;)&#125;
&#60;/style&#62;</code></pre>
<h2>Random masthead image</h2>
<p>For a random image, create a similar variable, for example <code>&#123;my_custom_masthead&#125;</code>. Enable early parsing and allow for multiple files to be selected. We need early parsing to be enabled, because we&#8217;re using the variable as input for the Low Random plugin.</p>
<p><a href="http://loweblog.com/images/lvex4_imgvar2.png" rel="lightbox[lvex]" title="Low Variables: Multiple Select Files variable type"><img src="http://loweblog.com/images/lvex4_imgvar2_thumb.png" width="229" height="100" alt="Low Variables: screenshot Select Files variable type" /></a></p>
<p>Here&#8217;s how it would look in our templates:</p>
<pre><code>&#60;img src="&#123;exp:low_random:items&#125;&#123;my_custom_masthead&#125;&#123;/exp:low_random:items&#125;" alt="" /&#62;</code></pre>
<p>That&#8217;s all there is to it; custom and random images with <a href="http://loweblog.com/software/low-variables/">Low Variables</a>.</p>
]]></content:encoded>
      <dc:date>2010-02-02T11:33:28+00:00</dc:date>
    </item>

    <item>
      <title>Multiple languages with Low Variables</title>
      <link>http://loweblog.com/feeder/?FeederAction=clicked&amp;feed=Weblog&amp;seed=http%3A%2F%2Floweblog.com%2Ffreelance%2Farticle%2Fmultiple-languages-with-low-variables%2F&amp;seed_title=Multiple+languages+with+Low+Variables</link>
      <guid>http://loweblog.com/freelance/article/multiple&#45;languages&#45;with&#45;low&#45;variables/</guid>
      <description>If you&#8217;ve ever built a multilingual website, you know just how many bits of text need to be translated. In ExpressionEngine, the logical place to put this content, is in weblogs/channels. However, for some data that might not be appropriate. This is where Low Variables comes in handy.</description>
      <dc:subject>Add&#45;Ons, ExpressionEngine, Low Variables</dc:subject>
      <content:encoded><![CDATA[<p>If you&#8217;ve ever built a multilingual website, you know just how many bits of text need to be translated. In <a href="http://expressionengine.com/index.php?affiliate=lodewijk">ExpressionEngine</a>, the logical place to put this content, is in weblogs/channels. However, for some data that might not be appropriate. This is where <a href="http://loweblog.com/software/low-variables/">Low Variables</a> comes in handy.</p>
<p><a href="http://expressionengine.com/index.php?affiliate=lodewijk&#38;page=/wiki/Multi_language_site_alternative/">Multilingual sites in ExpressionEngine 1.6.x</a> often use a Path.php variable to determine the current language. Something like this, perhaps:</p>
<pre><code>$global_vars['country_code'] = 'es';</code></pre>
<p>Let&#8217;s take this approach and apply it to Low Variables.</p>
<p>Create a variable for each piece of text that needs to be translated. Make sure Early Parsing is turned off for these variables. In my example, I created these: <code>&#123;low_snippets_payoff_en&#125;</code>, <code>&#123;low_snippets_payoff_es&#125;</code>, <code>&#123;low_snippets_footer_en&#125;</code> and <code>&#123;low_snippets_footer_es&#125;</code>.</p>
<p><a href="/images/screenshots/lvex3_multilang.png" rel="lightbox" title="Multiple languages with Low Variables"><img src="/images/screenshots/lvex3_multilang_thumb.png" alt="Screenshot: Low Variables with text inputs" /></a></p>
<p>Then, all you have to do in your templates, is add these variables, combined with the Path.php variable we made earlier:</p>
<pre><code>&#60;p id="payoff"&#62;&#123;low_snippets_payoff_&#123;country_code&#125;&#125;&#60;/p&#62;

&#60;!-- More code --&#62;

&#60;p id="footer"&#62;&#123;low_snippets_footer_&#123;country_code&#125;&#125;&#60;/p&#62;</code></pre>
<p>But don&#8217;t stop there; all static bits of text throughout your templates can be treated like this. Your users will hug you and send you flowers &#8217;cause they can now edit them without the heartache!</p>
]]></content:encoded>
      <dc:date>2010-01-22T11:56:42+00:00</dc:date>
    </item>

    <item>
      <title>Lowcoaholic</title>
      <link>http://loweblog.com/feeder/?FeederAction=clicked&amp;feed=Weblog&amp;seed=http%3A%2F%2Floweblog.com%2Ffreelance%2Farticle%2Flowcoaholic%2F&amp;seed_title=Lowcoaholic</link>
      <guid>http://loweblog.com/freelance/article/lowcoaholic/</guid>
      <description>Last Friday I had a chat with friend and fellow ExpressionEngine add&#45;on developer Elwin Zuiderveld (whom you may know as Cocoaholic). Elwin&#8217;s currently very busy developing iPhone apps, which leaves him very little time to take care of his add&#45;ons, let alone migrate them to EE2.0. Some of those, like the Category Checkboxes extension, have become obsolete due to the new Control Panel. Others, like Reeorder and Navigator, can and should be ported to 2.0.
Elwin and I have agreed that I will take over development for these add&#45;ons. I&#8217;m not sure exactly when, but you can expect something like a Low Reeorder or Low Navigator in the near future. If you&#8217;re using any of Elwin&#8217;s add&#45;ons and want to see them ported to 2.0, let me know, along with any feature requests. I&#8217;ll do my best to add a little Low&#45;sauce while I&#8217;m at it. Thanks to Elwin for not letting his work wither and die &#8212; there&#8217;s a bottle of Pouilly&#45;Fuiss&#233; here with your name on it, buddy!</description>
      <dc:subject>Add&#45;Ons, Announcements, ExpressionEngine</dc:subject>
      <content:encoded><![CDATA[<p>Last Friday I had a chat with friend and fellow <a href="http://expressionengine.com/index.php?affiliate=lodewijk">ExpressionEngine</a> add-on developer <a href="http://elwinzuiderveld.nl/">Elwin Zuiderveld</a> (whom you may know as <a href="http://twitter.com/Cocoaholic">Cocoaholic</a>). Elwin&#8217;s currently very busy developing iPhone apps, which leaves him very little time to take care of <a href="http://devot-ee.com/developers/ee/cocoaholic/">his add-ons</a>, let alone migrate them to EE2.0. Some of those, like the <a href="http://devot-ee.com/add-ons/extensions/category-checkboxes/">Category Checkboxes</a> extension, have become obsolete due to the new Control Panel. Others, like <a href="http://devot-ee.com/add-ons/modules/reeorder/">Reeorder</a> and <a href="http://devot-ee.com/add-ons/modules/navigator/">Navigator</a>, can and should be ported to 2.0.</p>
<p>Elwin and I have agreed that I will take over development for these add-ons. I&#8217;m not sure exactly when, but you can expect something like a Low Reeorder or Low Navigator in the near future. If you&#8217;re using any of Elwin&#8217;s add-ons and want to see them ported to 2.0, let me know, along with any feature requests. I&#8217;ll do my best to add a little Low-sauce while I&#8217;m at it. Thanks to Elwin for not letting his work wither and die &#8212; there&#8217;s a bottle of Pouilly-Fuiss&#233; here with your name on it, buddy!</p>
]]></content:encoded>
      <dc:date>2010-01-18T13:04:16+00:00</dc:date>
    </item>

    <item>
      <title>Customize tags with Low Variables</title>
      <link>http://loweblog.com/feeder/?FeederAction=clicked&amp;feed=Weblog&amp;seed=http%3A%2F%2Floweblog.com%2Ffreelance%2Farticle%2Fcustomize-tags-with-low-variables%2F&amp;seed_title=Customize+tags+with+Low+Variables</link>
      <guid>http://loweblog.com/freelance/article/customize&#45;tags&#45;with&#45;low&#45;variables/</guid>
      <description>In this second example on how to use Low Variables to your advantage, I&#8217;ll show you how to use it to control your ExpressionEngine tags. In this case, it will result in a customizable home page, where you can change the type and number of articles shown, whether to show a sidebar or not and the ability to edit bits of text otherwise hardcoded in your templates.</description>
      <dc:subject>Add&#45;Ons, ExpressionEngine, Low Variables</dc:subject>
      <content:encoded><![CDATA[<p>In this second example on how to use <a href="http://loweblog.com/software/low-variables/">Low Variables</a> to your advantage, I&#8217;ll show you how to use it to control your <a href="http://expressionengine.com/index.php?affiliate=lodewijk">ExpressionEngine</a> tags. In this case, it will result in a customizable home page, where you can change the type and number of articles shown, whether to show a sidebar or not and the ability to edit bits of text otherwise hardcoded in your templates.</p>
<p><a href="/images/screenshots/lvex2_home.png" title="Sandbox home page" rel="lightbox[lvex]"><img src="/images/screenshots/lvex2_home_thumb.png" width="150" height="123" alt="Sandbox site" /></a></p>
<p>Let&#8217;s take a look at the current home page of the sandbox site. There&#8217;s a heading that reads &#8220;Latest news&#8221;. Below that are two articles. There&#8217;s also a sidebar with some contact information. In order to customize the home page, we&#8217;ll need to add a couple of variables. Here&#8217;s what I added:</p>
<ul class="spaced">
<li><code>&#123;low_home_heading&#125;</code>: to edit the heading. Variable type: Text Input.</li>
<li><code>&#123;low_home_categories&#125;</code>: so the user can select categories from which to pull entries. Variable type: Select Categories (see image below).</li>
<li><code>&#123;low_home_status&#125;</code>: so the user can select the statuses of entries to show. Variable type: Checkbox group.</li>
<li><code>&#123;low_home_limit&#125;</code>: so the user can select how many entries are shown on the home page. Variable type: Radio group.</li>
<li><code>&#123;low_home_no_results&#125;</code>: the message shown if no entries match the given criteria. Variable type: Textarea.</li>
<li><code>&#123;low_home_sidebar&#125;</code>: option to show or hide the sidebar. Variable type: Checkbox.</li>
</ul>
<p><a href="/images/screenshots/lvex2_catvar.png" title="Low Variables: Select Categories variable type" rel="lightbox[lvex]"><img src="/images/screenshots/lvex2_catvar_thumb.png" width="150" height="123" alt="Edit Variable screen" /></a> <a href="/images/screenshots/lvex2_homevars.png" title="Low Variables: variables grouped as Home" rel="lightbox[lvex]"><img src="/images/screenshots/lvex2_homevars_thumb.png" width="150" height="123" alt="Low Variables home screen, group Home" /></a></p>
<p><code>&#123;low_home_heading&#125;</code> and <code>&#123;low_home_no_results&#125;</code> do not need <a href="http://loweblog.com/software/low-variables/#manage">early parsing</a> to be enabled, but the others do. They are used as input for the &#123;exp:weblog:entries&#125; tag in the template. <code>&#123;low_home_sidebar&#125;</code> is used as a global conditional. Here&#8217;s how the template might look:</p>
<pre><code>&#60;div id="content"&#62;

	&#60;div id="primary"&#62;
		&#60;h2&#62;&#123;low_home_heading&#125;&#60;/h2&#62;
		&#123;exp:weblog:entries category="&#123;low_home_categories&#125;" status="&#123;low_home_status&#125;" limit="&#123;low_home_limit&#125;"&#125;
			&#60;div class="article"&#62;
				&#60;h3&#62;&#123;title&#125;&#60;/h3&#62;
				&#123;body&#125;
			&#60;/div&#62;
			&#123;if no_results&#125;
				&#60;p&#62;&#123;low_home_no_results&#125;&#60;/p&#62;
			&#123;/if&#125;
		&#123;/exp:weblog:entries&#125;
	&#60;/div&#62;

	&#123;if low_home_sidebar == 'y'&#125;
	&#60;div id="aside"&#62;
		&#60;!-- Sidebar here --&#62;
	&#60;/div&#62;
	&#123;/if&#125;

&#60;/div&#62;</code></pre>
<p>There you go! You can use <a href="http://loweblog.com/software/low-variables/">Low Variables</a> to customize your template tags without the heartache!</p>
]]></content:encoded>
      <dc:date>2010-01-14T15:32:13+00:00</dc:date>
    </item>

    <item>
      <title>Low en The City</title>
      <link>http://loweblog.com/feeder/?FeederAction=clicked&amp;feed=Weblog&amp;seed=http%3A%2F%2Floweblog.com%2Farchives%2Fblog%2Flow-en-the-city%2F&amp;seed_title=Low+en+The+City</link>
      <guid>http://loweblog.com/archives/blog/low&#45;en&#45;the&#45;city/</guid>
      <description>In 2004 begon als ik met werken als &#8220;webmaster&#8221; bij de ABVAKABO FNV. Daar maakte ik kennis met het Content Management Systeem (CMS) ExpressionEngine (EE), wat ik uitgekozen had &#8212; na wat vergelijkend warenonderzoek &#8212; om z&#8217;n modulaire opzet en schone output. Gedurende de drie jaar dat ik bij de bond werkzaam was, raakte ik steeds bekender met het systeem en maakte ik ook regelmatig zogenaamde add&#45;ons beschikbaar (dat zijn kleine stukjes software die de werking van het systeem uitbreiden). Ik kon zelfs naast mijn vaste baan af en toe klusjes ernaast doen: EE implementaties.
Nu werk ik al bijna 3 jaar als full&#45;time freelance webontwikkelaar, mede dankzij ExpressionEngine. Dat pakket maakte het mogelijk om de sprong in het diepe dat Ondernemen heet te wagen. Het maakte het mogelijk om mijn nieuwe woonboot te financieren. Het maakte mijn debuut als spreker mogelijk. En nu brengt dit stukje software me naar de andere kant van de wereld. Eind mei vlieg ik naar San Francisco om daar het vervolg op mijn sprekersdebut gestalte te geven. Echt, als dat allemaal mogelijk is&#8230;</description>
      <dc:subject>Life, Werk</dc:subject>
      <content:encoded><![CDATA[<p>In 2004 begon als ik met werken als &#8220;webmaster&#8221; bij de ABVAKABO FNV. Daar maakte ik kennis met het Content Management Systeem (CMS) <a href="http://expressionengine.com/index.php?affiliate=lodewijk">ExpressionEngine</a> (EE), wat ik uitgekozen had &#8212; na wat vergelijkend warenonderzoek &#8212; om z&#8217;n modulaire opzet en schone output. Gedurende de drie jaar dat ik bij de bond werkzaam was, raakte ik steeds bekender met het systeem en maakte ik ook regelmatig zogenaamde <em>add-ons</em> beschikbaar (dat zijn kleine stukjes software die de werking van het systeem uitbreiden). Ik kon zelfs naast mijn vaste baan af en toe klusjes ernaast doen: EE implementaties.</p>
<p>Nu werk ik al bijna 3 jaar als full-time freelance webontwikkelaar, mede dankzij <a href="http://expressionengine.com/index.php?affiliate=lodewijk">ExpressionEngine</a>. Dat pakket maakte het mogelijk om de sprong in het diepe dat Ondernemen heet te wagen. Het maakte het mogelijk om mijn nieuwe woonboot te financieren. Het maakte <a href="http://www.eeci2009.com/">mijn debuut als spreker</a> mogelijk. En nu brengt dit stukje software me naar de andere kant van de wereld. Eind mei vlieg ik naar <a title="EECI2010 in SF" href="http://www.eeci2010.com/">San Francisco</a> om daar het vervolg op mijn sprekersdebut gestalte te geven. Echt, als dat allemaal mogelijk is&#8230;</p>
]]></content:encoded>
      <dc:date>2010-01-12T17:02:11+00:00</dc:date>
    </item>

    <item>
      <title>Manage contact data with Low Variables</title>
      <link>http://loweblog.com/feeder/?FeederAction=clicked&amp;feed=Weblog&amp;seed=http%3A%2F%2Floweblog.com%2Ffreelance%2Farticle%2Fmanage-contact-data-with-low-variables%2F&amp;seed_title=Manage+contact+data+with+Low+Variables</link>
      <guid>http://loweblog.com/freelance/article/manage&#45;contact&#45;data&#45;with&#45;low&#45;variables/</guid>
      <description>This is the first in a series of posts where I give you some examples on how to use Low Variables to your advantage. In this example, I&#8217;ll explain how Low Variables can be used to manage contact data in ExpressionEngine.</description>
      <dc:subject>Add&#45;Ons, ExpressionEngine, Low Variables</dc:subject>
      <content:encoded><![CDATA[<p>This is the first in a series of posts where I give you some examples on how to use <a href="http://loweblog.com/software/low-variables/">Low Variables</a> to your advantage. In this example, I&#8217;ll explain how <a href="http://loweblog.com/software/low-variables/">Low Variables</a> can be used to manage contact data in <a href="http://expressionengine.com/index.php?affiliate=lodewijk">ExpressionEngine</a>.</p>
<p>Say you want the company name, address and other contact data displayed on the site. Basically, this is vCard information, which you might want to re-use. On my sandbox site, I&#8217;m using the company name in the footer, the full address on the contact page, marked up using the <a href="http://microformats.org/wiki/hcard">hCard microformat</a>, and the email address is also used as the contact form recipient.</p>
<p><a href="/images/screenshots/lvex_contact.png" title="Contact page on Sandbox site" rel="lightbox[lvex1]"><img src="/images/screenshots/lvex_contact-thumb.png" width="150" height="128" alt="Example contact page" /></a></p>
<p>In order to re-use the data properly, we&#8217;ll create four variables: <code>&#123;low_contact_fn&#125;</code>, <code>&#123;low_contact_street-address&#125;</code>, <code>&#123;low_contact_locality&#125;</code> and <code>&#123;low_contact_email&#125;</code>. I&#8217;m using the prefix <code>low</code>, so regular users can edit them. The middle part of the variable name, <code>contact</code> groups them in the same group (you might also want to check out my <a href="http://www.youtube.com/watch?v=O1WwgmOrXtU">Introduction to Low Variables screencast on YouTube</a>). I&#8217;ve changed the type of each variable to Text Input. For <code>&#123;low_contact_email&#125;</code>, I enabled Early Parsing (so I can use it as input for other tags) and I&#8217;ve added a regular expression to the Pattern field, so only valid email addresses can be saved.</p>
<p><a href="/images/screenshots/lvex_contact_vars.png" title="Low Variables: Contact group" rel="lightbox[lvex1]"><img src="/images/screenshots/lvex_contact_vars-thumb.png" width="150" height="128" alt="Contact variables" /></a> <a href="/images/screenshots/lvex_email_var.png" title="Low Variables: email variable details" rel="lightbox[lvex1]"><img src="/images/screenshots/lvex_email_var-thumb.png" width="150" height="128" alt="" /></a></p>
<p>That only leaves the template bit. Here&#8217;s how that might look:</p>
<pre><code>&#60;div id="footer"&#62;&#38;copy; &#123;current_time format="%Y"&#125; - &#123;low_contact_fn&#125;&#60;/div&#62;</code></pre>
<pre><code>&#60;div class="vcard"&#62;
	&#60;span class="fn"&#62;&#123;low_contact_fn&#125;&#60;/span&#62;&#60;br /&#62;
	&#60;span class="street-address"&#62;&#123;low_contact_street-address&#125;&#60;/span&#62;&#60;br /&#62;
	&#60;span class="locality"&#62;&#123;low_contact_locality&#125;&#60;/span&#62;&#60;br /&#62;
	&#60;a class="email" href="mailto:&#123;low_contact_email&#125;"&#62;&#123;low_contact_email&#125;&#60;/a&#62;
&#60;/div&#62;</code></pre>
<pre><code>&#123;exp:email:contact_form recipients="&#123;low_contact_email&#125;"&#125;
	&#60;!-- the contact form --&#62;
&#123;/exp:email:contact_form&#125;</code></pre>
<p>That&#8217;s it! You can now use <a href="http://loweblog.com/software/low-variables/">Low Variables</a> to manage contact data without the heartache!</p>
]]></content:encoded>
      <dc:date>2010-01-08T16:21:21+00:00</dc:date>
    </item>

    <item>
      <title>Enhance</title>
      <link>http://loweblog.com/feeder/?FeederAction=clicked&amp;feed=Weblog&amp;seed=http%3A%2F%2Floweblog.com%2Farchives%2Fblog%2Fenhance%2F&amp;seed_title=Enhance</link>
      <guid>http://loweblog.com/archives/blog/enhance/</guid>
      <description>Let&#8217;s enhance</description>
      <dc:subject>Dump, Film en TV, Komisch</dc:subject>
      <content:encoded><![CDATA[<p><a href="http://www.youtube.com/watch?v=Vxq9yj2pVWk">Let&#8217;s enhance</a></p>
]]></content:encoded>
      <dc:date>2009-12-18T14:34:43+00:00</dc:date>
    </item>

    <item>
      <title>Introducing Low Variables</title>
      <link>http://loweblog.com/feeder/?FeederAction=clicked&amp;feed=Weblog&amp;seed=http%3A%2F%2Floweblog.com%2Ffreelance%2Farticle%2Fintroducing-low-variables%2F&amp;seed_title=Introducing+Low+Variables</link>
      <guid>http://loweblog.com/freelance/article/introducing&#45;low&#45;variables/</guid>
      <description>Footer text, logo, the recipient of a contact form, the number of articles on the home page, selection of rotating header images&#8230; These are but a few examples of site&#45;wide content and settings you might encounter when building a web site. Settings you also might want to modify every now and then. Using our CMS of choice &#8212; ExpressionEngine &#8212; there are a couple of ways to set this up, but none of them ever felt right to me. But now, there&#8217;s another option.</description>
      <dc:subject>Add&#45;Ons, Announcements, ExpressionEngine, Low Variables</dc:subject>
      <content:encoded><![CDATA[<p>Footer text, logo, the recipient of a contact form, the number of articles on the home page, selection of rotating header images&#8230; These are but a few examples of site-wide content and settings you might encounter when building a web site. Settings you also might want to modify every now and then. Using our <abbr title="Content Management System">CMS</abbr> of choice &#8212; <a href="http://expressionengine.com/index.php?affiliate=lodewijk">ExpressionEngine</a> &#8212; there are a couple of ways to set this up, but none of them ever felt right to me. But now, there&#8217;s another option.</p>
<h2>Birth</h2>
<p>As most EE Add-ons, <strong>Low Variables</strong> was born out of necessity. I wanted to give regular users access to the <a href="http://expressionengine.com/docs/templates/globals/user_defined.html">User Defined Global Variables</a>, without giving them access to the Templates section. Basically, I&#8217;d be giving them the ability to edit static bits of content throughout the site. <a href="http://twitter.com/low/status/5823120447">I asked</a> if it was a good idea and I got enough response to go ahead with my plan.</p>
<h2>Baby steps</h2>
<p>Completely ignoring <a href="http://twitter.com/reedmaniac">Paul Burdick</a>&#8217;s <a href="http://www.slideshare.net/reedmaniac/addon-development-ee-expects-that-every-developer-will-do-his-duty-2494809/39">advice</a>, I just started coding, thinking it would be a small job. And it was, at first. I had a very basic version of what I had in mind up and running in no time. But then it hit me: with a bit more effort, I could take it a step further. And with even more effort, I could take it a <em>lot</em> further. Gotta love your own, self-induced scope creep.</p>
<h2>Adolescence</h2>
<p>Inspired by <a href="http://devot-ee.com/add-ons/extensions/fieldframe/">the most popular EE Add-on</a>, I started to rebuild the basic structure of the module, allowing for <em>Variable Types</em>. Before I knew it, I had a handful of different Types and a setup that would allow for many more. Then it hit me again: people might pay for this. <a href="http://twitter.com/brandonkelly">Brandon Kelly</a>&#8217;s presentation at <a href="http://www.eeci2009.com/">EECI2009</a> had already <a href="http://www.slideshare.net/brandonkelly212/make-a-market-out-of-our-community-the-whys-and-hows-of-selling-addons-2493262/33">nudged me</a> in that direction, so I decided I&#8217;d make this my first commercial add-on.</p>
<h2>Adulthood, almost</h2>
<p><strong>Low Variables</strong> could well be the answer to Life, the Universe, and Everything EE, so I thought a price tag of 42 USD would be appropriate. However, it turned out that selling software online <a href="http://twitter.com/low/status/6006448557">isn&#8217;t as easy</a> as it seems, especially if you want to do it right for the Dutch/European tax laws. Eventually, I caved in and settled for a price in Euros instead: 29.75 (which, depending on the rates, is about 42 bucks).</p>
<p>So there you have it. Available today, for the bargain price of &#8364;29.75: <a href="http://loweblog.com/software/low-variables/"><strong>Low Variables</strong></a>. An ExpressionEngine add-on that takes User Defined Global Variables, Fresh Variables and FieldFrame and puts them in a blender to make a shiny new smoothee.</p>
<h2>Be gentle&#8230; It&#8217;s my first time</h2>
<p>PayPal is used to handle the purchases and refunds are given within 30 days. Please note that, since it&#8217;s the first time I actually sell stuff online, things might not go as planned. If that&#8217;s the case, please let me know, and I&#8217;ll sort things out. As for support, I&#8217;m giving <a href="http://getsatisfaction.com/low/products/low_low_variables">Get Satisfaction</a> a go, so go there for bug reports, questions and ideas.</p>
<h2>Future plans</h2>
<p>The current version of <a href="http://loweblog.com/software/low-variables/">Low Variables</a> is compatible with <strong>EE 1.6.8</strong>. There will also be a 2.x compatible version available later. As soon as it is, a single license will allow you to use either the 1.6.8 or the 2.x compatible version, in the same way EllisLab is doing with EE 2.0 PB at the moment.</p>
<p>Many thanks to <a href="http://brandon-kelly.com/">Brandon Kelly</a>, <a href="http://twitter.com/jamiepittock">Jamie Pittock</a>, <a href="http://www.stookstudio.com/">Erwin Heiser</a>, <a href="http://whoooz.nl/">Robert Eerhart</a> and <a href="http://twitter.com/lbrt">Albert de Klein</a> for their help and suggestions.</p>
]]></content:encoded>
      <dc:date>2009-12-17T13:19:03+00:00</dc:date>
    </item>

    <item>
      <title>Nein!</title>
      <link>http://loweblog.com/feeder/?FeederAction=clicked&amp;feed=Weblog&amp;seed=http%3A%2F%2Floweblog.com%2Farchives%2Fblog%2Fnein%2F&amp;seed_title=Nein%21</link>
      <guid>http://loweblog.com/archives/blog/nein/</guid>
      <description>Rammstein VS Cookie Monster</description>
      <dc:subject>Dump, Film en TV, Komisch, Muziek</dc:subject>
      <content:encoded><![CDATA[<p><a href="http://www.youtube.com/watch?v=1ZeciX-3wfs">Rammstein VS Cookie Monster</a></p>
]]></content:encoded>
      <dc:date>2009-12-04T10:10:53+00:00</dc:date>
    </item>

    
    </channel>
</rss>