<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <title>Hiranyaloka Website Design and SEO</title>
    <link rel="alternate" type="text/html" href="http://hiranyaloka.com/" />
    <link rel="self" type="application/atom+xml" href="http://hiranyaloka.com/website_design_encinitas/atom.xml" />
    <id>tag:hiranyaloka.com,2009-09-17://1</id>
    <updated>2013-04-28T20:18:35Z</updated>
    <subtitle>Websites that mean business!</subtitle>
    <generator uri="http://www.sixapart.com/movabletype/">Movable Type 4.37</generator>

<entry>
    <title>Encinitas Country Day Schools</title>
    <link rel="alternate" type="text/html" href="http://hiranyaloka.com/website_design_encinitas/portfolio/encinitas-country-day-schools.html" />
    <id>tag:hiranyaloka.com,2012://1.50</id>

    <published>2012-03-10T17:35:28Z</published>
    <updated>2013-04-28T20:18:35Z</updated>

    <summary>The Encinitas Country Day Schools website was built on the Movable Type platform to serve the educational, administrative, and marketing needs of the school&apos;s teacher&apos;s, staff, students, and campus community.</summary>
    <author>
        <name>Rick Bychowski</name>
        <uri>http://hiranyaloka.com/</uri>
    </author>
    
        <category term="<![CDATA[<!-- 3 -->Portfolio]]>" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="portfolio" label="portfolio" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://hiranyaloka.com/">
        <![CDATA[<p><a href="http://hiranyaloka.com/user_assets/ecdschools.jpg" class="jqmImg" width="949" title="Encinitas Country Day Schools home page"> <img alt="Encinitas Country Day Schools" src="http://hiranyaloka.com/assets_c/2012/03/ecdschools-thumb-949x662-64.jpg" width="440" height="306" class="mt-image-center" /> </a></p>

<p><a href="http://encinitascountrydayschools.org/">Encinitas Country Day Schools</a> provides students genuine preparation for life through a program that supports balanced intellectual, creative, physical and personal development.</p>

<p>The Encinitas Country Day Schools website was built on the <a href="http://www.movabletype.com/">Movable Type</a> platform to serve the educational, administrative, and marketing needs of the school&#8217;s teacher&#8217;s, staff, students, and campus community.</p>
]]>
        

    </content>
</entry>

<entry>
    <title>New York on Rye Food Truck</title>
    <link rel="alternate" type="text/html" href="http://hiranyaloka.com/website_design_encinitas/portfolio/new-york-on-rye-food-truck.html" />
    <id>tag:hiranyaloka.com,2012://1.49</id>

    <published>2012-03-10T16:59:10Z</published>
    <updated>2012-03-10T17:46:44Z</updated>

    <summary>New York on Rye gourmet food truck, winner of the San Diego &quot;Top Truck Award&quot;.</summary>
    <author>
        <name>Rick Bychowski</name>
        <uri>http://hiranyaloka.com/</uri>
    </author>
    
        <category term="<![CDATA[<!-- 3 -->Portfolio]]>" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="portfolio" label="portfolio" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://hiranyaloka.com/">
        <![CDATA[<p><a href="http://hiranyaloka.com/user_assets/newyorkonrye.jpg" class="jqmImg" width="949" title="New York on Rye Food Truck home page."> <img alt="New York on Rye" src="http://hiranyaloka.com/assets_c/2012/03/newyorkonrye-thumb-949x571-62.jpg" width="440" height="264" class="mt-image-center" /> </a></p>

<p><a href="http://newyorkonrye.com/">New York on Rye gourmet food truck</a> was awarded the &#8220;Top Truck Trophy&#8221; out of 25 local San Diego gourmet food trucks. New York on Rye serves up delicious homemade, handmade deli favorites fromt their gourmet food truck.</p>

<p>The New York on Rye website features a weekly truck schedule on the home page, which the owner/operator updates himself every Sunday. A news section keeps their customers up-to-date with a blog, videos, and a press section.</p>
]]>
        

    </content>
</entry>

<entry>
    <title>Keith&apos;s Automotive and Electric</title>
    <link rel="alternate" type="text/html" href="http://hiranyaloka.com/website_design_encinitas/portfolio/keiths-automotive-and-electric.html" />
    <id>tag:hiranyaloka.com,2012://1.48</id>

    <published>2012-03-10T16:24:35Z</published>
    <updated>2012-03-16T06:22:26Z</updated>

    <summary><![CDATA[Keith's Automotive &amp; Electric has been a trusted name in the Encinitas area since 1980.]]></summary>
    <author>
        <name>Rick Bychowski</name>
        <uri>http://hiranyaloka.com/</uri>
    </author>
    
        <category term="<![CDATA[<!-- 3 -->Portfolio]]>" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="portfolio" label="portfolio" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://hiranyaloka.com/">
        <![CDATA[<p><a href="http://hiranyaloka.com/user_assets/keithautomotive.jpg" class="jqmImg" width="954" title="Keith's Automotive of Endcinitas"> <img alt="Keith's Automotive" src="http://hiranyaloka.com/assets_c/2012/03/keithautomotive-thumb-954x673-60.jpg" width="440" height="310" class="mt-image-center" /> </a></p>

<p><a href="http://keithautomotive.com/">Keith&#8217;s Automotive and Electric of Encinitas</a> specializes in automotive electrical system and has a special passion for classic and custom vehicles. Keith&#8217;s Automotive has been a trusted name in the Encinitas area since 1980.</p>

<p>Keith&#8217;s website features fully custom &#8220;Projects&#8221; and &#8220;Gallery&#8221; sections. The front page of each section is a &#8220;gallery of galleries&#8221;. These galleries are designed for ease of use, quick page loads, and low maintenance.</p>
]]>
        

    </content>
</entry>

<entry>
    <title>MoreData Plugin for Movable Type 4 and 5</title>
    <link rel="alternate" type="text/html" href="http://hiranyaloka.com/website_design_encinitas/software/moredata-plugin-for-movable-type.html" />
    <id>tag:hiranyaloka.com,2011://1.47</id>

    <published>2011-12-22T06:19:38Z</published>
    <updated>2013-05-13T15:54:04Z</updated>

    <summary>The MoreData plugin provides a fast, powerful and flexible way for savvy Movable Type designers and authors to create native...</summary>
    <author>
        <name>Rick Bychowski</name>
        <uri>http://hiranyaloka.com/</uri>
    </author>
    
        <category term="Software" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="github" label="github" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="movabletype" label="movable type" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://hiranyaloka.com/">
        <![CDATA[<p>The MoreData plugin provides a fast, powerful and flexible way for savvy Movable Type designers and authors to create native Movable Type hash, array, and string custom variables for use in their templates, which can be linked with almost any MT object. The MoreData plugin is open source and does not require Movable Type Pro.</p>

<p>Get the MoreData plugin from <a href="https://github.com/Hiranyaloka/mt-plugin-moredata">my GitHub account</a>.</p>

<p>MoreData will happily coexist with MT Pro&#8217;s Custom Field plugin and provide functionality which Custom Fields does not. A MoreData text field can even be embedded in a Custom Field.</p>

<p>A MoreData custom field can be associated with any object which has an editable text field and associated MT Tag. </p>

<p>MoreData can parse Movable Type tags (via the <code>moredata</code> modifier) into hashes, arrays, and strings, which can then be captured as an MT variables (hash, array, or string) in your templates. A single MT tag can be parsed into an unlimited number of arrays, hashes, and string variables.</p>

<p>The MoreData plugin provides a <code>moredata</code> tag modifier for extracting structured text from any function tag (i.e. any tag which returns text). So for example, the Asset Description field can hold MoreData text, and so the <code>AssetDescription</code> tag can therefore be parsed by the <code>moredata</code> modifier into a native MT variable associated with any particular asset.</p>

<p>MoreData also provides an Entry/Page custom text field (cleverly called <code>MoreData</code>) for loading with as many data structures as you need: hashes, arrays, and strings. And of course the <code>moredata</code> modifier works very nicely with the <code>MoreData</code> custom field tag.</p>

<pre><code>&lt;mt:MoreData moredata="foo","hash" setvar="my_foo_hash"&gt; # We'll clarify this shortly
</code></pre>

<p>A blog-scoped custom field <code>MoreDataBlog</code> allows MoreData data to be configured within the MoreData plugin settings panel. For example, to set a folder list for creating a navigation bar:</p>

<pre><code>&lt;mt:MoreDataBlog moredata="folder_ids","array" setvar="nav_folders"&gt;
</code></pre>

<p>Or to simply specifiy a banner image:</p>

<pre><code>&lt;mt:MoreDataBlog moredata="banner_image_id","string" setvar="banner_image_id"&gt;
</code></pre>

<p>As with the Entry/Page-scoped <code>MoreData</code> field, the <code>MoreDataBlog</code> field holds as many data structures as you require.</p>

<h2>EMBEDDING THE DATA IN A TEXT FIELD</h2>

<p>While the <code>MoreData</code> and <code>MoreDataBlog</code> fields are perhaps the most convenient places to place your MoreData data, you can embed a string inside any text field accessible from an MT function tag (e.g. EntryExcerpt AssetDescription, and CategoryDescription are all good.) If you use the entry or page body and extended fields, use the <code>convert_breaks = "0"</code> filter <strong>before</strong> the <code>moredata</code> filter to prevent unwanted formating from the &#8220;rich text&#8221;, &#8220;convert line break&#8221;, or other filters.</p>

<pre><code>&lt;mt:EntryMore convert_breaks="0" moredata="entry_hash","hash" setvar="entry_hash"&gt;
</code></pre>

<p>To provide a convenient place to stash your MoreData data strings, the plugin also provides the <code>MoreData</code> custom field available within your Entries and Pages, and the <code>MoreDataBlog</code> field found in the plugin settings panel. These fields are referenced by the <code>MoreData</code> and <code>MoreDataBlog</code> tags, respectively. You parse these tags just as you would any other standard or custom field tag.</p>

<pre><code>&lt;mt:MoreData moredata="entry_hash","hash" setvar="entry_hash"&gt;

&lt;mt:MoreDataBlog moredata="nav_folders","array" setvar="nav_folders"&gt;
</code></pre>

<p>The strings within each named data block are processed by Text::CSV, set to allow double quoted strings and whitespace. So you can use standard CSV syntax. Let&#8217;s consider an example of an array (named locations) with three items. We place the following text into an Entry <code>MoreData</code> field:</p>

<pre><code>---locations=
"Chicago, Illinois", "San Diego, California", "New York, New York"
...
</code></pre>

<p>And a hash with three elements:    </p>

<pre><code>---nicknames=
"Walter Payton" = "Sweetness"
"William Perry" = "Refrigerator"
"Michael Singletary" = "Iron Mike"
...
</code></pre>

<p>Let&#8217;s demonstrate how to use the data. First add the following text to the MoreData (or whichever) field:</p>

<pre><code>Here is my excerpt which I can output without the data.

---first_name=
Moe, Larry, Curly

---last_name=
Moe = Howard
Curly = Howard
Larry = Fine

---say_yes=
Why, certainly!
...

And here is a continuation of the excerpt.
</code></pre>

<p>The above text field has two parts:</p>

<p>The data section starts with the <em>first</em> open tag (in this case <code>---first_name</code>) and continues through the close tag <code>...</code>. A data section has no limit to the number of data sets it may contain (the above has three data sets). Notice that we have an open tag for each data set, but <em>only one close tag</em> for the whole data set.</p>

<p>The content is everything else (i.e. the text above and below the data.</p>

<p>The MoreData plugin can access the data and content independently. Let&#8217;s first capture the data: </p>

<h2>SETTING THE VARIABLES IN YOUR TEMPLATES</h2>

<p>Place this in your template code to store and/or output the data. For arrays and hashes, you will definitely want to capture the data in an MT variable. For a simple string variable, setting an intermediate MT variable is unnecessary.</p>

<p>Here we set the variables:</p>

<pre><code>&lt;mt:MoreData moredata="first_name","array" setvar="first_name_a"&gt;
&lt;mt:MoreData moredata="last_name","hash" setvar="last_name_h"&gt;
&lt;mt:MoreData moredata="say_yes","string" setvar="say_yes_s"&gt;
</code></pre>

<p><code>mt:MoreData</code> is the tag containing your data strings. <code>moredata</code> is the modifier which detects and parses the data. The modifier arguments <code>"first_name","array"</code> indicates which data section we wish to capture, and the data type, respectively.</p>

<p>If no format (array, hash, or string) is given, the blog default is used. The default default is &#8220;string&#8221;. (The default format and the open and close tags are configurable in the plugin settings.) So for a string variable, the following template code will output the string:</p>

<pre><code>&lt;mt:MoreData moredata="say_yes"&gt; # outputs "Why, certainly!"
</code></pre>

<p>You may want to review the <a href="http://www.movabletype.org/documentation/appendices/tags/var.html">Movable Type</a> or <a href="https://github.com/openmelody/melody/wiki/tags-var">Melody</a> documentation of the <code>mt:Var</code> tag with arrays and hashes.  Once we have set the array, hash, or string variables, using them is purely Movable Type syntax. Therefore the following examples are just pure Movable Type syntax which I include here as a review. </p>

<h2>USING THE VARIABLES</h2>

<p>Let&#8217;s use the variables that we set above (in the edit entry or edit page form) from within or templates. </p>

<h3>Array via loop:</h3>

<pre><code>&lt;mt:Loop name="first_name_a"&gt;
    &lt;mt:Var name="__value__"&gt;&lt;br /&gt; 
&lt;/mt:Loop&gt;
</code></pre>

<p>produces:</p>

<pre><code>Moe
Larry
Curly
</code></pre>

<h3>Array by index:</h3>

<pre><code>&lt;mt:Var name="first_name_a[2]"&gt; # gives Curly
</code></pre>

<h3>Hash by loop:</h3>

<pre><code>&lt;mt:Loop name="last_name_h"&gt;
  &lt;mt:Var name="__key__"&gt; &lt;mt:Var name="__value__"&gt;&lt;br /&gt; # gives Moe Howard, Curly Howard, Lary Fine
&lt;/mt:Loop&gt;                                           # hash loops have their own special order
</code></pre>

<p>produces (in random order as perl hashes do):</p>

<pre><code>Moe Howard
Curly Howard
Larry Fine
</code></pre>

<h3>Hash by key:</h3>

<pre><code>&lt;mt:Var name="last_name_h{Moe}"&gt;  # gives Howard
</code></pre>

<p>The array index or hash key can be a variable. Here is a slightly sophisticated example, in which I loop through an array, using the array value as the key to a different hash variable.</p>

<pre><code>&lt;mt:Loop name="first_name_a"&gt;
    &lt;mt:Var name="__value__" setvar="first_name"&gt;
    &lt;mt:Var name="first_name"&gt; says, "I'm Dr. &lt;mt:Var name="last_name_h{$first_name}"&gt;!&lt;br /&gt;
&lt;/mt:Loop&gt;
&lt;br /&gt;
Can we help you? &lt;mt:Var name="say_yes_s"&gt;&lt;br /&gt;
</code></pre>

<p>produces (in precise order this time):</p>

<pre><code>Moe says, "I'm Dr. Howard"!
Larry says, "I'm Dr. Fine"!
Curly says, "I'm Dr. Howard"!

Can we help you? Why, certainly!
</code></pre>

<p>I like using MT variables in my Templates. With the MoreData I can indulge my &#8220;variables jones&#8221;.</p>

<p>OK now back to more MoreData features.</p>

<h2>COLLECTING DATA FROM MULTIPLE SOURCES INTO A SINGLE VARIABLE</h2>

<p>As of version 0.4, multiple instances of named data strings can be collected and saved into a single MT hash, array, or string variables. For example, if your <code>Asset Description</code> fields had a MoreData field like this:</p>

<pre><code>---locations=
Paris = 1
Tokyo = 1
...
</code></pre>

<p>Then you could collect all the data into a single hash variable like this:</p>

<pre><code>&lt;mt:SetVarBlock name="asset_data"&gt;
&lt;mt:Assets&gt;
    &lt;mt:AssetDescription convert_breaks="0" moredata="__data__"&gt;
&lt;/mt:Assets&gt;
&lt;/mt:SetVarBlock&gt;
</code></pre>

<p>The <code>"__data__"</code> argument merely extracts the raw data strings from the text fields. The resulting tag:</p>

<pre><code>&lt;$mt:Var name="asset_data"$&gt;
</code></pre>

<p>Will contain all the data which was collected in the <code>mt:Assets</code> loop, for example:</p>

<pre><code>---locations=
Paris = 1
Marseille = 1
Bordeaux = 1
---locations=
Chicago = 1
"New York" = 1
"SanFrancisco" = 1
---locations=
Tijuana = 1
Cozumel = 1
"Mexico City" = 1
---stooges=
Moe, Larry, Curly
---locations=
Denver = 1
Chicago = 1
"SanFrancisco" = 1
---locations=
London = 1
Cardiff = 1
---locations=
Marseille = 1
Bordeaux = 1
---bears=
Sweetness, Refrigerator, "Iron Mike"
...
</code></pre>

<p>Note that other data can be mixed in. That&#8217;s OK. We want to extract only the locations data:</p>

<pre><code>&lt;mt:Var name="asset_data" moredata="locations","hash" setvar="locations_h"&gt;
</code></pre>

<p>Then print a list of all (unique) locations associated with your assets like this:</p>

<pre><code>&lt;ul&gt;
&lt;mt:Loop name="locations_h"&gt;
    &lt;li&gt;
        &lt;mt:Var name=__key__"&gt;
    &lt;/li&gt;
&lt;/mt:Loop&gt;
&lt;/ul&gt;
</code></pre>

<p>Note that hash keys must be unique, so duplicate locations are not listed twice. The output would look something like this:</p>

<ul>
<li>Cozumel</li>
<li>Marseille</li>
<li>SanFrancisco</li>
<li>Tijuana</li>
<li>London</li>
<li>Cardiff</li>
<li>Mexico City</li>
<li>Denver</li>
<li>Paris</li>
<li>Bordeaux</li>
<li>Chicago</li>
<li>New York</li>
</ul>

<p>Pretty neat.</p>

<h2>RETRIEVING THE TAG CONTENT WITHOUT THE DATA</h2>

<p>The content can be output separately with the <code>__content__</code> key:</p>

<pre><code>My content is: &lt;mt:EntryExcerpt moredata="__content__"&gt;
</code></pre>

<p>Will output </p>

<pre><code>Here is my excerpt which I can output without the data. And here is a continuation of the excerpt.
</code></pre>

<p>So your text fields can do double-duty (or triple, quadruple, etc).</p>

<h2>BLOG-WIDE PLUGIN CONFIGURATION</h2>

<p>The plugin takes five blog-wide settings:</p>

<ul>
<li><code>opentag</code> should be a unique string which opens a data section, and is required for each data identifier.</li>
<li><code>closetag</code> is required at the end of the whole dataset. Optionally it can close each data section.</li>
<li><code>datasep</code> is a character that joins items in an array. Default is a comma &#8220;,&#8221;.</li>
<li><code>hashsep</code> is a character that joins keys from values. Default is an equal sign &#8220;=&#8221;.</li>
<li><code>format</code> is the default format, used when a second argument to the <code>moredata</code> modifier is not given.</li>
</ul>

<p>These current settings are listed below the MoreData custom field form for your convenience.</p>

<h2>VARIABLE SCOPE</h2>

<p>The data is naturally scoped to whichever field that it is placed in. So data placed in the <code>MoreData</code> field or an <code>EntryExcerpt</code> field, is scoped to an entry. You could as well place data in a <code>CategoryDescription</code> field, and therefore your data is scoped to that Category. The <code>MoreDataBlog</code> field is accessible within the plugin settings, and provides a convenient place to store blog-scoped data.</p>

<h2>FORMATTING THE DATA (aka the damned details)</h2>

<p>Each data section begins with an identifier, followed immediately by the data identifier and an equals sign:</p>

<pre><code>---my_data=
</code></pre>

<p>Each named dataset must be terminated by another named dataset, or a closetag if it is the last, or by the end of the file:</p>

<pre><code>---first=
one, two, three
---second=
snow = white
ruby = red
...
</code></pre>

<p>You can omit the close tag if the data is at the end with no subsequent content.</p>

<p>Everything between the first <code>opentag</code> and the <code>closetag</code> (or eof) is considered data.</p>

<p>You can put your data block in the middle of the content (but then don&#8217;t forget the close tag).</p>

<p>Hash key-value pairs should be put on their own line (separated by a line return). Blank lines between sets of key-value pairs are ignored. The following syntax is acceptable:</p>

<pre><code>---first= one, two, three
---second= snow = white
ruby = red
...
</code></pre>

<p>In other words, array items are separated by a comma (or whatever your default setting is), and keys are separated by their values by an equals sign &#8220;=&#8221; (or whatever you set in plugin settings), but each key-value pair in a named hash group must be separated by a line return.</p>

<p>Extra whitespace is tolerated around the separator characters. So <code>one,two</code> is the same as <code>one , two</code>. And <code>snow=white</code> is the same as <code>snow = white</code>. The exception is if you choose a space &#8217; &#8217; as the separator character for your arrays or hashes. Then the syntax is less forgiving.</p>

<p>The data is processed with Text::CSV, allowing whitespace and double quoted strings. Text::CSV will use Text::CSV_XS if available on your system (much faster).</p>

<p>There should be no extra whitespace between the open tag, your data identifier, and the <code>=</code> sign. So for example with the default open tag, you should always do this <code>---my tag=</code>. In other words your data identifier can only have internal spaces.</p>

<h2>CHOOSING TAGS AND SEPARATORS</h2>

<p>You can configure the open and close tags and the data and hash separator characters. The array separator can have the same value as the hash separator.</p>

<p>The open tag, close tag, and separator characters are trimmed for leading and trailing whitespace. However, the separator characters are not trimmed when their value is &#8221; &#8221; (whitespace). Therefore it is possible to split on whitespace, but be warned that the the syntax is less forgiving.</p>

<p>If your separator character appears in your data, be sure to add quotes around the items (see <a href="http://search.cpan.org/~makamaka/Text-CSV-1.21/lib/Text/CSV.pm">Text::CSV documentation</a>). For example, this array works:</p>

<p>&#8212;-names=
&#8220;Payton, Walter&#8221;, &#8220;Singletary, Michael&#8221;, &#8220;Perry, William&#8221;
&#8230;</p>

<p>Avoid having your open tags appearing in the preceding tag content or your close tags appearing in subsequent tag content.</p>

<p>You data identifiers can have spaces like <code>---first name=</code> or be empty <code>---=</code>. In the former you would use <code>moredata="first name"</code>. The latter would be <code>moredata=""</code>. But don&#8217;t use the bareword modifier <code>moredata</code> without at least the name argument, even if it is the empty string.</p>

<h2>DEPENDENCIES</h2>

<p>Requires the Text::CSV module. As of version 0.60, the <code>Text::CSV</code> module is bundled into extlib. Of course you will enjoy a considerable speed increase if your system has the Text::CSV_XS module installed.</p>

<h2>CHANGELOG</h2>

<ul>
<li>version 0.8  Compatible with MT5.</li>
<li>version 0.7  MoreData no longer breaks the Custom Fields plugin.</li>
<li>version 0.6  Add the MoreDataBlog tag and respective plugin configuration field. Also bundled Text::CSV in extlib.</li>
<li>version 0.5: Add the MoreData custom field and improve documentation and examples.</li>
<li>version 0.4: Collects multiple instances of same-named data sets from within a larger dataset. Also ignores blank lines in a hash datastring.</li>
</ul>

<h2>CONTRIBUTORS</h2>

<p><a href="https://github.com/naoaki011">naoaki onozaki</a> wrote the L10N module and Japanese translation.</p>

<h2>RELATED PLUGINS</h2>

<p>The venerable and awesome <a href="http://bradchoate.com/weblog/2002/07/27/keyvalues">Key Values plugin by Brad Choate</a> was my inspiration for the MoreData plugin.</p>

<h2>SUPPORT</h2>

<p>Please send questions, comments, or criticisms to rick@hiranyaloka.com. Checkout the <a href="http://hiranyaloka.com/website_design_encinitas/software/moredata-plugin-for-movable-type.html">moredata plugin home page</a></p>

<h2>BUNDLED MODULES</h2>

<p><a href="http://search.cpan.org/perldoc?Text::CSV">Text::CSV</a></p>

<p>Copyright (C) 1997 Alan Citterman. All rights reserved. Copyright (C) 2007-2009 Makamaka Hannyaharamitu.</p>

<p>Text::CSV_PP:</p>

<p>Copyright (C) 2005-2010 Makamaka Hannyaharamitu.</p>

<h2>MOREDATA COPYRIGHT AND LICENSE</h2>

<p>This program is free software; you can redistribute it and/or modify it
under the terms of either: the GNU General Public License as published
by the Free Software Foundation; or the Artistic License.</p>

<p>See http://dev.perl.org/licenses/ for more information.</p>

<p>This software is offered &#8220;as is&#8221; with no warranty.</p>

<p>MoreData is Copyright 2011, Rick Bychowski, rick@hiranyaloka.com.
All rights reserved.</p>
]]>
        

    </content>
</entry>

<entry>
    <title>NameParse Plugin for MT4 and MT5</title>
    <link rel="alternate" type="text/html" href="http://hiranyaloka.com/website_design_encinitas/software/nameparse-plugin-for-mt4-and-melody.html" />
    <id>tag:hiranyaloka.com,2011://1.46</id>

    <published>2011-11-22T22:00:05Z</published>
    <updated>2013-05-12T03:32:51Z</updated>

    <summary>Parses a person&#8217;s name (English only). A thin wrapper around the Lingua::EN::NameParse cpan module by Kim Ryan. Block tag NameParseComponents...</summary>
    <author>
        <name>Rick Bychowski</name>
        <uri>http://hiranyaloka.com/</uri>
    </author>
    
        <category term="Software" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="melody" label="melody" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="mt4" label="mt4" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="plugins" label="plugins" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://hiranyaloka.com/">
        <![CDATA[<p>Parses a person&#8217;s name (English only). A thin wrapper around the <a href="http://search.cpan.org/perldoc?Lingua::EN::NameParse">Lingua::EN::NameParse</a> cpan module by Kim Ryan.</p>

<h2>Block tag <code>NameParseComponents</code></h2>

<p><code>mt:NameParseComponents</code> parses the contained block, then joins the components with a separator.
Case conversion is optional. The default separator is whitespace.</p>

<p>For example, if you have a variable (or a tag) that contains a person&#8217;s name:</p>

<pre><code>&lt;mt:Var  name="namestring" value="MR. FREDERICK J. FLINTSTONE"&gt;
</code></pre>

<p>Or perhaps the name is in the form &#8220;Last, First&#8221;</p>

<pre><code>&lt;mt:SetVarBlock  name="namestring" &gt;
    FLINTSTONE,
        MR. FREDERICK J.
&lt;/mt:SetVarBlock&gt;
</code></pre>

<p>NameParse will parse either form to give the same results. To extract and output a first and last name:</p>

<pre><code>&lt;mt:NameParseComponents components="given_name_1,surname_1"&gt;
    &lt;$mt:Var name="namestring" strip_linefeeds="1"$&gt;
&lt;/mt:NameParseComponents&gt;&lt;/p&gt;
</code></pre>

<p>outputs &#8220;FREDERICK FLINTSTONE&#8221;.</p>

<p>(Note that the &#8220;strip_linefeeds&#8221; argument is important when your text contains line returns.)</p>

<p>Format as &#8216;Frederick Flintstone&#8217; with the <code>case</code> argument (See the &#8220;Case Option&#8221; section below)</p>

<pre><code>&lt;mt:NameParseComponents components="given_name_1,surname_1" case="1"&gt;
    &lt;$mt:Var name="namestring" strip_linefeeds="1"$&gt;
&lt;/mt:NameParseComponents&gt;&lt;/p&gt;
</code></pre>

<p>To put last name first, followed by first name:</p>

<pre><code>&lt;mt:NameParseComponents components="surname_1,given_name_1" separator=", " case="1" &gt;
    &lt;$mt:Var name="namestring" strip_linefeeds="1"$&gt;
&lt;/mt:NameParseComponents&gt;
</code></pre>

<p>outputs &#8220;Flintstone, Frederick&#8221;.</p>

<p>To output the title and surname:</p>

<pre><code>&lt;mt:NameParseComponents components="title_1,surname_1" case="1"&gt;
    &lt;$mt:Var name="namestring" strip_linefeeds="1"$&gt;
&lt;/mt:NameParseComponents&gt;
</code></pre>

<p>outputs &#8220;Mr. Flintstone&#8221;.</p>

<p>Supported components:
    precursor, title<em>1, title</em>2, given<em>name</em>1, given<em>name</em>2, initials<em>1, initials</em>2,
    middle<em>name, conjunction</em>1, conjunction<em>2, surname</em>1. surname_2, suffix</p>

<h2>Text filter <code>case_all_reversed</code></h2>

<p>The reversed name  is returned as surname followed by a comma and the rest of the name. Includes the case option.
Particularly useful for sorting, there is a text filter specifically for that:</p>

<pre><code>&lt;$mt:Var name="namestring" filters="case_all_reversed"$&gt;
</code></pre>

<p>outputs &#8220;Flintstone, Mr. Frederick J.&#8221;</p>

<h2>Case Option</h2>

<p>The <code>case_all_reversed</code> method (and <code>case</code> option) converts the first letter of each component to capitals
and the remainder to lower case, with the following exceptions-</p>

<pre><code>initials remain capitalised
surname spelling such as MacNay-Smith, O'Brien and Van Der Heiden are preserved
    - see C&lt;surname_prefs.txt&gt; for user defined exceptions
</code></pre>

<h2>Example Usage: Create an image gallery sorted by last name</h2>

<p>Suppose you have image assets where the Asset Label is a person&#8217;s name. When used with the <code>NameParse</code> plugin, an image gallery can be produced in rows of 3 (or 4 etc), and sorted by the last name, parsed from the AssetLabel.</p>

<p>A <a href="https://github.com/Hiranyaloka/mt-plugin-Order/tree/items_per_row">recent branch of mt-plugin-Order</a> (called <code>items_per_row</code>) allows for setting <code>items_per_row</code> in the <code>mt:Order</code> tag. The <code>items_per_row</code> attributethen enables <code>mt:OrderRowHeader</code> and <code>mt:OrderRowFooter</code> tags.</p>

<pre><code>&lt;mt:Order sort_order="ascend" items_per_row="3"&gt;
    &lt;mt:OrderRowHeader&gt;&lt;div class="gallery"&gt;&lt;/mt:OrderRowHeader&gt;
    &lt;mt:OrderRowFooter&gt;&lt;/div&gt;&lt;/mt:OrderRowFooter&gt;
    &lt;mt:Assets type="image" tag="gallery"&gt;
        &lt;mt:OrderItem&gt;
            &lt;mt:setvarblock name="order_by"&gt;
                &lt;$mt:AssetLabel convert_breaks="0" filters="case_all_reversed"$&gt;
            &lt;/mt:setvarblock&gt;
            &lt;dl&gt;
                &lt;dt&gt;&lt;img src="&lt;$mt:AssetThumbnailURL width="144"$&gt;" /&gt;&lt;/dt&gt;
                  &lt;dt&gt;
                      &lt;mt:NameParseComponents components="given_name_1,surname_1"&gt;
                          &lt;$mt:AssetLabel$&gt;
                      &lt;/mt:NameParseComponents&gt;
                  &lt;/dt&gt;
                &lt;dd&gt;&lt;$mt:AssetDescription convert_breaks="0" filters="__default__"$&gt;&lt;/dd&gt;
            &lt;/dl&gt;
        &lt;/mt:OrderItem&gt;
    &lt;/mt:Assets&gt;
&lt;/mt:Order&gt;
</code></pre>

<h2>Dependencies</h2>

<p>Bundled with <a href="http://search.cpan.org/perldoc?Lingua::EN::NameParse">Lingua::EN::NameCase</a></p>

<h2>ChangeLog</h2>

<ul>
<li>version 0.9 Added <code>case</code> option.  Added <code>components</code> argument, which replaces the individual component arguments used in prior versions.</li>
</ul>

<h2>Credits</h2>

<p>Kim Ryan, author of <a href="http://search.cpan.org/perldoc?Lingua::EN::NameParse">Lingua::EN::NameCase</a></p>

<p>Damian Conway,  author of <a href="http://search.cpan.org/perldoc?Parse::RecDescent">Parse::RecDescent</a></p>
]]>
        

    </content>
</entry>

<entry>
    <title>UploaderPrefs Plugin for Melody and MT4</title>
    <link rel="alternate" type="text/html" href="http://hiranyaloka.com/website_design_encinitas/software/uploaderprefs-plugin-for-melody-and-mt4.html" />
    <id>tag:hiranyaloka.com,2011://1.45</id>

    <published>2011-09-13T22:44:16Z</published>
    <updated>2011-11-24T12:18:47Z</updated>

    <summary>UploaderPrefs for Melody and Movable Type allows customization of the default options involved in uploading files and images. WHY I...</summary>
    <author>
        <name>Rick Bychowski</name>
        <uri>http://hiranyaloka.com/</uri>
    </author>
    
        <category term="Software" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="melody" label="melody" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="mt4" label="mt4" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="software" label="software" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://hiranyaloka.com/">
        <![CDATA[<p>UploaderPrefs for Melody and Movable Type allows customization of the default options involved in uploading files and images.</p>

<h2>WHY</h2>

<p>I don&#8217;t like the default &#8220;Asset Upload&#8221; default options, which is to create a new entry, and to place the file in the root directory.</p>

<h2>USAGE</h2>

<p>Set your preferences in the plugin settings.  Currently it supports two options, which can be set independently:</p>

<p>CREATE ENTRY WITH FILE OPTION<br />
The plugin default is for the &#8220;Create new entry with file&#8221; option to be deselected. (Melody&#8217;s default is for that checkbox to be selected).</p>

<p>ASSET UPLOAD DIRECTORY<br />
The MT default option is the site or archive root. UploaderPrefs default path is based on the date.</p>

<p>These options may also be over-ridden within the upload dialogue.</p>

<h2>INSTALLATION</h2>

<p>Drop the contents of the &#8220;plugins&#8221; directory into your application&#8217;s (Melody or MT) plugin directory.</p>

<h2>TO DO</h2>

<p>I&#8217;d like to add other options, such as a default directory.</p>

<h2>DOWNLOAD</h2>

<p>Get <a href="http://hiranyaloka.com/website_design_encinitas/user_assets/Hiranyaloka-melody-plugin-uploaderprefs-v0.2-0-g393183d.zip">UploaderPref version 0.2 for Melody/Movable Type</a>, or download the <a href="https://github.com/Hiranyaloka/mt-plugin-uploaderprefs/tags">latest from github</a>.</p>

<h2>COPYRIGHT AND LICENSE</h2>

<p>The software is released under the Artistic License. The terms of the Artistic License are described at http://www.perl.com/language/misc/Artistic.html .</p>

<p>Thanks to François Nonnenmacher for code lifted from his <a href="http://ubiquitic.com/software/assetdujour-movable-type-plugin.html">AssetDuJour plugin</a>.</p>

<p>Except where otherwise noted, UploaderPrefs is Copyright 2011, Rick Bychowski, rick@hiranyaloka.com for Hiranyaloka. All rights reserved.</p>
]]>
        

    </content>
</entry>

<entry>
    <title>SortCatFld plugin for Melody &amp; MT4</title>
    <link rel="alternate" type="text/html" href="http://hiranyaloka.com/website_design_encinitas/software/sortcatfld-plugin-for-melody-mt4.html" />
    <id>tag:hiranyaloka.com,2011://1.44</id>

    <published>2011-08-27T17:24:33Z</published>
    <updated>2011-11-24T12:19:50Z</updated>

    <summary>SortCatFld for Melody is an adaption of Hajime Fujimoto&#8217;s excellent SortCatFld plugin for MT4. The plugin was restructured to work...</summary>
    <author>
        <name>Rick Bychowski</name>
        <uri>http://hiranyaloka.com/</uri>
    </author>
    
        <category term="Software" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="melody" label="melody" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="mt4" label="mt4" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="perl" label="perl" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="plugins" label="plugins" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://hiranyaloka.com/">
        <![CDATA[<p>SortCatFld for Melody is an adaption of Hajime Fujimoto&#8217;s excellent SortCatFld plugin for MT4. The plugin was restructured to work with Melody. It will also work with Movable Type 4 (ConfigAssistant plugin required).</p>

<h2>What It Does</h2>

<p>This plugin does exactly what the original plugin does, which is to allow for custom sorting of categories and folders in your templates. This version is adapted to be compatible with Melody.</p>

<h2>Requirements</h2>

<p>The SortCatFld plugin for Melody and Movable Type 4 requires the <a href="https://github.com/openmelody/mt-plugin-configassistant">ConfigAssistant plugin</a> (which is included with Melody but not MT4).</p>

<h2>Installation</h2>

<p>Download <a href="https://github.com/Hiranyaloka/mt-plugin-sortcatfld">SortCatFld for Melody &amp; MT4 from GitHub</a>. Place the contents of the &#8220;plugins&#8221;  directory into your Melody or MT4 plugins directory.</p>

<h2>Usage</h2>

<p>The plugin adds a new sort_method to your SubCategories, TopLevelCategories, SubFolders, and TopLevelFolders tags. So for example, to allow custom ordering of Top Level Categories in a template, modify the template code:</p>

<pre><code>&lt;mt:TopLevelCategories sort_method="SortCatFld::Sort"&gt;
    &lt;!-- your template code here --&gt;
&lt;/mt:TopLevelCategories&gt;
</code></pre>

<p>The affected template code will now respond to the custom ordering of your folders and categories. You actually change the order of the categories/folders by clicking by going to &#8220;Manage Categories&#8221; or &#8220;Manage Folders&#8221; section of the application dashboard, and clicking on the &#8220;Sort Categories&#8221; or &#8220;Sort Folders&#8221; link at the top of the form.</p>

<h2>Original Author and License</h2>

<ul>
<li>Author: Hajime Fujimoto</li>
<li>Description: Sort categories and folders as you like.</li>
<li><a href="http://www.h-fj.com/blog/">Author Link</a></li>
<li><a href="http://www.h-fj.com/blog/mtplgdoc/sortcatfld.php">Documentation Link</a></li>
</ul>

<p>Licenses - This plugin will provide you with a dual license as follows.</p>

<p>When combined with the MT 5-1 commercial license license / personal:
- You can safely modify and redistribute freely made.  However, if you want to redistribute and modify, the original credits, please remain.
- You can use for free.  However, for your support for the development and support of plug-ins,donations would appreciate your consideration.
When combined with 5-2.MTOS
- Follow the GPLv2.
- You can use for free.  However, for your support for the development and support of plug-ins,donations would appreciate your consideration</p>
]]>
        

    </content>
</entry>

<entry>
    <title>TemplateSelector plugin</title>
    <link rel="alternate" type="text/html" href="http://hiranyaloka.com/website_design_encinitas/software/templateselector-plugin-for-melody-and-mt4.html" />
    <id>tag:hiranyaloka.com,2011://1.43</id>

    <published>2011-06-24T17:08:29Z</published>
    <updated>2011-11-24T12:26:57Z</updated>

    <summary>I&#8217;m pleased to announce a new plugin for Melody (and MT4 with the latest ConfigAssistant plugin). TemplateSelector extends entries and...</summary>
    <author>
        <name>Rick Bychowski</name>
        <uri>http://hiranyaloka.com/</uri>
    </author>
    
        <category term="Software" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="melody" label="melody" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="mt4" label="mt4" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="perl" label="perl" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="plugins" label="plugins" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://hiranyaloka.com/">
        <![CDATA[<p>I&#8217;m pleased to announce a new plugin for Melody (and MT4 with the latest ConfigAssistant plugin). TemplateSelector extends entries and pages with a new &#8220;TemplateSelector&#8221; custom field. The &#8220;TemplateSelector&#8221; tag can output the name of any template in your blog.</p>

<h2>USAGE</h2>

<p>Within entry or page context of a template, use the tag to include a template by name:</p>

<pre><code>&lt;mt:Include name="&lt;mt:TemplateSelector&gt;"&gt;
</code></pre>

<p>Or perhaps use the tag to set a variable:</p>

<pre><code>&lt;mt:If tag="TemplateSelector"&gt;
    &lt;mt:TemplateSelector setvar="my_template_name"&gt;
&lt;/mt:If&gt;
</code></pre>

<p>Then later in that template set a custom stylesheet:</p>

<pre><code>&lt;link id="my_custom_layout" rel="stylesheet"
    ref="&lt;mt:Link template="$my_template_name"&gt;"
    type="text/css" media="screen" /&gt;
</code></pre>

<h2>Setting The Tag Value</h2>

<p>Simply select a template name from a pull-down menu within the &#8220;edit entry/page&#8221; form.</p>

<h2>TEMPLATE SELECTOR MENU BUILDER</h2>

<p>TemplateSelector can automatically search and present your entire list of templates. You probably don&#8217;t want to present your entire list of templates in the selection menu, so the Preferences::Plugin Settings::TemplateSelector form presents three options to narrow down the list. The resulting list is the result of an intersection of the three options (e.g. List = Type AND Outfile AND Name).</p>

<p>The resulting template list is then used to build the Template Selector Default Form (on plugin options page) and the Template Selector form on each &#8220;edit entry/page&#8221; form.</p>

<h2>Plugin Options Screenshot</h2>

<p>The TemplateSelector plugin options form (click for popup):
<a href="http://hiranyaloka.com/user_assets/templateselector_options.png" class="jqmImg" width="671" title="Template Selector Plugin Options"> <img alt="Template Selector options" src="http://hiranyaloka.com/assets_c/2011/06/templateselector_options-thumb-671x494-56.png" width="440" height="323" class="mt-image-center" /> </a></p>

<h2>Template Type (optional)</h2>

<p>Select from a single template type, or choose blank to return all types (blank is default).</p>

<ul>
<li>index - an Index Template</li>
<li>archive - an Archive Template</li>
<li>category - also an Archive Template</li>
<li>individual - also an Archive Template</li>
<li>custom - a Template Module.</li>
<li>comments -  a Comment Listing Template</li>
<li>comment_preview - a Comment Preview Template</li>
<li>comment_error - a Comment Error Template</li>
<li>popup_image - an Uploaded Image Popup Template</li>
<li>BLANK - returns all types (default).</li>
</ul>

<h2>Index Template Outfile (optional - requires Index type selection)</h2>

<p>When the Index type is active, this text field matches against the Index Template Outfile path/name (precisely as shown in the &#8220;Design::Themes&#8221; panel of your blog&#8217;s dashboard). Allows only certain characters (see below). Supports any combination of percent &#8216;%&#8217; and &#8216;_&#8217; wildcards. For example:</p>

<ul>
<li>&#8217;%.css&#8217; matches index style sheets.</li>
<li>&#8216;archives/%&#8217; matches any index templates with outfiles written to your blog root archives directory.</li>
</ul>

<h2>Template Name (optional)</h2>

<p>A simple text field matching the template name(s). Practically useful only when used with the wildcard characters (otherwise you can only possibly match a single template).</p>

<ul>
<li>Entry% - matches &#8216;Entry&#8217;, &#8216;Entry Monthly&#8217;, and &#8216;Entry Listing&#8217;.</li>
<li>Foo<em>Ba% - matches &#8216;FoodBar&#8217;, &#8216;FootBall&#8217;, &#8216;Foo</em>Bar&#8217;, etc.</li>
</ul>

<h2>Allowed Characters for Outfile and Name fields</h2>

<ul>
<li>Word characters - alphanumeric plus underscore.</li>
<li>Whitespace - allowed (optionally trim trailing/leading whitespace).</li>
<li>Symbols (outfile) - Hyphen &#8216;-&#8216;, period &#8216;.&#8217;, and forward slash &#8216;/&#8217;.</li>
<li>Symbols (name) - Hyphen &#8216;-&#8217; and period &#8216;.&#8217; .</li>
<li>Wildcard - Percent &#8216;%&#8217; matches any characters, underscore &#8220;_&#8221; matches a single character.</li>
</ul>

<h2>Trim Leading/Trailing Whitespace checkbox</h2>

<p>When checked, leading/trailing whitespace will be trimmed from the Outfile and Name fields. Default is checked.</p>

<h2>Blank Selection (Type, Outfile, and Name)</h2>

<p>The default selection is blank. Leaving all three fields blank will (theoretically) return all templates on your system. However, the template list size limit is twenty (see BUGS section below).</p>

<h2>TEMPLATE SELECTOR DEFAULT VALUE</h2>

<p>After saving the three menu builder options, the &#8220;Set Default Template&#8221; menu will update the list of templates available in the &#8220;Set Default Template&#8221; field in the plugin options page. So it doesn&#8217;t make sense to attempt to change the &#8220;Menu Builder&#8221; and &#8220;Default Template&#8221; values at the same time (although in fact they are saved in the same form, see TO DO section).</p>

<h2>ENTRY/PAGE TEMPLATE SELECTOR</h2>

<p>Template Selector surfaces a dropdown list populated with the templates derived from the plugin options. New entries/pages will be provided the default selection option from the plugin options page.</p>

<h2>Entry Form Screenshot</h2>

<p><img alt="TemplateSelector edit entry form" src="http://hiranyaloka.com/website_design_encinitas/user_assets/templateselector_entry_form.png" width="348" height="216" class="mt-image-center" /></p>

<h2>INSTALLATION</h2>

<p>Download the <a href="https://github.com/Hiranyaloka/mt-plugin-template-selector">latest TemplateSelector from GitHub</a>. To install this plugin <a href="https://github.com/openmelody/melody/wiki/install-EasyPluginInstallGuide">follow these instructions</a>. </p>

<h2>DEPENDENCIES</h2>

<p>Melody or Movable Type 4 with <strong>ConfigAssistant 2.1.33 or above</strong>. (ConfigAssistant 2.1.33 <a href="https://github.com/openmelody/mt-plugin-configassistant/commit/2e80e4edf7de4fbe6a05df2c11b0f55729d9e974">added the options basename to the option_hash for callbacks</a>).</p>

<h2>Support, Feedback, Bugs, Feature Requests, ToDo</h2>

<p>I would like to hear about your experience with TemplateSelector. Leave a comment on this page or email me at <a href="mailto:rick@hiranyaloka.com">rick@hiranyaloka.com</a>.</p>

<h2>Known Bugs</h2>

<ul>
<li>My testing has revealed that only the first 20 templates are exposed in the selection form, regardless of how many template names are fed to the Template Selector default value form. I&#8217;m open to suggestions to fix that.</li>
<li>Initial setting of the template &#8220;Type&#8221; field to &#8220;Index&#8221; at the same time as setting the Template &#8220;Outfile&#8221; option (in plugin settings) returns no templates to the list. The fix is to set the Template &#8220;Type&#8221; option by itself and subsequently add the Template &#8220;Outfile&#8221; option.</li>
</ul>

<h2>Road Map</h2>

<ul>
<li>Changes to the menu builder and default template options are submitted at the same time (with a single &#8220;Save Changes&#8221; button). Because the former affects the latter, it makes more sense to submit them separately (i.e. separate &#8220;Submit&#8221; buttons).</li>
<li>Show error message when unsupported characters are entered in the Template Outfile or Template Name text field options.</li>
<li>Allow for multiple values: &lt;mt:TemplateSelector name=&#8221;foo&#8221;&gt; .</li>
<li>Extend other Melody objects: &lt;mt:TemplateSelector object=&#8221;Category&#8221; name=&#8221;bar&#8221;&gt; .</li>
</ul>

<h2>THANKS</h2>

<p>Thanks to Byrne Reese and the Melody team for ConfigAssistant and other valuable support.</p>

<h2>COPYRIGHT AND LICENSE</h2>

<p>The software is released under the Artistic License. The
terms of the Artistic License are described at
http://www.perl.com/language/misc/Artistic.html .</p>

<p>Except where otherwise noted, TemplateSelector is Copyright 2011,
Rick Bychowski, rick@hiranyaloka.com for Hiranyaloka. All
rights reserved.</p>

<h2>Download TemplateSelector:</h2>

<p>https://github.com/Hiranyaloka/melody-plugin-template-selector </p>
]]>
        

    </content>
</entry>

<entry>
    <title>Client Testimonials</title>
    <link rel="alternate" type="text/html" href="http://hiranyaloka.com/website_design_encinitas/testimonials/client-testimonials-molly-the-owl-books.html" />
    <id>tag:hiranyaloka.com,2011://1.41</id>

    <published>2011-05-24T17:38:59Z</published>
    <updated>2011-05-24T17:54:57Z</updated>

    <summary>Eric Blehm, MollyTheOwlBooks &#8220;Orders continue to be cranking. Thank you for your part in all this. I could not do...</summary>
    <author>
        <name>Rick Bychowski</name>
        <uri>http://hiranyaloka.com/</uri>
    </author>
    
        <category term="<![CDATA[<!-- 5 -->Testimonials]]>" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="testimonials" label="Testimonials" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://hiranyaloka.com/">
        <![CDATA[<h2>Eric Blehm, <a href="http://mollytheowlbooks.com">MollyTheOwlBooks</a></h2>

<p>&#8220;Orders continue to be cranking. Thank you for your part in all this. I could not do it without you&#8230; This is definitely a team effort, and I really appreciate your expertise. I feel like I&#8217;m in good hands&#8230;&#8221;</p>
]]>
        

    </content>
</entry>

<entry>
    <title>DeLisi Art</title>
    <link rel="alternate" type="text/html" href="http://hiranyaloka.com/website_design_encinitas/portfolio/delisi-art.html" />
    <id>tag:hiranyaloka.com,2011://1.38</id>

    <published>2011-01-12T00:56:52Z</published>
    <updated>2012-03-10T16:53:47Z</updated>

    <summary>DeLisi Art is the website of visionary artist Deborah DeLisi.</summary>
    <author>
        <name>Rick Bychowski</name>
        <uri>http://hiranyaloka.com/</uri>
    </author>
    
        <category term="<![CDATA[<!-- 3 -->Portfolio]]>" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="portfolio" label="portfolio" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://hiranyaloka.com/">
        <![CDATA[<p><a href="http://hiranyaloka.com/website_design_encinitas/user_assets/delisi_art_web.jpg" class="jqmImg" width="989" title="Visionary Artist Deb DeLisi"> <img alt="DeLisi Art Website" src="http://hiranyaloka.com/website_design_encinitas/assets_c/2011/01/delisi_art_web-thumb-989x742-52.jpg" width="440" height="330" class="mt-image-center" /> </a></p>

<p><a href="http://delisiart.com/">DeLisi Art</a> is the website of visionary artist Deborah DeLisi. Deb&#8217;s admirers from around the world visit her website to purchase her artwork, follow her blog, keep track of her tours, learn about the art and artist, or just to be inspired.</p>
]]>
        

    </content>
</entry>

<entry>
    <title>Molly the Owl Books</title>
    <link rel="alternate" type="text/html" href="http://hiranyaloka.com/website_design_encinitas/portfolio/molly-the-owl-books.html" />
    <id>tag:hiranyaloka.com,2010://1.37</id>

    <published>2010-08-06T13:39:11Z</published>
    <updated>2011-05-28T07:17:51Z</updated>

    <summary>Molly The Owl is undoubtedly the most popular bird on the planet right now. Her life story has been streamed live to thousands of captivated children, parents and teachers worldwide.</summary>
    <author>
        <name>Rick Bychowski</name>
        <uri>http://hiranyaloka.com/</uri>
    </author>
    
        <category term="<![CDATA[<!-- 3 -->Portfolio]]>" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="portfolio" label="portfolio" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://hiranyaloka.com/">
        <![CDATA[<p><a href="http://hiranyaloka.com/website_design_encinitas/user_assets/mollytheowlbook_website.jpg" class="jqmImg" width="1006" title="Molly The Owl Books"> <img alt="Molly The Owl Books Website" src="http://hiranyaloka.com/website_design_encinitas/assets_c/2011/01/mollytheowlbook_website-thumb-1006x759-50.jpg" width="440" height="331" class="mt-image-center" /> </a></p>

<p>Molly The Owl is undoubtedly the most popular bird on the planet right now. Her life story has been streamed live to thousands of captivated children, parents and teachers worldwide. Carlos Royal prepared the owl house and directed the video cameras and still photography at his home in San Marcos. <a href="http://ericblehm.com/">Eric Blehm</a> wrote a children&#8217;s book, which was illustrated by <a href="http://www.rocketmancreative.com/">Chris Adams</a>. And literally thousands of Molly fans contributed to a 520 page cookbook. I had the pleasure of pulling it all together on the official website for all things Molly, <a href="http://mollytheowlbooks.com">MollyTheOwlBooks.com</a>.</p>
]]>
        

    </content>
</entry>

<entry>
    <title>Master the Modes</title>
    <link rel="alternate" type="text/html" href="http://hiranyaloka.com/website_design_encinitas/portfolio/master-the-modes.html" />
    <id>tag:hiranyaloka.com,2010://1.42</id>

    <published>2010-07-28T07:30:25Z</published>
    <updated>2011-05-28T07:44:33Z</updated>

    <summary>Master the Modes instructional guitar website.</summary>
    <author>
        <name>Rick Bychowski</name>
        <uri>http://hiranyaloka.com/</uri>
    </author>
    
        <category term="<![CDATA[<!-- 3 -->Portfolio]]>" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="portfolio" label="portfolio" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://hiranyaloka.com/">
        <![CDATA[<p><a href="http://hiranyaloka.com/user_assets/MasterTheModes.jpg" class="jqmImg" width="1008" title="Master the Modes website"> <img alt="Master the Modes Website" src="http://hiranyaloka.com/assets_c/2011/05/MasterTheModes-thumb-1008x747-54.jpg" width="440" height="326" class="mt-image-center" /> </a></p>

<p><a href="http://masterthemodes.com/">Master the Modes</a> is a new approach to learning the modes that&#8217;s simple and easy. Hiranyaloka worked with the modemasters to create a free online &#8220;e-book&#8221;, a custom sample track player, and a paypal payment system with digital downloads.</p>
]]>
        

    </content>
</entry>

<entry>
    <title>2010 May Special</title>
    <link rel="alternate" type="text/html" href="http://hiranyaloka.com/website_design_encinitas/monthly-specials/2010-may-special.html" />
    <id>tag:hiranyaloka.com,2010://1.36</id>

    <published>2010-07-17T05:41:21Z</published>
    <updated>2010-07-17T06:52:34Z</updated>

    <summary>Free custom image gallery with every new website (limited time).</summary>
    <author>
        <name>Rick Bychowski</name>
        <uri>http://hiranyaloka.com/</uri>
    </author>
    
        <category term="Monthly Specials" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="monthlyspecial" label="Monthly Special" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://hiranyaloka.com/">
        <![CDATA[<h2>Nova Scotia Seaside Special</h2>

<p>I&#8217;ve been working on the May Special for two months now, between moving from my home of 14 years and building websites. So you can expect an EXTRA SPECIAL MONTHLY SPECIAL! But before I tell you about the May Special, I&#8217;d like to present another very special offer from super clients and friends Maurice and Janet Ghaly. Feast your eyes on this beautiful <a href="http://novascotiaseasidehome.com/">Nova Scotia Seaside Home!</a>. Disclaimer: Maurice and Janet don&#8217;t even know I&#8217;m posting this, I have no financial interest in the property, but they just put up a website and I&#8217;d like to give them a boost with a link from my high-profile blog (yeah, I&#8217;m kidding). Enough talk, have a look:</p>

<p><a href="http://hiranyaloka.com/user_assets/Home1a.jpg" class="jqmImg" width="" title="For Sale by Owners Maurice and Janet Ghaly"> <img alt="Nova Scotia Seaside Home" src="http://hiranyaloka.com/assets_c/2010/07/Home1a-thumb-740x500-42.jpg" width="440" height="297" class="mt-image-none" /> </a></p>

<p>You like an ocean view? Check it out!</p>

<p><a href="http://hiranyaloka.com/user_assets/Home28a.jpg" class="jqmImg" width="" title="View from the house"> <img alt="Nova Scotia Seaside" src="http://hiranyaloka.com/assets_c/2010/07/Home28a-thumb-740x500-44.jpg" width="440" height="297" class="mt-image-none" /> </a></p>

<p>So run on over to <a href="http://novascotiaseasidehome.com/">Maurice and Janet&#8217;s Nova Scotia Beautiful Seaside Home web page</a>, and give them a call. And wait, what about the May Special, you say? You&#8217;ll need to save a few bucks if you are going to have a down payment for that beautiful home. So For the months of May through July, 2010, we are offering a free custom image gallery, crafted by hand and guaranteed Made in America, with every new website. So if you&#8217;ve been thinking about creating a website to display your treasured photographs, now is the time!</p>
]]>
        

    </content>
</entry>

<entry>
    <title>Western Beginning Indian Ending</title>
    <link rel="alternate" type="text/html" href="http://hiranyaloka.com/website_design_encinitas/quote-of-the-day/western-beginning-indian-ending.html" />
    <id>tag:hiranyaloka.com,2010://1.35</id>

    <published>2010-04-26T08:02:42Z</published>
    <updated>2010-04-26T08:08:27Z</updated>

    <summary>A chapter which has a western beginning will have to have an Indian ending...</summary>
    <author>
        <name>Rick Bychowski</name>
        <uri>http://hiranyaloka.com/</uri>
    </author>
    
        <category term="Quote of the Day" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="quoteoftheday" label="Quote of the Day" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://hiranyaloka.com/">
        <![CDATA[<h2>Arnold J. Toynbee</h2>

<blockquote>
  <p>The vast literature, the magnificent, opulence, the majestic sciences, the great realized should, the soul touching music, the awe inspiring gods. It is already becoming clearer that a chapter which has a western beginning will have to have an Indian ending if it is not to end in the self destruction of the human race. At this supremely dangerous moment in history the only way of salvation for mankind is the Indian way.</p>
</blockquote>
]]>
        

    </content>
</entry>

<entry>
    <title>2010 April Special</title>
    <link rel="alternate" type="text/html" href="http://hiranyaloka.com/website_design_encinitas/monthly-specials/2010-april-special.html" />
    <id>tag:hiranyaloka.com,2010://1.34</id>

    <published>2010-04-09T19:27:43Z</published>
    <updated>2010-07-17T06:50:26Z</updated>

    <summary>April Special - 10% of any web services.</summary>
    <author>
        <name>Rick Bychowski</name>
        <uri>http://hiranyaloka.com/</uri>
    </author>
    
        <category term="Monthly Specials" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="monthlyspecial" label="Monthly Special" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://hiranyaloka.com/">
        <![CDATA[<h2>Hiranyaloka Tax Credit!</h2>

<p><img alt="income-tax-day.jpg" src="http://hiranyaloka.com/website_design_encinitas/user_assets/income-tax-day.jpg" width="440" height="258" class="mt-image-none" /></p>

<p>We have your instant tax refund right here! New clients will recieve 10% off the price of any website design, redesign, SEO, whatever (up to maximum $200 rebate).</p>

<p>So if you are recieving a check from Uncle Sam, now is the time to invest in your hardest working asset, your website. But if you owe the taxman, now is a good time to save money on our excellent services.</p>

<p>Happy April!</p>
]]>
        

    </content>
</entry>

</feed>
