adiaryからSatsuki systemの本体部分を抜き出してきた再配布ファイルです.
Satsuki system 本体とデータベースを扱うライブラリの基本セット(テンプレートセット)になっています.
adiary自体はadiaryのダウンロードからダウンロードできます.
以下がSatsuki systemを使うための基本セットになります. 一部,データベース周りや自動で読み込まれる*_autoファイルなどは省略しています.
[basic] |-- [skelton] | |-- main.html | `-- error.html |-- [lib] | `-- [Satsuki] | `-- Application.pm |-- Application.cgi `-- Application.conf.cgi
スケルトンファイルをコンパイルしたファイルがキャッシュされます.
このフォルダは書き込みを許可しておく必要があります.
疑似データベースを利用するときなど,データとして保存されるべきファイルが保存されます.
このフォルダは書き込みを許可しておく必要があります.
Satsuki systemの肝です.
プログラマはこのフォルダの下に各ページのスケルトンを置きます.
ここで配布している基本セットではクエリーとしてスケルトン名を指定することでスケルトンを切り替えられるようになっています.
skelton/test.html がある場合,このスケルトンは
application.cgi?test
として読み出すことができます.
フォームアクションを処理するためのスケルトンです. ここで配布している基本セットではPOSTされたデータの中にactionが指定されている場合,このフォルダにある対応したアクションスケルトンが自動的に呼び出されるようになっています.
Satsuki systemの本体が入ります. また,自作したモジュールもここに保存することになります.
Applicationという名前は自由に変更することができます.
直す場合はすべて統一して直すようにしてください.
直すべき場所は以下の5カ所です.
プログラムのスタートアップになります.特に変更する必要はありません.
スタートアップcgiと設定cgiは同じファイル名にする必要があります.
プログラムの設定ファイルです. このファイル名はスタートアップcgiと同じ名前にする必要があります.
プログラムのための設定ファイルになります. ここでプログラムの設定やメインクラスのロードを行います.
06: ---------------------------------------- 07: ○基本設定 08: ---------------------------------------- 09: <$v=new> 10: <$Skelton_dir = 'skelton/'> スケルトンディレクトリの指定.他のディレクトリを指定することもできますが非推奨です. 11: <$data_dir = 'data/'> データディレクトリの指定.同上.
13: ---------------------------------------- 14: ○動作設定 15: ---------------------------------------- 16: <$v=Main=loadpm("Application")> メインクラスのロード.SatsukiフォルダにあるApplication.pmをロードします. 17: 18: <$v.default_skelton = "main"> デフォルトで表示するスケルトンを指定します. 19: <$v.error_skelton = "error"> エラーが発生したときに表示するスケルトンを指定します.
スケルトンで必要になるメソッドなどを定義するメインクラスになります. Application.conf.cgiにおいて,このパッケージ名を指定します. 少なくとも,パッケージの指定とmainメソッドの定義をする必要があります.
そのままperlスクリプトなので詳細は省きます.
: 08: package Satsuki::Application; # ファイル名と同じパッケージ名にします 09: use Satsuki::AutoLoader; 10: #------------------------------------------------------------------------------- 11: our $VERSION = '1.00'; : 34: ############################################################################### 35: # ■メイン処理 36: ############################################################################### 37: sub main { : 48: # 初回起動の確認 56: # Query処理 71: # action (POST) の処理 78: # 情報の取得 88: # cookie 96: # スケルトンの指定 : 108: # 出力 109: $self->output_html($skelton); 110: return 0; 111: } : 116: #------------------------------------------------------------------------------ 117: # ●HTMLの生成と出力 118: #------------------------------------------------------------------------------ 119: sub output_html { : 132: } 133: 134: #------------------------------------------------------------------------------ 135: # ●エラーを表示して終了 136: #------------------------------------------------------------------------------ 137: sub error { : 143: }
重要なのは8行目のパッケージの指定,AutoLoaderの利用,mainルーチンの処理です.
パッケージ名はファイルと同じ名前にしておく必要があります.ここで指定された名前を元にAutoLoaderは分割されたパッケージファイルのロードを行います.
mainメソッドではこのアプリケーションにおける基本的な前処理と処理すべきスケルトンの決定をします.
出力の対象となるスケルトンファイルです.
基本的にhtmlそのままですが,特殊なタグを利用することによりSatsuki systemに処理をさせることができます.