2003年12月14日 (日)

条件指定エントリ一覧用 JavaScript ファイルの更新版

iblogPatcher 1.2.2に付属している ENTRIES_JS.plugin の活用例のファイルの中の JavaScript ファイルを更新版を作成した。この Blog のナビゲーションエリアのアーカイブ欄にあるようにカテゴリを指定できるようにした。
(2003 12/16).Mac メンバーでない方用の追記あり。

更新版は私の iDisk の Public フォルダーに置いてある。iDisk Utility で私(yuji_okamura)の Public フォルダーの iBlog/etc/ の下のファイル群がそれ。そこから js ファイルをコピーして、既存のものと置き換えて使用する。
---- .Mac メンバーでない方へ
iDisk の Public フォルダーとは、.Mac メンバーが自分の iDisk (インターネットストレージ) の中で一般に公開しているフォルダーのことです。このフォルダーを一つのボリュームとして自分の Mac や Windows XP に「マウント」することができ、ネットワーク越しのアクセスなので遅いという点を除けば普通のフォルダーのように扱えます。(私の場合書き込みは禁止しています)

マウントするには .Mac が非メンバーにも公開している iDisk Utility を利用するのが便利です。是非ダウンロードしてご利用下さい。私が公開しているファイルを全て見つけることができます。

.Mac Bugs に掲載しそびれてしまっていますが、私が使用している Mac OS X 10.2.8 上の iDisk Utility 1.0.0 はバグがあります。[システム環境]-[ネットワーク] で設定するプロキシの設定を無視します。このためプロキシサーバ経由でないと外部にアクセスできない LAN では使用できません。その場合、http://homepage.mac.com/yuji_okamura/.Public/ を下記の Public 上のパス名の前に付けてブラウザで取得してください。

Safari 1.0 においては JavaScript ファイルを取得しても何も表示しません。もし表示されたとしたら Safari が推定した文字コードとファイルの文字コード(この場合は Shift_JIS)が一致していないからです。これを合わせて下さい。そして、真っ白な Safari の画面で CTRL-クリックしてコンテキストメニューを出し [ページに名前を付けて保存] を行ってください。
----------------------------

カテゴリを選ぶためのセレクタは CommonLib.js に WriteCategorySelect という関数を追加してそれを利用して書き出す。この関数を追加した CommonLib.js とその英語版も私の Public フォルダーの iBlog/ の下に、CommonLib.js, CommonLib_en.js として置いておいた。

iBlog/etc/ の下の ValidateListEntryNoHalo.js は HaloScan を使用しない場合のフォーム入力チェッカー。iblogPatcher 1.2.2 には付属していなかった。使用方法は ValidateListEntry.js とまったく同じ。XHTML の script 要素で読み込んで、form 要素の onsubmit 属性でチェックを行わせる。(下記例を参照)

まとめると次のようになる。
更新ファイル一覧
Public 側 コピー先 用途
iBlog/etc/ListEntry.js ~/Library/Application Support/iblogPatcher/ エントリをリストアップする JavaScript
iBlog/etc/ListEntryNoHalo.js ~/Library/Application Support/iblogPatcher/ ListEntry.js の HaloScan なし版
iBlog/etc/ValidateListEntry.js ~/Library/Application Support/iblogPatcher/ 入力フォームの入力値検査
iBlog/etc/ValidateListEntryNoHalo.js ~/Library/Application Support/iblogPatcher/ ValidateListEntry.js の HaloScan なし版
iBlog/CommonLib.js ~/Library/Application Support/iBlog/JavaScript/ カスタマイズされた CommonLib.js
iBlog/CommonLib_en.js ~/Library/Application Support/iBlog/JavaScript/ CommonLib.js の英語版

これを利用するためには、例えばナビゲーションエディタで次のようにフォームを入れる。
HaloScan を使用している場合
<script type="text/javascript" src="<$BlogBaseURL$>ValidateListEntry.js"></script>
<form action="<$BlogBaseURL$>ListEntry.html" method="get" onsubmit="return ValidateListEntryForm(this);" target="_blank">
	<script type="text/javascript">WriteCategorySelect();</script> の中の<br />
	<input type="text" name="FromDate" value="2003/01/01" size="10" maxlength="10" /> から<br />
	<input type="text" name="ToDate" value="2100/01/01" size="10" maxlength="10" /> までの<br />
	<input type="text" name="NeedComment" value="1" size="2" maxlength="3" /> 個以上のコメントが付いた<br />
	記事の一覧を<input type="submit" value="表示する" />
</form>

HaloScan を使用してない場合
<script type="text/javascript" src="<$BlogBaseURL$>ValidateListEntryNoHalo.js"></script>
<form action="<$BlogBaseURL$>ListEntryNoHalo.html" method="get" onsubmit="return ValidateListEntryForm(this);" target="_blank">
	<script type="text/javascript">WriteCategorySelect();</script> の中の<br />
	<input type="text" name="FromDate" value="2003/01/01" size="10" maxlength="10" /> から<br />
	<input type="text" name="ToDate" value="2100/01/01" size="10" maxlength="10" /> までの<br />
	記事の一覧を<input type="submit" value="表示する" />
</form>

Posted: 16:26    | Comment | Trackback


以下、類似エントリです。