31 Mart 2013 Pazar

Related Posts Widget with Thumbnails and Summary for Blogger

There are several tutorials quite old in which I have shown different methods for displaying related posts in Blogger [1] [2] but in this tutorial, you will learn how to implement a really awesome Related Posts widget with Thumbnails and Posts Snippets that will appear in the footer of all your blog posts. If you want to get an idea of how it looks like, please visit this demo blog.

Now let's see how to add the related posts widget with thumbnails and summaries in a Blogger template:

Adding Related Posts Widget with Summaries to Blogger
related posts widget with thumbnails and summaries

Step 1. From your Blogger Dashboard, go to Template and click on Edit HTML


Step 2. Click anywhere inside the code area and then press CTRL + F to open the Blogger search box


Step 3. Type or paste this tag inside the search box and hit enter to find it:
</head>
After you found it, paste this script just above it:
<script type='text/javascript'>
//<![CDATA[
var relatedTitles = new Array();
var relatedUrls = new Array();
var relatedpSummary = new Array();
var relatedThumb = new Array();
var relatedTitlesNum = 0;
var relatedPostsNum = 4; // number of entries to be shown
var relatedmaxnum = 75; // the number of characters of summary
var relatednoimage = "https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgHbH0aSm5Y0Vg-tm3Gsbhhd-K_SNalsOwI18zOPkyzpAs8LPJuYnd8rnBUwhmvD9CwC3dMEOOlifAUdSH2sqEme0tc9e9JEtS9zy3l4fxG4hDDokRYnPyPuFMINMgxJzSsN3tLHObNbmb1/s1600/no_image.jpg"; // default picture for entries with no image
//]]>
</script>
<script src="http://helplogger.googlecode.com/svn/trunk/related-posts-with-thumbs-and-summaries.js" />
Note:  
    - To change the number of posts that are being displayed, modify the value in red (4)
    - To change the number of characters to be shown in posts summary, modify the value in green (75)
    - To change the default pic for posts with no images, add your URL instead of the one marked in blue

      Now that we added the script, we will need to add the style. Paste the following code above the same </head> tag:
      <style>
      .relatedsumposts {
          float: left;
          padding: 0px 10px;
          overflow: hidden;
          text-align: center;
        /* width and height of the related posts area */
          width: 120px;
          height: 200px;
          border-right: 1px solid #E5E5E5;
          display: inline-block;
      }

      .relatedsumposts:hover {
          background-color: #F7F7F7;
      }

      .relatedsumposts img:hover {
          -webkit-transform: rotate(360deg);
          -moz-transform: rotate(360deg);
          -o-transform: rotate(360deg);
      }

      .relatedsumposts a {
        /* link properties */
          color: #linkcolor;
          display: inline;
          font-size: 10px;
          line-height: 1;
      }

      .relatedsumposts img {
        /* thumbnail properties */
          margin-top: 2px;
          height: 82px;
          padding: 5px;
          width: 82px;
          border: 1px solid #fff;
          -webkit-border-radius: 100px;
          -moz-border-radius: 100px;
          border-radius: 100px;

          -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .4);
          -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, .4);
          box-shadow: 0 1px 2px rgba(0, 0, 0, .4);
          -webkit-transition-duration: 0.8s;
          -moz-transition-duration: 0.8s;
          -o-transition-duration: 0.8s;
          transition-duration: 0.8s;
          -webkit-transition-property: -webkit-transform;
          -moz-transition-property: -moz-transform;
          -o-transition-property: -o-transform;
          transition-property: transform;
          overflow: hidden;
      }

      .relatedsumposts h6 {
        /* title properties */
          display: table-cell;
          height: 3em;
          margin: 5px 0 0;
          overflow: hidden;
          padding-bottom: 2px;
          vertical-align: middle;
          width: 130px;
      }

      .relatedsumposts p {
        /* summary properties */
          border-top: 1px solid #E5E5E5;
          border-bottom: 1px solid #E5E5E5;
          color: #summarycolor;
          font-size: 10px;
          height: 4em;
          line-height: 1;
          margin: 5px 0 0;
          overflow: hidden;
          padding: 5px 0 15px 0;
          text-align: left;
      }

      #relatedpostssum {
          background: #F3F3F3;
          height: 200px; /* related posts container */
          padding: 5px;
          width: 100%;
      }

      .relatedpoststitle {
          font-size: 19px;
          font-weight: bold;
          border-top: 3px solid #FB8227;
          color: #777;
          display: inline-block;
          padding: 5px 10px;
          width: 190px;
          float: left;
          margin: 0px -200px 0px 20px;
          transform: rotate(90deg);
          transform-origin: left top 0;
          -ms-transform: rotate(90deg);
          -ms-transform-origin:left top 0;
          -webkit-transform: rotate(90deg);
          -webkit-transform-origin:left top 0; 
         font-family: Gill Sans / Gill Sans MT, sans-serif;
      }
      </style>
      Note:  
        - Modify the values in red to adjust the width (120) and height (210) of the widget area
        - Replace #linkcolor with the hex value of your color to change the color of post titles
        - If you want to change the size of thumbnails, modify the values marked in violet (82)
        - To determine the border roundness, modify the values in orange (100)
        - To change the color of the post snippet, change #summarycolor with color hex value
        - In case you add more that 5 related posts, change the container height 200px to 400px

        2nd Note: If you have a dark background, you may want to add this style instead (see the screenshot):

        related posts widget with thumbnails and summaries
         <style>
        .relatedsumposts {
            float: left;
            padding: 0px 10px;
            overflow: hidden;
            text-align: center;
          /* width and height of the related posts area */
            width: 120px;
            height: 200px;
            border-right: 1px solid #0A0A0A;
            display: inline-block;
        }

        .relatedsumposts:hover {
            background-color: #0A0A0A;
        }

        .relatedsumposts img:hover {
            -webkit-transform: rotate(360deg);
            -moz-transform: rotate(360deg);
            -o-transform: rotate(360deg);
        }

        .relatedsumposts a {
          /* link properties */
            color: #linkcolor;
            display: inline;
            font-size: 10px;
            line-height: 1;
        }

        .relatedsumposts img {
          /* thumbnail properties */
            margin-top: 2px;
            height: 82px;
            padding: 5px;
            width: 82px;
            border: 1px solid #000;
        background:#282828;
            -webkit-border-radius: 100px;
            -moz-border-radius: 100px;
            border-radius: 100px;

            -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .4);
            -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, .4);
            box-shadow: 0 1px 2px rgba(0, 0, 0, .4);
            -webkit-transition-duration: 0.8s;
            -moz-transition-duration: 0.8s;
            -o-transition-duration: 0.8s;
            transition-duration: 0.8s;
            -webkit-transition-property: -webkit-transform;
            -moz-transition-property: -moz-transform;
            -o-transition-property: -o-transform;
            transition-property: transform;
            overflow: hidden;
        }

        .relatedsumposts h6 {
          /* title properties */
            display: table-cell;
            height: 3em;
            margin: 5px 0 0;
            overflow: hidden;
            padding-bottom: 2px;
            vertical-align: middle;
            width: 130px;
        }

        .relatedsumposts p {
          /* summary properties */
            border-top: 1px solid #0A0A0A;
            border-bottom: 1px solid #0A0A0A;
            color: #summarycolor;
            font-size: 10px;
            height: 4em;
            line-height: 1;
            margin: 5px 0 0;
            overflow: hidden;
            padding: 5px 0 15px 0;
            text-align: left;
        }

        #relatedpostssum {
            background: #121212;
            height: 200px; /* related posts container */
            padding: 5px;
            width: 100%;
        }

        .relatedpoststitle {
            font-size: 19px;
            font-weight: bold;
            border-top: 3px solid #FB8227;
            color: #ccc;
            display: inline-block;
            padding: 5px 10px;
            width: 190px;
            float: left;
            margin: 0px -200px 0px 20px;
            transform: rotate(90deg);
            transform-origin: left top 0;
            -ms-transform: rotate(90deg);
            -ms-transform-origin:left top 0;
            -webkit-transform: rotate(90deg);
            -webkit-transform-origin:left top 0;
           font-family: Gill Sans / Gill Sans MT, sans-serif;
        }
        </style>
        Step 4. Next, search (CTRL + F) for the following code snippet:
        <a expr:href='data:label.url' rel='tag'><data:label.name/></a><b:if cond='data:label.isLast != &quot;true&quot;'>,</b:if>
        And after you found it, add this script just below it:
        <b:if cond='data:blog.pageType == &quot;item&quot;'>
            <script expr:src='&quot;/feeds/posts/default/-/&quot; + data:label.name + &quot;?alt=json-in-script&amp;callback=readpostlabels&amp;max-results=50&quot;' type='text/javascript'/>
          </b:if>
        The entire fragment should look like this:
                  <b:loop values='data:post.labels' var='label'>
                    <a expr:href='data:label.url' rel='tag'><data:label.name/></a><b:if cond='data:label.isLast != &quot;true&quot;'>,</b:if>
        <b:if cond='data:blog.pageType == &quot;item&quot;'>
            <script expr:src='&quot;/feeds/posts/default/-/&quot; + data:label.name + &quot;?alt=json-in-script&amp;callback=readpostlabels&amp;max-results=50&quot;' type='text/javascript'/>
          </b:if>

                  </b:loop>
        Step 5. Finally, find this fragment of code:
        </b:includable>
        <b:includable id='postQuickEdit' var='post'>
        Note: search only the line in red and after you find it, you should see the </b:includable> tag above it

        ! Click on the sideways arrow to expand the code, then scroll down until you reach to the highlighted line !

        Just ABOVE the </b:includable> tag, add the following code:
        <b:if cond='data:blog.pageType == &quot;item&quot;'>
          <div class='post-footer-line post-footer-line-4'>
           <div class='relatedpoststitle'>RELATED POSTS</div>
        <div id='relatedpostssum'>
              <script type='text/javascript'>showrelated();</script>
            </div>
            <div style='clear:both;'/>
          </div>
        </b:if>
        Screenshot

        Step 6. Click on the Save Template button to save the changes and you're done!

        Note: in case you see the 'undefined' message, make sure that you have added the appropriate labels to your posts - which can be found in at least one more post, otherwise the script may not be able to find any related posts for that entry.

        Hollywood Halloween 2012

        Half Written by Maree Shogren

        We went to Los Angeles for Halloween this year. Maree is a huge Halloween freak and I like it too so we went to visit my friend Jimmy Gordon. We had a great time. LA is a fun place when you have someone who knows where all the cool stuff is.

        We went to Griffith Park Observatory, which was a lot cooler than I expected, with great views of the city and some nice trail hiking.
        Views from the Observatory.
        We just happened to be there the weekend of Son of Monsterpalooza, a kind of trade show/exhibition for people in the special effects industry. It was really cool and really gross at times too. Maree got some nifty demon toys.
         This guy was totally fake.
        The baby didn't wake up.
        I was able to see the creator.

        There were a lot of good effects artists that made things like this.

        We went to Halloween Horror Nights at Universal Studios. They take the whole park and turn it into a bunch of haunted houses with different themes. One of them goes through the sets from the 'Psycho' and 'War of the Worlds' and there are zombies everywhere threatening to come after you. At one point there was a zombie with his guts hanging out and we got squirted with some sort of liquid. Nice ick factor. Maree was scared to death during most of it but it made for great entertainment for Jimmy and his friends.
        The Bates House
        Texas Chainsaw Massacre
        La Llorena
         Silent Hill
        We also made a trip to the La Brea Tar Pits. It was pretty neat. I thought we would have to drive off somewhere but it is weirdly in the middle of the city. The tar pits are all over the place, and still very active.
         Fun to fly through.
        This is a sculpture area of hanging rubber tubing like you would use for a needle.
        I need to find one of these.
        This is an large abandoned neighborhood project by the beach.
        Some cool scenery from the initial plane flight on the way back.
        You can see wind farms under the clouds on the right.