*technique dictionary* アンソロジーズの技集

☆その他Anthologysで使える、豆知識とちょっとした技術を紹介しておきます。


 ■「Anthologys」豆知識(管理者向け)

ディレクトリについて
感想ログについて
破損ログについて 
NEW!!

 ■技集(投稿者向け)

文字装飾をする
挿絵をつける
音楽をつける (※公開停止)

 ■技集(管理者向け)

カテゴリ分け


 ■「Anthologys」豆知識(管理者向け)

 − ディレクトリについて −
※「Anthologys」の標準の設定では、CGIと同じ階層に「log」と「res」および「lock」ディレクトリがあるはずです。
(こちらの改造CGIでは「cnt」および「del」ディレクトリも同じ場所にあるよう設定しています)

「log」 作品記事のログファイルを保存するディレクトリ
「res」 感想記事のログファイルを保存するディレクトリ
「lock」 ロックファイルをつくるディレクトリ
「cnt」 閲覧数のログファイルを保存するディレクトリ
「del」 作品の削除記録のログファイルを保存するディレクトリ

ここで、ログファイルを保存するディレクトリについて説明します。
ログファイルは、それぞれのディレクトリに「.txt」の形式で保存されます。
実はこれらは、パーミッションが「読み込み可」に設定されたまま生成されるので、ファイルアドレスを入力されると管理者以外の人でも簡単に覗けてしまいます。
(※もちろん、ログファイルのパーミッションを手動で「読み込み不可」に設定すれば回避できます。
   ただしXServerやXREAなどの「600」のパーミッションで作動するサーバに限ります)


他の人に見られても大して困ることはありませんが、セキュリティの問題からしても、やはりログファイルは他人には見られないようにしておいた方が安全です。
対処法としては、「log」,「res」,
「cnt」「del」ディレクトリの名前を変更することが望ましいです。
ディレクトリ名を変更されると、ログファイルのあるアドレスは極端に予想されにくくなるからです。
(これは他のCGIにおいても同様のことが言えます)
「log」を「sakuhin」,「res」を「kansou」などにするだけでも充分でしょう。

ただしディレクトリ名を変更する際は、CGIスクリプト内のディレクトリ指定の変更を忘れないこと。


 − 感想ログについて −
※「res」ディレクトリには感想記事のログが、「20060101010101.txt」のようなテキスト形式で保存されています。
これらのファイルを編集する際、「Anthologys」のv2.4以降を使っている人は要注意です。
詳しい説明は省きますが、これらのファイルを更新してしまうと、感想ログが破損してしまう可能性があるからです。
破損してしまうと、作品の感想欄がめちゃくちゃになってもう見れたものではなくなってしまいます。
単にダウンロードして、再びアップロードしただけでも更新したと見なされ同様の事態になるので絶対にしないでください。


v2.4以降を使っている人でこのエラーを修正するには、

$FORM{'come_r'} =~ s/\r/<br>/g ;

という記述をサブルーチン「regist2」の先頭付近、大体CGIスクリプトの1170行目辺りに書けばOKです。
(こちらの改造CGIではこのエラーは修正済みなので、そちらと差し替えても同じく修正されます)
ただし、それまでに書かれた感想記事に修正は効かないので、古い感想記事は極力いじらないようにしてください。

ただサイト移転時だけはどうしてもファイルの更新は避けられません。
よってv2.4以降の「Anthologys」を使っている人でCGIごと移転する場合は、感想ログの破損は避けられないでしょう。
移転前にHTML形式でページごと感想を、作品ごとに一つずつ保存してしまうのも一つの手です。


(※このエラーの対策として、破損ログ修復プログラムを配布しました。詳しくは次項参照)

 − 破損ログについて −
※前項のケースで破損した感想ログは、CGIが改行コードをレス数として誤認してしまうことから起こる現象です。
実は、「入力通り」モードで投稿した作品を含むログも、改行をタグに置き換えていないため同様の事態に遭遇します。

いずれもログファイルの更新さえしなければ最悪の事態は回避できますが、
何かの間違いで一度ログが破損してしまうと、残念ながら何度更新し直しても元には戻りません。

そうなれば泣く泣くログを諦める羽目になりますが、ログファイル自体は消失したわけではないので、上手くいじれば復活できます。
破損の原因は前述のとおりだから、実は改行コードを上手く
<br>タグに変換できれば、ログを通常通りに復元できることになります。
よってそれらの動作を自動化したプログラムを作成してみました。↓下記参照。



▼破損したログは、こちらの修復プログラムを使うことで高確率で復活できます。

作品ログ修復プログラム : 「Anthologys LogFile Fixer」
感想ログ修復プログラム : 「Anthologys ResFile Fixer」

このプログラムの使い方は以下の通りです。
■拡張子を「.cgi」に変更
■プログラムを開いてログディレクトリやログファイルのパスを指定
 
(※感想ログ修復の場合は、指定ディレクトリ下のレスファイル全てを対象とします)
■「Anthologys」を設置しているディレクトリにアップロード
■パーミッションを「呼び出し可」
(「705」など)に変更してブラウザでCGIにアクセス
以上です。「正常終了」と表示されれば、修復作業は完了です。
あとは「Anthologys」で通常通りログを閲覧できれば成功です。これで一安心です。



(※注意)

これはあくまで標準の「Anthologys」の設定で生成されたログに対するプログラムです。
ログの書き込み部分という奥深い箇所まで改造を施しているCGIでは、正常に修繕されない可能性があります。

また、この修復作業を行う場合は必ずログのバックアップを取っておいてください。
ログを直接いじるわけですから、ログが破壊される可能性も否定できません。
(※対象となる「Anthologys」を設置しているディレクトリをまるごとバックアップしておくと良いでしょう。
  できれば、実際に設置しているディレクトリとは別にもう一つCGIディレクトリのコピーを設置し、そちらで行うと安全です)




 ■技集(投稿者向け)

 − 文字装飾をする −
※基本的な技です。
作品中にタグが使えるのを利用して、文字を大きくしたり小さくしたり、色をつけたり太字にしたりと様々な効果を出します。
主に使うのは、

<font>〜</font> <b>〜</b> <i>〜</i> <a href="リンク先">〜</a>

などです。「font」タグは色を変えたり文字を大きくしたり書体を変えたりと色々な効果が期待できます。
「 b 」のタグは〜中の文字を太字に、「 i 」は斜体にします。
また、「a」はリンクを貼ります。詳しくはこちらのタグ講座を参照してください。
リンクタグを駆使すれば、冒頭に「第一話はこちら」といって参照先の作品のリンクを貼ったりすることも可能です。
また、モノローグだけ色分けしたり斜体にしたりして、使いようによっては作品の雰囲気を上手く表現できます。
ぜひ使ってみてください。


(※注意 2006.12.30更新以前のAnthologysの場合、作品編集時にタグが消えてしまうのでご注意下さい)


 − 挿絵をつける −
※挿絵というのは、作品の様子を表現するにはうってつけです。印象を与える効果は大きいので、使いたい人もいるでしょう。
そこで、Anthologysでは絵のアップロードはできませんが、作品中にタグは自在に使えますので、応用すれば挿絵をつけられます。
絵を挿入したい箇所に、

 
<Img Src="挿絵ファイルのアドレス" Alt="代替テキスト">

というタグを入力するだけで可能です。
「Src」はファイルのアドレスを、「Alt」は代替テキスト、つまり絵の説明文を入力します。挿絵の題名でもつけると良いでしょう。

ただし、この技は直リンクになるので、「Anthologys」を設置しているサイト外の画像は、あまり使えません。
外のサイトでも、直リンク可能のサーバでなら可能ですが、他人のサイトの画像を貼るなどという行為は絶対にやめましょう。
著作権の問題もありますし、なにより画像のあるサイトへ過大な負担をかけてしまいます。

自分のサイトの内にある画像を使いましょう。
また、Anthologysを設置しているサイトのどこかにアップローダを置いてもらうというのも一つの手です。
それならサイト外への直リンクにならず、また投稿者が自由に挿絵の画像を投稿できます。

ただ、作品を書いている人の視点からすれば、挿絵の画像だけ見られるのはあまり気分の良いものではないでしょう。
やはり、その作品につけられた絵なので、作品中で見てほしい・・・と思うのは当然です。
よって、アップローダをつけるなら、誰もが観覧できるものではないのが望ましいと思います。
また、管理者が随時対応できるならば、先にサイトのどこかにアップしてから、そのアドレスを教えて作品を投稿するという手もあります。


 − 音楽をつける −
※この音楽をつける「EMBED」タグは、かなり危険なので載せるのを中止しました。
「EMBED」タグは、禁止タグに入れておいた方が安全です。




 ■技集(管理者向け)

 − カテゴリ分け −
※カテゴリ分けとは、作品集をジャンル別などに分類することです。
「Anthologys」にはカテゴリ分けの機能はありませんが、過去ログの参照機能を応用すれば簡単にカテゴリ分けができます。

その方法を以下に示します。

※通常のYASUU!!さまの配布されている「Anthologys」でもできますが、ここではこちらの改造CGI「MINI」を使って説明します。

まず、ジャンルを「小説」・「詩」・「告知」・「リクエスト」の4つの分類にしたい場合について説明します。
ここで一番最初のページに表示されるメインとなるジャンルを決めます。ここでは「小説」をメインとします。

次に、それぞれジャンルの
ファイル名を決めます。
メインジャンルとなる「小説」は
「anthology」にします。他のジャンルはそれぞれお好みの名称をつけましょう。
ここでは、「詩」は
「poem」,「予告」は「cm」,「リクエスト」は「request」とします。
それぞれ、「
ファイル名.txt」として「log」ディレクトリに保存します。

ここで、CGIスクリプトに変更を加えます。

(1)151行目にある
$backup の変数の値「1」を消して、ログのバックアップをとらないように設定します。
(2)364行目と407行目、サブルーチン「mes」と「mes4」の中にある
$FORM{'log'} eq "" && という記述を削除してメインジャンル以外でも新規投稿の文字を表示するように設定します。
(3)366行目と409行目、同じく「mes」と「mes4」内の
<a href=$reload?action=form>という記述を<a href=$reload?action=form&log=$FORM{'log'}>と書き換えて、メインジャンル以外でも新規投稿ができるように設定します。
(4)サブルーチン「mes」か「mes2」,「mes4」のどれかに手を加えて、それぞれのジャンルへのリンクを貼ります。リンクの記述は、

<a href=$reload?log=
ファイル名>ジャンル名</a>

これで貼り付けます。ここではそれぞれ、

<a href=$reload?log=
anthology>小説</a>
<a href=$reload?log=
poem></a>
<a href=$reload?log=
cm>予告</a>
<a href=$reload?log=
request>リクエスト</a>

となります。

これで完了です。完成例のソースサンプルを載せておきます。この完成例では(4)で「mes2」に手を加えています。
同じようなやり方で「FRAME」でもできます。ここまで読んだ方ならばすぐできるでしょう。

「Light」や「Bright」もしくは従来の「Anthologys」では、CGIスクリプトに変更を加える箇所が少し異なっています。
(2),(3)に置いては検索をかければすぐ見つかるでしょうし、(4)においては記述する場所さえわかれば問題ないでしょう。
(4)で記述する場所は、「&dir」で検索がかかった辺りが一番手ごろな場所だと思います。トップページ内ならどこでもいいですけどね。
ただ、この場合は記述する際にタグを、

print"記述するタグ\n";

という形で囲うのを忘れずに。そのまま記述するとエラーになりますので。



(※注意)

このカテゴリ分けをすると、ログのバックアップは停止しているので過去ログ生成ができません。
ログの最大保持数を超えると、投稿ごとに古い記事から削除されていきます。
なので、最大保持数は多めに設定しておくことをおすすめします。300もあればたいていは当分は大丈夫でしょう。
ある程度ログ数が大きくなってきた場合は、作品をHTMLで過去ログとして保存して、ログファイルを空にするのが妥当かもしれません。

ですが、全ジャンルで300以上も作品が投稿されるのならば、CGIをジャンルごとに分けて設置したほうが手軽で無難でしょう。
その場合、このジャンル分けでは4つの「anthologys.cgi」をディレクトリに分けて設置することになります。



その他、何か面白い技を思いついたら、載せていくつもりです。

[戻る]