| Q and A 2 |
| HARM・AERI に関するよくある質問 その2。 |
| JSログ機能はどう使う? |
|
HARM 4.3/AERI 1.9 から、ログデータの一部(新着からいくつか)をJSファイルにも書き出せるようになりました。 これによって、JavaScriptを使っていろいろなことができます。 たとえば、 # 登録/投稿した際の新着表示。 # 最終更新日時を知らせる。 # 登録した最新イラストを自動でTOP絵に。 # 登録してあるイラストの中からランダムでTOP絵に。 主に新着情報ですね。(笑) JSファイルさえ読み込めば、ギャラリーページだけじゃなく、INDEXや更新履歴などのページにも自動で書き出されるのが強みだと思います。 それではJSソースの書きかたを説明していきましょう。 >基本 src="$dir/harm_n.js" のところですが、 AERI なら src="$dir/aeri_n.js" にしてください。 「$dir」 は harm/ までのURLだと思ってください。 <script type="text/javascript" language="javascript" src=" $dir/harm_n.js"></script> <script type="text/javascript" language="javascript"><!-- var aend = aeri.length; /*配列の長さ*/ /*aend回 繰り返し*/ for(i=0;i<aend;i++){ var xaeri = aeri[i].split("<>"); /*要素に分割*/ /* スクリプトをここにいろいろ */ } // --></script> 分割した 配列「xaeri」の要素ですが、次のようなデータで分割されます。(HARM,AERI共通) xaeri[0] = no, 登録NO xaeri[1] = name, 作者の名前 (AERI) xaeri[2] = mail, 作者のメール (AERI) xaeri[3] = site, 作者のサイト (AERI) xaeri[4] = hp, 作者のHP (AERI) xaeri[5] = bana, 作者のバナー (AERI) xaeri[6] = iurl, 作品の画像等のファイル名 xaeri[7] = ihtm, 作品のHTMLファイル名 xaeri[8] = iico, 作品のアイコンファイル名 xaeri[9] = wid, 画像の幅 xaeri[10] = hei, 画像の高さ xaeri[11] = maint, 作品のタイトル xaeri[12] = subt, 作品のサブタイトル xaeri[13] = jkey, 作品のジャンルキー xaeri[14] = size, 画像等のサイズ xaeri[15] = date, 登録日時 xaeri[16] = time, 登録時間 それでは次から具体的なソースの例を紹介していきます。 |
| JS機能で、登録/投稿した際の新着表示する |
|
下を参考にしてください。 最低変えなきゃいけないところは、「設置フォルダのURL」と「ジャンル」です。 <script type="text/javascript" language="javascript" src=" $dir/harm_n.js"></script> <script type="text/javascript" language="javascript"><!-- var base = '$dir'; /*設置フォルダのURL*/ var jkeys = new Array('','イラスト','おえび','小説','漫画','その他'); /*ジャンルID 0,1,2,3,4,5,*/ var aend = aeri.length; /*配列の長さ*/ for(i=0;i<aend;i++){ var xaeri = aeri[i].split("<>"); /*要素に分割*/ // ↓アイコンを使う場合。 行頭の // をとる。 /*作品のアイコンとリンク*/ // document.write('<a href="'+ base + xaeri[7] + '"><img src="' + base + xaeri[8] + '" border=0 alt="' + xaeri[11] + '"></a> '); /*作品タイトルとリンク*/ document.write('「<a href="'+ base + xaeri[7] + '">' + xaeri[11] + '</a>」 '); /*ジャンルへのリンク*/ document.write('\@<a href="' + base + 'menu/menu' + xaeri[13] + '_1\.htm" target="menu">' + jkeys[(xaeri[13])] + '</a> '); /*作者*/ document.write(' by <a '); if(xaeri[4]){ document.write('href="http:\/\/' + xaeri[4] + '" '); } /*作者URL*/ document.write('title="' + xaeri[3] + '">' + xaeri[1] + '</a>'); /*日付*/ document.write(' .. date: ' + xaeri[15]); /*改行*/ document.write('<br>¥n'); } // --></script> ※ ↑ではジャンルIDは数字じゃないといけませんが。 a,b,c,..なら if文を使えばなんとかできそうです。 出力結果は次のようになります。↓ 「春はあけぼの」 @小説 by かの .. date: 2003/05/01-21:58 「犬vs狼」 @漫画 by かの .. date: 2003/04/20-23:33 「君たちがくれた絆」 @漫画 by 時苗乃唯様 .. date: 2003/04/20-23:25 「夜空に咲く光」 @イラスト by かの .. date: 2003/04/20-23:11 「首輪・・・( ´∀`)」 @おえび by 馬 .. date: 2003/04/20-01:51 |
| ギャラリーの最終更新日時を知らせる |
|
<script type="text/javascript" language="javascript" src=" $dir/harm_n.js"></script> <script type="text/javascript" language="javascript"><!-- var xaeri = aeri[0].split("<>"); document.write('更新日:' + xaeri[15] + '<br>¥n'); // --></script> |
| 登録した最新イラストを自動でTOP絵に。 |
|
TOP絵になるのはジャンルIDが1か2のときのみとします。 <script type="text/javascript" language="javascript" src=" $dir/harm_n.js"></script> <script type="text/javascript" language="javascript"><!-- var base = '$dir/'; /*設置フォルダのURL*/ var aend = aeri.length; for(i=0;i<aend;i++){ var xaeri = aeri[i].split("<>"); if(xaeri[13] == 1 || xaeri[13] == 2){ /*ジャンルIDが 1 か 2 のときのみ*/ var dir = ''; if(xaeri[6].indexOf("tp:\/\/") < 1){ dir = base; } document.write('<style type="text\/css"><!--¥n body { background-image:url('); document.write(dir + xaeri[6] + '); }¥n--></style>'); break; } } // --></script> |
| 登録してあるイラストの中からランダムでTOP絵に。 |
|
TOP絵になるのはジャンルIDが1か2のときのみとします。 <script type="text/javascript" language="javascript" src="$dir/harm_n.js"></script> <script type="text/javascript" language="javascript"><!-- var base = '$dir/'; /*設置フォルダのURL*/ var j=0; var nos = new Array(); var aend = aeri.length; for(i=0;i<aend;i++){ var xaeri = aeri[i].split("<>"); if(xaeri[13] == 1 || xaeri[13] == 2){ /*ジャンルIDが 1 か 2 のときのみ*/ nos[j] = i; j++; } } var kazu = nos.length; var ran = Math.floor(Math.random()*kazu); xaeri = aeri[(nos[ran])].split("<>"); var dir = ''; if(xaeri[6].indexOf("tp:\/\/") < 1){ dir = base; } document.write('<style type="text\/css"><!--¥n body { background-image:url('); document.write(dir + xaeri[6] + '); }¥n--></style>'); // --></script> |
| (投稿日: 2003/05/15-17:39) [106] |