人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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/

●質問者: 松永英明@ことのは
●カテゴリ:インターネット ウェブ制作
✍キーワード:firefox Gecko IE IE6 MediaWiki
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● courant
●100ポイント ベストアンサー

前回の質問で回答させて頂いた者です。返信が遅くなり申し訳ございませんでした。前回以外に方法は以下の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>
◎質問者からの返答

ありがとうございます!

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

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

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

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ