Snow-Materia > Relm & Jinny > 機能と設定


Page Guide
Anchor
はじめに
多機能についての言い訳。
簡単に機能紹介
どんな機能があるかを簡単に羅列します。
スキンシステム
スキンというものについて。
HTML,JS書き出し
HTMLやJSに書き出す機能について。
プレビュ―, 各種レス
プレビューと各種レス機能について。
ログのシステム
ログの管理システムについて。
お絵描きその1
お絵描きしたものを表示するときの機能について。
お絵描きその2
実際にお絵描きするときの機能について。
アイコン,その他
アイコンや、その他の細々した機能について。
ミニマムモード
携帯・モバイル用モードの機能について。

Preamble

このページでは、 Relmの機能を紹介しています。


Contents

はじめに

お絵描き掲示板。ひとことに「お絵描き掲示板」といってもいろいろ、たくさんあります。BBSNoteさんらくがき広場さんCyclamenBBSさんPalletTownさん、…日記ではnicky!さんとか、使ってる人が増えてきましたね。

では、何でいま新しくお絵描き掲示板CGIを作ったのか。必要なのか?

いいえ、普通に使う分には十分、いえ、充分すぎると思います。どれもいいところがいっぱいあって、個性もさまざまです。何も、問題は、ない。

でも、何ていうか、自分のしたいようなのができないことが多かったんです。モジュールとか、ライブラリとか作って使おうとはしてたのですが、人様の作ったものなので、考えてもわからないところもあるし、CGIスクリプトも注釈ないと何やってるかわかりづらいし、何よりバージョンアップがめんど……げふげふ。

だったら、だったら自分で一から作ればいい、と思い立ち、作リ始めたのが、お絵描き掲示板"Relm"なわけです。

でも、ただそれだけじゃ生ぬるい、どうせ作るなら、いままで思い立った機能、こんなのがあったらいいな、って思ってた機能全部詰め込んじゃえ☆、と、作ったのがこれなんです。

でも、…って作ったのはいいんですが、それはいいんですが、逐一増やしていったら、最終的にめちゃめちゃ多くなってしまってwいろいろできるはいいのですが、設定みると大変だな~って思います。自分でも。

なので、一から十まで理解してくれ、なんていいません。むしろやんなくていいです。(笑)自分の使いたいとこだけ、使いたくないところだけ、理解して、自分好みに設定を変えていってください。それで充分、普通に快適に使えるはずなので。

で、こだわりたくなってきたら、一歩ずつ、中に踏み込んでいってください。設定にしても、デザインにしても、CGI部分はほとんどいじらないので、いじってたらCGIが壊れた、サーバ落としちゃった!なんてことはまずないので、慣れたら軽い気持ちで付き合えるはずです。

それでは、長々でしたが、いいわけは終わり。とりあえず、恐がらずに、楽しんでいじってってくれれば幸いです。


機能紹介

どんな機能があるか、簡単に羅列していきます。普通の掲示板にあるようなの(特に目新しくはないだろうみたいな)のは除いて、ウリ?みたいなのをずらっと。

それぞれの詳しい説明はこの下から。


スキンシステム

Relmは、デザインに、HTML形式のスキンを使っています。中のくわしいことは、別のページで書きますが、簡単に言えば、普通のページをつくるくらいの気持ちで、デザインを変えられる、ということです。…ルールはありますけどね。テンプレートといった方がわかりやすいのかもしれません。

relm.ini内では、次のような設定があります。

$skindir = 'skin/';    # ↓からのスキンファイルを入れておくフォルダ
$r_skin = 'l_skin.htm';    # 絵板デザインHTML.
$w_skin = 'l_form.htm';    # 絵板フォームデザインHTML.
$c_skin = 'l_cata.htm';    # 絵板カタログデザインHTML.
$l_skin = 'l_list.htm';    # 絵板一覧・リストデザインHTML.
$p_skin = 'l_paint.htm';   # お絵描き画面のデザインHTML.
$n_skin = 'l_mini.htm';    # 絵板ミニマムデザインHTML.
$css    = 'skin/relm_ten.css';   # 共通のスタイルシートのファイル.

これは、CGIが読み込むスキンファイルを何にして、どこに置くか、っていう設定。メイン画面をだす、絵板デザインのスキンなら、skin/ フォルダ内に、l_skin.htm という名前で置いておくぞ、ってことです。

また、スキンファイルは全部同じフォルダの中に置いてください。スタイルシートファイルはどこでもいいです。http://からのURLからでも○。

それと、拡張設定にこういうのがあります。

$rskinuse = 1;

これは、投稿・返信画面で、スレッドの部分(<!--PARENT_ ~内)のデザインを、$r_skin(絵板デザイン)のにするか、$w_skin(フォームデザイン)のにするか、の選択。独自のデザインにするか、お揃いのにするか、ですね。コンティニューのときなどは、どちらにせよ$w_skinのものになります。


HTML書き出し

HTML書き出しは、よくアクセスする、メイン画面の1P目と、おまけでリストページをHTMLファイルに書き出すシステムです。

簡単に言えば、HTMLなどは、サーバから読み取るだけなのですが、CGIはサーバで実際に実行されてから、内容が出力されて、それから読みこむ、ので、サーバ側に「負荷」というものががかかります。

そんなわけで、s*mではなるべくなら仕事の軽い、HTMLで読むのを推奨しています。CGIはキャッシュもそう効きませんしね、そんなこと気にしないなら、それはそれでいいのですが、できればコンテンツからお絵描き板にいく最初のページは、書き出した index.htm にするとサーバと地球に優しいです。

…でも、HTMLはそれだけではクッキーが取り出せなかったりして不便なので、"Relm"では、HTMLのときは JavaScript でクッキーを取り出しています。JSクッキーは設定でなくすこともできますが、同時に使ってくれると便利かと。

HTMLの設定は、基本設定のところの、

$index   = './index.htm';
$listhtm = './list.htm';

場所を変えるときは、CGIからの相対アドレス(URLじゃなく)で書きます。

クッキーの設定は、「基本設定」のところの

$autocook = 1; 

と、537行目付近からの「フォームクッキー」のところの項目が設定になります。

また、クッキーを利用することで、投稿フォームなどでは、一時的なコメントなどのフォーム内容の保存、呼び出しができるようになっています。デフォルトでは Submit の隣の、 Save、Call というところです。

えー、間違って他のページにジャンプして、しまったと思って慌てて戻ってみたら、書いた中身が全部消えてた、とか、なんかブラウザが強制終了して書いたの消えた! とかいう経験がある人も多いかと思います。二度目書き直すにはかなりのマナが必要ですよね…。

そんなこと対策に作ったのがこの、Save、Call の機能なんです。長いコメントを書いている途中、書いてる途中だけどちょっと用事ができたときに、Save をぽちっと押してみてください。それからもしブラウザが閉じて消えたりしてしまっても、運がよければ、黄泉の国から戦士たちが帰ってきます。

…そんな、機能。


JS書き出し

JS書き出しは、いくつかの簡易的なデータを、何件かJSファイルにも書き出すもの。これによって、他のページなどでこのJSファイルを読み込むことで、いろんなことができる……かもしれません。

あ、「JS」 は 「JavaScript」 の略ですよ? 今更ですが。

いまのところの用途としては、おえび入り口に、「最新の投稿 by ○○さん」とかいって乗っけたり、ランダムで乗っけたり…、…そんなもんかも。JSファイルに関しては、応用のしかたのページで解説。


プレビュー,レス

全部一辺にwいずれも設定で、つけたり、完全に使えなくしたり、できます。

プレビューは、送信前に、投稿したらどんな風に見えるか、とあらかじめ肉眼で確認できるシステムです。投稿・返信画面のフォームでは、別窓ででます。レイヤー、スレッドフォームからは、できるなら、今の画面のまま、最後のコメントの下につき、できないときは別窓で、プレビューします。できるかどうかは、JSのinnerHTML関数が使えるかどうかに依存。

レイヤーレスは、コメントボタンを押すと、返信画面にいかずに、返信フォームがレイヤーででる機能です。タイトルのバーをドラッグするとレイヤー移動も。これは、BBSNoteさんのスクリプトを拝借しております。便利な機能を作ってくださり、しかも使用許可もいただき、あり難き幸。ちなみに、レイヤーレスフォームのソースは、メインスキンの一番下にあります。<!--LAYER_FORM_START-->~<!--LAYER_FORM_END-->ですね。カスタマイズするならそちらを。

スレッドレスは、まんま、一個一個のスレッドの下に返信フォームがつきます。設定で最初からもつけられるし、デフォルトではメニューのところにThreadRes 項目で On/Off 切り替えができます。スレッドレスフォームのソースは、メインスキンのスレッド内(PARENT~内)です。<!--THREAD_FORM_START-->~<!--THREAD_FORM_END-->の間。

ノータイムレスは、??かもですが、日本語で言えば瞬速返信です。…えー、いままでは、返信を送信すると、当たり前ですが、画面がリロードされますよね?でも、一個返信ならまだしも、何個も返信するとなると、返信 → リロード → スクロールバー動かして次のへ → 返信 … と、リロードしてスクロールバー動かしてページダウンするだけ、時間の無駄です。何個もやるとなるとうんざり。 無駄無駄ラッシュです。

それを、リロードされずに、今の画面のまま返信完了の形をとるのが、この機能。仕組みは、返信の送信先のページはインラインフレームのページになるんです。それによって、時間のロスがなく、かなり効率よくポンポン返信したりできます。

「え、それじゃあ返信が成功したか、ってのはどうやってわかるの?」って思うかもですが、エラーでたときはJSのアラートででますし、どんな風に送信されたかは、↑で説明したプレビューのようにすぐ表示されます。

…つまりIE系専用の機能なんですが。また、これを使うときは、プレビュー機能は必須でつけておいてください~。これも、メニューのところに On/Off スイッチがあります。

この機能は、自作するにあたり、一番つけたかった機能のひとつですね。コメントしたいけど、結構メンドウなんだよね、って人結構いると思うんですよ。これで、一言でもいいから、気軽にコメントする気が起きるといいなーとか。気に入ってくれると嬉しいです。

ノーコメントレスは、さらに??かもですが、日本語で言えばへぇ~機能です。…うせやん。

えー、設定内では、拍手・投票機能として書いてます。お絵描きしたら、コメントとか欲しいものです。がんばった絵とかならなおさら。でも、なかなか思い浮かばなかったり、時間なかったり、通りすがっただけ、とか、そんな感じでコメント書くのがいささか難しかったりするケースもありますよね。

でも、いいな、って思えた絵とかには、なんか応援してあげたい。みたよ、よかったよ、がんばれ、って気持ちだけでも、表したい。そんな感じで、何かできないかな、ってことでつけたのがこれ。元ネタは、「Web拍手ボタン」と「トリビア」からです。たぶん。

どんな仕組みかというと、拍手ボタンをクリックすると、投票され、Resボタン の前の数が増えます。数字の場所を変えたかったら、スキン内をいじってください。拍手すると、1ずつ増えていき、レスすると3増えます。(デフォルト設定)

設定で、重複制限(一人一日一回とか)つけれたりもできるので、おえびコンテストとしも、使えるかもしれないですね。個人的にはお気に入りです。コメしなくてもした気になるので。(ぉ


ログのシステム

現行ログは、1投稿ごとの詳細が書かれた個別のログファイルと、簡易的な情報だけ保存される、全体のログファイル($logfile)に保存されます。全体のログファイルは、もし壊れたときは、管理モードから、ログフォルダ($logdir)内に現存する個別のログを読み込んで、復旧ができます。

ちなみに、ログファイルなどの冠名($logkan)は、最初に変更することをオススメします。なぜかというと、デフォルトのままでは、予想してファイルを覗かれちゃいますし、画像のは、他の人のお絵描き板で保存するとき、同じだと差し替え警告がでますし、何より、保存したの、後で一目見てどこで描いたのか分かる方のがいいでしょ?(笑)自分のサイトのサインみたいな感じで入れておきましょう。

また、現行ログが設定数($logmax)を超えた場合は、過去ログ機能をつけることで、過去ログフォルダ($olddir)に保存されていきます。過去ログに保存していくと結構容量食うので、OFFにすれば、順次削除されます。なお、過去ログは設定で、公開か非公開(管理人だけ見られる)かは、選択可能。

また、投稿された画像の番号は、設定でログNOと同じにするか、画像のカウントNOにするか、選べます。ログNOと同じにすれば、保存するときNOが一緒なのでわかりやすいですが、差し替えしたときにも同じ番号の画像に差し替えられるので、ブラウザのキャッシュがきいてしまい、前の画像が表示されることが多いのが難点。更新ボタンを押せばちゃんと表示されるはずですが。

カウントNOにした場合はその逆です。どちらも一長一短ですね。


お絵描き その1

お絵描きの表示などの、基本の設定です。お絵描きアプレットの設定はその2へ。

Relmでは、しぃちゃん製アプレットである、PaintBBS、しぃペインターのアプレットに対応しています。他のアプレットなどは対応してないので、使えません。

当然、描画アニメーションも保存することができます。そのアニメーションファイルや画像を元に、コンティニューすることもできます。

このとき、png形式の画像は、画像から続きを描けない環境が多いので、描画から続きを描く方がいいのですが、アニメなしにすると普通はできません。…が、その対策として、それ用にアニメーションファイルは一応保存するけど、アニメは見られないようにする設定もつけておきました。($animationpng)その場合、投稿者だけアニメーションも見られます。編集画面からどうぞ。

それと、画像を仮にアップしてからお絵描きする、アップロードペイント機能。新規投稿の画面からで、それを使うと、お絵描き画面でアプレットのキャンバスにアップした画像がでて、ちょうどコンティニューするような形になります。どんなとき使うか、使いようはさまざまだろうですが、線画とか他ので描いて、色塗りはおえびのが塗りやすい、って方とかもどーぞ。

また、途中で用事できたとか、眠くなったとか、パソやばいことになってきた、…でもいまは描き上げられない、…かといって途中なのに投稿するのもな~、とかいうときのために、「カキカケ機能」がついてます。($imgkakikake)

これは、投稿時、このチェックをONにすると、絵板表示時にカキカケ状態になり、デフォルトでは NO と Continue、日付 くらいしか表示されなくなるというもの。できてない途中の画像をあげて見せるのはちょっと…ですからね。

続きを描くときは Kakikake(Continue) か編集画面から。パスワードも忘れずに。描きあがったら、もう一度Continue画面か編集画面に入り、「kakikake」チェックを外してやると、ちゃんと表示されます。カキカケてる間にログが流れたら、新規投稿でコンティニューして、古い方のは消してください(笑

この辺の機能も、前々から結構欲しかったやつなので、できて満足ですv

ちなみに、ボツ投稿というのもあります。この設定はお絵描きツールのなんですが。ちょっとうまくいかなかったので、投稿したくはないけど、せっかく描いたし、自分だけ保存しときたい、ってことありません?でもプリントスクリーンとって、切り取って、保存するのはメンドウですよね。そんなときこのボタンを押して投稿すると、ログには残らずに絵だけ仮送信され、自分だけ保存したりすることができます。

なお、絵板画面表示時、設定数よりサイズの大きい画像は、IMGタグで強制で限界サイズに縮小されて表示されます。($upover)返信フォームの画面では等倍です。

描画時間のOn/Offも、投稿者が投稿時に決められたりもします。($painttimeon)

アップロードを許可しているとき、アップロードフォームにURLアドレスをいれると、URLで登録されることもできます。($httpuse)使いまわしの季節絵を配るときとか、一時的に公開したいときとか、そっちのが相手のサーバに負担かけないし、キャッシュも効くので、いいような。や、個人の好き嫌いの問題ですが。(笑)


お絵描き その2

お絵描きアプレットの設定です。ここの設定は普段使わないので relm.ini ではなく、paint.ini にあります。設定多いかも知れませんが、下のように、場面に分けて細かく指定できます。

お絵描き画面の基本設定

アンドゥの回数。
($app{'undo'})
PNGかJPEGか。
($app{'image_jpeg'}、$app{'image_size'})
サムネイルの縮小率。
($app{'thumbnail_width'}、$app{'thumbnail_height'})
セキュリティ警告。
($app{'security_click'} ~ $app{'security_url'})
しぃペインターの初期レイヤーの数。
($spn{'layer_count'})

アニメーションの設定

PCHをダウンロードできるようにするか。
($pchdownload)
アニメーションの横に、画像を並べて表示するボタンをつけるか。
($imgpchput)
デフォルトの再生速度。
($apa{'speed'})

お絵描き拡張機能

お絵描き拡張ツール(PLライブラリ)を入れる。

いまのところs*m製の拡張ツール(paint_tool.ini)に標準で対応しています。そのうち増えたりするかも。微妙。拡張ツールの機能紹介はツールの項へ。

ダイナミックパレットを使う。

WCSさんダイナミックパレットに対応しています。ファイル名($palettejs) と 関数名($palettefunc)を入れてください。普通は、$palettejs='palette.js';、$palettefunc='PaletteInit()'; です。

アプレットの表示サイズを細かく指定。

(@apminsize0@appfitsize)

アプレットのカラー等を細かく指定。

($aps{'image_bkcolor'}$aps{'tool_color_frame'})

こちらでなく、スキン側(l_paint.html)で色を指定する場合は、$appstyleuse=1; に変えてくれればOKです。


アイコン,カラー,その他

設定次第でフレームも使えます。デフォルトのフレーム設定では、左にリストページ、右に絵板のページが来るようになってます。

アイコン掲示板のように、アイコンも使えます。($icontype)ただ、でっかいアイコンだとちょっと画面がうるさくなるので、控えめに、ちっちゃいアイコンにした方がいいかもです。20x20くらいでしょうか。当然、HEDWI(s*m製アイコン登録CGI)、に対応しております。

投稿するとき、フォントカラーテーブルカラーを選ぶことができます。これで、うまく設定すれば、カラフルな掲示板も作れますね。これも、使わないときはそう設定すればいいだけです。($fontuse$coloruse)

投稿日付などは、スキン側で大雑把にも、細かくも設定できます。曜日名は、relm.iniの設定で行ってください。(@wdays)

新しい投稿のときは新着表示するタグを設定できます。($newd,$newgif)

引用する(行頭に > とかつける)と、絵板表示時にその1行のフォントカラーを変えることができます。(%gyoutou)

絵板表示時、1スレッドのレスデータ○件かごとに、設定したタグを入れたり、増やしたりする特殊設定もあります。(やや上級? $kugiri1、$huyase など)

「おまけ設定」のところで、各ページのタイトルなんかを設定できます。(投稿ふぉーむ とか 返信ふぉーむ とかいうの。$newtitleなど)

各ページに共通なソースをいれるとき、スキンを変えるのが面倒なら、relm.ini内で設定することもできます。($body_in とか)

最初、$body_in = '';となっていますが、長いソース書くなら、

$body_in  = <<'EOF';
~何か書くソース~  
EOF

として、EOF~内に書いてください。(EOFの文字は何でもいいのですが)

錬金術が使えます。($jumon)例えば、*bb太字/bbとかけば太字になったりするような、特定の文字を特定の文字に変換する機能です。タグがわからなくても、タグ禁止にしてても使えるので、使いたいひとは便利かも。HowToのページに、登録されてる変換リストがでます。

タグは使えるかどうか選べ、($tagok)その使えるタグは、設定次第で増やせます。(@allowtag)

上級技なのですが、ログに保存されるフォームの内容は、設定で増やせます。(@plusform) 詳しくは応用のページにて。


ミニマムモード

ミニマムモードは、ほぼケータイ、モバイル用の、モードです。PCからは、relm.cgi?view=miniなどとやっても、確認できます。

システムは、特定のIP・HOSTから CGIに アクセスすると、普通のスキンではなく、このミニマムスキンで、出力される、というもの。CGIでないとIPが取られないので無理。(index.htmでは×)

つまり、余計なタグを入れず、ソースさえ軽ければ、携帯でも見れるだろ、ってことで用意したのが、このミニマムスキンを使ったモードなのです。

特定のIP・HOSTですが、「CGIの設定」の「制限の設定」のところで、追加・削除ができます。(@minis)初期設定では、以下のHOSTになってます。

*.docomo.ne.jp... DoCoMo
*.ezweb.ne.jp ... EZweb
*.ez*.ido.ne.jp.. EZweb
*.jp-*.ne.jp  ... J-SKY
*.vodafone.ne.jp. ボーダフォン
*.tu-ka.ne.jp ... TU=KA
*.tk*.ne.jp   ... TU=KA
*.pdx.ne.jp   ... PHS

*」は任意、ということです。

今のところ、閲覧投稿ができるのを確認しています。画像のアップロードは cgi-lib.pl がエラー出すようで、まだできないようでした。…これから。

以下、余談。

スキンもシンプルな作りなので、PCからも快適に見れるので、ケータイ専用、と考えずに、Lightより軽い、ひとつのビューとして使ってくれても、それはそれでOKな気がします。…ほんとか?

また、ミニマム機能の追加に伴い、デフォルトのサムネイルのサイズを、130x * px、サイズにしました。300x300pxで描いても、400x400pxで描いても、130x130pxになります。300x600pxで描けば、130x260px。

ケータイの待ち受け画像は、だいたい 120x130px みたいなので、サムネイルを待ち受け画像にー、とかいうのもできるかもしれません。・・有効利用。

120x * pxにする手もあったんですが、120x120pxになると、縦が足りないのでwないよりはあった方がいいだろ、ってことで 横130px 指定にしました。差分は切り取ればいいですしね。

120pxにしたい場合は、アプレットの設定の中で、変えてください。待ち受け画像用 おえびとか作りたい場合は、デフォルトのお絵描きサイズを、300x325px とかにすれば、縮小されたとき、120x130pxになるでしょう。

最初は 「モバイルモード」 とかいうゴツイ名前だったんですが、リルムさんなので、「ミニマム」 になりました。(謎)



Page Information
Toc
Relm
Prev
Next
First
2003.12.18
Last
2005.01.21