< back  +

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,   登録時間


それでは次から具体的なソースの例を紹介していきます。
(2003/05/15-13:40) [106-7] [削除]


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

(2003/05/15-14:09) [106-8] [削除]


ギャラリーの最終更新日時を知らせる
<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>
(2003/05/15-15:20) [106-9] [削除]


登録した最新イラストを自動で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>
(2003/05/15-15:28) [106-10] [削除]


登録してあるイラストの中からランダムで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-16:27) [106-11] [削除]


< back  +top+

(投稿日: 2003/05/15-17:39) [106]

Q and A *aeri +2.22 © s*m