MediaWikiの不審な挙動について。

http://q.hatena.ne.jp/1170718014で教えていただいたとおり、skins/MonoBook.phpをいじってみたのですが、はてなブックマークの挙動がどうもうまくありません。

当方WinXPですが、FirefoxあるいはSleipnirのGeckoモードで閲覧すると問題なく稼働しており、「ブックマークに登録する」も「このページのブックマークコメント数」もきちんと表示されます。

ところが、IE6あるいはSleipnirのtridentモードで閲覧すると、行き先が狂ってしまい、被ブクマ数画像も「ブックマークされていない」と認識されて表示されません。「ブックマークに登録」ボタンを押すと、「http://b.hatena.ne.jp/entry/http://www.kotono8.com/wiki/index.php?title=メインページ」に飛んでしまい、本来飛ぶべき「http://b.hatena.ne.jp/entry/http://www.kotono8.com/wiki/index.php?title=%E3%83%A1%E3%82%A4%E3%83%B3%E3%83%9A%E3%83%BC%E3%82%B8」に行きません。ブックマークしようとすると文字化けしています。
IEで同じページを表示させてブックマークレットでブックマークするならばきちんとブックマークできます。

おそらく、文字をきちんとコード化してリンクできればいいと思うのですが、やり方がわかれば教えてください。

実サイト:http://www.kotono8.com/wiki/

回答の条件
  • 1人2回まで
  • 登録:2007/02/13 13:28:16
  • 終了:2007/02/14 00:08:03

ベストアンサー

id:courant No.1

courant回答回数6ベストアンサー獲得回数32007/02/13 19:07:28

ポイント100pt

前回の質問で回答させて頂いた者です。返信が遅くなり申し訳ございませんでした。前回以外に方法は以下の2つあります。

1 JavaScriptのlocation.href

2 サーバ変数の$_SERVER['REQUEST_URI']もしくは$_SERVER['PHP_SELF']


1 JavaScriptのlocation.href

こちらはそのままコードを貼るだけで動作を確認できるので手軽です。円記号は特殊文字のエスケープ、プラス記号は文字列の加算演算子です。

被ブックマーク数を表示する

<script type="text/javascript"><!--
document.write("<img src=\"http://b.hatena.ne.jp/entry/image/"+location.href+"\">");
// --></script>

「このエントリーを含むはてなブックマーク」ボタンを表示させる

<script type="text/javascript"><!--
document.write("<a href=\"http://b.hatena.ne.jp/entry/"+location.href+"\"><img src\=\"http://d.hatena.ne.jp/images/b_entry.gif\" width\=\"16\" height\=\"12\" style\=\"border: none;\" alt\=\"このエントリーを含むはてなブックマーク\" title\=\"このエントリーを含むはてなブックマーク\" /></a>")
// --></script>

2 サーバ変数の$_SERVER['REQUEST_URI']もしくは$_SERVER['PHP_SELF']

こちらは下調べが必要です。

<?php print htmlspecialchars($_SERVER['REQUEST_URI']); ?> <br />
<?php print htmlspecialchars($_SERVER['PHP_SELF']); ?>

のコードをスキンに貼って、ブラウザで表示させたときに日本語部分がエンコードされる方を使用します。htmlspecialcharsは特殊文字をHTMLエンティティに変換する関数でセキュリティ対策のために使用しています。$_SERVER['REQUEST_URI']を使用できる場合のコードサンプルは下記の通りです。wikiがドメインsample.com以下にインストールされているとします。

被ブックマーク数を表示する

<a href="http://b.hatena.ne.jp/entry/http://sample.com<?php print htmlspecialchars($_SERVER['REQUEST_URI']);?>">
<img src="http://b.hatena.ne.jp/entry/image/http://sample.com<?php print htmlspecialchars($_SERVER['REQUEST_URI']);?>">
</a>

「このエントリーを含むはてなブックマーク」ボタンを表示させる

<a href="http://b.hatena.ne.jp/entry/http://sample.com<?php print htmlspecialchars($_SERVER['REQUEST_URI']);?>">
<img src="http://d.hatena.ne.jp/images/b_entry.gif" width="16" height="12" style="border: none;" alt="このエントリーを含むはてなブックマーク" title="このエントリーを含むはてなブックマーク" />
</a>
id:matsunaga

ありがとうございます!

$_SERVER['REQUEST_URI']で完璧にいけました。ヽ( ´∇`)ノ万歳

というか、MediaWikiの話のときにいつも答えていただいて助かってます。MediaWikiは(稼働さえすれば)最強wikiのように思います(特にカテゴリーの仕組みが)。これを使うといろいろやれることも多いんじゃないかと思いますね。

前回は自動終了してしまっているかを差し上げられなかったので、今回受け取ってください。

2007/02/14 00:07:33

コメントはまだありません

この質問への反応(ブックマークコメント)

トラックバック

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません