:CategoryDev

開発日記/2002-07-02にも書きましたが、今後の作業を行いやすくするために、ソースを大幅にいじっています。
今のところ下記のようにクラス分けを行うつもりです。まだまだ企画段階ですが。

とりあえず、中身的にはTranslationEngineを独立させるんで、ページごとにエンジンの切り替えができるようにしようかなと。
そうするとページによっては、そのままHTML使えるとか、ソースコード用のページならキーワードに色がつくページとか。

ファイル部分もラップするので、あとで高速化の為DBなどへの対応も可能です。


// ウエブインターフェース部分
// このクラスから各処理を行います。
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
	
}


// TranslateEngine生成クラス
class TranslateEngineFactory {
	// $typeにあったTraslateEngineクラスを生成 
	function create($type);
}

// 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 PluginFactory {
	
	// プラグインマネージャーを初期化
	function PluginManager();
	
	// プラグインを取得
	function get_plugin($name);
	
	// プラグインが存在するか?
	function plugin_exists($name);
	
}


class Plugin {
	
	// プラグインの初期化を実行
	function Plugin();
	
	// プラグイン(action)を実行
	function do_action($name);
	
	// プラグイン(convert)を実行 $page=呼び出し元ページ
	function do_convert($plugin_args, $vars, $page);
	
	// actionメソッドが存在するか
	function exist_action($name);
	
	// convertメソッドが存在するか
	function exist_convert($name);
	
// service function
	// 初期メッセージを設定します
	function set_messages($messages);	// = void
	
}
written at first by ゆう

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2009-04-04 (土) 23:54:27
Site admin: PukiWiki Development Team

PukiWiki 1.5.3+ © 2001-2020 PukiWiki Development Team. Powered by PHP 5.6.40-0+deb8u12. HTML convert time: 0.305 sec.

OSDN