<?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>Boyink! Blog</title>
    <link>http://www.boyink.com/splaat/weblog/</link>
    <description>Mostly web stuff from Michael Boyink of Boyink Interactive</description>
    <dc:language>en</dc:language>
    <dc:creator>pmachine@boyink.com</dc:creator>
    <dc:rights>Copyright 2008</dc:rights>
    <dc:date>2008-06-19T17:28:00-05:00</dc:date>
    <admin:generatorAgent rdf:resource="http://www.pmachine.com/" />
    

    <item>
      <title>Three&#45;Tier Static Content in ExpressionEngine: Approach E</title>
      <link>http://www.boyink.com/splaat/comments/three-tier-static-content-in-expressionengine-approach-e/</link>
      <guid>http://www.boyink.com/splaat/comments/three-tier-static-content-in-expressionengine-approach-e/#When:14:51:00Z</guid>
      <description><![CDATA[<p>The challenge: Build on <a href="http://www.boyink.com/splaat?URL=http%3A%2F%2Fwww.boyink.com%2Fsplaat%2Fstatic%2Fthree_tier_d%2F">Approach D</a> of building navigation for static content in <a href="http://www.expressionengine.com/index.php?affiliate=boyink">ExpressionEngine</a>, but only show 3rd level links when any page on a specific branch is active.&nbsp;
</p><p>In Approach D I introduced the idea of using ExpressionEngine&#8217;s <a href="http://www.boyink.com/splaat?URL=http%3A%2F%2Fwww.expressionengine.com%2Findex.php%3Faffiliate%3Dboyink%26page%3Ddocs%2Fmodules%2Fweblog%2Frelated_entries.html">Relationships</a> to drive navigation for 3 level content. This installment builds on that approach by creating a menu that only shows the 3rd level pages when you click into that branch of the navigation.
</p>
<p>
To follow this tutorial you&#8217;ll need:
<br />
<ul>
<li>The EE components covered in <a href="http://www.boyink.com/splaat?URL=http%3A%2F%2Fwww.boyink.com%2Fsplaat%2Fcomments%2Fno-module-required-static-content-in-expressionengine">Approach A</a>.</li>
<li>The additions mentioned in <a href="http://www.boyink.com/splaat?URL=http%3A%2F%2Fwww.boyink.com%2Fsplaat%2Fstatic%2Fthree_tier_d%2F">Approach D</a> - so essentially a weblog with content and relationship fields and an index template.</li>
<li>Several entries posted with some of them being assigned to a parent page.</li>
<li>The entries need to be ordered by date in an order that matches their position in the menu.&nbsp; Put another way - the date ordering should be such that if you showed them all at the same time they would be in the right order - Parent A with it&#8217;s children before Parent B with it&#8217;s children.&nbsp; Getting the children to show up correctly in all cases depends on this sort being correct.</li>
<li>A template group and template structure such that url_titles will display in the segment_3 position.&nbsp; If your structure is different you&#8217;ll need to adjust the code.</li>
</ul>
<p>
<i>Note: this approach does require the query module, which isn&#8217;t included in the Core version of ExpressionEngine.</i>
</p><p><b>The Results</b>
<br />
Let&#8217;s first look at the results - so you can determine whether the outcome is something you&#8217;re interested in building.&nbsp; Here&#8217;s the <a href="http://www.boyink.com/splaat?URL=http%3A%2F%2Fwww.boyink.com%2Fsplaat%2Fstatic%2Fthree_tier_e%2F">working example</a>.&nbsp; The index loads initially only parent pages showing in the left nav - so these are pages with nothing assigned in the relationship field.
</p>
<p>
Clicking a parent page link will load that entry, and also refresh the left-nav with child pages for that section.&nbsp; Clicking a child page loads that entry and keeps the navigation the same. Choose a different parent and the 3rd level options change to only show the children for that parent.&nbsp; Behind the scenes - no javascript trickery, no CSS showing and hiding, no dynamic HTML - it all runs on straight EE conditionals with one query thrown in.
</p>
<p>
OK - so that&#8217;s the finished product.&nbsp; Let&#8217;s take a look at what it takes to get there.&nbsp; In this example I broke out the menu-building code into an e <a href="http://www.boyink.com/splaat?URL=http%3A%2F%2Fwww.expressionengine.com%2Findex.php%3Faffiliate%3Dboyink%26page%3Ddocs%2Ftemplates%2Fembedding_templates.html">Embedded Template</a> so that it could be easily reused from different areas of a site that needed the same type of navigation.
</p>
<p>
<b>Index Template</b>
<br />
Let&#8217;s start in the <a href="http://www.boyink.com/images/blog/static_nav_approach_e_index.txt">parent template</a> - it features this code which calls the embedded template while passing in all the things the code in the embedded template needs to generate the navigation:
</p>
<p>
</p><div class="codeblock"><code>
<span style="color: #0000BB">&#123;embed</span><span style="color: #007700">=</span><span style="color: #DD0000">"static/static_e_subnav"&nbsp;&nbsp;</span><span style="color: #0000BB">my_weblog_name</span><span style="color: #007700">=</span><span style="color: #DD0000">"static" </span><span style="color: #0000BB">my_index_entry</span><span style="color: #007700">=</span><span style="color: #DD0000">"section-index" <br /></span><span style="color: #0000BB">my_detail_path</span><span style="color: #007700">=</span><span style="color: #DD0000">"static/three_tier_e" </span><span style="color: #0000BB">my_relationship_field</span><span style="color: #007700">=</span><span style="color: #DD0000">"parent_page"</span><span style="color: #0000BB">&#125;</span>
</code></div><p>
</p>
<p>
<i>my_weblog_name</i>: Used to set the weblog to create the navigation from.
</p>
<p>
<i>my_index_entry</i>: There will be one post in the weblog that holds the index content for this section - and we don&#8217;t want to display that post in the subnav.&nbsp; Passing in the url_title of that entry will allow the embedded template to exclude it.
</p>
<p>
<i>my_detail_path</i>: We&#8217;ll need to build links in the embedded template so will need to know the path.&nbsp; Note that you can use this in two ways - either have one template for everything or use an index/detail template arrangement.&nbsp; In this example I&#8217;m using a single template.
</p>
<p>
<i>my_relationship_field</i>: The embedded template will need to know what field holds the relationships. Different weblogs will have different names for this field so its passed in as a variable.
</p>
<p>
<b>Embedded Template</b>
<br />
Now for the meat of the code - the <a href="http://www.boyink.com/images/blog/static_nav_approach_e_embed.txt">embedded template</a>.
</p>
<p>
There are essentially three parts to this code:
<br />
<ul>
<li>Showing the parents only</li>
<li>Showing children when a parent is selected</li>
<li>Showing siblings when a 3rd level page is selected</li>
</ul>
<p>
First let&#8217;s look at the weblog:entries tag:
<br />
</p><div class="codeblock"><code>
<span style="color: #0000BB">&#123;exp</span><span style="color: #007700">:</span><span style="color: #0000BB">weblog</span><span style="color: #007700">:</span><span style="color: #0000BB">entries weblog</span><span style="color: #007700">=</span><span style="color: #DD0000">"&#123;embed:my_weblog_name&#125;"&nbsp;&nbsp;</span><span style="color: #0000BB">url_title</span><span style="color: #007700">=</span><span style="color: #DD0000">"not &#123;embed:my_index_entry&#125;" </span><span style="color: #0000BB">sort</span><span style="color: #007700">=</span><span style="color: #DD0000">"asc" </span><span style="color: #0000BB">dynamic</span><span style="color: #007700">=</span><span style="color: #DD0000">"off"</span><span style="color: #0000BB">&#125;</span>
</code></div><p>
</p>
<p>
You can see we are using two of the passed in values to choose the right weblog, and exclude the post that represents the index entry.&nbsp; We set the sort and turn dynamic=off so EE doesn&#8217;t look at the URL to choose its results.
</p>
<p>
<b>Showing Parents Only</b>
<br />
The first conditional finds entries that have no relationships assigned:
</p>
<p>
</p><div class="codeblock"><code>
<span style="color: #0000BB">&#123;if &#123;embed</span><span style="color: #007700">:</span><span style="color: #0000BB">my_relationship_field&#125;</span><span style="color: #007700">==</span><span style="color: #DD0000">"0"</span><span style="color: #0000BB">&#125;</span>
</code></div><p>
</p>
<p>
<b>Showing Children When a Parent is Selected</b>
<br />
Within this conditional is another:
</p>
<p>
</p><div class="codeblock"><code>
<span style="color: #0000BB">&#123;if url_title</span><span style="color: #007700">==</span><span style="color: #0000BB">segment_3&#125;</span>
</code></div><p>
</p>
<p>
The code assumes that when the index for this section is loaded there will be nothing in the segment_3 position.&nbsp; So - remembering that we are still on an entry with no relationship specified - if there is something in segment three that means the user must have clicked a 2nd level&#8212;or parent - entry.&nbsp; Now we need to show the children for this entry so the code uses the reverse_related_entries tag to do so:
</p>
<p>
</p><div class="codeblock"><code>
<span style="color: #0000BB">&#123;reverse_related_entries&nbsp;&nbsp;weblog</span><span style="color: #007700">=</span><span style="color: #DD0000">"&#123;embed:my_weblog_name&#125;" </span><span style="color: #0000BB">sort</span><span style="color: #007700">=</span><span style="color: #DD0000">"asc"</span><span style="color: #0000BB">&#125;<br />&#123;if count</span><span style="color: #007700">==</span><span style="color: #0000BB">1&#125;</span><span style="color: #007700">&lt;</span><span style="color: #0000BB">ul</span><span style="color: #007700">&gt;</span><span style="color: #0000BB">&#123;</span><span style="color: #007700">/</span><span style="color: #0000BB">if&#125;<br /></span><span style="color: #007700">&lt;</span><span style="color: #0000BB">li</span><span style="color: #007700">&gt;&lt;</span><span style="color: #0000BB">a href</span><span style="color: #007700">=</span><span style="color: #DD0000">"&#123;url_title_path=&#123;embed:my_detail_path&#125;&#125;"</span><span style="color: #007700">&gt;</span><span style="color: #0000BB">&#123;title&#125;</span><span style="color: #007700">&lt;/</span><span style="color: #0000BB">a</span><span style="color: #007700">&gt;&lt;/</span><span style="color: #0000BB">li</span><span style="color: #007700">&gt;<br /></span><span style="color: #0000BB">&#123;if count</span><span style="color: #007700">==</span><span style="color: #0000BB">total_results&#125;</span><span style="color: #007700">&lt;/</span><span style="color: #0000BB">ul</span><span style="color: #007700">&gt;</span><span style="color: #0000BB">&#123;</span><span style="color: #007700">/</span><span style="color: #0000BB">if&#125;<br />&#123;</span><span style="color: #007700">/</span><span style="color: #0000BB">reverse_related_entries&#125;</span>
</code></div><p>
</p>
<p>
Those two situations are the easy part.&nbsp; The harder part is determining when a child entry has been selected and then displaying the siblings for that entry.
</p>
<p>
<b>Showing Siblings When a 3rd Level Page is Selected</b>
<br />
The first part - detecting when a 3rd level page has been selected - is handled by this if:elseif in the main conditional:
</p>
<p>
</p><div class="codeblock"><code>
<span style="color: #0000BB">&#123;if</span><span style="color: #007700">:elseif </span><span style="color: #0000BB">&#123;embed</span><span style="color: #007700">:</span><span style="color: #0000BB">my_relationship_field&#125;</span><span style="color: #007700">!=</span><span style="color: #DD0000">"0" </span><span style="color: #007700">AND </span><span style="color: #0000BB">segment_3</span><span style="color: #007700">==</span><span style="color: #0000BB">url_title&#125;</span>
</code></div><p>
</p>
<p>
This finds the case when the currently-displayed entry has been assigned to a parent (so is a child page) and whose url_title is displaying (so has been selected).
</p>
<p>
Now for the trickiest part - finding other pages with the same parent - or siblings - to this page.&nbsp; There is currently no built in tag to do this in ExpressionEngine, so we have to use a custom query (I won&#8217;t go into the specifics of the query here - I was only able to figure this out by bringing EE data into MSAccess where I could use the visual query builder to figure it out):
</p>
<p>
</p><div class="codeblock"><code>
<span style="color: #0000BB">&#123;exp</span><span style="color: #007700">:</span><span style="color: #0000BB">query sql</span><span style="color: #007700">=</span><span style="color: #DD0000">"SELECT exp_weblog_titles.title as my_title, exp_weblog_titles.url_title as my_url_title<br />FROM (exp_relationships INNER JOIN exp_relationships AS exp_relationships_1 ON exp_relationships.rel_child_id = exp_relationships_1.rel_child_id) <br />INNER JOIN exp_weblog_titles ON exp_relationships_1.rel_parent_id = exp_weblog_titles.entry_id<br />WHERE (((exp_relationships.rel_id)=&#123;&#123;embed:my_relationship_field&#125;&#125;) AND exp_weblog_titles.weblog_id=&#123;weblog_id&#125;) ORDER BY exp_weblog_titles.entry_date asc;"</span><span style="color: #0000BB">&#125;<br /><br /></span><span style="color: #007700">&lt;</span><span style="color: #0000BB">li</span><span style="color: #007700">&gt;&lt;</span><span style="color: #0000BB">a href</span><span style="color: #007700">=</span><span style="color: #DD0000">"&#123;homepage&#125;/&#123;embed:my_detail_path&#125;/&#123;my_url_title&#125;/"</span><span style="color: #007700">&gt;</span><span style="color: #0000BB">&#123;my_title&#125;</span><span style="color: #007700">&lt;/</span><span style="color: #0000BB">a</span><span style="color: #007700">&gt;&lt;/</span><span style="color: #0000BB">li</span><span style="color: #007700">&gt;<br /></span><span style="color: #0000BB">&#123;</span><span style="color: #007700">/</span><span style="color: #0000BB">exp</span><span style="color: #007700">:</span><span style="color: #0000BB">query&#125;</span>
</code></div><p>
</p>
<p>
Note that the query uses the global homepage variable, the passed-in my_detail_path variable, and a query-specific variable of my_url_title to assemble the proper link.
</p>
<p>
So there you have it - a one weblog, one field group, one template way of building static navigation that requires no client-side trickery to only display children for one branch of the navigation tree at at time.
</p>
<p>
I do need to thank Rob Dircks of <a href="http://www.boyink.com/splaat?URL=http%3A%2F%2Fwww.dircksny.com%2F">Dircks Associates</a> for permission to share this code.&nbsp; I developed some of the trickier parts as part of a project for Rob.
<br />

</p>]]></description>
      <dc:subject>expression&#45;engine</dc:subject>
      <dc:date>2008-05-27T14:51:00-05:00</dc:date>
    </item>

    <item>
      <title>ExpressionEngine&#45;Based Product Comparison</title>
      <link>http://www.boyink.com/splaat/comments/expressionengine-based-product-comparison/</link>
      <guid>http://www.boyink.com/splaat/comments/expressionengine-based-product-comparison/#When:17:01:01Z</guid>
      <description><![CDATA[<p>I&#8217;m pleased to announce a nice little addition to one of my client&#8217;s sites.&nbsp; <a href="http://www.boyink.com/splaat?URL=http%3A%2F%2Fwww.espec.com">Espec.com</a> now has a <a href="http://www.boyink.com/splaat?URL=http%3A%2F%2Fwww.espec.com%2Fna%2Fproducts%2Fcompare_benchtops%2F">product comparison tool</a> that runs off the <a href="http://www.expressionengine.com/index.php?affiliate=boyink">ExpressionEngine</a> backend.
</p>
<p>
I&#8217;m considering a more detailed writeup of how it works down the road - but in a nutshell the select-boxes are dynamically populated by weblog:entries tags, a bit of Javascript assembles a URL from the entry_id of the selections, and the results are constructed with weblog:entries tags reading the entry_id&#8217;s from <a href="http://www.expressionengine.com/index.php?affiliate=boyink&amp;page=/docs/templates/globals/url_segments.html">URL segments</a>.
</p>
<p>
The nice part is that the results pages don&#8217;t use any cookies - and hence are able to be bookmarked by users, or sent via email by Espec sales people to prospective clients.
</p>]]></description>
      <dc:subject>expression&#45;engine</dc:subject>
      <dc:date>2008-03-31T17:01:01-05:00</dc:date>
    </item>

    <item>
      <title>A New Blog, A New Series</title>
      <link>http://www.boyink.com/splaat/comments/a-new-blog/</link>
      <guid>http://www.boyink.com/splaat/comments/a-new-blog/#When:14:28:00Z</guid>
      <description><![CDATA[<p>Find another Building an ExpressionEngine Site tutorial series going on at <a href="http://www.boyink.com/splaat?URL=http%3A%2F%2Fwww.train-ee.com">Train-ee.com</a>.
</p><p>I&#8217;m pleased to announce that I&#8217;ve added a blog to <a href="http://www.boyink.com/splaat?URL=http%3A%2F%2Fwww.train-ee.com">Train-ee</a>.&nbsp; The Train-ee.com blog will be the home of a new Building an <a href="http://www.expressionengine.com/index.php?affiliate=boyink">ExpressionEngine</a> Site Series, this time covering the build of a church website.&nbsp; You can read the full <a href="http://www.boyink.com/splaat?URL=http%3A%2F%2Fwww.train-ee.com%2Fcourseware%2Fblog%2Fcomments%2Fa-new-blog-a-new-series%2F">announcement over at Train-ee.com</a>.
</p>]]></description>
      <dc:subject>building&#45;an&#45;expression&#45;engine&#45;site, expression&#45;engine</dc:subject>
      <dc:date>2008-03-22T14:28:00-05:00</dc:date>
    </item>

    <item>
      <title>Metaphor for ExpressionEngine 2.0</title>
      <link>http://www.boyink.com/splaat/comments/metaphor-for-ee-20/</link>
      <guid>http://www.boyink.com/splaat/comments/metaphor-for-ee-20/#When:17:53:00Z</guid>
      <description><![CDATA[<p>So I keep having these conversations where <a href="http://expressionengine.com/ee2_sneak_preview?affiliate=boyink">ExpressionEngine 2.0</a> comes up and I struggle with a metaphor to explain the changes to people.&nbsp; 
</p>
<p>
If you&#8217;ve looked over the changes and watched the preview video you know the biggest changes are that EE 2.0 is based on <a href="http://www.boyink.com/splaat?URL=http%3A%2F%2Fwww.codeigniter.com">CodeIgniter</a> and that the control panel has been reorganized and redesigned.
</p>
<p>
So first I thought of describing it like a sandwich - where the meat is the same but the bread is different...but that doesn&#8217;t quite get it.
</p>
<p>
I often think of houses and architecture when it comes to websites and applications, so next I thought about a house where the foundation is being revamped.&nbsp; But EE 2 has more than just redecorating happening in the control panel - it&#8217;s also been reorganized which doesn&#8217;t quite map to the house metaphor.
</p>
<p>
So my working metaphor is that EE 2.0 is like taking your current CD/ DVD collection, buying a much nicer/sturdier/more expandable rack to store them in, and then re-organizing them while moving them into the new rack.&nbsp; Same music that you love - just better organized in a better environment.&nbsp; And maybe a few new CD&#8217;s to boot.
</p>
<p>
That&#8217;s better...but it still seems like there should be a better way to describe the changes that EE 2 is bringing.&nbsp; How about it - any better metaphors out there?
</p>]]></description>
      <dc:subject>expression&#45;engine</dc:subject>
      <dc:date>2008-03-18T17:53:00-05:00</dc:date>
    </item>

    <item>
      <title>Designing an ExpressionEngine Architecture</title>
      <link>http://www.boyink.com/splaat/comments/designing-an-expressionengine-architecture/</link>
      <guid>http://www.boyink.com/splaat/comments/designing-an-expressionengine-architecture/#When:22:32:00Z</guid>
      <description><![CDATA[<p>I&#8217;m pleased to announce the newest offering on <a href="http://www.boyink.com/splaat?URL=http%3A%2F%2Fwww.train-ee.com">Train-ee.com</a> - and that is a just-shy-of-one-hour screencast called <a href="http://www.boyink.com/splaat?URL=http%3A%2F%2Fwww.train-ee.com%2Fcourseware%2Fscreencasts%2Fdesigning-an-expressionengine-architecture%2F">Designing an ExpressionEngine Architecture</a>.
</p>
<p>
You can read the full description on Train-ee.com, but the main goal of the screencast is that it gets you over that panic-attack moment of looking at a finished site comp, and now wondering just how the heck do I configure <a href="http://www.expressionengine.com/index.php?affiliate=boyink">ExpressionEngine</a> to power this site?
</p>
<p>
I felt this was an important one to get out there, as through my consulting work I&#8217;ve seen a number of EE sites that have foundational issues.&nbsp; And&#8212;just like trying to build nice straight and level walls on a crooked and irregular home foundation is tough, so it is with EE.&nbsp; The trouble is when you&#8217;re new to EE it&#8217;s just so easy to make poor choices that come back to bite you later&#8212;so hence this screencast with some recommendations for a solid ExpressionEngine Architecture.
</p>

]]></description>
      <dc:subject>expression&#45;engine</dc:subject>
      <dc:date>2008-02-25T22:32:00-05:00</dc:date>
    </item>

    <item>
      <title>EE Users &#45; Change Your Comments Labels</title>
      <link>http://www.boyink.com/splaat/comments/ee-users-change-your-comments-labels/</link>
      <guid>http://www.boyink.com/splaat/comments/ee-users-change-your-comments-labels/#When:13:37:00Z</guid>
      <description><![CDATA[<p>Just a quick heads-up for the <a href="http://www.expressionengine.com/index.php?affiliate=boyink">ExpressionEngine</a> users coming to Boyink.com.&nbsp; 
</p>
<p>
I&#8217;ve been getting a few more than normal spam comments the last couple of days.&nbsp; I noted in my search logs that they are coming in with referrer phrases like 
</p>
<blockquote><p>community &#8220;Remember my personal information&#8221; &#8220;Notify me of follow-up comments.&#8221;</p></blockquote>
<p>
then hand-entering comments for the sole purpose of linking to their site.
</p>
<p>
In other words, they are targeting EE blogs by using the default labels on the comments form in their searches.&nbsp; I&#8217;ve changed the labels on my comments form this morning to some alternate wording to see if it helps mitigate the spam.
</p>
<p>
EE techie note - this was one of those payback moments for implementing my weblogs all with a shared comments form.&nbsp; Even though I run four blogs on the site, changing the wording in one template took care of all of them.
</p>]]></description>
      <dc:subject>expression&#45;engine</dc:subject>
      <dc:date>2008-02-21T13:37:00-05:00</dc:date>
    </item>

    <item>
      <title>Gotta Testify!</title>
      <link>http://www.boyink.com/splaat/comments/gotta-testify/</link>
      <guid>http://www.boyink.com/splaat/comments/gotta-testify/#When:13:05:00Z</guid>
      <description><![CDATA[<p>I&#8217;m already quoted on the <a href="http://www.boyink.com/splaat?URL=http%3A%2F%2Fwww.enginehosting.com">EngineHosting</a> site, so if you&#8217;ve looked at their plans you already know I&#8217;m a big fan of Nevin and crew.&nbsp; 
</p>
<p>
But I just need to say it again&#8212;for <a href="http://www.expressionengine.com/index.php?affiliate=boyink">ExpressionEngine</a>-based projects or not, EngineHosting just rocks.&nbsp; I&#8217;ve been a happy customer of theirs - for client sites, Boyink.com (and now <a href="http://www.boyink.com/splaat?URL=http%3A%2F%2Fwww.train-ee.com">Train-ee</a>) - for a few years now and have had nothing but good experiences every time I&#8217;ve contacted them.&nbsp; It&#8217;s so nice to be able to pitch projects and make a recommendation for hosting with 100% confidence that my clients will be happy with the service.
</p>
<p>
Lately I had an issue that was somewhat &#8220;outside of the box&#8221; and Nevin responded in a very generous manner.&nbsp; I don&#8217;t know if he&#8217;s a drinking man but I am looking forward to buying him a beverage of his choice at the upcoming SXSW conference.
</p>
<p>
Thanks again EngineHosting!
</p>]]></description>
      <dc:subject>expression&#45;engine, other</dc:subject>
      <dc:date>2008-02-15T13:05:00-05:00</dc:date>
    </item>

    <item>
      <title>Give Input on the Next EE Series</title>
      <link>http://www.boyink.com/splaat/comments/give-input-on-the-next-ee-series/</link>
      <guid>http://www.boyink.com/splaat/comments/give-input-on-the-next-ee-series/#When:14:09:00Z</guid>
      <description><![CDATA[<p>So, strange as it seems I&#8217;ve been getting the itch to start another &#8220;Building an ExpressionEngine Site&#8221; series.&nbsp; Since the last one was &#8220;Small Business&#8221;, I was thinking around what I could do next.&nbsp; The most natural one for me would be a church site.&nbsp;  Church sites, on the whole, are pretty terrible and the combination of <a href="http://www.boyink.com/splaat?URL=http%3A%2F%2Fwww.expressionengine.com%2Findex.php%3Faffiliate%3Dboyink">ExpressionEngine</a>, a design template and a crafty developer equals a pretty darn nice website for not a whole lot of cash.&nbsp; Getting a step by step series out there might help someone who otherwise couldn&#8217;t be that crafty developer for their church.
</p><p>As I think through it, though, it seems a waste to build a &#8220;sample&#8221; site when there are so many churches and ministries that could actually use the thing. 
</p>
<p>
So, yes, I am considering ignoring <a href="http://www.boyink.com/splaat?URL=http%3A%2F%2Fwww.boyink.com%2Fsplaat%2Fcomments%2Fchurch-webmasters-stop-working-for-free%2F">my own advice</a> and writing a blog series covering the build of an EE-based website that would, at the end of the series, be turned over to a church or ministry that could really use it.&nbsp; The series would then be compiled/edited into a book just like the Small Business series, and sold via <a href="http://www.boyink.com/splaat?URL=http%3A%2F%2Fwww.train-ee.com">Train-ee.com</a>.
</p>
<p>
Yes, it might be crazy - or at least I am considering my less-than-stellar experiences with church websites.
</p>
<p>
So with that as the kernel of the idea, I&#8217;m looking for input on how to best structure the project so that the site-recipient is best set up for post-launch success, and I have the material for a book targeted at another audience.
</p>
<p>
I&#8217;m thinking of things along these lines:<ul>
<li>Recipient must identify a developer who will &#8220;inherit&#8221; the site and make all future changes to.&nbsp; This developer will be provided with the book resulting from this series.&nbsp; The goal here is that once done building the site I can hand it off and not be responsible for it forever.</li>
<li>Recipient must be, as an organization, at least two years old, with a healthy ministry.&nbsp; I want to avoid putting a lot of work into a site for an organization that dies either during the process or shortly thereafter.</li>
<li>Recipient must furnish a design template and logo before the project begins (Debatable here - documenting the design process might be interesting as well, but that would involve someone else as I&#8217;m really out of the design business these days.)</li>
<li>Recipient must purchase hosting and a copy of ExpressionEngine.</li>
<li>Recipient must be committed to actually using the site once live.&nbsp; I&#8217;m not sure how you can require commitment but I want to see the site get picked up and taken seriously in the day to day running of the recipient.&nbsp; Maybe the recipient has to be already active on the internet - just using something like Blogger that isn&#8217;t meeting their needs any longer. Or maybe the recipient would need to furnish a content maintenance plan involving staff and schedules.</li>
<li>Recipient can&#8217;t be in a hurry.&nbsp; The last series took roughly 5 months to complete, and I&#8217;d expect this to be the same.</li>
</ul>
<p>
Other thoughts or ideas?
</p>

<p>

</p>]]></description>
      <dc:subject>boyink&#45;interactive&#45;news, expression&#45;engine</dc:subject>
      <dc:date>2008-02-02T14:09:00-05:00</dc:date>
    </item>

    <item>
      <title>Tip: Use Homepage Variable in Weblog Paths</title>
      <link>http://www.boyink.com/splaat/comments/tip-use-homepage-variable-in-weblog-paths/</link>
      <guid>http://www.boyink.com/splaat/comments/tip-use-homepage-variable-in-weblog-paths/#When:18:31:00Z</guid>
      <description><![CDATA[<p>I think the site_url and homepage variables are a couple of my favorites in <a href="http://www.expressionengine.com/index.php?affiliate=boyink">ExpressionEngine</a>.
</p>
<p>
The other day&#8212;while putting the book together actually - I ran across another handy place to use the homepage variable - in the Weblog Path Settings.
</p>
<p>
Path Settings are where you tell EE where the Weblog URL, the Comments Page URL, the Search Results URL are for a given weblog.&nbsp; Some of these get defaulted when you create the weblog.
</p>
<p>
What happens to me quite often is - no matter how hard to I try to remember - I forget to change these paths after a site goes live.&nbsp; Then when, for example, someone uses the Search, the path of the link returned still has the &#8220;temporary&#8221; domain name in it.&nbsp; The link will still work, but it messes up your server logs and just doesn&#8217;t look as nice as getting the live URL in there.&nbsp; Or - I decide to rename &#8220;index.php&#8221; to something more semantic and then have to go find all the places where &#8220;index.php&#8221; is stored.
</p>
<p>
So - what I discovered I could do is use the homepage variable in those settings - and then they will inherit the change to the homepage and root URL setting automatically.&nbsp; So, for example, rather than having a Search Results URL setting of :
</p>
<p>
</p><div class="codeblock"><code>
<span style="color: #0000BB">http</span><span style="color: #007700">:</span><span style="color: #FF8000">//some.domain.here/index.php/template_group/template/</span>
</code></div><p>
</p>
<p>
I can specify:
<br />
</p><div class="codeblock"><code>
<span style="color: #0000BB">&#123;homepage&#125;</span><span style="color: #007700">/</span><span style="color: #0000BB">template_group</span><span style="color: #007700">/</span><span style="color: #0000BB">template</span><span style="color: #FF8000">/</span>
</code></div><p>
</p>
<p>
Now when I change the &#8220;URL to the root directory of your site&#8221; and the &#8220;Name of your site&#8217;s index page&#8221; under Admin  >  System Preferences  >  General Configuration all those individual weblog paths will change as well.
</p>
<p>
One less thing to worry about when launching a site = well worth it.
</p>]]></description>
      <dc:subject>expression&#45;engine</dc:subject>
      <dc:date>2008-01-18T18:31:00-05:00</dc:date>
    </item>

    <item>
      <title>Site Launch &gt; Train&#45;ee.com</title>
      <link>http://www.boyink.com/splaat/comments/site-launch-train-eecom/</link>
      <guid>http://www.boyink.com/splaat/comments/site-launch-train-eecom/#When:00:15:00Z</guid>
      <description><![CDATA[<p>I&#8217;m excited to finally be able to pull the sheet of <a href="http://www.boyink.com/splaat?URL=http%3A%2F%2Fwww.train-ee.com">Train-ee.com</a> - a site where I intend to deliver eBooks, screencasts and other resources all designed with one thing in mind - to get the working web professional up to speed on ExpressionEngine as quickly as possible.
</p>
<p>
Why this, why now?
</p>
<p>
Simple - over the past 12-18 months I&#8217;ve seen a large increase in the number of contacts for ExpressionEngine work - not from end users, but from other developers and design firms.&nbsp; The story is usually roughly the same - they have a project, EE looks like it&#8217;d be a great fit, but they don&#8217;t yet have the internal expertise to do the ExpressionEngine implementation.
</p><p>While I certainly don&#8217;t mind hiring myself out as a subcontractor on those projects, it just seemed like there should be a better way to get the EE implementation knowledge out there that would help these firms help themselves.
</p>
<p>
Now - there are plenty of existing resources out there where you can learn about EE but I think what has been missing are some content types - books, screencasts, webinars, etc. that would appeal to people with different learning styles, and more of the step-by-step tutorial type content that&#8217;s been so popular here on Boyink.com
</p>
<p>
And yes - before you ask (or go peek, if you haven&#8217;t already), the content offered via Train-ee won&#8217;t (in most cases anyway) be free.&nbsp; At least now, to start with, each item will be purchased on an individual basis with other pricing schemes being considered for the future. My hope is that, by charging a modest amount for each item, the site will generate enough revenue to justify continually adding new content while also ensuring that each item is of high quality and hence&#8212;a good value for your investment.
</p>
<p>
And please note - I fully expect that Train-ee.com is going to be an ongoing learning process on my part.&nbsp; I&#8217;ve never ventured outside of the &#8220;work for hire&#8221; model of web development - so I hope you&#8217;ll understand if you see some pricing fluctuations or other site changes going on as I (hopefully) respond to market conditions and demands.
</p>
<p>
From a design point of view my goal was to get something workable and relatively consistent across different EE modules (wiki, discussion forum, member templates) as quickly as possible.&nbsp; The best way to do that seemed to be to orient the site design towards existing themes for those elements, so the main site design is a mashup of the <a href="http://www.boyink.com/splaat?URL=http%3A%2F%2Fwww.solucija.com%2Ftemplates%2Fdemo%2FWhats_your_solution%2F">What&#8217;s your solution</a> template available from <a href="http://www.boyink.com/splaat?URL=http%3A%2F%2Fwww.solucija.com%2F">solucija.com</a> and some default EE elements.
</p>
<p>
The site uses the EE Simple Commerce Module to handle the transactions, and the EE discussion forum module for post-sale support.
</p>
<p>
So - what&#8217;s available for purchase on the site?&nbsp; Read the next post&#8230;
</p>
]]></description>
      <dc:subject>boyink&#45;interactive&#45;news, expression&#45;engine</dc:subject>
      <dc:date>2008-01-16T00:15:00-05:00</dc:date>
    </item>

    
    </channel>
</rss>