メニュー
ひとぅ
新しいもの好きな「ひとぅ」が2007年10月からガジェット製品や雑貨、面白いウェブサービスなどの情報を発信しています。お得な情報や役立つTIPSも人気です。
アーカイブ
カテゴリー

はてなスターを設置してみた

  • URLをコピーしました!

※当サイトではアフィリエイト広告を利用しています

【2008年1月14日追記】
adiaryVer1.44のパッチファイルで以下の問題が解決されています。
新しく対応をされる方は、公式サイトからパッチファイルをダウンロードされることをお勧めします。
公式サイトへ。「Ver1.44パッチ集」

adiaryはVer1.41から「はてなスター」に対応していますが、少し前に設置してみよう、と思って設定してみたのですが、スターは表示されるのですが、「無効なURIを受け取りました」とエラーが表示されうまく動きませんでした。
こちら側の設定ミスかな?と思ってしばらく放置していたのですが、改めてチャレンジしてみました。(Ver1.44にて)

しかし今回も「無効なURIを受け取りました」と表示されうまくいかない。
調べてみると、「はてなスターを設定しよう」という記事が参考になりました。
見出しタグ内に、2つ以上の<a>要素が入っている場合、このようなエラーが出るようです。

ページのソースを見てみると、
まずHEADの中でJavaScriptを呼び出してトークンも設定されています。
adairyでは見出しタグは<H2>なのでその辺を設定している見たいです。

<script type="text/javascript" src="http://s.hatena.ne.jp/js/HatenaStar.js"></script>
<script type="text/javascript">
Hatena.Star.Token = '90a034a67173392ed8e0d8511c13ca3bec91941e';
Hatena.Star.EntryLoader.headerTagAndClassName = ['h2', null];
</script>

では実際にスターが表示されるタイトル部を見てみると……

<h2 id="day85">
<a class="switch" href="javascript:change('diary', 's85');"><span class="open" id="s85a">▼</span></a>
<a class="date" href="/085"><span class="date">2007/12/29(土)</span></a>		<span class="title"><a href="/085">はてなスターを設置してみた</a></span></h2>

「▼」で本文の開閉をするためのJavascriptへのリンクが貼られています。
どうやらこれが原因のようです。

「diary.skel」内の「_main.html」(69行目付近)と「_main_onelog.html」(73行目付近)を開き該当部分を探します。
変更前(69行目付近)

<a class="switch" href="javascript:change('diary', 's<@t.pkey>');"><span class="<@body_sw>" id="s<@t.pkey>a">▼</span></a>

変更後

<span class="<@body_sw>" id="s<@t.pkey>a">▼</span>

ファイルを上書きし、「diary.user.skel」にアップロード。
ページを再読込してみると……
無事、はてなスターが動作いたしました!!
(副作用として本文の開閉が出来なくなりますが、私は使っていなかったので影響はありません。)

やれやれ。
確かいつからから本文を開閉する機能が付いたように思うのですが、その時から動作しなくなったのかな?
取りあえず、うまく動くようになり一安心。

…と、思ったら、もう一つ。
私は「記事タイトルに表示」で利用しているのですが、「記事の各見出しに表示」を選択した場合、スター自体が表示されないではありませんか!
adiaryの場合、「* ?」と見出しを書いた部分にスターが表示されるはず。(** や *** は表示されない)
なぜ?<H3>なら勝手にスターが表示されるはずでは?

仕方ないので、先ほどの2ファイルに強制的に<H3>を指定してやります。
「_main.html」(43行目付近)と「_main_onelog.html」(42行目付近)を開き該当部分を探します。
変更前

<script type="text/javascript" src="http://s.hatena.ne.jp/js/HatenaStar.js"></script>
<script type="text/javascript">
<@if(set.hatena_star_token, "	Hatena.Star.Token = '<@set.hatena_star_token>';\n")>
<@if(set.disp_hatena_star == 2, "	Hatena.Star.EntryLoader.headerTagAndClassName = ['h2', null];\n")>
</script>

変更後

<script type="text/javascript" src="http://s.hatena.ne.jp/js/HatenaStar.js"></script>
<script type="text/javascript">
<@if(set.hatena_star_token, "	Hatena.Star.Token = '<@set.hatena_star_token>';\n")>
<@if(set.disp_hatena_star == 2, "	Hatena.Star.EntryLoader.headerTagAndClassName = ['h2', null];\n")>
<@if(set.disp_hatena_star == 3, "	Hatena.Star.EntryLoader.headerTagAndClassName = ['h3', null];\n")>
</script>

上書きをして、「diary.user.skel」に上書きアップロード。

これで無事、見出しの場合でもスターが表示・動作するようになりました。
adiaryではこのような問題は一切報告されていないようですが、使っている方が少ないのかな?

上記の内容はITメモでも説明させていただきました。

この記事が気に入ったら
フォローしてね!

この記事をシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次