CGI雑記帖

〜 連載記事作成CGI Press HTML 〜

最終更新日 2002.7.20 

 表示部をHTML形式にした、動作の軽い連載記事作成支援CGIです。

 また、プログラムの中身の解説ページを別に設けました。興味のある方は覗いてみて下さい。

〜 Press HTMLの技術解説 〜


■特徴

 コラム作成支援CGI「Column HTML」の別バージョンタイプです。Column HTMLがフレームタイプなのに対して、こちらは1つのページに目次を生成するタイプです。うだうだ説明するよりはサンプルを見た方が早いんでまずは見てやって下さい(笑)。

 掲示板を書くように連載記事が書けます。
 目次の段落づけなども簡単にできますので、連載記事だけではなくQ&A、小説など用途は無限に考えられます。ページを作成してFTP転送、なんていう手間はかかりません。充実したHPが簡単に作成できます。


■サンプルとダウンロード

サンプル

以上の条件に同意できた場合のみ、ファイルをダウンロードして下さい。また、ファイルをダウンロードした場合、無条件に上の条件に同意したものとします。

Ver 1.10
LHA形式
press.lzh
ZIP形式
press.zip

■各種ファイルの説明

具体的な説明に入る前に、各フォルダ/ファイルの説明をしておきます。

 念のため、でしかないんですが、同時書き込みができないようにファイルロック処理を行っています。自分以外が書き込むことはない筈なんで必要ないんですが、本に書いてあったのでつい……(笑)。
 CGIが使用するだけで表に出ない(アドレスとして利用者には判らない)ものなので、そのままのフォルダ名で構わないと思います。

 CGI本体です。
 いろんなパラメーターが中に書かれています。そのままでは100%動かないので、パラメーターは書き直して下さい(後述)。

 拡張子で想像できる通り、ログファイルです。
 中身はエディタで見れば判る通りなんで省略しますが、6種類のデータしか書き込んでいないので、理解はしやすいと思います。
 ないことを祈りますが、CGIの不備等により正常なメンテナンスができなくなった場合、最悪ここを書き直せば何とかなるかもしれません。

 実はよく知らないんですが(笑)、なんでも日本語処理をするためのライブラリらしいです。お願いですからライブラリって何? なんて訊かないで下さい。

 CGIを設置したら、まずここにアクセスします。
 一度何か記事を書いたら、内容は変わります。どう変わるかはやってみてのお楽しみ(笑)

 本スクリプトはWeb上で各種設定が更新できます。その設定を保存しておくファイルです。各設定値の意味は、見れば一発で判る筈です(ホントです(笑))。

 v.1.10から、スタイルシートを外部参照形式に変更しました。今まではスタイルシートが埋め込まれていましたが、これからは自分で好きなようにカスタマイズできます。

 この他にも、CGIが自動生成するファイルがありますが、それは使っていくうちに判るでしょうからここでは触れません。動きゃいいぢゃん(←暴言)。


■設置方法1.パラメーター設定

 pressh.cgiをエディタで開いて、以下のパラメーターを適切なものに設定しなおして下さい。
 ここでは「最低これだけを書き換えればCGIが動作する」というものを挙げています。表示に関わる部分など、細かい設定はpressh.cgiを参照して下さい。多分(笑)判ると思います。

#!/usr/local/bin/perl
 (プロバイダで定められたPerlへのパスを指定します)

$script = 'http://www.xxxxx.ne.jp/~xxx/press110/pressh.cgi';
 (このCGIが置かれている場所をURLで指定して下さい)

$htm_url = 'http://www.xxxxx.ne.jp/~xxx/press110/';
 (トップファイル(フレーム親。index.html)を置くディレクトリをURLで指定します)

$home = 'http://www.xxxxx.ne.jp/~xxx/index.html';
 (戻り先のURLを指定します)

$pass = '0123';
 (管理用パスワード(英数字)を指定して下さい。常識の範囲の長さでひとつ)

 以上を変更すれば、とりあえずCGIは動作する筈です。


■設置方法2.パーミッション設定

public_html / index.html (トップページ)
     |
     +-- press110 / pressh.cgi  [755]
            |       presso.log  [666]
            |       jcode.pl    [644]
            |       index.html  [644]
            |       config.dat  [666]
            |       style.css   [666]
            +-- lock [777] /

 パーミッションを設定すれば設置は完了です。


■記事の書き方

 先ほど設置したindex.htmlにアクセスして下さい。「書き込み画面へ」というリンクが貼られていますので、それをクリックします。
 管理モードへの入室画面になりますので、「書込」を選択してパスワードを入力して下さい。パスワードが認証されると、書き込みフォームが現れます。

 あとは、フォームに記事の内容を書いて送信ボタンを押すと、フレームのトップファイル、メニューファイル、記事ファイルが作成されます。
 2回目以降は、記事ファイルの上のメニューの「管理用」から入って下さい。

 index.htmlは単純な相対パスで書かれていますので、特殊な場所にCGIを設置した場合など、リンクが飛ばない場合があります。その場合は、少々面倒ですがCGI本体を引数つきで呼び出して下さい。引数は「mode=admin」です。
 具体的には、こんな感じです。

【呼び出し例】
   http://www.xxxxx.ne.jp/~xxx/press101/pressh.cgi?mode=admin

 管理モードへの入室画面になりますので、以下は上で説明した手順と同様に進めて下さい。


■目次について

 本スクリプトはトップの目次画面の作成に命をかけてます(笑)。
 だから、というわけではないんですが、ちょっとだけ目次画面の作成方法は面倒です。

 先に説明した「書込」で書き込みモードに入ると、こんな画面になります。

[戻る]
以下のフォームから記事を書き込んで下さい。

日 付     見出し位置      見出しのみ 
タイトル 
内 容


 この中の「見出し位置」「見出しのみ」という2つのパラメーターがポイントです。

「見出し位置」は、見出しの段落を決めます。このとき、

 以下、初期値では7(環境設定によって変更可能)まで設定でき、最高で14文字分のスペースを開けて見出しを書きます。

「見出しのみ」のチェックを入れると、見出しだけ作成できます。
 なんでこんなものがあるの? と思うかもしれませんが、実際にHPを作成しはじめると「見出しだけほしい」なんていうケースが出てくるんです。そのためにこういうパラメーターを作りました。
 
 例えば、こんな見出しができるわけです(あくまでイメージですが(笑)、ほぼ正確です)。

タイトル(これは各ページにも書かれます)

見出し0

見出し0、見出しのみチェックつき
  見出し1、見出しのみチェックつき
    見出し2
    見出し2

見出し0、見出しのみチェックつき
  見出し1
    見出し2、見出しのみチェックつき
      見出し3
      見出し3
      見出し3

 見出しは書かれた通りに忠実に再現されます(笑)ので、例えば「見出し0のときは頭に■をつける」とかご自分でルールを決めて下さい。そうすればもっとかっこいい目次ができます。


■設置方法3.各種環境設定

 基本的には上記の処理をすれば動く筈です。
 ただ、それだけでは本当にただ動くだけです。戻り先も決めていないし、色やフォントもデフォルトのままです。
 これを変更するには、管理モードの「環境」を選択して下さい。

 1つ1つのパラメータについては、煩雑になりますので説明はしません。別にいろいろ試しても困る類のものでもないので(笑)、いろいろ試してみて下さい。

 v.1.10から環境設定の項目が変わっています。v.1.01お使いの方がv.1.10を導入する場合、必ず設定をし直して下さい
 その際、以前のconfig.datは上書きされてしまいますので、アップロード前に退避しておくことをお勧めします。


■「全書替」について

 本スクリプトはHTMLデータを生成するので、運用途中でフォントや色設定、題名(記事1つ1つではなく、そのものの方)などを変更した場合、その変更分は今まで作成したページには反映されません。一応、「ログモードで入って、全てのデータを変更する」ことで対処できるんですが、100件もデータがたまった日にはそれだけでも一苦労です(笑)。そこで作成したのがこの全書替モードです。

 処理の方法はいたって単純で、管理モードから全書替を選択するだけです。自動的に全てのデータを処理しなおします。

 ただし、あまりにもデータが多い場合、サーバに多大な負荷をかけることになってしまいます。1000件を超えるようなデータであれば、ローカルな環境で実施することをお薦めします。


■挿入機能について  v.1.10からの新機能です

 v.1.10からできた項目です。

 今までの本スクリプトでは、データの作成と編集・削除しか行えませんでしたが、それだけでは不便ということで挿入機能をつけました。

 使用方法は単純です。
 まず、「ログ」を選択します。
 今まで「修正」「削除」となっていたところに「挿入」という項目が増えましたので、それを選択します。その時、同時にログのうち1つを選択して下さい。選択したログの前に、新しいデータが挿入されます。
 例えば、23番を選択した場合、新しいデータは23番のデータとなり、今まで23番だったデータは24番、24番だったデータは25番、以下26番、27番……と繰り上がっていきます。
 前後ページへのリンクは自動的に修正されますが、本文中に書かれたリンクを修正することはできません(それができたら神だよなぁ……)。ですので、もしも本文中にリンクを書いている場合、それはご自分で修正して下さい。

 新機能ですが非常に危ない機能でもありますので、できることならご自分の環境でも一度はテストをして下さい。その際、ログは必ず退避しておくようお願いします。この機能のせいで今まで書いたデータがぶち壊れた……と言われても、白砂は責任を負いません。


■質問など

 質問などはサポート掲示板の方にお願いします。
 いろいろ質問が出揃えば、FAQみたいなものも作ると思います。

掲示板はこちら


■開発履歴  古いバージョンもダウンロードできます(LZH版です)

v1.10 挿入機能をつけました。また、環境設定もHTMLシリーズ共通のものに変更しました。
v1.01 公開。別名人柱バージョン(笑)。とりあえずは動くと思います。

■謝辞/ひとこと

 Column HTMLを作成して、白砂のHPは実はこればっかになってしまいました(笑)。なにしろラクなんで。

 ただ、フレーム式だと、見出しに長い文字が使えない(2行にも3行にもなっちゃうんでカッコ悪くなっちゃう)という欠点があります。連載形式でちょっと長めのものを書きたい場合、ちょっと不便なんです。まぁ、元がコラム用CGIなんで当然なんですが……。

 というわけで作成したのが本スクリプトです。

 できるだけ見栄えをちゃんとしたかったので、目次のページ(index.htmlのページです)の作り方にはこだわりました。スクリプトが読める方は一度読んでみて下さい。結構面倒なことをしてます(笑)。特に、途中のページを削除した時の処理は一目見ただけでは判らないかもしれません。単に作り込みがヘタなだけかもしれませんが……(泣)。

 というわけで、白砂制作のスクリプト第2弾をお届けします。

白砂 青松