<?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>EE Templates Blog</title>
    <link>http://eetemplates.com/</link>
    <description></description>
    <dc:language>en</dc:language>
    <dc:creator>info@eetemplates.com</dc:creator>
    <dc:rights>Copyright 2011</dc:rights>
    <dc:date>2011-02-25T19:38:42+00:00</dc:date>
    <admin:generatorAgent rdf:resource="http://expressionengine.com/" />
    

    <item>
      <title><![CDATA[Another override.css]]></title>
      <link>http://eetemplates.com/site/another_override_css_file</link>
      <guid>http://eetemplates.com/site/another_override_css_file#When:20:28:19Z</guid>
      <description><![CDATA[<p>I said I would post some larger images of the override.css that I have been toying with so people could make out some of the details. Just to be clear this is <a href="http://ee-garage.com/override-css">not as robust an overhaul as the override</a> that Leevi Graham has posted. But I like it.</p>

<p>If you are interested in testing this out a bit just <a href="mailto:marcus@eetemplates.com">Email Me</a>. It uses the corporate theme as the theme that it overrides. I also had to change a few of the images so make sure to back up your current corporate theme folder if I send this to you to test.</p>

<p>I hope to release this this week for free&#8230;</p>

<p>Make sure to leave a comment and let me know what you would like to see changed.</p>

<center>
<p><a rel="fancy_group" class="fancy" href="http://eetemplates.com/images/uploads/override.png"><img alt="override" src="http://eetemplates.com/images/uploads/override_s.png" height="250" /></a></p>

<p><a rel="fancy_group" class="fancy" href="http://eetemplates.com/images/uploads/override1.png"><img alt="override" src="http://eetemplates.com/images/uploads/override1_s.png" height="250" /></a></p>

<p><a rel="fancy_group" class="fancy" href="http://eetemplates.com/images/uploads/override2.png"><img alt="override" src="http://eetemplates.com/images/uploads/override2_s.png" height="250" /></a></p>

<p><a rel="fancy_group" class="fancy" href="http://eetemplates.com/images/uploads/override3.png"><img alt="override" src="http://eetemplates.com/images/uploads/override3_s.png" height="250" /></a></p>

<p><a rel="fancy_group" class="fancy" href="http://eetemplates.com/images/uploads/override4.png"><img alt="override" src="http://eetemplates.com/images/uploads/override4_s.png" height="250" /></a></p><p></center></p>]]></description>
      <dc:subject><![CDATA[News,]]></dc:subject>
      <dc:date>2011-04-08T20:28:19+00:00</dc:date>
    </item>

    <item>
      <title><![CDATA[Removing Index.php from the URLs of Expression Engine websites]]></title>
      <link>http://eetemplates.com/site/removing_index.php_from_the_urls_of_expressionengine_websites</link>
      <guid>http://eetemplates.com/site/removing_index.php_from_the_urls_of_expressionengine_websites#When:14:53:26Z</guid>
      <description><![CDATA[<p>For a long time now I have struggled with removing index.php from my EE websites. I have used a mix bag of the <a href="http://expressionengine.com/wiki/Remove_index.php_From_URLs/">include/exclude method</a> and add-ons that deal with making the <a href="http://ee-garage.com/nsm-htaccess-generator">include/exclude method</a> easier.</p>

<p>A few weeks ago I was having some issues while creating a multi-language site and <a href="http://jackmcdade.com/">Jack McDade</a> sent me a snippet of .htaccess code that has worked on several hosts (including a dedicated mac mini, gatorhost) and is simple. I asked Jack&#8217;s permission to post the code and he said yes. So if you find this handy make sure to give him a <a href="http://lobsterwarmachine.com/">thanks by purchasing</a> one of <a href="http://buildwithstructure.com">his many add-ons</a> or <a href="http://twitter.com/jackmcdade">follow on the twitters</a>...</p>

<blockquote class="code"><div class="codeblock"><code><span style="color: #000000">
<span style="color: #0000BB">AcceptPathInfo&nbsp;On<br /><br />Options&nbsp;</span><span style="color: #007700">-</span><span style="color: #0000BB">Indexes<br /><br /></span><span style="color: #007700">&lt;</span><span style="color: #0000BB">IfModule&nbsp;mod_rewrite</span><span style="color: #007700">.</span><span style="color: #0000BB">c</span><span style="color: #007700">&gt;<br /></span><span style="color: #0000BB">RewriteEngine&nbsp;On<br /><br /></span><span style="color: #FF8000">#&nbsp;Looks&nbsp;for&nbsp;files&nbsp;and&nbsp;directories&nbsp;that&nbsp;do&nbsp;not&nbsp;exist<br />#&nbsp;and&nbsp;provide&nbsp;the&nbsp;segments&nbsp;to&nbsp;the&nbsp;index.php&nbsp;file<br /></span><span style="color: #0000BB">RewriteCond&nbsp;</span><span style="color: #007700">%</span><span style="color: #0000BB">&#123;REQUEST_FILENAME&#125;&nbsp;</span><span style="color: #007700">!-</span><span style="color: #0000BB">f<br />RewriteCond&nbsp;</span><span style="color: #007700">%</span><span style="color: #0000BB">&#123;REQUEST_FILENAME&#125;&nbsp;</span><span style="color: #007700">!-</span><span style="color: #0000BB">d<br />RewriteCond&nbsp;</span><span style="color: #007700">$</span><span style="color: #0000BB">1&nbsp;</span><span style="color: #007700">!^/</span><span style="color: #0000BB">index</span><span style="color: #007700">.</span><span style="color: #0000BB">php<br />RewriteCond&nbsp;</span><span style="color: #007700">$</span><span style="color: #0000BB">1&nbsp;</span><span style="color: #007700">!.(</span><span style="color: #0000BB">css</span><span style="color: #007700">|</span><span style="color: #0000BB">js</span><span style="color: #007700">|</span><span style="color: #0000BB">png</span><span style="color: #007700">|</span><span style="color: #0000BB">jpe</span><span style="color: #007700">?</span><span style="color: #0000BB">g</span><span style="color: #007700">|</span><span style="color: #0000BB">gif</span><span style="color: #007700">|</span><span style="color: #0000BB">ico</span><span style="color: #007700">)$&nbsp;</span><span style="color: #0000BB">&#91;NC&#93;<br />RewriteRule&nbsp;</span><span style="color: #007700">^(.*)$&nbsp;</span><span style="color: #0000BB">index</span><span style="color: #007700">.</span><span style="color: #0000BB">php</span><span style="color: #007700">/$</span><span style="color: #0000BB">1&nbsp;&#91;L&#93;<br /></span><span style="color: #007700">&lt;/</span><span style="color: #0000BB">IfModule</span><span style="color: #007700">&gt;&nbsp;</span>
</span>
</code></div></blockquote>]]></description>
      <dc:subject><![CDATA[Template Code, Tutorials,]]></dc:subject>
      <dc:date>2011-03-07T14:53:26+00:00</dc:date>
    </item>

    <item>
      <title><![CDATA[Learning Things the Hard Way - Upgrading from 1.7 to 2]]></title>
      <link>http://eetemplates.com/site/learning_things_the_hard_way_upgrading_from_1.7_to_2</link>
      <guid>http://eetemplates.com/site/learning_things_the_hard_way_upgrading_from_1.7_to_2#When:19:38:42Z</guid>
      <description><![CDATA[<p>This is just a quick blog post to relay some info I just learned. I am in the process of upgrading Show-ee from 1.6.8 to 1.7 and then to 2.1.4b. As part of that site we used to use FieldFrame from Pixel &amp; Tonic. Specifically we were using the CheckBox Group fields for the checkboxes that tell what add-ons a developer used. Well as part of the process I upgraded from 1.6.8 to 1.7 but neglected to upgrade all of the add-ons before moving to 2.1.4. </p>

<p>FieldFrame on this particular site was 1.4.0 which used a serialized array to store the contents of the field in. In version 1.4.1 Brandon moved to flat text values. If I had upgraded prior to upgrading the site to 2.x I would have had a smoother process. So I want to relay two things. If you have not upgraded from 1.7 to 2.x yet then you may want to upgrade your site to the most current 1.x versions of your various add-ons prior to moving on. Then when you upgrade to 2.x you will probably see less headaches. If you have already upgraded to 2.x and are seeing problems with the old FieldFrame fieldtypes then never fear&#8230; Brandon has saved the day(that is one smart dude). </p>

<p>Basically all you have to do is go to the <a href="https://github.com/brandonkelly/pt_field_pack">GitHub page for the Pixel &amp; Tonic Field Pack</a>. Download the files. Open up the following file: third_party/pt_field_pack/pt_fieldtype.php. Towards the top of the file you will see an $unserialize_data variable. Set this to &#8220;TRUE&#8221;. Upload the files. And voila! you should see the data that was previously not displaying.</p>

<p>Short of another issue upgrading the nGen File Field the upgrade process to 2.x has been a breeze. If you have been worried about upgrading you shouldn&#8217;t be. just make sure that all of your add-ons are available and you should be ok. Famous last words right?</p>

<p>**EDIT: Brad Morse just sent me <a href="http://expressionengine.com/forums/viewthread/203380/#953876">this link</a> which is helpful for those that might be dealing with nGen File Field from Version 1.x.</p>]]></description>
      <dc:subject><![CDATA[Tutorials,]]></dc:subject>
      <dc:date>2011-02-25T19:38:42+00:00</dc:date>
    </item>

    <item>
      <title><![CDATA[Creating Installable Templates for ExpressionEngine 2]]></title>
      <link>http://eetemplates.com/site/creating_installable_templates_for_expressionengine_2</link>
      <guid>http://eetemplates.com/site/creating_installable_templates_for_expressionengine_2#When:20:04:37Z</guid>
      <description><![CDATA[<p><span class="intro">This is the second installment in our Creating installable templates tutorials for <a href="http://www.expressionengine.com/index.php?affiliate=eetemplates">ExpressionEngine</a>. In this post we are going to talk about the actual package that needs to be delivered to the end user and all of the associated files. Plus we even have a bonus of some useful code for you. </span></p>
<p><strong>Before you get started it may be helpful to download <a href="http://eetemplates.com/templates">one of our templates (free)</a> to help follow along</strong></p>
<p><i>Special thanks to Greg Salt from <a href="http://purple-dogfish.co.uk/">Purple Dogfish</a> for his help on the default content file code</i></p>
<h3>Folder Structure and Files</h3>
<p>I still prefer to to keep my CSS and JS files outside of EE so the root of my package has a css and a js folder (if I am using Javascript for anything). I also have an images directory and a themes directory. Obviously you need to warn the user not to overwrite any core files they may have uploaded as part of the default EE install.</p>
<center><img style="margin-bottom:15px;" src="http://eetemplates.com/images/uploads/folderstructure.png" alt="Folder Structure" style="border: 0;" alt="image" /></center>

<p>The real magic happens inside of the themes directory. Inside of the themes folder I follow the same path that the user would have to follow in order to upload the theme and have it work on their server. So the path will be themes/site_themes/theme_name where theme_name is the name you want for the theme. For the purposes of this tutorial let&#8217;s call the theme Tudobem (one of our <a href="http://eetemplates.com/templates">previously released templates</a>). So your path would be themes/site_themes/tudobem</p>

<p>Inside of the tudobem folder you will have a mixture of folders and files. Let&#8217;s talk about the folders first. One of the really nice features of <a href="http://www.expressionengine.com/index.php?affiliate=eetemplates">ExpressionEngine</a> 2 is the capability to create a folder called site.group and have EE make a new template group called site. Inside of the folder you will want to create an index.html which will create a new template in <a href="http://www.expressionengine.com/index.php?affiliate=eetemplates">ExpressionEngine</a> called index. Following this same example if you want to have a blog section for the template you will have a folder titled blog.group that has files in it titled index.html, comments.html, archives.html, categories.html and so on. </p>
<center><img style="margin-bottom:15px;" src="http://eetemplates.com/images/uploads/folderstructure2.png" alt="Folder Structure" style="border: 0;" alt="image" /></center>
<p>If you have created a site in EE2 and want to speed up the process you can just synchronize the files on the server and the system will output of the .group folders for the various template groups and the .html files needed for the various templates. So you are 75% of the way there.</p>

<p>In addition to the .group folders you will want to have a snippets (snippets) and a global variables folder (global_variables). Note that they do not have the .group naming convention. From my experience the files in the global_variables and snippets folder have no extension. So if you wanted to create a new snippet that contains an Email Address just title the file email_address with no file extension, and put the demo email address inside the file.</p>
<center><img style="margin-bottom:15px;" src="http://eetemplates.com/images/uploads/folderstructure3.png" alt="Folder Structure" style="border: 0;" alt="image" /></center>
<p>Now let&#8217;s park on snippets for a minute. We talked in the previous blog post about how Global Variables and Snippets are parsed at different times and that if you want to be able to act against the data as part of a conditional statement it needs to be a snippet. So if you are building a template and you want to make it really easy for people to update it then you can create snippets for email address, company name, fax number, address, template color, google map code, fax number, phone number, etc etc. So when someone installs the template all you have to do is direct them to the snippets area in the control panel and they can update all of the business pertinent information without having to modify the templates.</p><p> </p>

<p>If you&#8217;ve looked at the Agile Records example you know that there are 2 files inside of the theme&#8217;s folder. The first we will discuss is the theme preferences file. This file just tells you what modules you want installed, what some of the preferences are for some of the templates. Can certain member groups access certain templates? This is where you would set it. This file is pretty simple. If you have questions pose them in the comments as I will gladly expand on this but it seems pretty straightforward.</p>

<p>The more interesting file is the default content file. I&#8217;m about to make your life a whole lot easier&#8230; In the example for agile records you would have to go through the database and remove all non pertinent data but leave all tables that are needed to complete the site. This would be everything from the exp_channels to the exp_categories table and all of the associated data. If you want to make everything a little bit easier then you will just use this bit of code inside of the default_content.php file&#8230;</p>

<blockquote class="code"><div class="codeblock"><code><span style="color: #000000">
<span style="color: #0000BB">&lt;?php<br /><br />$original_url&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">'**Insert&nbsp;the&nbsp;URL&nbsp;to&nbsp;your&nbsp;demo&nbsp;install&nbsp;here**'</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$tables&nbsp;</span><span style="color: #007700">=&nbsp;array(<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #DD0000">'exp_categories'</span><span style="color: #007700">,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #DD0000">'exp_category_fields'</span><span style="color: #007700">,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #DD0000">'exp_category_field_data'</span><span style="color: #007700">,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #DD0000">'exp_category_groups'</span><span style="color: #007700">,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #DD0000">'exp_category_posts'</span><span style="color: #007700">,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #DD0000">'exp_channels'</span><span style="color: #007700">,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #DD0000">'exp_channel_data'</span><span style="color: #007700">,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #DD0000">'exp_channel_fields'</span><span style="color: #007700">,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #DD0000">'exp_channel_titles'</span><span style="color: #007700">,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #DD0000">'exp_comments'</span><span style="color: #007700">,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #DD0000">'exp_fieldtypes'</span><span style="color: #007700">,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #DD0000">'exp_field_formatting'</span><span style="color: #007700">,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #DD0000">'exp_field_groups'</span><span style="color: #007700">,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #DD0000">'exp_global_variables'</span><span style="color: #007700">,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #DD0000">'exp_relationships'</span><span style="color: #007700">,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #DD0000">'exp_snippets'</span><span style="color: #007700">,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #DD0000">'exp_statuses'</span><span style="color: #007700">,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #DD0000">'exp_status_groups'</span><span style="color: #007700">,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #DD0000">'exp_templates'</span><span style="color: #007700">,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #DD0000">'exp_template_groups'</span><span style="color: #007700">,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #DD0000">'exp_upload_prefs'<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">);<br /><br /></span><span style="color: #0000BB">$thepath&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">'../themes/site_themes/**Insert&nbsp;your&nbsp;theme&nbsp;folder&nbsp;name&nbsp;here**/template.sql'</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$template&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">file_get_contents</span><span style="color: #007700">(</span><span style="color: #0000BB">$thepath</span><span style="color: #007700">);<br /><br /></span><span style="color: #0000BB">$pattern&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">"/^(CREATE&#91;&nbsp;A-Z&#93;+`("</span><span style="color: #007700">.</span><span style="color: #0000BB">implode</span><span style="color: #007700">(</span><span style="color: #DD0000">'|'</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$tables</span><span style="color: #007700">).</span><span style="color: #DD0000">")`.*);/Ums"</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">preg_match_all</span><span style="color: #007700">(</span><span style="color: #0000BB">$pattern</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$template</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$matches</span><span style="color: #007700">);<br /><br />foreach(</span><span style="color: #0000BB">$matches&#91;2&#93;&nbsp;</span><span style="color: #007700">AS&nbsp;</span><span style="color: #0000BB">$table</span><span style="color: #007700">)<br /></span><span style="color: #0000BB">&#123;<br />&nbsp;&nbsp;&nbsp;&nbsp;$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">db</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">query</span><span style="color: #007700">(</span><span style="color: #DD0000">"DROP&nbsp;TABLE&nbsp;"</span><span style="color: #007700">.</span><span style="color: #0000BB">$table</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">&#125;<br /><br /></span><span style="color: #007700">foreach(</span><span style="color: #0000BB">$matches&#91;1&#93;&nbsp;</span><span style="color: #007700">AS&nbsp;</span><span style="color: #0000BB">$sql</span><span style="color: #007700">)<br /></span><span style="color: #0000BB">&#123;<br />&nbsp;&nbsp;&nbsp;&nbsp;$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">db</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">query</span><span style="color: #007700">(</span><span style="color: #0000BB">$sql</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">&#125;<br /><br /><br />$pattern&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">"/(^INSERT&#91;&nbsp;A-Z&#93;+`("</span><span style="color: #007700">.</span><span style="color: #0000BB">implode</span><span style="color: #007700">(</span><span style="color: #DD0000">'|'</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$tables</span><span style="color: #007700">).</span><span style="color: #DD0000">")`.*);\\n/Ums"</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">preg_match_all</span><span style="color: #007700">(</span><span style="color: #0000BB">$pattern</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$template</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$matches</span><span style="color: #007700">);<br /><br />foreach&nbsp;(</span><span style="color: #0000BB">$matches&#91;1&#93;&nbsp;</span><span style="color: #007700">AS&nbsp;</span><span style="color: #0000BB">$sql</span><span style="color: #007700">)<br /></span><span style="color: #0000BB">&#123;<br />&nbsp;&nbsp;&nbsp;&nbsp;$sql&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">str_replace</span><span style="color: #007700">(</span><span style="color: #0000BB">$original_url</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">userdata&#91;</span><span style="color: #DD0000">'site_url'</span><span style="color: #0000BB">&#93;</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$sql</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">db</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">query</span><span style="color: #007700">(</span><span style="color: #0000BB">$sql</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">&#125;&nbsp;</span>
</span>
</code></div><span class="decoration">code</span></blockquote>

<p>In the above example you will need to modify it per template in two places. The first is on line 3:</p>

<p>$original_url = &#8216;**Insert the URL to your demo install here**&#8217;;</p>

<p>The original URL may be an actual URL like <a href="http://demo.eetemplates.com/tudobem">http://demo.eetemplates.com/tudobem</a> (doesn&#8217;t exist anymore but that is the old location) or it could be on your localhost if you developed the template locally. </p>

<p>The second location you will need to make a change is line 28:</p>

<p>$thepath = &#8216;../themes/site_themes/**Insert your theme folder name here**/template.sql&#8217;;</p>

<p>Obviously your folder name will not have any spaces in it. An example might be:</p>

<p>$thepath = &#8216;../themes/site_themes/tudobem/template.sql&#8217;;</p>

<blockquote class="pullquote"><p>If you are a PHP developer and you think you can expand or fix something in the above code then please <a href="http://eetemplates.com/contact">contact me</a>. I would love to see a robust theme installer be built for EE. If this code can be the seed for that then so be it.</p>
</blockquote>

<p>What you do next is take a sql export of your database and place it into the final file we need to discuss which is the template.sql file. Make sure to synchronize the templates before exporting though. And also make sure that you change your password for the template before exporting. I would imagine if you wanted to you could also use a tool like <a href="http://www.hopstudios.com/software/deeploy_helper/">Deeploy Helper from Hop Studios</a> and change all of paths in the template and then export it. Just depends on how far you want to take it. So export your database. Make a file called template.sql and paste all of the exported sql into the file. </p>

<p>Now all that is left to do is test the install. I typically do this a couple of times just to make sure. You are bound to find some things that are wrong. Perhaps you forgot some files. Or you forgot to sync the templates prior to exporting. Or you messed up the folder names in the default_content.php file. Whatever it is just keep reinstalling it till it works 2x without issues. </p>

<p>As part of all of my templates I always take the time to create a readme.txt that typically has basic instructions in it of what to upload where and license.txt file in the root of the main folder. You might also have source photoshop files. Make a folder called Source Image Files and put all of the .psds or layered .pngs in this folder. More power to you if you want to include a fully outlined pdf of how to install the template.</p>

<p>Then just name the main folder something meaningful and zip up the package. Oh&#8230; and don&#8217;t forget to send us a copy to post here for all to see.</p>]]></description>
      <dc:subject><![CDATA[Template Code, Tutorials,]]></dc:subject>
      <dc:date>2011-02-11T20:04:37+00:00</dc:date>
    </item>

    <item>
      <title><![CDATA[Creating your own installable templates for ExpressionEngine 2]]></title>
      <link>http://eetemplates.com/site/creating_your_own_installable_templates_for_expressionengine_2</link>
      <guid>http://eetemplates.com/site/creating_your_own_installable_templates_for_expressionengine_2#When:13:23:36Z</guid>
      <description><![CDATA[<p><span class="intro">A year ago I was perusing the user guide and wiki over on <a href="http://www.expressionengine.com/index.php?affiliate=eetemplates">ExpressionEngine's website</a> for any information regarding creating your own installable templates. At that time there were none. At I just did a quick search for some of the files involved like <a href="http://expressionengine.com/wiki/Theme_Preferences/">theme_preference.php</a> and <a href="http://expressionengine.com/wiki/default_content.php/">default_content.php</a> and the information available is still minimal. </span></p>

<p>At the time I was selling templates (and making a killing I tell you) so releasing this blog post was something I wanted to do but was torn about. But, in the effort to show how this site is changing, I am now happy to provide what I have learned about creating installable templates for <a href="http://www.expressionengine.com/index.php?affiliate=eetemplates">ExpressionEngine 2.x</a>. If you find this useful please let me know. And if you have something to add to the code or to the process definitely give me a hollar and let me know.</p>

<blockquote class="pullquote">Typical warnings apply too. If you grenade your server doing something in this article it's not my issue. If you blow up your EE install as part of this process no whining to me.</blockquote>
<p><i>I am disseminating this information but since I am not a programmer working for <a href="http://ellislab.com">EllisLab</a> and there are no docs on what I am about to describe YMMV. Typical warnings apply too. If you grenade your server doing something in this article it's not my issue. If you blow up your EE install as part of this process no whining to me. I have used this process over and over so I am confident in it but things can go wrong.</i></p>

<h3>Step 1: Build out your EE website</h3>
<p>That's right. Build it out. No shortcuts here. Start with your content. Make your design. Think about whether you want there to be color options. Think about all of the little details. Also if you are going to be releasing the designs so people can customize their design then the photoshop or fireworks files need to be organized. Slice up your designs and code them out. Verify that you are using valid HTML and CSS. Bring the code into EE and chunk it out. Make all of your custom fields, categories and channels. Insert your dummy content into entries. Test for cross browser support (sound like fun yet?). </p>

<h3>Step 2: Think about the n00bs</h3>
<p>Make sure that you think through things that will make life easier on whomever uses your template. For instance email addresses and phone numbers that are displayed in various places on the site. They can be made into a variable that is assigned a value by using a Snippet? Yes I said snippet. Why a Snippet and not a Global Variable? Well from what I can tell Global Variables cannot be acted against using conditional logic as they are lower in the <a href="http://expressionengine.com/wiki/Parse_Order/">parse order</a>. So if you want to wrap some HTML with a conditional that checks to see if a bit of information like a phone number is available you can't do that with Global Variables. But you can with snippets. For instance:</p>

<blockquote class="code"><div class="codeblock"><code><span style="color: #000000">
<span style="color: #0000BB">&#123;if&nbsp;phone&#125;</span><span style="color: #007700">&lt;</span><span style="color: #0000BB">p</span><span style="color: #007700">&gt;&lt;</span><span style="color: #0000BB">strong</span><span style="color: #007700">&gt;</span><span style="color: #0000BB">Phone</span><span style="color: #007700">:&lt;/</span><span style="color: #0000BB">strong</span><span style="color: #007700">&gt;&nbsp;</span><span style="color: #0000BB">&#123;phone&#125;</span><span style="color: #007700">&lt;/</span><span style="color: #0000BB">p</span><span style="color: #007700">&gt;</span><span style="color: #0000BB">&#123;</span><span style="color: #007700">/</span><span style="color: #0000BB">if&#125;&nbsp;</span>
</span>
</code></div><span class="decoration">code</span></blockquote>

<p>The above code will only show the HTML and text if there is a value in the Snippet titled Phone (even though that value can be anything but I digress). If you tried that with a Global Variable it would output the HTML and text as it gets parsed prior to Global Variables. Not showing the item and the unnecessary HTML if there is no value make for a cleaner looking site.</p>

<p>So think through the template. Is there any place you can make it simpler to make updating it easier?</p>

<h3>Step 3: Thinking through Color Packs</h3>
<p><i>If you are not going to offer different colors then you can skip over this section.</i></p>
<img style="float:right;margin:15px;" src="http://eetemplates.com/images/tutorials/colors.png" alt="Color Picker">
<p>If you are going to offer color packs for a particular template the while you are creating your CSS you will need to separate out any CSS that has a value that is a) a color or b) is an image that has color in it. When creating template I typically develop my sites with a single color in mind and then once I am done I go back and duplicate the main CSS file. Once duplicated I go into the main CSS file and delete any Selectors and Declarations that have to do with color. I will then go into the color CSS file and delete everything but the color pertinent information. </p>

<p>One of the ways you can make it easier for people to change the look and feel of a template is to have a Snippet that assigns a variable that represents the different color packs. So for instance if the user types in style1 then they get the grey and red version and if they type in style2 they get the orange and purple version etc. The way this works is you have to have a CSS style sheet for each of the colors. You can even name them style1.css, style2.css etc. You also need all of the corresponding images for the various color packs. I typically create folders for each of the styles with the images and CSS in them so it is easy to track what CSS file and images go with each color pack for the site.</p>

<h3>Wrap up for Episode 1</h3>
<p>So that should get you started. In the next episode (should be a day or two) I'll explain the process for packaging up the templates. I'll also provide some code that will make your life a bit easier when doing this type of thing. Make sure to comment with any questions or thoughts.</p>]]></description>
      <dc:subject><![CDATA[Tutorials,]]></dc:subject>
      <dc:date>2011-02-02T13:23:36+00:00</dc:date>
    </item>

    <item>
      <title><![CDATA[YEAY! We&#8217;ve relaunched!]]></title>
      <link>http://eetemplates.com/site/yeay_weve_relaunched</link>
      <guid>http://eetemplates.com/site/yeay_weve_relaunched#When:16:24:54Z</guid>
      <description><![CDATA[<p>Yeay! We&#8217;ve relaunched EETemplates.com! The biggest change is that we are now using ExpressionEngine 2 as the foundation for the site and loving it! Nothing really complex going on behind the scenes as EE does a great job of handling sites like this without the need of any add-ons. The only one we are using is <a href="http://www.solspace.com/software/detail/freeform/">FreeForm</a>.</p>

<p>If you are looking for the templates <a href="http://eetemplates.com/templates">they are still available</a>. I will be releasing another blog template this week after I package it up. I am removing the demos as it was becoming a bear keeping them up to date and locking them down so spammers couldn&#8217;t use them as their play place. </p>

<p>If you are interested in blogging about how you use ExpressionEngine just <a href="http://eetemplates.com/contact">contact me</a> and we&#8217;ll make it happen. I am looking for add-on reviews, tutorials, code tid-bits, new add-on previews and news.</p>]]></description>
      <dc:subject><![CDATA[News,]]></dc:subject>
      <dc:date>2011-01-22T16:24:54+00:00</dc:date>
    </item>

    <item>
      <title><![CDATA[Changing our focus for the new year]]></title>
      <link>http://eetemplates.com/site/changing_our_focus_for_the_new_year</link>
      <guid>http://eetemplates.com/site/changing_our_focus_for_the_new_year#When:03:42:05Z</guid>
      <description><![CDATA[<p>I am making some changes here at eetemplates.com. over the course of the last 2 years I have tried to figure out a way to implement templates into the CMS that I love (<a href="http://www.expressionengine.com/index.php?affiliate=eetemplates">ExpressionEngine</a>) thinking that there are others out there that would value having a resource where they could download a template and pick it apart to learn EE faster (we all know there is a learning curve). I know back in the day when I was doing more WordPress and Joomla development that is one of the ways I learned how those CMSs worked. Unfortunately the market for templates for <a href="http://www.expressionengine.com/index.php?affiliate=eetemplates">ExpressionEngine</a> is not mature enough yet to justify the time in creating templates and packaging them up. I think fundamentally this is because EE is meant to be extremely flexible and the websites that the users of EE are developing are a testimony to this. I think there will be a need in the future but for now I am going to switch the focus of this site for a time.</p>

<p>I still have a passion to help others with <a href="http://www.expressionengine.com/index.php?affiliate=eetemplates">ExpressionEngine</a> though so with this next (3rd) version of the site I am going to focus more on blogging about <a href="http://www.expressionengine.com/index.php?affiliate=eetemplates">ExpressionEngine</a> template code. I want the site to be a repository of building blocks and a discussion about the best practices for EE. I do not have all of the answers so if you are a community member and have an idea for a blog post email me. I am not like the big blogging sites that can afford to pay for posts so if you do this it will because you a) want to give something back to this community and b) want to see your name and links on a site that gets fairly decent traffic.</p>

<p>As for Templates&#8230; I will still on occasion release a template but will feel less guilty about the time between releases. And more than likely I will be releasing them for free (donations are welcome though). All of the previous templates will be maintained as well. So just give us a few days to get the new site up and running and we&#8217;ll have those available for FREE. Did I mention they are free?</p>

<p>Yours Truly,<br />
Marcus Neto<br />
The Management</p>]]></description>
      <dc:subject><![CDATA[News,]]></dc:subject>
      <dc:date>2011-01-06T03:42:05+00:00</dc:date>
    </item>

    <item>
      <title><![CDATA[Merry Christmas]]></title>
      <link>http://eetemplates.com/site/merry_christmas</link>
      <guid>http://eetemplates.com/site/merry_christmas#When:21:32:16Z</guid>
      <description><![CDATA[<p>It&#8217;s been awhile since I have done anything for you all so I made all of the templates FREE. </p>

<p>I am kicking around the idea of changing the focus of this site to deal more with snippets of code for ExpressionEngine rather than selling templates. I just have not had the time to focus on them like I should. So until further notice all of the templates are free. I hope it helps some of you. </p>

]]></description>
      <dc:subject><![CDATA[News,]]></dc:subject>
      <dc:date>2010-12-06T21:32:16+00:00</dc:date>
    </item>

    <item>
      <title><![CDATA[A primer on fighting backlink spam for ExpressionEngine]]></title>
      <link>http://eetemplates.com/site/a_primer_on_fighting_backlink_spam_for_expressionengine</link>
      <guid>http://eetemplates.com/site/a_primer_on_fighting_backlink_spam_for_expressionengine#When:22:22:08Z</guid>
      <description><![CDATA[<p>Spam sucks. If you are a spammer there is a special HOT place waiting for you after death. No one likes you and your mama thinks you are ugly.</p>

<p>OK now that I have that off my chest there has been an awful lot of registration spam hitting ExpressionEngine websites lately. While I cannot consider myself an expert (although I do think Greg from <a href="http://www.purple-dogfish.co.uk/" title="Purple Dogfish">Purple Dogfish</a> is) I do think I have some to share. I have come across a few things that I do to help fight registration spam.</p>

<p>So <a href="http://www.bybjorn.com/" title="Bjorn Borresen">Bjorn Borresen</a> just tweeted about <a href="http://www.backlinkengines.com/" title="a site that has a list of ExpressionEngine sites">a site that has a list of ExpressionEngine sites</a> that has paired the list with some information on how to spam these sites with backlinks. A similar <a href="http://www.google.com/search?q=expressionengine+backlink" title="ping of Google shows">ping of Google shows</a> that this monster is rearing it&#8217;s ugly head and is not going to die anytime soon. So what is the community to do?</p><p><center></p><p><img src="http://eetemplates.com/images/uploads/rspam_backlinkengine.png" width="600" /></p><p></center></p>

<h3>First take a simple step to fight registration spam by changing the trigger word.</h3>
<p>If you go to Admin->Members and Groups->Membership Preferences you will see at the bottom a Trigger word. Most people dont bother to change this. If you have a site that will never use Membership templates or functionality then just type in &#8220;aw;okfhoiahv&#8221; and be done with it. Oh. And you can also just set the &#8220;Allow New Member Registrations?&#8221; at the top to no <img src="http://eetemplates.com/images/smileys/wink.gif" width="19" height="19" alt="wink" style="border:0;" /> But the changing of the trigger word makes me <i>feel</i> better.</p><center><img src="http://eetemplates.com/images/uploads/rspam_changetrigger.png" width="600" /></center>

<h3>Invest some Shekels.</h3>
<p>The aforementioned Greg has an awesome add-on for culling spam registrations from an ExpressionEngine site. If you go to the <a href="http://www.purple-dogfish.co.uk/buy-stuff/member-utilities" title="Purple Dogfish website">Purple Dogfish website</a> and purchase his module called member utilities it will help. Everyday I run Member Utilities to see all of the Bios on this site and change the members group to Banned. This bans their IP address, email and empties their profile and deletes any posts that they may have made. Of course this requires action (you doing something) but at least your Ranking wont take a hit for being a link farm.</p><center><img src="http://eetemplates.com/images/uploads/rspam_bandmember.png" width="600" /></center>

<h3>Invest some more Shekels</h3>
<p>Low has another great add-on that is worth a mention. It is called <a href="http://loweblog.com/software/low-nospam/" title="Low No Spam">Low No Spam</a>. Through the use of some of the larger lists of spammer (Askimet or Typepad Antispam) Low&#8217;s add-on can block these pesky spammers from being able to register or comment on your site. </p>

<h3>Invest a few minutes and use a valid ExpressionEngine license</h3>
<p>Lisa Jill wrote an article <a href="http://expressionengine.com/blog/entry/fighting_registration_spam/" title="on the ExpressionEngine blog about stopping Registration Spam">on the ExpressionEngine blog about stopping Registration Spam</a>. It covers some of the items above. But one of mention is the Blacklist Module. If you go into the modules portion of the control panel the very first module is the Blacklist Whitelist module. You have to have a valid EE license to use this one (I would hope you would be using a valid license anyway). But if you click to open the module you are able to download a file of known spammers from EE and write their information to the .htaccess file so that they cannot even access the site.</p><center><img src="http://eetemplates.com/images/uploads/rspam_blacklist.png" width="600" /></center>

<h3>Others? Share em with us in the comments</h3>
<p>I know there are other methods. Leave a quick comment. Let us know what has worked for you.</p>

]]></description>
      <dc:subject><![CDATA[Tutorials,]]></dc:subject>
      <dc:date>2010-09-17T22:22:08+00:00</dc:date>
    </item>

    <item>
      <title><![CDATA[ExpressionEngine Camp]]></title>
      <link>http://eetemplates.com/site/expressionengine_camp</link>
      <guid>http://eetemplates.com/site/expressionengine_camp#When:21:23:20Z</guid>
      <description><![CDATA[<p><a href="http://expressionenginecamp.com" title="ExpressionEngine Camp">ExpressionEngine Camp</a> is coming to Denver Colorado on Oct 22nd. I really wish I could be there. And I hope that this is a sign of things to come with people organizing more EE meetups around the country. There are very few conferences for our community so whenever someone has the guts to put one together I have to give em some credit. If you are anywhere in the area I suggest you go. It should prove to be a fun day of learning and networking. We are a sponsor and everyone that attends will be receiving a FREE LICENSE of the template of their choice. So head on over to the <a href="http://expressionenginecamp.com" title="ExpressionEngine Camp website">ExpressionEngine Camp website</a> and read up on the specifics</p>]]></description>
      <dc:subject><![CDATA[News,]]></dc:subject>
      <dc:date>2010-09-13T21:23:20+00:00</dc:date>
    </item>

    
    </channel>
</rss>
