Published on Nyanchew's Digital Life (https://nyanchew.com)

Home > Drupal > はてなスターを入れてみた

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

  • Add new comment [1]

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

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

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

ただ、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>
drupal [3]
Creative Commons License -- Search this site -- -- Privacy Policy --
  • English
  • 日本語

Source URL: https://nyanchew.com/?q=en/hatenastar

Links
[1] https://nyanchew.com/?q=en/comment/reply/39#comment-form
[2] http://d.hatena.ne.jp/hatenastar/20070707
[3] https://nyanchew.com/?q=en/category/digital-life-j/drupal