« Windows Vista 動作チェック - Lhaca+ 編〜インストールに失敗する場合の対処が見えた! | メイン | 知らない間に microsoft.com 以外のサーバへアクセスさせている »
2006年08月07日
[ Movable Type ] 月別アーカイブのドロップダウン化
月別アーカイブのドロップダウン方法を調べて,ちょっとした細工を加えて "うふふo(^-^)o" に適用しました.
このページを参考に しました.なお,オリジナルはこれ だと思います.
さて,このオリジナルもあいかわさまも,JavaScript をページに直接書いているのでヘッダが汚くなってしまいます.これは良くない,ということでいつものごとく,JavaScript は別ファイルにして,それを読み込む形に変更しました.
要は,必要なスクリプト(この場合は下記の部分)を,ファイルに保存します.
function MM_jumpMenu(targ,selObj,restore){ //v3.0
eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
if (restore) selObj.selectedIndex=0;
}
わたしは mt.js と保存しました.もちろん,今後別の Script を作ったときは,ここに追記することができます.MT から呼び出す関数は,ここに集約しようと思うので,今回は mt.js という名前にしました.これを適当なディレクトリ(わたしは絶対パスで /js/mt.js となる位置)に ASCII モードでアップロードします.
次に,今まで追加していた JavaScript のソースのかわりに
<script type="text/javascript" src="/js/mt.js" ></script>
を追加します.本当は
<script type="text/javascript" src="/js/mt.js" />
としたいのですが,MT 3.171-ja の不具合なのか,XREA サーバ上の問題なのか,原因はわかりませんが,デザインが崩れてしまったので,仕方なく HTML 4.01 の書き方にしました.もし XHTML 1.x の記法でできた方がいらしたら,コメントいただけると幸いです.
あとは,インデックスページのテンプレートで,リスト形式表示するように指定している箇所をさがし,下記の通り変更・保存・再構築するだけです.
<form name="pulldown_monthlyarchives">
<select name="menu" onChange="MM_jumpMenu('parent',this,0)">
<option selected> 月別記事の一覧 </option>
<MTArchiveList archive_type="Monthly">
<option value="<$MTArchiveLink$>"><$MTArchiveTitle$>
</MTArchiveList>
</select>
</form>
JavaScript を HTML ファイルに直接書くのは,見栄えが良くないし,読み込むコードが増えるだけ(パケット料金がムダになる)ですから,別ファイルに保存しましょう.
はぁ.久しぶりに MT のインデックスページを変えたぞ〜.
投稿者 kanemiki : 2006年08月07日 18:20
トラックバック
このエントリーのトラックバックURL:
https://ss1.xrea.com/www.kanemiki.net/MT/mt-tb.cgi/371
コメント
よろしければコメントなどを...
サイン・インを確認しました、 . さん。コメントしてください。 (サイン・アウト)
(いままで、ここでコメントしたとがないときは、コメントを表示する前にこのウェブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)