<?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>Developer blog by Lodewijk Schutte ~ Low, about ExpressionEngine and more.</description>
    <dc:language>en</dc:language>
    <dc:creator>Low</dc:creator>
    <dc:rights>Copyright 2010</dc:rights>
    <dc:date>2010-06-23T10:32:24+00:00</dc:date>
    <admin:generatorAgent rdf:resource="http://expressionengine.com/" />
    

    <item>
      <title>About EECI2010</title>
      <link>http://loweblog.com/feeder/?FeederAction=clicked&amp;feed=Dev&amp;seed=http%3A%2F%2Floweblog.com%2Ffreelance%2Farticle%2Fabout-eeci2010%2F&amp;seed_title=About+EECI2010</link>
      <guid>http://loweblog.com/freelance/article/about&#45;eeci2010/</guid>
      <description>Last weekend I got back from my three week stay in California. The first week was all about exploring San Francisco and EECI2010 US, the last two weeks were all about driving on Highway 1 in a Mustang. The conference was a blast. Robert, Janneke and Chris pulled it off once again by putting together a fantastic couple of days full of impeccable presentations, superb locations, good food and plenty of booze. I will never grow tired of drinking beers with my fellow EE geeks, except perhaps if that involves climbing a steep hill more than once.</description>
      <dc:subject>Conferences</dc:subject>
      <content:encoded><![CDATA[<p>Last weekend I got back from my three week stay in California. The first week was all about exploring San Francisco and <a href="http://eeci2010.com/us/">EECI2010 US</a>, the last two weeks were all about driving on Highway 1 in a Mustang. The conference was a blast. Robert, Janneke and Chris pulled it off once again by putting together a fantastic couple of days full of impeccable presentations, superb locations, good food and plenty of booze. I will never grow tired of drinking beers with my fellow EE geeks, except perhaps if that involves climbing a steep hill more than once.</p>
<h2>PHP in templates</h2>
<p>My presentation slash workshop was about using PHP in templates, but also covered EE&#8217;s template parse order. Prior to the presentation, I dove right into EE&#8217;s template class and created <a href="http://loweblog.com/downloads/ee-parse-order.pdf">a little cheat sheet</a> as a handout people could refer to during my talk. I think it went fairly well and judging from the feedback I&#8217;ve read and heard, my audience felt the same way. Here are the slides, if you haven&#8217;t already seen them on SlideShare:</p>
<p><object width="425" height="355">
<param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=eeci2010-100604114839-phpapp02&#038;stripped_title=php-in-templates-pain-or-pleasure" />
<param name="allowFullScreen" value="true"/>
<param name="allowScriptAccess" value="always"/><embed name="__sse4412482" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=eeci2010-100604114839-phpapp02&#038;stripped_title=php-in-templates-pain-or-pleasure" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"></embed></object></p>
<h2>Next up</h2>
<p>The <a href="http://eeciconf.com/">next EECI conference</a> will be held, like the first edition, in my home town Leiden. Robert already cooked up some excellent speakers and there will also be a so-called DevDay on October 1st (also my birthday, coincidently). What will happen on the DevDay is yet to be announced, but one thing&#8217;s for sure: I&#8217;ll be there eating cake.</p>
]]></content:encoded>
      <dc:date>2010-06-23T10:32:24+00:00</dc:date>
    </item>

    <item>
      <title>Hospitality wanted!</title>
      <link>http://loweblog.com/feeder/?FeederAction=clicked&amp;feed=Dev&amp;seed=http%3A%2F%2Floweblog.com%2Ffreelance%2Farticle%2Fhospitality-wanted%2F&amp;seed_title=Hospitality+wanted%21</link>
      <guid>http://loweblog.com/freelance/article/hospitality&#45;wanted/</guid>
      <description>My girlfriend and I are flying to San Francisco this week. The first week, we will be in a hotel, exploring the city and I&#8217;ll be speaking at a conference about ExpressionEngine. Then, after the conference, we&#8217;re planning on renting a car and drive through California. I&#8217;m thinking Napa and Paso Robles (I like my wines), Big Sur and sequoias, and eventually we will fly back to Amsterdam from LAX.</description>
      <dc:subject>Conferences</dc:subject>
      <content:encoded><![CDATA[<p>My girlfriend and I are flying to San Francisco this week. The first week, we will be in a hotel, exploring the city and I&#8217;ll be speaking at <a href="http://eeci2010.com/">a conference about ExpressionEngine</a>. Then, after the conference, we&#8217;re planning on renting a car and drive through California. I&#8217;m thinking Napa and Paso Robles (I like my wines), Big Sur and sequoias, and eventually we will fly back to Amsterdam from LAX.</p>
<p>Of course, the best way to explore a foreign country is with the help of the locals. So here&#8217;s what I thought would be fun&#8230; Why not ask some fellow web geeks if they mind having me and my girlfriend over? I think it would be a fantastic way to meet people and see the country.</p>
<p>To be precise, we will be traveling through California from June 3rd till June 17th, and we would love to stay one or two nights. Drop me an email if you live somewhere around or in between SF and LA and you&#8217;re up for it: low@loweblog.com</p>
]]></content:encoded>
      <dc:date>2010-05-24T17:22:03+00:00</dc:date>
    </item>

    <item>
      <title>Published twice</title>
      <link>http://loweblog.com/feeder/?FeederAction=clicked&amp;feed=Dev&amp;seed=http%3A%2F%2Floweblog.com%2Ffreelance%2Farticle%2Fpublished-twice%2F&amp;seed_title=Published+twice</link>
      <guid>http://loweblog.com/freelance/article/published&#45;twice/</guid>
      <description>April 6 2010 will be remembered in ExpressionEngine history as the day where I got published on two of the biggest EE dev sites currently around. I&#8217;ve written up an article about managing aside content on EE Insider and Devot:ee published a Spotlight interview with yours truly about a project I did for Leiden University. Kudos to Ryan Irelan and Jacob Russell for unknowingly aiding me in this Low Offensive.</description>
      <dc:subject>ExpressionEngine</dc:subject>
      <content:encoded><![CDATA[<p>April 6 2010 will be remembered in ExpressionEngine history as the day where I got published on two of the biggest EE dev sites currently around. I&#8217;ve written up an article about managing aside content <a href="http://eeinsider.com/articles/creating-aside-content/">on EE Insider</a> and Devot:ee published <a href="http://devot-ee.com/articles/item/spotlight-lodewijk-schutte-masters-in-leiden/">a Spotlight interview with yours truly</a> about a project I did for Leiden University. Kudos to Ryan Irelan and Jacob Russell for unknowingly aiding me in this Low Offensive.</p>
]]></content:encoded>
      <dc:date>2010-04-07T11:09:35+00:00</dc:date>
    </item>

    <item>
      <title>Simple navigation with Low Variables</title>
      <link>http://loweblog.com/feeder/?FeederAction=clicked&amp;feed=Dev&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=Dev&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=Dev&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=Dev&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=Dev&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>Manage contact data with Low Variables</title>
      <link>http://loweblog.com/feeder/?FeederAction=clicked&amp;feed=Dev&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>Introducing Low Variables</title>
      <link>http://loweblog.com/feeder/?FeederAction=clicked&amp;feed=Dev&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>

    
    </channel>
</rss>