<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
   <title>Posts by Elise Bauer on Learning Movable Type</title>
   <link rel="alternate" type="text/html" href="http://www.learningmovabletype.com/" />
   <link rel="self" type="application/atom+xml" href="http://www.learningmovabletype.com/contributors/elise/" />
   <id>tag:www.learningmovabletype.com,2008-02-25:/5</id>
   <updated>2008-06-28T02:21:09Z</updated>
   <subtitle>Tutorials and helpful tips for the Movable Type web publishing system</subtitle>
   <generator uri="http://www.movabletype.org/">Movable Type Pro 4.37</generator>

<entry>
   <title>Create a Custom Feed Reader with Blogger Blog List</title>
   <link rel="alternate" type="text/html" href="http://www.learningmovabletype.com/a/create_a_custom_feed_reader_with_blogger_blog_list/" />
   <id>tag:www.learningmovabletype.com,2008://5.2323</id>
   
   <published>2008-06-27T23:54:10Z</published>
   <updated>2008-06-28T02:21:09Z</updated>
   
   <summary>Have you ever wanted an easy way of showing a simple feed of your favorite sites within your blog? Blogger has a cool new feature called Blog List for Blogger blogs, and even if you are using Movable Type, or another blogging platform, you can make use of this Blogger...</summary>
   <author>
      <name>Elise Bauer</name>
      <uri>http://elise.com</uri>
   </author>
   
      <category term="Feeds" scheme="http://www.sixapart.com/ns/types#category" />
   
      <category term="General Tips and Tricks" scheme="http://www.sixapart.com/ns/types#category" />
   
   <category term="feeds" label="Feeds" scheme="http://www.sixapart.com/ns/types#tag" />
   
   <content type="html" xml:lang="en" xml:base="http://www.learningmovabletype.com/">
      <![CDATA[<p>Have you ever wanted an easy way of showing a simple feed of your favorite sites within your blog?  Blogger has a cool new feature called <a href="http://buzz.blogger.com/2008/06/show-off-your-favorite-blogs-with-blog.html">Blog List</a> for Blogger blogs, and even if you are using Movable Type, or another blogging platform, you can make use of this Blogger feature to pull feeds into your blog.</p>

<p>Here's what it looks like on my site - Simply Recipes: <a href="http://www.elise.com/recipes/food-blogs/foodblogupdates.php">Food Blog Updates</a>:</p>

<p><a href="http://www.learningmovabletype.com/images/updates-screen-shot1.php" onclick="window.open('http://www.learningmovabletype.com/images/updates-screen-shot1.php', 'popup', 'width=792,height=610,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0' ); return false"><a href="http://www.learningmovabletype.com/images/updates-screen-shot.jpg"><img src="http://www.learningmovabletype.com/images/updates-screen-shot-thumb-400x308.jpg" width="400" height="308" alt="updates-screen-shot.jpg"/></a></a></p>

<p>Which is driven off of this Blogspot page:  <a href="http://foodbloglinks.blogspot.com/">http://foodbloglinks.blogspot.com/</a>.</p>

<p>It's very easy to set up.  Here are the steps in detail:</p>]]>
      <![CDATA[<p><b>1.  Create a Blogger Blog</b>. If you don't already have a Blogger account, get one for free at <a href="http://blogger.com">http://blogger.com</a>.  Give your new blog a blog title that you want as the title of your feed section, like "Updates from Favorite Blogs".  Give the blog address anything you want.  Choose the default "Minima" template.  It will be the easiest with which to work.  When you've created your new blog, click on "Layout".</p>

<p><b>2.  Add blogs to your Blog List.</b> Click on "Add a Page Element" in the right sidebar layout section.  Then look for the Blog List element, and click "Add to Blog".  Delete whatever is written in the title field of the popup.  Click on "Add to List" and start adding the blogs whose feeds you want on your list, one by one.  Select if you want to see the blogs' icons, the titles of the most recent items, snippets of most recent items, and the date of the last update.  If you want you can rename the feed titles (sometimes they're a little long). Then click on "SAVE".</p>

<p><a href="http://www.learningmovabletype.com/images/config-blog-list.php" onclick="window.open('http://www.learningmovabletype.com/images/config-blog-list.php', 'popup', 'width=545,height=569,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0' ); return false"><img src="http://www.learningmovabletype.com/images/config-blog-list-thumb-400x417.jpg" width="400" height="417" alt="config-blog-list.jpg"/></a></p>

<p><b>3.  Strip the Blogger blog layout of everything that isn't necessary.</b> Return to the Layout edit.  Delete all of the sidebar elements except for "Blog List".  To do that, click on "edit" for each page element, and click on "Remove" in the popup.</p>

<p>Click on "Edit HTML".  Scroll down to #main-wrapper and change the width to 0.  Change the #sidebar-wrapper width to however wide you want the feed text to be.  In my case, I changed it to 600.  Change the widths of the #outer-wrapper, #header-wrapper, and #footer to whatever your sidebar width is. </p>

<p>Remove the Blogger nav bar by adding the following code to the CSS (in the footer section): <pre><code>#navbar {<br />
   display: none;<br />
   }</code></pre></p>

<p>Click "SAVE TEMPLATE".  Now click on "Page Elements".  It should look like this: </p>

<p><a href="http://www.learningmovabletype.com/images/page-elements-2.php" onclick="window.open('http://www.learningmovabletype.com/images/page-elements-2.php', 'popup', 'width=810,height=558,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0' ); return false"><img src="http://www.learningmovabletype.com/images/page-elements-2-thumb-400x275.jpg" width="400" height="275" alt="page-elements-2.jpg"/></a></p>

<p>If you click on "View Blog" you should see something like this:</p>

<p><a href="http://www.learningmovabletype.com/images/favorite-blogs-example.php" onclick="window.open('http://www.learningmovabletype.com/images/favorite-blogs-example.php', 'popup', 'width=612,height=695,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0' ); return false"><img src="http://www.learningmovabletype.com/images/favorite-blogs-example-thumb-300x340.jpg" width="300" height="340" alt="favorite-blogs-example.jpg"/></a></p>

<p>You will probably want to change the header text into something that better suits your blog's style.   To get rid of the borders, click on "Edit HTML" and scroll down to #header-wrapper and #header.  Change the border from 1px to 0px.  Add header font color, size and type information to #header.  Click SAVE TEMPLATE and view the blog. </p>

<p>For example, </p>

<pre><code>
#header h1 {
  margin:0px 0px 0;
  padding:15px 0px .25em;
  line-height:1.2em;
  text-align: left;
  color: #333;
  font: 20px Georgia, "Times New Roman", Times, serif;
  padding: 15px 0 0 0;
  padding-bottom: 1px;
  clear:both;
}
</code></pre>

<p>You can also change the default text colors and styles in the variable name section at the top of the Edit HTML template.</p>

<p>Review your published blog and take note of the URL.</p>

<p><b>4.  Use an iframe tag to pull the Blogger blog into your regular blog.</b>  Open up your Movable Type (or other platform) blog edit.  In Movable Type, create a new index template or page.  If using an index template, copy over whatever header, footer, and sidebar code you will need to construct your page.  In the main body of the template place the following iframe code:</p>

<pre><code>&lt;iframe src=&quot;http&#58;&#47;&#47;yourfeedblog.blogspot.com&#47;&quot; width=&quot;630&quot; height=&quot;2000&quot; frameborder=&quot;0&quot;&gt;&lt;&#47;iframe&gt;</code></pre>

<p>Replace "http://yourfeedblog.blogspot.com" with the URL of your feed blog.  Change the width and height to be appropriate for the space into which the feed is going.  </p>

<p>Save and publish.</p>

<p>That's it!  As you add more blogs to your Blog List, you may need to increase the height of the iframe.</p>]]>
   </content>
</entry>

<entry>
   <title>MultiBlog and Upgrading to MT4</title>
   <link rel="alternate" type="text/html" href="http://www.learningmovabletype.com/a/multiblog_and_upgrading_to_mt4/" />
   <id>tag:www.learningmovabletype.com,2008://5.2286</id>
   
   <published>2008-06-08T19:46:45Z</published>
   <updated>2008-06-08T19:54:14Z</updated>
   
   <summary>If you use the MultiBlog plugin by David Rayners and you upgrade to MT4, when you go to rebuild your site, you may get the following error message: &quot;Publish error in template &apos;Main Index&apos;: No handler exists for tag MultiBlogEntries&quot; The MultiBlog functionality is now part of MT4. All you...</summary>
   <author>
      <name>Elise Bauer</name>
      <uri>http://elise.com</uri>
   </author>
   
      <category term="Plugins" scheme="http://www.sixapart.com/ns/types#category" />
   
   <category term="mt4" label="MT4" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="multiblog" label="MultiBlog" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="upgrade" label="Upgrade" scheme="http://www.sixapart.com/ns/types#tag" />
   
   <content type="html" xml:lang="en" xml:base="http://www.learningmovabletype.com/">
      <![CDATA[<p>If you use the MultiBlog plugin by David Rayners and you upgrade to MT4, when you go to rebuild your site, you may get the following error message:</p>

<p>"Publish error in template 'Main Index': No handler exists for tag MultiBlogEntries"</p>

<p>The MultiBlog functionality is now part of MT4.  All you have to do to update your templates is to change every instance of the tags MTMultiBlogEntries or MTMulitBlog to MTEntries and rebuild your templates.</p>

<p>So &lt;MTMultiBlogEntries include_blogs=&quot;2,5&quot; lastn=&quot;10&quot;&gt; and &lt;&#47;MTMultiBlogEntries&gt; become &lt;MTEntries include_blogs=&quot;2,5&quot; lastn=&quot;10&quot;&gt; and &lt;&#47;MTEntries&gt;.</p>]]>
      
   </content>
</entry>

<entry>
   <title>Upgrading to MT4</title>
   <link rel="alternate" type="text/html" href="http://www.learningmovabletype.com/a/upgrading_to_mt4/" />
   <id>tag:www.learningmovabletype.com,2008://5.2086</id>
   
   <published>2008-02-16T08:02:04Z</published>
   <updated>2008-02-16T08:14:38Z</updated>
   
   <summary>Over the last few major version changes, Learning Movable Type has published guides to upgrading safely, without risk of messing up your blog. The most recent tutorial was A Safe Way to Upgrade to MT3.3. The three main steps that still hold for safely upgrading to MT4 (from MT3) are:...</summary>
   <author>
      <name>Elise Bauer</name>
      <uri>http://elise.com</uri>
   </author>
   
      <category term="Install" scheme="http://www.sixapart.com/ns/types#category" />
   
   <category term="mt4" label="MT4" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="upgrade" label="Upgrade" scheme="http://www.sixapart.com/ns/types#tag" />
   
   <content type="html" xml:lang="en" xml:base="http://www.learningmovabletype.com/">
      <![CDATA[<p>Over the last few major version changes, Learning Movable Type has published guides to upgrading safely, without risk of messing up your blog.  The most recent tutorial was <a href="http://www.learningmovabletype.com/a/00156633_safe_upgrading/">A Safe Way to Upgrade to MT3.3</a>.</p>

<p>The three main steps that still hold for safely upgrading to MT4 (from MT3) are:</p>

<ol>
<li>Make a <a href="http://www.sixapart.com/movabletype/docs/3.2/01_installation_and_upgrade/mysql_backup_restore.html">back up of your database</a>.</li>
<li>Make sure all the plugins you use for your site have upgrades that are compatible with the new version.</li>
<li>Install MT into a new directory in your cgi-bin.  Do NOT overwrite your existing MT directory.</li></ol>

<p>The Movable Type ProNet community has done a stellar job in outlining everything you need to know to do a successful upgrade to MT4.  These instructions can be found at the MT Community Wiki in the <a href="http://wiki.movabletype.org/Community_Generated_Upgrade_Guide">Community Generated Upgrade Guide</a>.</p>

<p>Please see the instructions at the Community Wiki for the specific details on how to safely upgrade your MT blog to MT version 4.</p>]]>
      
   </content>
</entry>

<entry>
   <title>Creating a Google Toolbar Button for Your Blog</title>
   <link rel="alternate" type="text/html" href="http://www.learningmovabletype.com/a/creating_a_google_toolbar_button_for_your_blog/" />
   <id>tag:www.learningmovabletype.com,2008://5.2085</id>
   
   <published>2008-02-16T06:28:02Z</published>
   <updated>2008-02-16T07:58:16Z</updated>
   
   <summary>Creating a custom button for your blog to be used on the Google Toolbar is a great way to promote your blog. Once installed, the button can act as a graphical bookmark to your site. You and your readers can search your site using the search bar in the Google...</summary>
   <author>
      <name>Elise Bauer</name>
      <uri>http://elise.com</uri>
   </author>
   
      <category term="Feeds" scheme="http://www.sixapart.com/ns/types#category" />
   
      <category term="Marketing and Money" scheme="http://www.sixapart.com/ns/types#category" />
   
      <category term="Weblog Goodies" scheme="http://www.sixapart.com/ns/types#category" />
   
   <category term="favicon" label="Favicon" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="googletoolbar" label="Google Toolbar" scheme="http://www.sixapart.com/ns/types#tag" />
   
   <content type="html" xml:lang="en" xml:base="http://www.learningmovabletype.com/">
      <![CDATA[<p>Creating a custom button for your blog to be used on the Google Toolbar is a great way to promote your blog.  Once installed, the button can act as a graphical bookmark to your site.  You and your readers can search your site using the search bar in the Google toolbar, without having to be on your site.  In fact, you can highlight any text on any web page, click on your custom icon in the browser, and you will perform a search the text you just highlighted on your blog.  The custom button can even list your last several entries, with data pulled from your feed.</p>

<p><img alt="Google toolbar example" src="http://www.learningmovabletype.com/images/toolbar-example.jpg" /></p>

<p>I recently updated my Google toolbar for <a href="http://simplyrecipes.com">Simply Recipes</a> and created a new one for a new site, <a href="http://foodblogsearch.com/about.php">Food Blog Search</a>.  (If you want to see the Google Toolbar in action, follow the instructions to add a button on the Food Blog Search site.)  Google's instructions for making a custom button can be convoluted and overwhelming.  It took me several hours over several days to work out the correct code for the toolbars.  So to save any of you similar pain, I'm presenting the steps here.</p>

<h3>Step 1: Install Google Toolbar</h3>

<p>The Google Toolbar requires using either IE or Firefox for your browser.  Go to <a href="http://www.google.com/tools/firefox/toolbar/FT3/intl/en/index.html">this page</a> at Google to install it.</p>]]>
      <![CDATA[<h3>Step 2: Create an Icon for Your Toolbar Button</h3>

<p>Your Toolbar button is a graphical icon, 16x16 pixels in size.  A favicon works well for this use; if you use a gif file, you can make the background transparent.  (See more tips in Google's <a href="http://www.google.com/tools/toolbar/buttons/apis/howto_guide.html#makeicons">How to make good looking icons</a>.)  You will need to display this graphic as code in the next step.  To do that, go to <a href="http://www.motobit.com/util/base64-decoder-encoder.asp">this site</a>.  Use the "Browse..." button to select the file you want to encode, then click the "Convert the source data" button to start the encoding. Copy and paste the resulting code someplace where you can get to it for the next step.</p>

<p>Here is the encoded output for this icon example <img alt="favicon example" src="http://learningmovabletype.com/images/favicon-tomato.gif" />:</p>

<pre><code>R0lGODlhEAAQAOYAAAAAAP///4AZG3sYGYkcHZUfIaEiJJwhIrcoKaYkJsYsLcYsLsMrLcIrLMIr
LbspLLYoKtEvMMwuL8wuMMotL8ktLsktL8gtLsctL8UsLcQsLcQsLsMsLcErLMArLM8vMMsuL8Yt
LsIsLVEMD1MOEWsUF3oYG3AWGo8dIIwdIqEiJSsEBhMCA1gOEoMbIHkZHjAGCQgBAoJ0d19WWAMA
AQ4KDFRSVD48P6OjpBgeIIiOjmZoaJiamqSlpYCBgVVcWyQmJSQ0KTE4MyAxJBk9IVRZVSBFJTRs
PCxXMihTLUB7RxIvFBo9HQcaCCFKIgACAAABAAIIAgcaBwEDARoeGkdJR3t8e7Cxq1VVRmFfT7e2
r6OinHp0VqWgjg0LBVlSP3x2aW1rZ1VCN5aNiQkEA0AHA1E+PRsBAC8FA60lILUnIxwBASkEBEII
B6klJcwuLpiXl7u7u6KiomZmZmVlZV5eXlpaWlBQUDU1NS4uLv///wAAAAAAAAAAAAAAAAAAACH5
BAEAAHoALAAAAAAQABAAAAe5gHqCgnF2g4eIVgBSU3KIj1RGSE88gj5Aj3o2TkpNOHpBS3iZekNH
STdCTEWkejleRFFQVZk6NWgEEAIrAD90eXc9gnBlbiEgCiAeKS8nLiQ0O3ozaiAcDSINGhQgIBIS
CWd1MmkLHCIODg3q6g0RJnNjBRbt6dftEyNbWi0f9ugc2FUwQEYQCxVvGLRrcA7DhjVdBsVAwWDC
hQwaLkjo0AYLIjAwSqh4gODAADZZSF0JY0bMFy6IAgEAOw==</code></pre>

<p><br />
<h3>Create a ToolBar XML file</h3></p>

<p>You will be creating an XML file that Google will access when a reader requests to add your toolbar button.  If you are using Movable Type, you may as well create an index template in MT for this task.  It's not necessary, but it will make it easier to troubleshoot and edit.</p>

<p>The basic XML template is structured like this:</p>

<pre><code>&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
&lt;custombuttons xmlns=&quot;http&#58;&#47;&#47;toolbar.google.com&#47;custombuttons&#47;&quot;&gt;
  &lt;button&gt;
    &lt;title&gt;Blog Title&lt;&#47;title&gt;
    &lt;description&gt;Blog Description&lt;&#47;description&gt;
    &lt;site&gt;URL&lt;&#47;site&gt;
    &lt;search&gt;Search results page and search query&lt;&#47;search&gt;
    &lt;send&gt;Search results page and text selection query&lt;&#47;send&gt;
    &lt;feed refresh-onclick=&quot;true&quot;&gt;Feed URL&lt;&#47;feed&gt;
     &lt;icon mode=&quot;base64&quot; type=&quot;image&#47;x-icon&quot;&gt;Base64 encoded graphic icon&lt;&#47;icon&gt;
  &lt;&#47;button&gt;
&lt;&#47;custombuttons&gt;</code></pre>

<p>Copy and paste the above code into your new index template.</p>

<p>The following is an (untested) example of template that uses MT tags.  </p>

<pre><code>&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
&lt;custombuttons xmlns=&quot;http&#58;&#47;&#47;toolbar.google.com&#47;custombuttons&#47;&quot;&gt;
  &lt;button&gt;
    &lt;title&gt;&lt;$MTBlogName$&gt;&lt;&#47;title&gt;
    &lt;description&gt;&lt;$MTBlogDescription$&gt;&lt;&#47;description&gt;
    &lt;site&gt;&lt;$MTBlogURL$&gt;&lt;&#47;site&gt;
    &lt;search&gt;SearchURL?q={query}&lt;&#47;search&gt;
    &lt;send&gt;SearchURL?q={selection}&lt;&#47;send&gt;
    &lt;feed refresh-onclick=&quot;true&quot;&gt;Feed URL&lt;&#47;feed&gt;
     &lt;icon mode=&quot;base64&quot; type=&quot;image&#47;x-icon&quot;&gt;Base64 encoded graphic icon&lt;&#47;icon&gt;
  &lt;&#47;button&gt;
&lt;&#47;custombuttons&gt;</code></pre>

<p>Whether you use MT tags or whether you just write in the information, the first part of the template is pretty straight forward.  Write out the blog title, the blog description, and the URL where your blog is located.  The feed URL is pretty straightforward too.</p>

<p>The <b>tricky part</b> is what comes between the <code>&lt;search&gt;&lt;&#47;search&gt;</code> and <code>&lt;send&gt;&lt;&#47;send&gt;</code> tags.  </p>

<p>To best figure out the correct code to put between those tags, do the following.</p>

<p>If you are using Google Search on your site (as many of us do), make sure you are using either IE or Firefox, right-click in the search field bar of your search bar, and scroll down to where it says "Generate Custom Search"</p>

<p><img alt="generate-cust-search.jpg" src="http://www.learningmovabletype.com/images/generate-cust-search.jpg" /></p>

<p>Click on that.  Select "Add" when prompted to add this Custom Button to your Google Toolbar.  You will remove this button later.  This is only to test what search string gets generated when you use the Google Toolbar to do a search with the button.  Type something into the Google search field in the Toolbar and click on your new site toolbar button (the one that just got added).  This should launch a search.  </p>

<p><img alt="Toolbar instructions" src="http://www.learningmovabletype.com/images/toolbar-instructions.jpg" /></p>

<p>Copy and paste the URL that appears for your search in a safe place.  In the case of my example, the URL that I get when I do a search for apple pie is the following:</p>

<pre><code>http://foodblogsearch.com/food-blog-search-results.php?cx=003084314295129404805%3A72ozi9a0fjk&q=apple+pie&cof=FORID%3A11#1287</code></pre>

<p>Note the query "q=apple+pie" in my example.  You will do something with that shortly.</p>

<p>To use this string in your XML file, you need to encode everything that comes after the question mark.  The encoder I use the most can be found <a href="http://www.lenon.com/modules.php?name=PHP-Nuke_Tools&file=index&func=HTMLENCODER">here</a>.</p>

<p>Doing that, my string now looks like this:</p>

<pre><code>http://foodblogsearch.com/food-blog-search-results.php?cx=003084314295129404805&#37;3A72ozi9a0fjk&amp;q=apple+pie&amp;cof=FORID&#37;3A11#1287</code></pre>

<p>The next step is to swap out "q=apple+pie" for "q={query]"  so that my final string looks like this:</p>

<pre><code>http://foodblogsearch.com/food-blog-search-results.php?cx=003084314295129404805&#37;3A72ozi9a0fjk&amp;q={query]&amp;cof=FORID&#37;3A11#1287</code></pre>

<p>Place this line of code between the search tags in your XML template.</p>

<p>Next copy the same line of code and place it between the <code>send</code> tags in the XML template, but replace the word "query" with "selection".</p>

<p>Here is my Food Blog Google Toolbar XML template, ready to go:</p>

<pre><code>
&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
&lt;custombuttons xmlns=&quot;http&#58;&#47;&#47;toolbar.google.com&#47;custombuttons&#47;&quot;&gt;
  &lt;button&gt;
    &lt;title&gt;Food Blog Search&lt;&#47;title&gt;
    &lt;description&gt;Search over a thousand fabulous food blogs&lt;&#47;description&gt;
    &lt;site&gt;http&#58;&#47;&#47;foodblogsearch.com&#47;&lt;&#47;site&gt;
    &lt;search&gt;http&#58;&#47;&#47;foodblogsearch.com&#47;food-blog-search-results.php?cx=003084314295129404805&amp;#37&#59;3A72ozi9a0fjk&amp;amp&#59;q={query}&amp;amp&#59;cof=FORID&amp;#37&#59;3A11#1320&lt;&#47;search&gt;
    &lt;send&gt;http&#58;&#47;&#47;foodblogsearch.com&#47;food-blog-search-results.php?cx=003084314295129404805&amp;#37&#59;3A72ozi9a0fjk&amp;amp&#59;q={selection}&amp;amp&#59;cof=FORID&amp;#37&#59;3A11#1320&lt;&#47;send&gt; 
     &lt;icon mode=&quot;base64&quot; type=&quot;image&#47;x-icon&quot;&gt;R0lGODlhEAAQAOYAAAAAAP&#47;&#47;&#47;4AZG3sYGYkcHZUfIaEiJJwhIrcoKaYkJsYsLcYsLsMrLcIrLMIr
LbspLLYoKtEvMMwuL8wuMMotL8ktLsktL8gtLsctL8UsLcQsLcQsLsMsLcErLMArLM8vMMsuL8Yt
LsIsLVEMD1MOEWsUF3oYG3AWGo8dIIwdIqEiJSsEBhMCA1gOEoMbIHkZHjAGCQgBAoJ0d19WWAMA
AQ4KDFRSVD48P6OjpBgeIIiOjmZoaJiamqSlpYCBgVVcWyQmJSQ0KTE4MyAxJBk9IVRZVSBFJTRs
PCxXMihTLUB7RxIvFBo9HQcaCCFKIgACAAABAAIIAgcaBwEDARoeGkdJR3t8e7Cxq1VVRmFfT7e2
r6OinHp0VqWgjg0LBVlSP3x2aW1rZ1VCN5aNiQkEA0AHA1E+PRsBAC8FA60lILUnIxwBASkEBEII
B6klJcwuLpiXl7u7u6KiomZmZmVlZV5eXlpaWlBQUDU1NS4uLv&#47;&#47;&#47;wAAAAAAAAAAAAAAAAAAACH5
BAEAAHoALAAAAAAQABAAAAe5gHqCgnF2g4eIVgBSU3KIj1RGSE88gj5Aj3o2TkpNOHpBS3iZekNH
STdCTEWkejleRFFQVZk6NWgEEAIrAD90eXc9gnBlbiEgCiAeKS8nLiQ0O3ozaiAcDSINGhQgIBIS
CWd1MmkLHCIODg3q6g0RJnNjBRbt6dftEyNbWi0f9ugc2FUwQEYQCxVvGLRrcA7DhjVdBsVAwWDC
hQwaLkjo0AYLIjAwSqh4gODAADZZSF0JY0bMFy6IAgEAOw==&lt;&#47;icon&gt;
  &lt;&#47;button&gt;
&lt;&#47;custombuttons&gt;</code></pre>

<p>Once you have built your XML template, save and publish it.  Pick an output file name like <code>toolbar_button.xml</code>.</p>

<p>For more customizations and information about what kinds of toolbar buttons you can create, see Google's <a href="http://www.google.com/tools/toolbar/buttons/apis/howto_guide.html">Guide to Making Custom Buttons</a>.</p>

<h3>Test Your Toolbar Button</h3>

<p>Publish a link promoting your toolbar on your site.  Use the following structure for the link:</p>

<pre><code>&lt;a href=&quot;http&#58;&#47;&#47;toolbar.google.com&#47;buttons&#47;add?url=&lt;$MTBlogURL$&gt;toolbar_button.xml&quot;&gt;add this blog&#39;s button to your Google toolbar&lt;&#47;a&gt;</code></pre>

<p>Then try out the link to see if it works.  If you get an error message, then something isn't working right in your XML code.  All the fields listed do need to be filled in.  For example, make sure you have a description between the description tags.  You might have to troubleshoot the code between the search and send tag sets.</p>

<h3>Promote Your Toolbar Button</h3>

<p>Google maintains a <a href="http://www.google.com/ig/directory?synd=toolbar&frontpage=1">gallery of toolbar buttons</a> which is a great place to promote your button.  Use Google's <a href="http://www.google.com/ig/submit?synd=toolbar">submission form</a> to submit your button to the gallery.</p>

<p><b>Links:</b><br />
<a href="http://www.google.com/tools/toolbar/buttons/apis/howto_guide.html">Guide to making custom buttons for Google Toolbar 5</a></p>]]>
   </content>
</entry>

<entry>
   <title>How to Customize Default Styles in MT4</title>
   <link rel="alternate" type="text/html" href="http://www.learningmovabletype.com/a/how_to_customize_default_styles_in_mt4/" />
   <id>tag:www.learningmovabletype.com,2008://5.2071</id>
   
   <published>2008-02-10T22:04:05Z</published>
   <updated>2008-02-24T05:08:23Z</updated>
   
   <summary>Okay, so you&apos;ve created a new blog in MT4. You&apos;ve followed the system prompts and have picked a style from the available defaults. Now you want to customize the style you&apos;ve chosen, perhaps use a different font, or a different color for an element. You go to look at the...</summary>
   <author>
      <name>Elise Bauer</name>
      <uri>http://elise.com</uri>
   </author>
   
      <category term="Beginner Tips" scheme="http://www.sixapart.com/ns/types#category" />
   
      <category term="Style" scheme="http://www.sixapart.com/ns/types#category" />
   
      <category term="Templates" scheme="http://www.sixapart.com/ns/types#category" />
   
   <category term="mt4" label="MT4" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="styles" label="Styles" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="stylesheet" label="Stylesheet" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="templates" label="Templates" scheme="http://www.sixapart.com/ns/types#tag" />
   
   <content type="html" xml:lang="en" xml:base="http://www.learningmovabletype.com/">
      <![CDATA[<p>Okay, so you've created a new blog in MT4.  You've followed the system prompts and have picked a style from the available defaults.  Now you want to customize the style you've chosen, perhaps use a different font, or a different color for an element.  You go to look at the stylesheet template in Design > Templates > Stylesheet, and instead of seeing CSS code to edit, you see this:</p>

<p><span class="mt-enclosure mt-enclosure-image"><a href="http://www.learningmovabletype.com/images/lmt-edit-stylesheet1.php" onclick="window.open('http://www.learningmovabletype.com/images/lmt-edit-stylesheet1.php','popup','width=723,height=353,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://www.learningmovabletype.com/images/lmt-edit-stylesheet-thumb-500x244.jpg" width="500" height="244" alt="lmt-edit-stylesheet.jpg" /></a></span></p>

<p>Now what?</p>]]>
      <![CDATA[<p>MT4 uses a modular template structure, pulling in files from other places to construct a template.  The most kosher way to easily make adjustments to a default style is to create a separate index file with the CSS code in it that you want to change from the default.  Then import that file into your stylesheet template.  Stylesheet code "cascades", so that whatever code comes last in the file takes precedence over what came before it.  Here are the basic steps to customizing your default stylesheet.</p>

<p><b>1. Create a new index template.</b>  Go to Design > Templates > +Create Index Template.  You can keep the template itself blank for now, but give it a title like "Style Customizations".  Set an output file with the ending .css, for example custom.css.  Save and publish the template.</p>

<p><b>2.  Include your new template into the stylesheet template.</b> Go to Design > Templates > Stylesheet.  Add the following code to a new line in the stylesheet:</p>

<pre><code>@import url(<$MTLink template="Style Customizations"$>);</code></pre>

<p>Save and publish the stylesheet template.  Now when you make changes to your customization template, they will be published to the overall stylesheet.</p>

<p><b>3.  Decide what customizations you want to make.</b>  It helps to know what CSS classes and IDs you are working with to begin with.  Take a look at the existing CSS file.  You can find the URL by doing a view source of your published blog, or by looking at the partial URL in the stylesheet template.  The main CSS for the minimalist red them is http://www.your-blog-domain.com/mt-static/themes/minimalist-red/screen.css.</p>

<p>A great way to test out your CSS changes in real time is to use the <a href="http://www.movabletype.org/design/assistant/">MT Design Assistant</a>.  The Design Assistant has the default MT designs, and you can get an idea of what the various elements of the stylesheet do by making customizations and seeing them reflected on the test page in front of you.  Go to <a href="http://www.movabletype.org/design/assistant/">http://www.movabletype.org/design/assistant/</a>.  Click "Get Started".  Select "Choose a Style" to select a starting style.  Select "Select a Layout" to pick your layout.  Then select "Customize CSS".   In the window on the right side of the screen, you can type in the CSS you want to see applied to your style.  For example, type:  </p>

<p><code>#header-name { font-size: 40px; }</code> </p>

<p>and select "Apply CSS" to see the blog title increase in size.</p>

<p><b>4.  Customize your "Style Customizations" template.</b>  When you are ready, put the style customizations - the new CSS code -  into your new Style Customizations index template.  Save and republish.  View your site.</p>

<p>That's it!  Customizing styles in MT requires a knowledge of <a href="http://en.wikipedia.org/wiki/Cascading_Style_Sheets">Cascading Style Sheets</a> or CSS.   If you need help with this, there are several good CSS books on the market.  Here's a <a href="http://www.html.net/tutorials/css/">CSS Tutorial</a> and a <a href="http://home.tampabay.rr.com/bmerkey/cheatsheet.htm">CSS Cheat Sheet</a>.   </p>

<p><em>Many thanks to Mark Carey of <a href="http://mt-hacks.com/">MT Hacks</a>, <a href="http://plasticmind.com">Jesse Gardner</a>, and Beau Smith of Six Apart for walking me through these steps.</em></p>]]>
   </content>
</entry>

<entry>
   <title>Fighting Hotlinkers with htaccess</title>
   <link rel="alternate" type="text/html" href="http://www.learningmovabletype.com/a/fighting_hotlinkers_with_htaccess/" />
   <id>tag:www.learningmovabletype.com,2008://5.2049</id>
   
   <published>2008-01-27T18:45:55Z</published>
   <updated>2008-01-27T23:06:00Z</updated>
   
   <summary>If you have a blog with reasonably well conceived content, and have had this blog for any length of time, you will undoubtedly encounter content scrapers, people bottom-feeding scumbags who republish rip-off your content either from your feed or from your site, to populate their own &quot;made for Adsense&quot; sites....</summary>
   <author>
      <name>Elise Bauer</name>
      <uri>http://elise.com</uri>
   </author>
   
      <category term="Spam" scheme="http://www.sixapart.com/ns/types#category" />
   
   <category term="hotlinking" label="Hotlinking" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="htaccess" label="Htaccess" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="spam" label="Spam" scheme="http://www.sixapart.com/ns/types#tag" />
   
   <content type="html" xml:lang="en" xml:base="http://www.learningmovabletype.com/">
      <![CDATA[<p>If you have a blog with reasonably well conceived content, and have had this blog for any length of time, you will undoubtedly encounter content scrapers, <strike>people</strike> bottom-feeding scumbags who <strike>republish</strike> rip-off your content either from your feed or from your site, to populate their own "made for Adsense" sites.  Often the only recourse left to you is to file a <a href="http://www.learningmovabletype.com/a/001560is_someone_stealing_your_content/">DMCA complaint</a>, which can take over a month to resolve.</p>

<p>If the content scraper is hotlinking your images (pulling the images directly from the files on your server) you can at least shut down the images with a command in your <a href="http://www.learningmovabletype.com/a/000743what_is_htaccess/">htaccess file</a> if your site is hosted on an Apache server.  This is sort of a sledgehammer approach, but if they have scraped your entire site (which happened to me recently), it's a lot easier than changing the file names of every image on your site and rewriting your html code for every entry.</p>]]>
      <![CDATA[<p><img alt="content-scraper.jpg" src="http://www.learningmovabletype.com/images/content-scraper.jpg" width="400" height="212"/></p>

<p>In the <a href="http://www.learningmovabletype.com/a/000246concerning_spam/">LMT article I wrote about spam</a> years ago, there is a section on "referrer spam".  In that section there is a line of code that you can add to the htaccess file of your blog:</p>

<pre><code>
SetEnvIfNoCase Referrer &quot;.*(casino|gambling|poker|porn|sex|nude|xxx).*&quot; BadReferrer
order deny,allow
deny from env=BadReferrer
</code></pre>

<p>This code blocks access to your site from domains having the listed words in them.  Find the string of characters that is most unique in the domain name of the content scraping site and add it to this list (or replace one of the spammy words), separated by a vertical line.  If that site has been hotlinking images from your site, it will no longer be able to do so.  Note that ANY website with that string will no longer be able to access your site, so be cautious in the words or characters you select.  I once had my recipe site pulled out of completely legitimate feed service because the service's name was "Food Porn watch".  Had to remove that one little p-word from my htaccess code.</p>

<p><em>Like all advice given here on LMT regarding htaccess, know what you're doing before messing with this file.  Or have someone who knows what she or he is doing do it for you.</em></p>]]>
   </content>
</entry>

<entry>
   <title>Creating a Continue Reading Link for Partial Feeds</title>
   <link rel="alternate" type="text/html" href="http://www.learningmovabletype.com/a/continue_reading_feed_link/" />
   <id>tag:www.learningmovabletype.com,2007://5.1640</id>
   
   <published>2007-08-09T20:10:59Z</published>
   <updated>2007-10-05T21:42:18Z</updated>
   
   <summary>The default Atom feed that ships with Movable Type is a full feed. It publishes your entire blog entry, not just the Main Entry Body or an excerpt. Although many people prefer full feeds, sometimes using a partial feed (publishing just part of the entry in the feed) is appropriate....</summary>
   <author>
      <name>Elise Bauer</name>
      <uri>http://elise.com</uri>
   </author>
   
      <category term="Feeds" scheme="http://www.sixapart.com/ns/types#category" />
   
   <category term="atom" label="Atom" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="continuereading" label="Continue Reading" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="feedburner" label="Feedburner" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="feeds" label="Feeds" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="partialfeed" label="Partial Feed" scheme="http://www.sixapart.com/ns/types#tag" />
   
   <content type="html" xml:lang="en" xml:base="http://www.learningmovabletype.com/">
      <![CDATA[<p>The default Atom feed that ships with Movable Type is a full feed.  It publishes your entire blog entry, not just the Main Entry Body or an excerpt. Although many people prefer full feeds, sometimes using a partial feed (publishing just part of the entry in the feed) is appropriate.  For example, if your blog is commercial and your business model depends on getting readers to your site where they can view ads, then you might want to publish a partial feed, giving feed readers enough content to be interested to click through to your site.  Also, if you publish a partial feed, feed aggregators and content slurpers will be less able to lift your content in its entirety.  A key benefit to including a "Continue Reading 'Name of Entry'" link in your partial feed, is that when feed aggregators pick up and republish your content, it will include a link with SEO-friendly anchor text back to your site.</p>

<p>To turn your full Atom feed into a partial feed, all you have to do is remove one line of code from the feed template.  Towards the bottom of the template where it says:</p>

<pre><code>
    &lt;content type=&quot;html&quot; xml&#58;lang=&quot;&lt;$MTBlogLanguage ietf=&quot;1&quot;$&gt;&quot; xml&#58;base=&quot;&lt;$MTBlogURL encode_xml=&quot;1&quot;$&gt;&quot;&gt;
        &lt;$MTEntryBody encode_xml=&quot;1&quot; convert_breaks=&quot;0&quot;$&gt;
        &lt;$MTEntryMore encode_xml=&quot;1&quot; convert_breaks=&quot;0&quot;$&gt;
    &lt;&#47;content&gt;
</code></pre>

<p>Remove this line:</p>

<pre><code>
&lt;$MTEntryMore encode_xml=&quot;1&quot; convert_breaks=&quot;0&quot;$&gt;
</code></pre>

<p>and save and publish your template.  This will produce a partial feed, with the Entry Body as the part of the content that gets published to your feed.  </p>

<p>The next step is to add a "Continue reading NAME OF ENTRY" link, so that in your readers' feed reader program they can see that there is more content if they click through.</p>]]>
      <![CDATA[<p>To add a Continue Reading link, there are two places on the feed template where new code needs to be inserted.</p>

<p>On the summary line which reads like so:</p>

<pre><code>
 &lt;summary&gt;&lt;$MTEntryExcerpt remove_html=&quot;1&quot; encode_xml=&quot;1&quot;$&gt;&lt;&#47;summary&gt;
</code></pre>

<p>It should read:</p>

<pre><code>
&lt;summary&gt;&lt;$MTEntryExcerpt remove_html=&quot;1&quot; encode_xml=&quot;1&quot;$&gt;&lt;MTEntryIfExtended&gt;&lt;![CDATA[&lt;p&gt;&lt;a href=&quot;&lt;$MTEntryPermalink$&gt;&quot;&gt;Continue reading...&lt;&#47;a&gt;&lt;&#47;p&gt;]]&gt;&lt;&#47;MTEntryIfExtended&gt;&lt;&#47;summary&gt;
</code></pre>

<p>The other place is in the content section.</p>

<p>Where your content section is now:</p>

<pre><code>
    &lt;content type=&quot;html&quot; xml&#58;lang=&quot;&lt;$MTBlogLanguage ietf=&quot;1&quot;$&gt;&quot; xml&#58;base=&quot;&lt;$MTBlogURL encode_xml=&quot;1&quot;$&gt;&quot;&gt;
        &lt;$MTEntryBody encode_xml=&quot;1&quot; convert_breaks=&quot;0&quot;$&gt;
    &lt;&#47;content&gt;
</code></pre>

<p>It should now read:</p>

<pre><code>
    &lt;content type=&quot;html&quot; xml&#58;lang=&quot;&lt;$MTBlogLanguage ietf=&quot;1&quot;$&gt;&quot; xml&#58;base=&quot;&lt;$MTBlogURL encode_xml=&quot;1&quot;$&gt;&quot;&gt;
        &lt;$MTEntryBody encode_xml=&quot;1&quot; convert_breaks=&quot;0&quot;$&gt;
&lt;MTEntryIfExtended&gt;&lt;![CDATA[&lt;p class=&quot;extended&quot;&gt;&lt;a href=&quot;&lt;$MTEntryPermalink$&gt;&quot;&gt;Continue reading &quot;&lt;$MTEntryTitle encode_xml=&quot;1&quot;$&gt;&quot; Â»&lt;&#47;a&gt;&lt;&#47;p&gt;]]&gt;&lt;&#47;MTEntryIfExtended&gt;   
 &lt;&#47;content&gt;
</code></pre>

<p>Save and republish your template.</p>

<p>Please note that the good people of Feedburner helped me figure all of this out.  I personally have no idea how or why this works.  It is however the method I'm currently using with my Simply Recipes feed.  I have not yet tested it with MT4, though I cannot see a reason why it wouldn't work in MT4. ~Elise</p>]]>
   </content>
</entry>

<entry>
   <title>Creating a Contact Form using MT</title>
   <link rel="alternate" type="text/html" href="http://www.learningmovabletype.com/a/001873creating_a_cont/" />
   <id>tag:www.learningmovabletype.com,2007://10.1873</id>
   
   <published>2007-05-04T17:52:56Z</published>
   <updated>2007-10-09T07:39:25Z</updated>
   
   <summary>There is a new LMT tutorial for Creating a contact form using MT4, written by Toni Hambilton. Please see it if you are using MT4. The following tutorial will not work for MT4 but is appropriate for MT3. The problem with most &quot;Email me&quot; contact forms is that they aren&apos;t...</summary>
   <author>
      <name>Elise Bauer</name>
      <uri>http://elise.com</uri>
   </author>
   
      <category term="Email" scheme="http://www.sixapart.com/ns/types#category" />
   
   <category term="contactforms" label="Contact Forms" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="email" label="Email" scheme="http://www.sixapart.com/ns/types#tag" />
   
   <content type="html" xml:lang="en" xml:base="http://www.learningmovabletype.com/">
      <![CDATA[<div class="announcement">There is a new LMT tutorial for <a href="http://www.learningmovabletype.com/a/create_a_contact_form_using_mt4/">Creating a contact form using MT4</a>, written by Toni Hambilton.  Please see it if you are using MT4.  The following tutorial will not work for MT4 but is appropriate for MT3.</div>

<p>The problem with most "Email me" contact forms is that they aren't very secure.  I've been using one of <a href="http://www.learningmovabletype.com/a/000797contact_forms/">these forms</a> for a few years and recently started getting a lot more spam messages coming through to my email inbox.  MT developer Jay Allen suggested using his <a href="http://jayallen.org/projects/comment-challenge/2006/03/introducing_comment_challenge_plugin.php">Comment Challenge plugin</a> and the commenting capability of MT to create a more secure contact form.  I've implemented this approach on <a href="http://www.elise.com">elise.com</a> and it seems to work great.  Here are the steps.  You will need to create a new blog for this purpose if you have enabled comments on your existing blog (the comment system templates will conflict otherwise).</p>]]>
      <![CDATA[<p><b>1.</b>  Create a new blog.  Delete all index templates except for the stylesheet.  Delete all archive templates except for the Individual Entry Archive.  Change the name of the Individual Entry Archive template to "Contact Form".  Save and rebuild the template.</p>

<p><strong>2.</strong>  In the blog Settings > Feedback, select "Accept comments from Anyone" and "Immediately publish comments from No one".  Select "Require E-mail Address".  Select E-mail Notification as "On".</p>

<p><strong>3.</strong>  In the blog Settings > Publishing, under "Archive Mapping", change the "Archive File Path" of the Contact Form to "Custom".  Fill in <code>%f</code> in the field. Save changes.</p>

<p><strong>4.</strong>  In the Individual Archive Template, strip out the code related to the entry and pings.    Strip out the MTIfCommentsActive section (you do not want to publish everyone's emails to you on the contact form.)  Basically, strip from the template everything that you do not want to appear on the page.  Hold on to the MTEntryIfCommentsOpen section.</p>

<p><strong>5.</strong>  Change the label for Comments to "Message"  and Post to "Send".   Strip out any other code in the comments section that is unnecessary, such as anything that refers to Typekey, Remember personal info, MTIfCommentsModerated, or HTML tags for style.  Here is some example code for a very simple contact form template (you will need to add appropriate div tags for style):</p>

<pre><code>
&lt;!DOCTYPE html PUBLIC &quot;-&#47;&#47;W3C&#47;&#47;DTD XHTML 1.0 Transitional&#47;&#47;EN&quot;
   &quot;http&#58;&#47;&#47;www.w3.org&#47;TR&#47;xhtml1&#47;DTD&#47;xhtml1-transitional.dtd&quot;&gt;

<p>&lt;html&gt;<br />
&lt;head&gt;<br />
&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text&#47;html&#59;charset=&lt;$MTPublishCharset$&gt;&quot;&gt;<br />
   &lt;title&gt;&lt;$MTBlogName encode_html=&quot;1&quot;$&gt;&#58; Contact Form&lt;&#47;title&gt;<br />
&lt;META NAME=&quot;ROBOTS&quot; CONTENT=&quot;NOINDEX, NOFOLLOW&quot;&gt;<br />
&lt;link rel=&quot;stylesheet&quot; href=&quot;&lt;$MTBlogURL$&gt;styles-site.css&quot; type=&quot;text&#47;css&quot; &#47;&gt;<br />
&lt;&#47;head&gt;<br />
&lt;body&gt;</p>

<p>&lt;MTIfCommentsActive&gt;<br />
&lt;MTEntryIfCommentsOpen&gt; </p>

<p>&lt;h2&gt;Please use this form to send an email&lt;&#47;h2&gt;</p>

<p>&lt;p&gt;&lt;form method=&quot;post&quot; action=&quot;&lt;$MTCGIPath$&gt;&lt;$MTCommentScript$&gt;&quot; name=&quot;comments_form&quot;&gt;<br />
&lt;input type=&quot;hidden&quot; name=&quot;static&quot; value=&quot;1&quot; &#47;&gt;<br />
&lt;input type=&quot;hidden&quot; name=&quot;entry_id&quot; value=&quot;&lt;$MTEntryID$&gt;&quot; &#47;&gt;&lt;&#47;p&gt;<br />
                                      <br />
&lt;p&gt; &lt;label for=&quot;comment-author&quot;&gt;Your Name&#58;&lt;&#47;label&gt;<br />
&lt;input id=&quot;comment-author&quot; name=&quot;author&quot; size=&quot;30&quot; &#47;&gt;&lt;&#47;p&gt;</p>

<p>&lt;p&gt; &lt;label for=&quot;comment-email&quot;&gt;Your Email Address&#58;&lt;&#47;label&gt;<br />
&lt;input id=&quot;comment-email&quot; name=&quot;email&quot; size=&quot;30&quot; &#47;&gt;&lt;&#47;p&gt;</p>

<p>&lt;p&gt;&lt;label for=&quot;comment-text&quot;&gt;Message&#58; &lt;&#47;label&gt;&lt;br &#47;&gt;<br />
&lt;textarea id=&quot;comment-text&quot; name=&quot;text&quot; rows=&quot;14&quot; cols=&quot;60&quot;&gt;&lt;&#47;textarea&gt;&lt;&#47;p&gt;</p>

<p>&lt;p&gt;&lt;input type=&quot;submit&quot; accesskey=&quot;v&quot; name=&quot;send&quot; id=&quot;comment-post&quot; value=&quot;Send&quot; &#47;&gt;&lt;&#47;p&gt;</p>

<p>&lt;p&gt;All fields required.&lt;&#47;p&gt;<br />
                                 <br />
&lt;&#47;form&gt;  <br />
&lt;&#47;MTEntryIfCommentsOpen&gt;<br />
&lt;&#47;MTIfCommentsActive&gt;<br />
&lt;&#47;body&gt;<br />
&lt;&#47;html&gt;<br />
</code></pre></p>

<p><strong>6.</strong>  Save and rebuild the template.  Create an entry, with the title "Contact" and nothing in the entry body or extended entry.  Publish the entry.  (Note that based on your archive mapping preferences, this will create a page with the URL - http://www.yoursite.com/contact.html). Click on  "View Entry" to see the Contact Form page.  Test the form by sending yourself a test message.</p>

<p><strong>7.</strong>  Edit the Comment Pending Template.  Strip out all unnecessary code and put in the message, "Thank you for your message."  </p>

<p>If your Contact Form is going to be a pop-up, you can add a little Javascript button to the page to close the popup window.  In the header section of the template, put the following code:</p>

<pre><code>
     &lt;script language=javascript&gt;
     function closeWin()
     {
      window.close()&#59;
     }
     &lt;&#47;script&gt;
</code></pre>

<p>After the Thank You message on the template, place the following code to create a button that will close the popup:</p>

<pre><code>&lt;input type=&quot;button&quot; onClick=&quot;javascript&#58; window.close()&#59;&quot; value=&quot;Close&quot; &#47;&gt;</code></pre>

<p><strong>8.</strong>  Install Jay Allen's <a href="http://jayallen.org/projects/comment-challenge/2006/03/download_installation_and_configuration.php">Comment Challenge plugin</a>.  Follow Jay's install guide carefully, and place the &lt;$MTCommentChallenge$&gt; code right after the comment form text area in the Comment Form template.  Save and rebuild the template.  Test the form again by sending yourself a test message.</p>

<p><strong>9.</strong>  Edit the Comment Error Template.  Strip out all unnecessary code.</p>

<p><strong>10.</strong>  If you are planning to let people preview their emails to you before they get sent, edit the Comment Preview Template, and make sure to include a Preview button on the Contact Form.</p>

<p><strong>11. </strong> Test all forms extensively to make sure they are working properly.</p>

<p><strong>12.</strong>  Provide a link to your contact form from your website.  If you want your contact form to be a pop-up, you can use this code to create a link (swap out http://www.yoursite.com/contact.html for the URL of your contact form):</p>

<pre><code>
&lt;a href=&quot;http&#58;&#47;&#47;www.yoursite.com&#47;contact.html&quot; onclick=&quot;window.open(&#39;http&#58;&#47;&#47;www.yoursite.com&#47;contact.html&#39;,&#39;popup&#39;,&#39;width=550,height=650,scrollbars=yes,resizable=yes,toolbar=no,directories=no,location=no,menubar=no,status=no,left=50,top=0&#39;)&#59; return false&quot; rel=&quot;nofollow&quot;&gt;Contact&lt;&#47;a&gt;
</code></pre>]]>
   </content>
</entry>

<entry>
   <title>Hackathon 07 NYC</title>
   <link rel="alternate" type="text/html" href="http://www.learningmovabletype.com/a/001867hackathon_07_ny/" />
   <id>tag:www.learningmovabletype.com,2007://10.1867</id>
   
   <published>2007-03-27T00:38:04Z</published>
   <updated>2007-06-26T06:36:59Z</updated>
   
   <summary> Just got back from NYC, where Six Apart hosted a Hackathon with MT developers and an Executive Summit. I finally got to meet LMT collaborators Jesse Gardner and Chad Everett (yay!) Also in attendance were Jay Allen, Anil Dash, Byrne Reese, Kevin Shay, David Jacobs, Finn Smith, Dave Aiello,...</summary>
   <author>
      <name>Elise Bauer</name>
      <uri>http://elise.com</uri>
   </author>
   
      <category term="Announcements" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="en" xml:base="http://www.learningmovabletype.com/">
      <![CDATA[<p><img alt="hackathon-2.jpg" src="http://www.learningmovabletype.com/photos/hackathon-2.jpg" width="500" height="333" /></p>

<p>Just got back from NYC, where Six Apart hosted a Hackathon with MT developers and an Executive Summit.  I finally got to meet LMT collaborators <a href="http://www.plasticmind.com/">Jesse Gardner</a> and <a href="http://www.everitz.com/">Chad Everett</a> (yay!)  Also in attendance were <a href="http://jay.vox.com/">Jay Allen</a>, <a href="http://www.dashes.com/anil/">Anil Dash</a>, <a href="http://www.majordojo.com/">Byrne Reese</a>, <a href="http://www.staggernation.com/">Kevin Shay</a>, <a href="http://apperceptive.com/">David Jacobs</a>, Finn Smith, <a href="http://www.weblogimprovement.com/">Dave Aiello</a>, Amit Snyderman, <a href="http://www.nyu.edu/its/humanities/staff/nicola.html">Nicola Monat-Jacobs</a>, <a href="http://www.maartenschenk.be">Maarten Schenk</a>, Su, <a href="http://www.appnel.com/">Tim Appnel</a>, and <a href="http://www.eatdrinksleepmovabletype.com/">Dan Wolfgang</a>.  Dan, bless his heart, <a href="http://www.eatdrinksleepmovabletype.com/discussions/hackathon_and_executive_summit_adventures/">brought thin mints for everyone</a>.</p>

<p>Here are some more <a href="http://www.flickr.com/photos/elisebauer/sets/72157600029201096/">photos from the Hackathon</a>.  If you have some posted, please let us know in the comments.</p>

<p>Maarten posted videos from the sessions at the Executive Summit here:  <a href="http://maartenschenk.be/video/newyork/">http://maartenschenk.be/video/newyork</a>.</p>

<p>Here are <a href="http://www.majordojo.com/movable_type/my_hackathon_hacks.php">Byrne's Hackathon notes</a> and <a href="http://blog.plasticmind.com/blogging/hackalicious.php">Jesse's thoughts</a> about the Hackathon.</p>]]>
      
   </content>
</entry>

<entry>
   <title>Learning Movable Type Has a New Look and Focus</title>
   <link rel="alternate" type="text/html" href="http://www.learningmovabletype.com/a/001863learning_movabl/" />
   <id>tag:www.learningmovabletype.com,2007://10.1863</id>
   
   <published>2007-03-10T22:02:43Z</published>
   <updated>2007-06-26T06:36:59Z</updated>
   
   <summary>Hello everyone. Welcome to the new Learning Movable Type. We recently had a total design makeover, and oh my, what a difference. LMT contributing editor Jesse Gardner of PlasticMind Design led the design effort. Arvind of Movalog built a fancy multi-author back-end. I (Elise) picked the colors, and then got...</summary>
   <author>
      <name>Elise Bauer</name>
      <uri>http://elise.com</uri>
   </author>
   
      <category term="Announcements" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="en" xml:base="http://www.learningmovabletype.com/">
      <![CDATA[<p>Hello everyone.  Welcome to the new Learning Movable Type.</p>

<p>We recently had a total design makeover, and oh my, what a difference.  LMT contributing editor <a href="http://www.learningmovabletype.com/contributors/jesse/">Jesse Gardner</a> of <a href="http://www.plasticmind.com/">PlasticMind Design</a> led the design effort.  <a href="http://www.learningmovabletype.com/contributors/arvind/">Arvind</a> of <a href="http://www.movalog.com/">Movalog</a> built a fancy multi-author back-end.  I (<a href="http://www.learningmovabletype.com/contributors/elise/">Elise</a>) picked the colors, and then got out of the way to let the wunderkinds do their thing.</p>

<p>For those of us with short memories, here's a snapshot of the old look:</p>

<p><a href="http://www.learningmovabletype.com/lmt-old-style-large1.php" onclick="window.open('http://www.learningmovabletype.com/lmt-old-style-large1.php','popup','width=804,height=744,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img alt="lmt-old-look.jpg" src="http://www.learningmovabletype.com/lmt-old-look.jpg" width="200" height="189" /></a><br />
<em>(Click to view)</em></p>]]>
      <![CDATA[<p>With the new site design we now have three columns, two sidebar columns on the right, with more room to highlight LMT contributors, resources, and the latest news from the Movable Type community.</p>

<p>Which brings us to LMT's new <b>focus</b>.</p>

<p>For the last 3 years of Learning Movable Type's life, I (Elise) have been the primary author and tutorial generator.    Movable Type is a highly flexible web publishing platform.  As the software has evolved, the amount of customization options have grown as well, far beyond the ability of one person to adequately follow or document.  The purpose of LMT is to provide useful information for those building MT sites. The best way to do that is to open up LMT more to the community of MT experts to share their expertise with everyone.  The contributor links in the sidebar highlight those in the MT community who have volunteered their time and expertise to write tutorials that benefit the broader MT community.  Click on a link and you'll find more about the contributing author.   If you are looking to hire an MT expert for your next weblog project, these contributor links are the place to start.</p>

<p><b>Would you like to be a contributing author</b> on LMT?  Or do you have an idea for a tutorial that would benefit the MT community?  If so, please let me know at elise [at} elise {dot] com, or leave a message here in the comments.</p>

<p>Because redoing a site is a big and complicated task, sometimes things slip through the cracks.  If you see something funky here, that doesn't go away on its own in a day or so, please let us know about it, will you?</p>

<p>If you too would like a gorgeous new design for your site, you're in luck! <a href="http://www.plasticmind.com/">Jesse Gardner</a> designs websites for a living.  You can reach him at <a href="http://www.plasticmind.com/">PlasticMind</a>.</p>

<p>If you would like to implement a multi-author environment on your site like what we have done here, <a href="http://www.movalog.com">Arvind</a> has promised a set of tutorials on how he did it.</p>

<p>That's it.  Enjoy the new site.  Many many thanks to my partners in crime, Jesse and Arvind, for doing here what they do best.</p>

<p>~Elise<br />
</p>]]>
   </content>
</entry>

<entry>
   <title>MT Community Search</title>
   <link rel="alternate" type="text/html" href="http://www.learningmovabletype.com/a/001722mt_community_search/" />
   <id>tag:www.learningmovabletype.com,2007://10.1722</id>
   
   <published>2007-03-03T23:57:37Z</published>
   <updated>2007-06-26T06:36:59Z</updated>
   
   <summary>Updated March 10, 2007 Introducing a new way to search for Movable Type information throughout the MT community, MT Community Search (http://www.mtcommunitysearch.com). Using Google&apos;s custom search capability, I&apos;ve put together a custom search engine of the most popular and content-rich Movable Type sites, including the MT forums. You&apos;ll find this...</summary>
   <author>
      <name>Elise Bauer</name>
      <uri>http://elise.com</uri>
   </author>
   
      <category term="Reference" scheme="http://www.sixapart.com/ns/types#category" />
   
   <category term="mtcommunitysearch" label="MT Community Search" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="search" label="Search" scheme="http://www.sixapart.com/ns/types#tag" />
   
   <content type="html" xml:lang="en" xml:base="http://www.learningmovabletype.com/">
      <![CDATA[<p><em>Updated March 10, 2007</em></p>

<p>Introducing a new way to search for Movable Type information throughout the MT community, <b>MT Community Search</b> (<a href="http://www.mtcommunitysearch.com">http://www.mtcommunitysearch.com</a>).</p>

<p>Using <a href="http://google.com/coop/cse/">Google's custom search</a> capability, I've put together a custom search engine of the most popular and content-rich Movable Type sites, including the MT forums.  You'll find this search bar in the sidebar of LMT.  You can try it out here:</p>

<p><!-- Google CSE Search Box Begins --><form id="searchbox_003084314295129404805:7bvp7badf0w" action="http://www.google.com/cse"><input type="hidden" name="cx" value="003084314295129404805:7bvp7badf0w" /><input name="q" type="text" size="40" maxlength="255" /><br />
    <input type="submit" name="sa" value="Search MT Community" /><input type="hidden" name="cof" value="FORID:1" /></form><script type="text/javascript" src="http://www.google.com/coop/cse/brand?form=searchbox_003084314295129404805%3A7bvp7badf0w"></script><!-- Google CSE Search Box Ends --></p>]]>
      <![CDATA[<p>If you would like to add this search bar to your site, you can use the following code:</p>

<pre><code>&lt;!-- Google CSE Search Box Begins --&gt;
  &lt;form id=&quot;searchbox_003084314295129404805&#58;7bvp7badf0w&quot; action=&quot;http&#58;&#47;&#47;www.google.com&#47;search&quot;&gt;
    &lt;input type=&quot;hidden&quot; name=&quot;cx&quot; value=&quot;003084314295129404805&#58;7bvp7badf0w&quot; &#47;&gt;
    &lt;input type=&quot;hidden&quot; name=&quot;cof&quot; value=&quot;FORID&#58;1&quot; &#47;&gt;
    &lt;input name=&quot;q&quot; type=&quot;text&quot; size=&quot;40&quot; &#47;&gt;
    &lt;input type=&quot;submit&quot; name=&quot;sa&quot; value=&quot;Search&quot; &#47;&gt;
  &lt;&#47;form&gt;
  &lt;script type=&quot;text&#47;javascript&quot; src=&quot;http&#58;&#47;&#47;www.google.com&#47;coop&#47;cse&#47;brand?form=searchbox_003084314295129404805&#37;3A7bvp7badf0w&quot;&gt;&lt;&#47;script&gt;
&lt;!-- Google CSE Search Box Ends --&gt;
      </code></pre>

<p>If you would like to have this search bar on your site, with <b>the results opening up into your own website</b>, use the following code snippets.</p>

<p>Here is the search bar code.  Replace <b>http://www.learningmovabletype.com/communitysearch.php</b> which occurs on the first line of the following form with the URL of the page on which you would like the results to occur.</p>

<pre><code>&lt;!-- Google CSE Search Box Begins --&gt;
  &lt;form id=&quot;searchbox_003084314295129404805&#58;7bvp7badf0w&quot; action=&quot;http&#58;&#47;&#47;www.learningmovabletype.com&#47;communitysearch.php&quot;&gt;
    &lt;input type=&quot;hidden&quot; name=&quot;cx&quot; value=&quot;003084314295129404805&#58;7bvp7badf0w&quot; &#47;&gt;
    &lt;input type=&quot;hidden&quot; name=&quot;cof&quot; value=&quot;FORID&#58;11&quot; &#47;&gt;
    &lt;input name=&quot;q&quot; type=&quot;text&quot; size=&quot;40&quot; &#47;&gt;
    &lt;input type=&quot;submit&quot; name=&quot;sa&quot; value=&quot;Search&quot; &#47;&gt;
  &lt;&#47;form&gt;
  &lt;script type=&quot;text&#47;javascript&quot; src=&quot;http&#58;&#47;&#47;www.google.com&#47;coop&#47;cse&#47;brand?form=searchbox_003084314295129404805&#37;3A7bvp7badf0w&quot;&gt;&lt;&#47;script&gt;
&lt;!-- Google CSE Search Box Ends --&gt;</code></pre>
        

<p>Then, on the results page, place the following code where you would like the results to appear:</p>

<pre><code>&lt;!-- Google Search Result Snippet Begins --&gt;
&lt;div id=&quot;results_003084314295129404805&#58;7bvp7badf0w&quot;&gt;&lt;&#47;div&gt;
&lt;script type=&quot;text&#47;javascript&quot;&gt;
  var googleSearchIframeName = &quot;results_003084314295129404805&#58;7bvp7badf0w&quot;&#59;
  var googleSearchFormName = &quot;searchbox_003084314295129404805&#58;7bvp7badf0w&quot;&#59;
  var googleSearchFrameWidth = 600&#59;
  var googleSearchFrameborder = 0&#59;
  var googleSearchDomain = &quot;www.google.com&quot;&#59;
  var googleSearchPath = &quot;&#47;cse&quot;&#59;
&lt;&#47;script&gt;
&lt;script type=&quot;text&#47;javascript&quot; src=&quot;http&#58;&#47;&#47;www.google.com&#47;afsonline&#47;show_afs_search.js&quot;&gt;&lt;&#47;script&gt;
&lt;!-- Google Search Result Snippet Ends --&gt;</code></pre>
          
If you would like to customize the colors that the results display for fonts and links, add the following line before the &lt;&#47;form&gt; tag in the Search Box Code (not the results code):

<pre><code>&lt;input type=&quot;hidden&quot; name=&quot;cof&quot; value=&quot;GALT&#58;#0066A1&#59;GL&#58;1&#59;DIV&#58;#FFFFFF&#59;VLC&#58;654006&#59;AH&#58;center&#59;BGC&#58;FFFFFF&#59;LBGC&#58;FFFFFF&#59;ALC&#58;654006&#59;LC&#58;654006&#59;T&#58;2B1205&#59;GFNT&#58;2B1205&#59;GIMP&#58;2B1205&#59;FORID&#58;11&quot;&gt;&lt;&#47;input&gt;</code></pre>

<p>You can play around and experiment with the color values.  </p>

<p><br />
If you think a site should be included in this search engine, search for it first.  If it isn't there, and you would like it to be, drop me a note in the comments. </p>

<p>Enjoy!</p>]]>
   </content>
</entry>

<entry>
   <title>Close Old Comments with BlogJanitor</title>
   <link rel="alternate" type="text/html" href="http://www.learningmovabletype.com/a/close_old_comme/" />
   <id>tag:www.learningmovabletype.com,2007:/announce//22.1586</id>
   
   <published>2007-02-21T03:19:55Z</published>
   <updated>2007-06-26T06:36:59Z</updated>
   
   <summary>One way to reduce blog spam is to reduce the opportunity by closing comments on old entries. There have been several plugins in the past that accomplished this, but they either don&apos;t work with the newer versions of MT, or aren&apos;t supported anymore. To address this need, plugin developer Mark...</summary>
   <author>
      <name>Elise Bauer</name>
      <uri>http://elise.com</uri>
   </author>
   
      <category term="Announcements" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="en" xml:base="http://www.learningmovabletype.com/">
      <![CDATA[<p>One way to reduce blog spam is to reduce the opportunity by closing comments on old entries.  There have been several plugins in the past that accomplished this, but they either don't work with the newer versions of MT, or aren't supported anymore.  To address this need, plugin developer Mark Carey has recently released <a href="http://mt-hacks.com">BlogJanitor</a>, a plugin that will automatically close comments and trackbacks on old entries, as well as deleting duplicate comments and trackbacks.  Thanks Mark!</p>]]>
      
   </content>
</entry>

<entry>
   <title>Concerning Spam</title>
   <link rel="alternate" type="text/html" href="http://www.learningmovabletype.com/a/000246concerning_spam/" />
   <id>tag:www.elise.com,2004:/mt//10.246</id>
   
   <published>2007-02-09T20:28:38Z</published>
   <updated>2008-01-27T19:11:42Z</updated>
   
   <summary>Updated February 9, 2007. Originally posted in 2004 and updated several times since. Spammers have discovered bloggers and sooner or later if you allow comments or trackback pings on your weblog you will get spammed. Types of Blog Spam Blog spam appears in many flavors: Basic comment spam. The spammer...</summary>
   <author>
      <name>Elise Bauer</name>
      <uri>http://elise.com</uri>
   </author>
   
      <category term="Comments and Trackbacks" scheme="http://www.sixapart.com/ns/types#category" />
   
      <category term="Security" scheme="http://www.sixapart.com/ns/types#category" />
   
      <category term="Spam" scheme="http://www.sixapart.com/ns/types#category" />
   
   <category term="akismet" label="Akismet" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="captcha" label="Captcha" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="commentchallenge" label="Comment Challenge" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="commentspam" label="Comment Spam" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="referralspam" label="Referral Spam" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="spam" label="Spam" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="spamlookup" label="SpamLookup" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="trackbackspam" label="Trackback Spam" scheme="http://www.sixapart.com/ns/types#tag" />
   
   <content type="html" xml:lang="en" xml:base="http://www.learningmovabletype.com/">
      <![CDATA[<p><em>Updated February 9, 2007. Originally posted in 2004 and updated several times since.</em></p>

<p>Spammers have discovered bloggers and sooner or later if you allow comments or trackback pings on your weblog you will get spammed.  </p>

<h3>Types of Blog Spam</h3>

<p>Blog spam appears in many flavors:</p>

<ol><li><strong>Basic comment spam. </strong> The spammer leaves a short uneventful message in a comment field in one of your entries.  The spam comes from the URL placed in the comments URL field.  These URLs link back to every conceivable scam. </li>
<li><strong>Comment spam flooding.</strong>  The spammer uses an automated computer bot to flood your blog with comment spam messages, up to hundreds in an hour.  The spammer doesn't necessarily leave a URL, but can leave garbage messages, almost like a graffiti artist.  The comment spam can put a severe load on the server hosting your blog software to the point that it crashes.</li>
<li><strong>Trackback Spam.</strong> Spammers have discovered how to take advantage of <a href="http://www.learningmovabletype.com/archives/000250what_is_trackback.php">Trackback</a>.   TrackBack spam is very similar to comment spam.  The spammer sends TrackBack pings to your site that direct viewers to a totally unrelated URL.</li>
<li><strong>Referral spam.</strong>  The spammer links to your site from their site, and then pings your site through their link, thus creating a reference and link to their site on the statistics referral log of your website.  When you are reviewing your stats and see the reference to an odd site (ex. Paris Hilton), clicking on the link takes you to their site.  Many people list "referrals" on their site publicly, so by spamming referral logs, not only does the spammer get a link on your referral log (which is picked up by Google) but may even get a link on your main page.</li></ol>

<h3>How can you fight spam on your blog?</h3>]]>
      <![CDATA[<p>MT 3.3 offers a built-in spam protection plugin called SpamLookup.  In addition to this plugin, there are several other options you can implement to help stem the tide of spam.  Note that the spammers are constantly improving their methods to game the system, requiring constant vigilance on the part of the MT community to keep coming up with new ways to block them.</p>

<ul><li><strong>SpamLookup</strong><br />
<a href="http://bradchoate.com/projects/spamlookup/">SpamLookup</a> is a Movable Type plugin, developed by Brad Choate, that uses several techniques to identify spam, and then uses user-supplied choices to either moderate or block it.  SpamLookup is an integrated part of MT 3.3, so if you have installed the latest version of MT, there is nothing more you need to install.  SpamLookup utilizes several blacklist services to check incoming comments and trackbacks against known spammers.  It allows you to either "junk" or moderate comments and trackbacks based on different settings for links and keywords.  You can even "white list" domains or IP addresses.  To adjust the settings on SpamLookup, simply open up your Plugins menu from the System Overview of your Movable Type editing window.  Scroll to the bottom and select "Show Settings" from any of the SpamLookup modules.  See Neil Turner's suggestions on <a href="http://www.learningmovabletype.com/archives/001421making_the_most_of_spamlookup.php">Making the Most of SpamLookup</a> and David Philip's <a href="http://tweezersedge.com/archives/2005/09/000601.html">SpamLookup's Keyword Filter Explained</a> for more information on how to best use this plugin.</li>

<p><li><Strong>Akismet</strong><br />
<a href="http://akismet.com/">Akismet</a> is a distributed spam filtering service developed by the Wordpress community.  According to the Akismet FAQ, the way it works is "When a new comment, trackback, or pingback comes to your blog it is submitted to the Akismet web service which runs hundreds of tests on the comment and returns a thumbs up or thumbs down."  MT developer <a href="http://www.appnel.com/">Tim Appnel</a> has created an MT plugin for Akismet (MT-Akismet) which can be downloaded from <a href="http://akismet.com/development/">the Akismet website</a>.  Many have found Akismet to be more effective at catching spam than SpamLookup.</p>

<p><li><strong>Comment Challenge</strong><br />
Jay Allen's <a href="http://jayallen.org/projects/comment-challenge/2006/03/introducing_comment_challenge_plugin.php">Comment Challenge plugin</a> requires a commenter to type a keyword into a separate field from the comment field in order for the comment cgi script to run.  This plugin effectively halts automatic computer generated spam comments.</li></p>

<p><li><strong>Use a "Captcha"</strong>  <br />
A captcha is a security code that a commenter must enter in order for her comment to load.  The benefit is that it screens out automated comment spam bots.  The downside is that it keeps visually disabled people from easily contributing a comment.   Arvind has released an SCode plugin to work with MT 3.2 - <a href="http://www.movalog.com/archives/plugins/mt-scode-10">MT-SCode 1.0</a>.</li></p>

<p><li><strong>Require approval before a comment posts</strong> <br />
One way to ensure that your readers never have to see a spam message is that you personally approve comments before they are posted.  MT3 has the comment moderation features built-in.  (See Settings > Feedback > check "Immediate publish comments from No one".)</li></p>

<p><li><strong>Force "preview" before allowing comment submissions</strong>  <br />
Forcing site visitors to preview their comments before submitting them will not only give you more error-free comments, but will put yet another hurdle up against automatic comment spam bots.  Just remove this line of code:<br />
<pre><code><br />
&lt;input type=&quot;submit&quot; accesskey=&quot;s&quot; name=&quot;post&quot; id=&quot;comment-post&quot; value=&quot;Post&quot; &#47;&gt;<br />
</code></pre><br />
from your Individual Entry Archive Template.</li></p>

<p><li><strong>Close old comments.</strong>  <br />
One way to cut down on blog spam is to reduce the opportunities by closing the ability to comment on blog posts older than X number of days.  Mark Carey's <a href="http://mt-hacks.com/blogjanitor.html">BlogJanitor</a> plugin lets you do just that, and all automatically.</li></ul></p>

<h3>Fighting Comment Spam Flood Attacks</h3>

<p>One way that spammers can cause trouble is by repeatedly pinging your server, hundreds of times an hour, trying to leave their comment spam.  This can cause server CPU overloads and crashes and can even have your web host shut down your account.</p>

<p>Used in conjunction with a spam filter such as Spam Lookup or Akismet, the <a href="http://blog.thought-mesh.net/solidwallofcode/mt_projects/autoban.php">MTAutoBan</a> plugin can help automatically stop spam floods by banning or redirecting comments from IP addresses that have been identified as generating junk comments.</p>

<h3>Fighting TrackBack Spam</h3>

<p>The primary measures to fight TrackBack spam are similar to comment spam - SpamLookup, Akismet and/or Trackback moderation.  To moderate Trackbacks, open the settings for your weblog.  Select the Feedback settings.  Under Trackbacks, select, "Hold all Trackbacks for approval before they are published."</p>

<h3>Fighting Referral Spam</h3>

<p><b>Fight referral spam by ammending .htaccess file</b>.  Referral spam is annoying, but it doesn't affect the public display of your site unless you are publishing your referral log.  If it bothers you enough that spam companies are benefiting by creating backlinks to their sites on your referral logs, you can ammend your .htaccess file (see <a href="http://www.learningmovabletype.com/archives/000743what_is_htaccess.php">What is .htaccess?</a>) with the following lines of code:</p>

<pre><code>
SetEnvIfNoCase Referrer &quot;.*(casino|gambling|poker|porn|sex|nude|xxx|hilton|pics|video).*&quot; BadReferrer
order deny,allow
deny from env=BadReferrer
</code></pre>

<p>See this <a href="http://cavlec.yarinareth.net/archives/2005/01/11/killing-referrer-spam">Killing Referrer Spam</a> article for more info on using the htaccess method to fight referral spam.</p>

<h3>Links:</h3>

<p><a href="http://sixapart.com/pronet/comment_spam.html">Six Apart Guide on Combatting Comment Spam</a><br />
<a href="http://tweezersedge.com/archives/2005/09/000601.html">SpamLookup's Keyword Filter Explained</a> by David Phillips.<br />
<a href="http://www.learningmovabletype.com/archives/001421making_the_most_of_spamlookup.php">Making the Most of SpamLookup</a><br />
<a href="http://kalsey.com/2004/07/new_comment_spam_technique/">New Comment Spam Technique</a> - Adam Kalsey notes that spammers are creating comment spam with links to legitimate sites that have been spammed to get the page rank up for those links.<br />
<a href="http://www.arin.net/whois/">ARIN WHOIS Database Search</a> - Look up the ISP of the IP address of the person spamming you and report the spammer behavior.<br />
<a href="http://ojr.org/ojr/glaser/1095201311.php">Bloggers Declare War on Comment Spam, but Can They Win?</a> - article from the USC Annenberg Online Journalism Review.<br />
<a href="http://vowe.net/archives/005410.html">Mod Rewrite method to divert spam bots to a 403 error</a><br />
<a href="http://cavlec.yarinareth.net/archives/2005/01/11/killing-referrer-spam">Killing Referrer Spam</a></p>]]>
   </content>
</entry>

<entry>
   <title>Automatic Copyright Notice Year Update</title>
   <link rel="alternate" type="text/html" href="http://www.learningmovabletype.com/a/001584automatic_copyright_year/" />
   <id>tag:www.learningmovabletype.com,2007://10.1584</id>
   
   <published>2007-01-08T18:11:24Z</published>
   <updated>2007-06-26T06:36:59Z</updated>
   
   <summary>Every year come January we have to start signing checks with a new date. One little site detail that often gets overlooked is the date on the copyright notice (if you have a copyright notice) for your blog. If your site is PHP friendly, you can replace the copyright date...</summary>
   <author>
      <name>Elise Bauer</name>
      <uri>http://elise.com</uri>
   </author>
   
      <category term="General Tips and Tricks" scheme="http://www.sixapart.com/ns/types#category" />
   
   <category term="copyright" label="Copyright" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="php" label="PHP" scheme="http://www.sixapart.com/ns/types#tag" />
   
   <content type="html" xml:lang="en" xml:base="http://www.learningmovabletype.com/">
      <![CDATA[<p>Every year come January we have to start signing checks with a new date.  One little site detail that often gets overlooked is the date on the copyright notice (if you have a copyright notice) for your blog.  If your site is <a href="http://www.learningmovabletype.com/archives/000886converting_to_php.php">PHP friendly</a>, you can replace the copyright date with a little php script that automatically puts in the correct year.</p>

<p>Replacing the date with <code>&lt;?php echo date(&#39;Y&#39;)&#59; ?&gt;</code> will do the trick.  For example, the copyright code for LMT is:</p>

<div class="message">
Copyright &amp;copy&#59; 2004-&lt;?php echo date(&#39;Y&#39;)&#59; ?&gt;
</div>

<p>There's probably a way to do this just with using MT tags.  Anyone know how?  If so, please let us know in the comments and I'll add it to this post.</p>]]>
      
   </content>
</entry>

<entry>
   <title>How to Make a Subject Index Using Tags</title>
   <link rel="alternate" type="text/html" href="http://www.learningmovabletype.com/a/001581tags_subject_index/" />
   <id>tag:www.learningmovabletype.com,2006://10.1581</id>
   
   <published>2006-08-21T17:53:14Z</published>
   <updated>2007-06-26T06:36:59Z</updated>
   
   <summary> Updated August 23, 2006. Fixed a few things. Most non-fiction books have a Subject Index in the back, making it easy for the reader to look up topics of interest, based on a word or term. With MT3.3&apos;s new tagging feature, you can create an alphabetical index of your...</summary>
   <author>
      <name>Elise Bauer</name>
      <uri>http://elise.com</uri>
   </author>
   
      <category term="Tags" scheme="http://www.sixapart.com/ns/types#category" />
   
   <category term="index" label="Index" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="subjectindex" label="Subject Index" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="tags" label="Tags" scheme="http://www.sixapart.com/ns/types#tag" />
   
   <content type="html" xml:lang="en" xml:base="http://www.learningmovabletype.com/">
      <![CDATA[<p><img alt="index-example.jpg" src="http://www.learningmovabletype.com/images/index-example.jpg" width="295" height="175" /></p>

<p><em>Updated August 23, 2006.  Fixed a few things.</em></p>

<p>Most non-fiction books have a Subject Index in the back, making it easy for the reader to look up topics of interest, based on a word or term.  With MT3.3's new tagging feature, you can create an alphabetical index of your entries tags.  You can see this in action with LMT's <a href="http://www.learningmovabletype.com/tag-index.php">Tag Index</a>.</p>]]>
      <![CDATA[<ol><li><b>Add tags to your posts</b>.  

<p>In the entry edit window, click on "Customize the display of this page" link at the bottom of the page.  In the popup, select "Custom" and check the box marked "Tags".  Now you should see a field for tags in your entry edit window.  For each entry, add a tag or tags, separated by a comma. Try to avoid odd characters like apostrophes and ampersands.  Decide on a capitalization scheme (either all lower case or the first letter is caps) and stick with it.  Here's an example:</p>

<blockquote>
Apples, James Madison, New York City
</blockquote>

<p>Here are some tips for successful tagging:</p>

<ul><li>Be specific.  Pick words that are as specific as possible.  For example "Gravenstein Apple" is more specific than "Food".</li>

<p><li>Be consistent.  If you've tagged one post "The Netherlands," avoid tagging another post "Netherlands".  Check your complete tag index to see if a tag has already been used.</li></p>

<p><li>Be redundant.  Not every Chocolate-related post will also have Dessert as a keyword. But if at least one does, then the two subjects are related.</li></p>

<p><li>Tag all your posts, including your old posts.  (If you have been using keywords as a way of tagging see <a href="http://www.learningmovabletype.com/archives/001578converting_keywords_into_tags.php">Converting Keywords into Tags</a>.)</li></ul><br />
</li></p>

<p><li><b>Make a new tag-only search results template.</b></p>

<p>By default, MT3.3 uses the default Search Results Template (in System Templates) for tag results.  So when you click on a tag displayed in an entry it triggers the mt-search.cgi script and a search result page is displayed with the titles and excerpts of the entries with that tag.  You will want to create a tag-only search results template.  The way to do that is to create an "Alternative Search Template".  To do this, see the directions in the LMT tutorial <a href="http://www.learningmovabletype.com/archives/000651mt_keyword_search.php">MT Keyword Search</a>.  You can copy the default search template from Templates > System Templates.  Paste it into a text editor and make adjustments on this template.  Follow the directions in LMT for <a href="http://www.learningmovabletype.com/archives/000651mt_keyword_search.php">creating an alternate search template</a> or the directions in the MT User Manual for <a href="http://www.sixapart.com/movabletype/docs/3.2/10_search/#entry-5359">Adding Alternate Search Templates</a>.</p>

<p>My basic tag search result template looks something like this in the main section:</p>

<div class="message">

<p>&lt;MTSearchResults&gt;</p>

<p>&lt;MTBlogResultHeader&gt;<br />
&lt;h2&gt;</p>

<p>&lt;MTIfTagSearch&gt;<br />
Results for &amp;quot&#59;&lt;$MTSearchString$&gt;&amp;quot&#59;<br />
&lt;&#47;MTIfTagSearch&gt;<br />
&lt;&#47;h2&gt;</p>

<p>&lt;div class=&quot;search-results-container&quot;&gt;<br />
&lt;&#47;MTBlogResultHeader&gt;</p>

<p>                  <br />
 &lt;h3&gt;&lt;a href=&quot;&lt;$MTEntryPermalink$&gt;&quot;&gt;&lt;$MTEntryTitle$&gt;&lt;&#47;a&gt;&lt;&#47;h3&gt;<br />
 &lt;p&gt;&lt;$MTEntryExcerpt$&gt; &lt;$MTEntryEditLink$&gt;&lt;&#47;p&gt;</p>

<p>&lt;&#47;MTSearchResults&gt;</p>

<p>&lt;&#47;MTIfTagSearch&gt;</p>

<p>&lt;MTBlogResultFooter&gt;<br />
&lt;&#47;div&gt;<br />
&lt;&#47;MTBlogResultFooter&gt;<br />
</div></p>

<p>You may want to put a list of related tags in the side bar of the search results template.  My sidebar related tags code (see <a href="http://www.learningmovabletype.com/archives/001579related_tags.php">Related Tags</a>) uses the  <a href="http://code.as-is.net/wiki/TagSupplementals_Plugin">Tags Supplementals plugin</a> and looks like this:</p>

<div class="message">

<p>&lt;li&gt;<br />
&lt;b&gt;Other Tags Related to &quot;&lt;$MTSearchString$&gt;&quot;&lt;&#47;b&gt;&lt;br&#47;&gt;&lt;br &#47;&gt;<br />
&lt;&#47;li&gt;<br />
                     <br />
&lt;MTIfTagSearch&gt;  </p>

<p>  &lt;MTSearchTags&gt;<br />
  <br />
      &lt;MTRelatedTags&gt;<br />
      &lt;li&gt;&lt;a href=&quot;&#47;tag&#47;&lt;$MTTagName encode_url=&quot;1&quot;$&gt;&quot; rel=&quot;tag&quot;&gt;&lt;$MTTagName&gt;&lt;&#47;a&gt;&lt;&#47;li&gt;<br />
      &lt;&#47;MTRelatedTags&gt;</p>

<p>  &lt;&#47;MTSearchTags&gt;</p>

<p>&lt;&#47;MTIfTagSearch&gt;  <br />
</div><br />
</li><br />
<li><b>Create an index of all of your tags</b>.</p>

<p>Create a new index template.  Set the template to rebuild automatically.  Copy and paste everything from your main index into the new template.  Delete everything in the middle section of the template that has to do with entries (everything between and including the <code>MTEntries</code> opening and closing tags).  In its place put the following code:</p>

<p></p>

<pre><code>
&lt;h3 class=&quot;title&quot;&gt;Index&lt;&#47;h3&gt;                                                          
                             
 &lt;MTTags&gt;
&lt;li&gt;
&lt;a href=&quot;&lt;$MTCGIPath$&gt;mt-search.cgi?tag=&lt;$MTTagName$&gt;&amp;Template=the_name_of_your_tag_search_template&amp;blog_id=&lt;$MTBlogID$&gt;&quot;&gt;&lt;$MTTagName$&gt;&lt;&#47;a&gt; (&lt;$MTTagCount$&gt;)
 &lt;&#47;li&gt;
&lt;&#47;MTTags&gt;
</code></pre>

<p></li></p>

<p><li><b>Display tags in your entries</b>.</p>

<p>Within the <code>MTEntries</code> opening and closing tags on the Main Index and Archive templates, you can put the following code to list out the tags for the entry:</p>

<pre><code>
&lt;MTEntryIfTagged&gt;
Tagged&#58;  &lt;MTEntryTags glue=&quot;, &quot;&gt;
&lt;a href=&quot;&#47;path&#47;to&#47;MT&#47;mt-search.cgi?tag=&lt;$MTTagName$&gt;&amp;Template=the_name_of_your_tag_search_template&amp;blog_id=1&quot;&gt;&lt;$MTTagName$&gt;&lt;&#47;a&gt;
&lt;&#47;MTEntryTags&gt;
&lt;&#47;MTEntryIfTagged&gt;
</code></pre>

<p>Remember to swap out the path to your MT install, the tag search template, and the blog ID as in the previous step.</p>

<p></li></ol></p>

<p><em>Many thanks to <a href="http://triptronix.net/ishbadiddle/">Mike Everett-Lane</a> for the inspiration for this article.</em></p>

<p><b>Links:</b><br />
<a href="http://www.sixapart.com/movabletype/beta/2006/06/everybody_loves_tags.html">Everybody Loves Tags!</a><br />
</p>]]>
   </content>
</entry>

</feed>

