けっこう苦労したので、自分向けメモとして記録しておく。(はてなスターは今は外してあります)
以下のページに書いてあるように、基本的には、ヘッダに設定を書いて終わりである。
ただ、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>
