Singpolyma

Technical Blog

Archive for the "Tech" Category

Comment Forms and Blogger BETA

Posted on

Blogger now has an inline comment form that is native: http://buzz.blogger.com/2008/10/commenting-made-easier.html

Update 2007-02-08 : Contrary to a bit of a misunderstanding this hack DOES work with the new Blogger out of beta. If you can’t find the code try checking the ‘Expand Widget Templates’ checkbox. I have added a bugfix for the redirection bug some were experiencing.

The old inline comment form is dead to Blogger BETA (or, should I say, the new Blogger). Deader than ever, the form now does absolutely nothing.

Have no fear — there is good news!

Since we must use Blogger’s ugly comment page in some form (because of their new security token system), I wanted to include this in our pages somehow. I thought of making it inline, but discarded this idea because it would look rather dumb (since we can’t style that page) and would be displaying comments twice on the page, etc.

Enter lightbox. The following hack gives you a nice, integrated comment form that still appears somewhat separated (so visitors know you didn’t create that ugliness!). Visitors can close the ‘popup’ without commenting, but if they comment it will close and reload the page automatically. (See a demo on my test blog, but I can’t guarantee it will be there forever. My test blog is for testing and is therefore unpredictable.)

To install the hack, follow these steps:

  1. Go to the ‘Template’ tab and select ‘Edit HTML’.
  2. Check the ‘Expand Widget Templates’ box.
  3. Add this code right before your </head> tag (if you have my calendar hack, or any other Lightbox Gone Wild for Blogger hack, installed, this step in unnecessary):

    <script src='http://jscripts.ning.com/get.php?xn_auth=no&id=1093361' type='text/javascript'/>
    <script src='http://jscripts.ning.com/get.php?xn_auth=no&id=2655847' type='text/javascript'/>
    <link href='http://singpolyma.googlepages.com/lightbox.css' rel='stylesheet' type='text/css'/>
  4. Find this code:

    <a expr:href='data:post.addCommentUrl' expr:onclick='data:post.addCommentOnclick'><data:postCommentMsg/></a>

    and replace it with this:

    <a class='lbOn' expr:href='"#comment-form-" + data:post.id'><data:postCommentMsg/></a>
  5. If you do not use peek-a-boo comments or have a footer link pointing to the inline comments section (if you don’t know, you don’t) then find this code:

    <b:if cond='data:post.allowComments'>
    <a class='comment-link' expr:href='data:post.addCommentUrl' expr:onclick='data:post.addCommentOnclick'><b:if cond='data:post.numComments == 1'>1 <data:top.commentLabel/><b:else/><data:post.numComments/> <data:top.commentLabelPlural/></b:if></a>
    </b:if>

    and replace it with this:

    <b:if cond='data:post.allowComments'>
    <a class='comment-link lbOn' expr:href='"#comment-form-" + data:post.id'><b:if cond='data:post.numComments == 1'>1 <data:top.commentLabel/><b:else/><data:post.numComments/> <data:top.commentLabelPlural/></b:if></a>
    </b:if>
  6. Find this code:

    <b:loop values='data:posts' var='post'>
    <b:if cond='data:post.dateHeader'>
    <h2 class='date-header'><data:post.dateHeader/></h2>
    </b:if>

    And directly after it put this code:

    <script type='text/javascript'>
    var isLoad<data:post.id = 0;
    function checkDeactivate<data:post.id {
    if(isLoad<data:post.id > 1) {
    //<![CDATA[
    document.getElementById('lbContent').innerHTML = '<div style="text-align:center;width:100%;font-size:16pt;font-family:sans-serif;"><br /><br /><br />Reloading...</div>';
    //]]>
    window.location.reload();
    }//end if isLoad
    isLoad<data:post.id;++;
    }//end function checkDeactivate
    </script>
    <div expr:id='"comment-form-" + data:post.id' style='display:none;'>
    &amp;lt;iframe onload=&quot;checkDeactivate<data:post.id src=&quot;<data:post.addCommentUrl/>&amp;amp;isPopup=true#commentForm&quot; frameborder=&quot;0&quot; style=&quot;border-width:0px;width:100%;height:380px;&quot;&amp;gt;&amp;lt;/iframe&amp;gt;
    <div style='text-align: right;'><a class='lbAction' href='#' rel='deactivate'><img alt='' src='http://www.ning.com/xnstatic/icn/cross.gif' style='display: inline; width: 10px; height: 10px;'/> Close</a></div></div>
  7. Save your template

New(?) Splog Format

Posted on

I discovered a new-to-me Splog format today. See these search results? See the acne scar removal articles? These Splogs are rel=nofollow linking to me with my name in order to make their SPAM show up in other’s search results… that’s low…

Blogger Calendar

Posted on

If you don’t use del.icio.us and want more posts showing up in your calendar try appending ?max-results=999 to your feed URL. So it will look like:
http://yourblog.blogspot.com/feeds/posts/full?max-results=999

So you’re not satisfied with just an archive list? You’ve perhaps switched to BETA and even the hierarchal menu just isn’t cool enough? Well, you’ve come to the right place.

This hack allows you to generate a calendar of your posts for people to browse inline in your blog! This hack works with either Blogger Classic or Blogger BETA and, best of all, is one of my easiest hacks to install yet!

Just go to the setup page. Enter your feed URL (do NOT use a FeedBurner feed, it tends to mess things up) and your blog title. Click generate. Follow the instructions.

Now, if you use mine (click the calendar next to the archives box in my sidebar) you’ll note that I have posts in the calendar going all the way back to forever it seems. Your probably only has this month’s. Well, that is just one extra hack, but there’s a catch — you have to be one of those who posts all blog entries to del.icio.us (I know, the BETA people no longer have a GM for that, I’m working on it.)

Go to the full del.icio.us feed setup page (I won’t steal your password!), enter your del.icio.us username and password in the upper form. Click Go. Go back to the setup page. Enter your username (and optional anchor tag) in the lower form. Click Go. Use the contents of your address bar as your feed URL for the calendar instead of your normal feed.

A translation of this page exists. Not sure on the language of that page, but thought I’d give them a link.

Lightbox Gone Wild for Blogger

Posted on

Lightbox Gone Wild is a JavaScript tool used to overlay other pages on the current page using AJAX. It looks nice and is really user-friendly. One problem : we on Blogger cannot create a static HTML page on the same domain to be included via AJAX.

So I have modified the code slightly. My version will include snippets from your local page instead. Just include these lines in your <head> section:

<script type="text/javascript" src="http://jscripts.ning.com/get.php?xn_auth=no&id=1093361"></script>
<script type="text/javascript" src="http://jscripts.ning.com/get.php?xn_auth=no&id=2655847"></script>
<link rel="stylesheet" type="text/css" href="http://singpolyma.googlepages.com/lightbox.css" />

Then, insert the HTML you want to be displayed in the lightbox like so:

<div id="lightbox-id" style="display:none;">
HTML HERE
</div>

Make sure you have a link similar to this in the code to be inserted so that the lightbox can be closed again:

<a href="#" class="lbAction" rel="deactivate">Close</a>

Then, insert a link to open the lightbox, like so:

<a class="lbOn" href="#lightbox-id">Open Lightbox</a>

To see an example, click the calendar icon next to the archives in my sidebar.

Not sure why I’m linking to translations today. I usually don’t. They show up in the backlinks, and saying in English ‘here’s a translation’ doesn’t make loads of sense. They deserve a link though. A translation of this post.

BloggerBubble

Posted on

Andrés Santos wrote a nice hack for Blogger that used Websnapr to display pop-up thumbnails of links in your blog posts. Just install one line of code and you’re good to go.

Problem : It didn’t work with my Blogger template.

And so I did what I often do — hacked his hack! If his code won’t work for you, insert this code just before the </head> tag in your template instead:

<script src="http://jscripts.ning.com/get.php?xn_auth=no&id=2654582" type="text/javascript"></script>

This should work with most Blogger templates (write me if it won’t with yours and I’ll update it). Also, it will work with any hAtom-based template.

JScripts Entry

Tags: