iBlog1.3.7B1対応その2。前後のエントリへのリンク対応
←前のエントリ |  ↑↑Blog |  ↑Category |  ↓Comment |  ↓Trackback |  次のエントリ→

iBlog1.3.7B1 対応その2。前後のエントリへのリンク対応


結構面倒でした。

t0moriさんのエントリ で紹介されている新機能の前後のエントリへの対応をしてみました。

ただし、t0moriさんとは違う方法となっております。
というのは、

1)今回のバージョンの変更で私んところはUTF-8になった。
2)CommonLib.js はShiftJISでないとうまく機能しないみたい。
3)上記2点の組み合わせから、CommonLib.js上に日本語で「前のエントリ」とか書けない。書くと文字化け。

#実験から推測するにこうなんだろうなぁ、ということで書いてます。全然自信ないです。

ということで、日本語はテンプレートに書いて、リンクをCommonLib.jsで作成するようにしました。
以下、その手順。
#この辺は仕組みが今ひとつ分かっていないので、かなりバタ臭いことをしてます。
#もっとスマートな方法があると思います。

OKAMURAさんのiblogPatcher に付属していたCommonLib.jsの先頭に以下を追記。

var entryUUIDsList = <$EntryUUIDs$>;

// by kuki
// start ---
function getPreviousEntryLinkStart(entryUUID) {   
	var i;
	var entryUUID;
	var categoryUUID;
	
    for(i = 0; i < entryUUIDsList.length -1; i++) {
        if(entryUUIDsList[i] == entryUUID) {
			entryUUID = entryUUIDsList[i+1];
			categoryUUID = getCategoryUUIDForEntry(entryUUID);
            		document.write('<a href=”../../' + categoryUUID + '/' + entryUUID + '/index.html”>');
			return;
        }
    }
	
    document.write('');
}

function getNextEntryLinkStart(entryUUID) {   
	var i;
	var entryUUID;
	var categoryUUID;
	
    for(i = 1; i < entryUUIDsList.length; i++) {
        if(entryUUIDsList[i] == entryUUID) {
			entryUUID = entryUUIDsList[i-1];
			categoryUUID = getCategoryUUIDForEntry(entryUUID);
            		document.write('<a href=”../../' + categoryUUID + '/' + entryUUID + '/index.html”>');
			return;
        }
    }
	
    document.write('');
}

function getLinkEnd() {   
	document.write('</a>');
}
// end ---
// by kuki

#例によって「<>」は全角にしております。また、ここだけ半角ダブルクォートは、「”(全角で66ではなくて99の方)」にしております。それぞれ実際は半角ですのでご注意ください。

ここで作った関数はiBlog1.3.7で加えられた関数と名前の感じが逆になっています。
こっちのが個人的にしっくりくるからです。

次にテンプレートファイルのEntryPage.txtに以下を追加します。

<div align="center" class="comitem">
	<script language="JavaScript1.2" type="text/javascript">
getPreviousEntryLinkStart("<$EntryUUID$>"); </script>←前のエントリ
	<script language="JavaScript1.2" type="text/javascript"> getLinkEnd(); </script> | 
	<script language="JavaScript1.2" type="text/javascript"> getNextEntryLinkStart ("<$EntryUUID$>"); </script>次のエントリ→
	<script language="JavaScript1.2" type="text/javascript"> getLinkEnd (); </script>
</div>

#例によって「<>」は全角にしております。ダブルクォートは半角のまま。
私はt0moriさんのまねっこをさせてもらって、タイトル(<h3 class="title" ...)の上に置いてます。

( ・∀・)つ〃∩ ヘェーヘェーヘェー">
投稿時間: 2004年05月22日 (土) at 23:20   

←前  |  ↑↑Blog |  ↑Category |  ↑Entry top |  ↑Comment |  次→

ブックオフオンライン

←前  |  ↑↑Blog |  ↑Category |  ↑Entry top |  ↑Comment |  次→