このページは福井県立大学の田中求之が2006年1月まで運用していた Mac のサーバ運用に関する会議室 「Web Scripter's Meeting」の記録です。情報が古くなっている可能性がありますのでご注意ください。

EasyBBS++ 1.0b6のフッターファイル

発言者:伊藤秀昭
( Date Friday, November 15, 1996 17:32:46 )


EasyBBS++ 1.0b6を使わせていただいてます。
「最近の発言状況」を表示するときのフッターの内容を変えたいのですが、
それらしいファイルがありません。
どうしたら変えられますか。

田中求之 さんからのコメント
( Friday, November 15, 1996 18:19:38 )

「最近の発言状況」のページはフッターを利用せずに、プログラムの中で
ページを作っていますので、残念ながらカスタマイズはできません。
(テンプレートファイルの種類が増えすぎると、設定等が煩雑になりま
すので、Recent では使用していません)

伊藤秀昭 さんからのコメント
( Monday, November 18, 1996 09:28:44 )

そうですか。他はすべて変更できるので残念です。
せめてリソースを書き換えられるといいのですが。
次期バージョンに期待します。

重松修 さんからのコメント
( Wednesday, May 14, 1997 05:44:16 )

EasyBBS++だけでなくて、シリーズ全体に対する一つの提案なのですが、
カスタマイズ(見ための)が結構大変なので、次の様にしてはいかがでしょうか?

(1) すべてテンプレートを用意する。
(2) propertyとして読み込む。
(3) ページを返すときに、特定の文字列を置換して返す。

property myErrPage : ""

on run
  -- 自分のパスをthisFldrにいれる
 set myErrorPage to readFromFile file(thisFldr & "ErrorPage.t")
end run

try
 -- ここに処理がある
on error errMsg
 set myPage to xReplace myErrorPage search "@エラー@" replace errMsg
 retun http_10_header & myPage
end try

ErrorPage.tの内容

<HTML>
<HEAD>
   <TITLE>ACGI ERROR</TITLE>
   <META HTTP-EQUIV="Content-Type" CONTENT="text/html;CHARSET=x-sjis">
</HEAD>
<BODY BGCOLOR="#FFFFFF" LINK="#0055FF" ALINK="#FFFF00" VLINK="#FF66FF">
<B>ACGIエラーが発生しましたので処理が中断されました。</B>
<P><HR><P>
<!-- 「@エラー@」の部分がエラー内容に置換されます。-->
@エラー@
<P>
<CENTER>
  <FORM><INPUT TYPE="button" VALUE="戻る" onClick="history.back()"></FORM>
</CENTER>
<P><HR>
<CENTER>
  <BR><FONT SIZE=2 FACE="Times">Copyright © 1997 COPYRIGHT NOTICE HERE.</FONT>
</CENTER>
</BODY>
</HTML>

以上のようにすれば、現在ヘッダとフッタになっているファイルもすっきりし
また、ページレイアウトをブラウザでプレビューできます。

<!-- -->タグを用いて置き換えられる内容を説明することにより、テンプレート
の書き換えもスムーズになり、またより高度にレイアウトできますので、
他のページとのデザインの親和性もよくなると思います。

すべての文章をテンプレートにすれば、たとえば、書かれたメッセージのレイ
アウトも簡単に変更できるのではないでしょうか?私の場合は、リンクの色を
かえているのですが、EasyBBS++のページだけ、全くデザインが事なるので、
非常に違和感があります。(T_T)

# それと、時々閉じタグ忘れていることがあるようです。>EasyBBS++

田中求之 さんからのコメント
( Wednesday, May 14, 1997 13:00:16 )

すべてをテンプレートして用意するというのは一つの案として考えられますが、
私の個人的な考えとして、property に起動時に読み込むよりは、多少の速度
低下は覚悟の上で、実行時にその都度読み込む方法をとりますね(現在もそう
なっている)。これは、使用中であっても手軽に変更が利きいて、それがすぐに
反映されるということと、会議室毎にテンプレートの内容がかわり、かつ使用中
であっても会議室を増やしたり減らしたりできるようにしてる関係で、すべて
を property に読み込むのは現実的ではないからです。

最近の発言状況( Recent )やエラーに関してテンプレートを導入するというのは
EasyBBS++ や PI では、改良の候補としては面白いと思いますが、たとえば
Recent の場合でも、全体のものと会議室毎のもとを用意しなければなりません
から、煩雑さは増すと思いますよ。

スクリプト版の場合は、基本的には、使う人が自分でスクリプトをカスタマイズ
してもらえればよいと考えてますが…。

重松修 さんからのコメント
( Wednesday, May 14, 1997 17:15:14 )

propertyとして組み込んでいないのは、そのような理由があったのですね。

私もpropertyとして組み込むとテンプレートを変更した場合、cgiを一旦
終了させないと反映されないので面倒くさいなぁと思っていました。ただ、
会議室を追加したりテンプレートを書き換えたりする頻度と、それらを読み
にいく頻度を考えると速度を優先したほうがいいかと思いました。

基本的にproperty読み込みは、本論ではなくて、なぜヘッダとフッタに
ファイルが分かれているか?という点です。

デメリットとしては、ファイルが2つになるし、どういうふうに見えるか実際に
ブラウザで見えない。そのうえ、ヘッダとフッタに囲まれたデータの部分は
一切カスタマイズできない。(AppleScriptの場合はソースを書き換えれば
可能だけど、EasyBBS++はカスタマイズできない。)

会議室を追加した場合の繁雑さですが、回避案としてその会議室にテンプレー
トがない場合はデフォルトのテンプレートを使用して会議室名にフォルダの
名前を使用する、というのはどうでしょうか?

これならば、会議室をつくってそのあと体裁を変えたくなったらテンプレート
をフォルダに入れれば変えられると思います。(ただ、書き込みはそれ以前の
ものと、それ以降が体裁が変わってしまいますが。)

田中求之 さんからのコメント
( Wednesday, May 14, 1997 18:06:04 )

>なぜヘッダとフッタに
>ファイルが分かれているか?という点です。

ヘッダー部分は、会議室のトップページ以外にも、検索結果の表示ページにも
用いるようになっているからなんですよ。これに対して、各種検索用の入力欄が
主であるフッター部分は、トップページしか用いていません。

EasyBBS シリーズは、あれやこれやで過去のいきさつ(というか、基本的には
私がスクリプト版として作ったものの仕様)を引きずっています。また、なるべく
シリーズ間の以降を簡単にするということも考えて、テンプレートの使い方など
には大きな変更は加えないままに来ています。

スクリプト版は、基本的には各自で好きにカスタマイズして使ってもらえばよい
というもの(あくまでもスクリプトのサンプルとして配付していますので)ですが
++ や PI はそういうわけにもいきませんから、ある程度の仕様の見直しは
必要かもしれませんね。

前薗 健一 さんからのコメント
( Thursday, May 15, 1997 01:52:55 )

++ はソースコードを公開していますし、PI のソースコードもいつでも
公開できますよ。(^^)
CW の環境さえあれば、カスタマイズは自由自在です。

重松修 さんからのコメント
( Thursday, May 15, 1997 07:56:19 )

なるほど。良く分かりました。>ヘッダ、フッタの件
それと、やはり互換性などの問題が大きいのですね。

それと、CWの環境はないのです。>前薗さん
勉強したいと思っているのですが、FutureBASIC IIでさえもてあましているので、
まだまだ修行が足りないようです。

ところで、AppleScriptって遅いですが、どうにか速くならないのでしょうか?
田中先生はOSAXをHyperTalkでかかれてらっしゃいますが、OSAXをAppleScriptで
書くことはできないのでしょうか?

田中求之 さんからのコメント
( Thursday, May 15, 1997 10:57:06 )

>ところで、AppleScriptって遅いですが、どうにか速くならないのでしょうか?

これっばっかりはどうしようもないですね。PPC Native 版もとうぶん出ないようです
から、現状でうまくやり繰りするしかないでしょう。

>田中先生はOSAXをHyperTalkでかかれてらっしゃいますが、OSAXをAppleScriptで
>書くことはできないのでしょうか?

osax を作るには、最終的にコンパイラで code リソースを作る必要があります。
AppleScript のコンパイラはありませんから、現状では無理ですね。

Future BASIC をおもちなら、それを使って osax を作ることは可能なはずですよ。
(アプリケーションや XCMD が作れるのであれば、問題ないはずです)

重松修 さんからのコメント
( Thursday, May 15, 1997 12:43:52 )

さっそくありがとうございます。

私のマシンはPowerPCで一番遅い6100なんで68Kのエミュレーションなので、
ちょっとでもスクリプトが長くなると文法のチェックだけで平気で1分
位待たされます。

おまけのエディタは性能がよくないので、先生が紹介されていたエディタの
購入も考えています。せめて検索機能とか、あるいは、on〜の部分のリスト
をパレットにでも出してくれると助かります。

あるいは、サブルーチンを全部別のファイルとして作るとか。

FutureBasicIIがそうなっているて、変更していない部分の文法を毎回チェック
しないので結構快適なのです。

とりあえず、よく使うルーチンはFutureBasicIIでOSAXを作れるようになるよう
がんばりたいと思います。

田中求之 さんからのコメント
( Thursday, May 15, 1997 18:25:09 )

>私のマシンはPowerPCで一番遅い6100なんで68Kのエミュレーションなので、
>ちょっとでもスクリプトが長くなると文法のチェックだけで平気で1分
>位待たされます。

コンパイル(文法チェック)が遅いのは、必ずしも AS が遅いからではなく、
むしろ表示のスタイルの設定などの影響の方が大きいですよ。

キーワードとか変数とかコメントなど、要素によって色々とスタイルを変えて
表示できるようになってますが、これを凝ったものにするほど、遅くなります。

私は、色は黒で、monaco と Osaka-等幅の2種類だけしか使っていません。
LC 475 で EasyBBS SR II (32Kぎりぎりまでのスクリプトになって
ます)をコンパイルしても、1分ということはないです。

サブルーティンというか、ハンドラーをオブジェクトに分割して管理するのも
作業効率などの点では有効ですね。また、スクリプトサイズの限界も気にしな
くてすむようになりますし、継承などを使って、うまくスクリプトを組むことも
できますので、大掛かりなものの時には使ってみる価値はあります。

重松修 さんからのコメント
( Sunday, May 18, 1997 12:36:46 )

田中先生のご指摘のとおり、フォントを等幅にすると速度アップしたように
思います。

それと、やはり68040の方が倍くらい早い気がします。私の環境では
Quadra840AVが一番早く作業ができました。
(8100/80,6100/60,Q840,Q610,C650)

田中求之 さんからのコメント
( Sunday, May 18, 1997 13:51:07 )

AS は 68K コードを多用するはずですから、PowerMac の最初の世代のマシンよりは
840AV の方が速いくらいかもしれません。私は研究室では研究用に PM8100/100 を
使っていますが、自宅の Q840AV とたいして違わないと思ってます。

でも、さいきんのやつはめっぽう速いようですが。