[[開発日記/2002-07-02]]にも書きましたが、今後の作業を行いやすくするために、ソースを大幅にいじっています。~ 今のところ下記のようにクラス分けを行うつもりです。まだまだ企画段階ですが。~ とりあえず、中身的にはTranslationEngineを独立させるんで、ページごとにエンジンの切り替えができるようにしようかなと。~ そうするとページによっては、そのままHTML使えるとか、ソースコード用のページならキーワードに色がつくページとか。~ ファイル部分もラップするので、あとで高速化の為DBなどへの対応も可能です。 #comment // ウエブインターフェース部分 // このクラスから各処理を行います。 class Interface { // インターフェースを初期化 function Interface(); // HTTP経由でくる変数 var $post, $get, $vars; // 編集を実行 function do_edit(); // プレビューを実行 function do_preview(); // 書き込みを実行 function do_write(); // 一覧を実行 function do_list(); // 最終更新を実行 function do_recent(); // 差分を実行 function do_diff(); // 編集フォーム function edit_form($postdata,$data,$add=false); } // ページを管理 class PageStorage { // ページストレージを初期化 function PageStorage(); // ページを取得 function get_page(); // = Page // ページが存在するか? function page_exists(); // = boolean // ページ名リストを出力 function get_list(); // = array(pagename,..) // 更新日順ページ名リストを function get_list_order_update(); // = array(pagename,..) // 検索を実行 function search($word,$type="AND",$non_format=0); // = array(pagename,..) } // ページ class Page { // このページのソースを取得 function get_source(); // = string // このページのソースを設定 function set_source($src); // = boolean // ページのプロパティを設定 function set_properties($prop); // array('key'=>value) // ページのプロパティを取得 function get_properties(); // array('key'=>value) // このページのデフォルトソースを取得 function get_defaultsource(); // = string // このページの最終更新日を取得 (UNIX timestamp) function get_lastupdate(); // = int // このページが表示可能か (これがfalseでもget_sourceは可能) function is_visible(); // = boolean // このページが編集可能か (これがfalseでもset_sourceは可能) function is_editable(); // = boolean // このページが凍結されているか (これがfalseでもset_sourceは可能) function is_freeze(); // = boolean // このページのタイプ function get_type(); // = string // ページをhtmlに変更 function convert_html(); // = string (html) // このページのバックアップオブジェクトを初期化 function backup(); // = Backup } // バックアップを管理します class Backup { // バックアップを初期化 function Backup($page); // バックアップをセット function set($src); // = int (バックアップ世代数) // バックアップを取得 function get($gen); // = string // バックアップ世代数 function count(); // = int } // Wikiやその他フォーマットからHTMLに変換 class TranslateEngine { // トランスレーションエンジンを初期化 function TranslateEngine($pagestorage); // クラス内変数 var $pluginmanager; // = PluginManager // $srcからhtmlを生成 $pagenameはページ名, $varsはその他変数を指定 function run($src, $pagename, $vars); // = string // service functions // pagenameがBracketNameだった場合に、Bracketを除去 function strip_bracket($pagename); // = string // このページからのリンクリスト function linkto(); // = array(pagename); // このページへのリンクリスト function linkfrom(); // = array(pagename); // $strがWikiNameか? function is_wikiname($str); // = boolean // $strがBracketNameか? function is_bracketname($str); // = boolean // $strがInterWikiNameか? function is_interwikiname($str); // = boolean // $nameのリンクを作成 function make_link($name); // = string (html) // $strにstr_rulesユーザルールを適用 function do_strrules($str); // = string // $strにline_rulesユーザルールを適用 function do_linerules($str); // = string } // プラグイン管理用 class PluginManager { // プラグインマネージャーを初期化 function PluginManager(); プラグイン用に未定義の変数を設定 function set_plugin_messages($messages) // プラグイン(action)が存在するか function exist_plugin_action($name); // プラグイン(convert)が存在するか function exist_plugin_convert($name); // プラグインの初期化を実行 function do_plugin_init($name); // プラグイン(action)を実行 function do_plugin_action($name); // プラグイン(convert)を実行 function do_plugin_convert($plugin_name,$plugin_args); } RIGHT: written at fist by [[ゆう]]