利用可能なデータ
- 一対多リレーションシップを持つリレーショナルデータベースを
サポートしています。
- 画像ファイルや PDF等のファイルを、
各レコードの値として登録することができます
(1件のレコードに対して、複数のファイルを登録することができます)。
また、各ファイルに対してサムネイルを作成したり、
ファイルにフィルタをかけることが可能です。
- Mac からファイルが送られた場合は、MacBinary かどうかを判別し、
もし MacBinary ならばデータフォークのみを取り出します。
- 改行文字が入力可能です。
また、"¥", "'" , "<" などの、Postgre SQL や HTML における
特殊文字が入力可能です。
- 空文字列を null値としてデータベースに格納します。
- 環境変数 HTTP_USER_AGENT からブラウザを判別して、
Windows/Mac の機種依存文字があればある程度適切に変換します。
データの検索
- 検索条件を解析するため、複雑な条件でも検索をかけられます。
- 絞り込み検索を行うことができます。
- 多くの種類の検索フォームから検索をかけることができます。
- 検索用カラムを利用して、柔軟な検索を行えます。
- システムの内部で利用されるカラムを検索条件に用いることができ、
したがってデータの作成時刻や作成者の名前で
検索をかけることができます。
- 1ページに表示するデータの件数を指定できます。
検索をかけた後で件数を変えることができます。
- セッションを利用しているため、
検索をかけたときのフォームの値を記憶しています。
- JOIN句を指定することができます。
- ORDER句を指定することができます。
データの詳細表示
- 詳細表示のページを複数ページに分けることができます。
- 有効なデータの詳細表示用のHTMLを静的に出力(エクスポート)
することができます。
フォームからのデータの追加/修正
- 各カラムに対して、入力された値にフィルタをかけることができます。
- 各カラムに対して、入力制限を設け、エラーや警告を出すことができます。
- 全カラムに対して、
入力された値に共通のフィルタをかけることができます。
- 複数のカラムに対して入力制限を設けることができます。
- 検索用カラムを利用できます。
- 修正の途中で外部からの処理でデータの状態を変えられたときは、
修正の内容を破棄します。
- 完全に同一の内容のデータが既に登録されている場合は、
そのデータを拒否し、その旨を出力します。
- 無効なデータを修正する前に警告を出すことができます。
- データの修正では、(同じ DID のデータのうち、状態が有効なデータは、
常に多くとも 1件になるように)
同じ DID のデータの状態を全て無効にした後で新たにデータを挿入します。
(この処理は atmic に行われます。)
データの削除(データの無効化)
- 基本的にデータをデータベースから消去することをしません。
代わりにデータの状態を無効にします。
- 検索結果のデータを一度に無効にすることができます。
- (安全のため)無効にするデータの条件とデータ件数を指定しなければならず、
実際に無効になるデータの件数が指定された値と異なる場合には、
データの削除を拒否します。
- 無効なデータをさらに無効にしようとすると、処理を拒否します。
CSV/タブ区切りファイルからの挿入
- CSV/タブ区切りファイルからデータベースへデータを挿入できます。
- ファイル中の改行コードを自動判別します。
- ファイル中の全てのデータについて、
エラーや警告・重複をチェックします。
- ファイルのチェックとデータベースへの挿入を別々に行います。
このため、チェックが終わった後で、
挿入をキャンセルすることができます。
- CSVファイルの行数が多いときは、
ブラウザに途中経過を表示することができます。
CSV/タブ区切りファイルへの書き出し
- 検索結果のデータをCSV/タブ区切りファイルへ書き出すことができます。
- 出力するファイルの文字コードを指定できます。
- 出力するファイルの改行コードを指定できます。
管理者向けの機能
- ログを残すことができます。
- 過去の特定の時刻の状態に戻せるようにデータが管理されています。
- データ定ファイルの一部を変更するだけで、
メンテナンスモードに入ることができます。
このとき、特定の IP 以外からアクセスに対し、
システムの利用を停止させることができます
(メンテナンス中であることを示すメッセージが出力されます)。
- テンプレートファイル中に Perl のスクリプトを埋め込むことができ、
したがって柔軟な記述が可能です。
- システム内部のエラーが発生したときは、
管理者にメールを送ることができます。
- nph-cgi に対応しています。
- suEXEC に対応しています。
- 各種のエラーメッセージを管理者が定義できます。
- CGI を複数用意して、各CGIにユーザ名を対応付けることができます。
これにより、一般用インターフェイスと事務局用インターフェイスを
分けることなどが可能です。
- CGIの各ユーザ名に対して、異なる設定を行うことができます。
- システムがサポートしていない機能でも、
後から比較的容易に追加できるように作られています
(残念ながらコアを変更しなければ追加できない機能も
きっと数多くありますが)。
例えば、用意されているCGIスクリプトの大半を、
コマンドラインベースのスクリプトに置き換えることなどが、
比較的容易に行えるはずです。