はてなスターを入れてみた

けっこう苦労したので、自分向けメモとして記録しておく。(はてなスターは今は外してあります)

以下のページに書いてあるように、基本的には、ヘッダに設定を書いて終わりである。

はてなスターをブログに設置するには

ただ、Drupal の場合(というかこのサイトのテーマの場合)、フロントページと個々のエントリページとで構造が異なるのがやっかいだった。

  • フロントページでは id=content というブロックの中に class=node というブロックが複数個並ぶ。はてなスターを付けたい場所は、class=nodeのブロックの中のh2で書いたタイトルの末尾である。
  • 個々のエントリページでは、id=content というブロックの中にh1でタイトルを書き、さらにclass=nodeというブロックの中に本文を書く。

最初は、両方のページに対応させるように、エントリノードの中身を複数個書いてみた。

ところが、フロントページにはh1が無く、個々のエントリページにはh2が無いため、このような書き方はうまく行かないようだ。(そのページにとって正しい記述が最初に書いてあればうまく行く)

結局、ページの構造を判断するための条件を見つけ出して、判定させることでうまく行った。

<script type="text/javascript" src="http://s.hatena.ne.jp/js/HatenaStar.js"></script>
<script type="text/javascript">
  Hatena.Star.SiteConfig = {
    entryNodes: {
    <?php if ($title): ?>
      'div#content-inner': {
        uri: 'window.location',
        title: 'h1.title',
        container: 'h1.title'
      }
    <?php else: ?>
      'div.node-inner': { 
        uri: 'h2.title a',
        title: 'h2.title',   
        container: 'h2.title'
      }
    <?php endif; ?>
    }  
  }; 
</script>
PAGE TOP