Changes between Initial Version and Version 7 of Ticket #1603


Ignore:
Timestamp:
2012/02/09 20:02:30 (14 years ago)
Author:
h_yoshimoto
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #1603

    • Property Owner changed from somebody to h_yoshimoto
    • Property Status changed from new to assigned
    • Property Priority changed from to
  • Ticket #1603 – Description

    initial v7  
    77 - 各プラグインに用意する差し込みテンプレートを標準テンプレートに差し込んで生成するトランスフォーマー機能 
    88 
    9 === ディレクトリ構成 === 
     9=== 簡易仕様 === 
    1010{{{ 
    11     - data/ -+- class/ -+- helper/    -+- SC_Helper_Plugin.php (プラグインヘルパークラス) 
     11■ プラグイン機能 ■ 
     12★簡単なサンプルのプラグインを添付しておりますので、実際に処理を追って頂ければと思います。 
     13 
     14▼ 処理の介入 
     15・処理への介入はフックポイント(ローカルフックポイント、スーパーフックポイント)を使用します。 
     16・プラグインにregist()関数を定義し、介入したい箇所のフックポイントと、コールバック関数をセットします。 
     17 
     18  ▽実行タイミング 
     19  ・フックポイント通過時にSC_Helper_Pluginが呼ばれ、有効なプラグインのシングルトンインスタンを生成します 
     20  ・SC_Helper_Pluginは全ての有効なプラグインのインスタンを生成し、フックポイントに応じてセットされているコールバック関数を実行します。 
     21 
     22  ▽フックポイント 
     23     - スーパーフックポイント 
     24        ・全てのページクラスで実行されます。 
     25        ・使用する際は、関数(preProcess, process)を定義します。 
     26        ・LC_Page、LC_Page_AdminのpreProcess, process通過時に実行されます。 
     27     - ローカルフックポイント 
     28        ・特定のページの特定箇所で呼び出されるフックポイントでです。使用するにはregist関数を定義します。 
     29       ・regist関数にフックポイント、コールバック関数を指定します。 
     30        ・指定したフックポイント通過時に指定のコールバック関数が実行されます。 
     31 
     32▼ テンプレートの変更 
     33・テンプレートファイルを解析し、プラグイン側の処理に従って要素を追加、削除し、再度テンプレートを生成します。 
     34・生成されたテンプレートはキャッシュファイルとして配置されます 
     35・ページを読み込む際に、該当ページにキャッシュファイルがある場合、キャッシュファイルを表示します。 
     36 
     37・テンプレートに変更を加える場合はplugin側にsetTemplateTransformer関数を定義します。 
     38   - setTemplateTransformer関数内には変更するテンプレートの指定、変更箇所(要素)の指定、変更内容を記述したテンプレートの指定を記述します。 
     39・インストール/アンインストール(テンプレート再生成)時に、有効なプラグインのsetTemplateTransformer関数が実行されます。 
     40・変更処理の加わったテンプレートがtemplates_cache/に生成されます。 
     41・Pageクラスはtemplates_cache/以下にキャッシュファイルがある場合はそちらを優先して表示します。 
     42 
     43■ ディレクトリ構成 ■ 
     44 
     45  - data/ -+- class/  -+- helper/    -+- SC_Helper_Plugin.php (プラグインヘルパークラス) 
    1246                       | 
    1347                       +- plugin/    -+- SC_Plugin_Template_Selector.php       (DOMを使用してテンプレートを生成するセレクタクラス) 
     
    1549                       |              +- SC_Plugin_Template_Transformer.php    (トランスフォーマー) 
    1650                       | 
    17                        +- downloads/ -+- plugin/ -+- 【各プラグインディレクトリ】 
     51                       +- downloads/ -+- plugin/ -+- 【各プラグインディレクトリ】 -+- プラグインコード.php (プラグインのメインクラスファイル) 
     52                                                                                   +- config.php (設定画面) 
     53                                                                                   +- logo.png (プラグインロゴ) 
    1854                                                  +- templates_cache/ (キャッシュ格納用ディレクトリ) 
    1955                                                  +- SC_Plugin_Base.php (プラグイン用基底クラス) 
     56                                      +- tmp/ (プラグインアップデート時のファイル展開用の一時ディレクトリ) 
    2057 
     58  - html/ -+- plugin/ -+- 【各プラグインhtmlディレクトリ】 -+- メディアファイル(js、css等) 
     59                                                            +- config.php (設定画面) 
     60                                                            +- logo.png (プラグインロゴ) 
     61           +- upload/ -+- temp_plugin/ -+- temp_plugin/ (プラグインファイルの一時ディレクトリ) 
     62 
     63▼ プラグインファイル 
     64  - Sample.tar.gz/ -+- Samlpe/ -+- Sample.php (プラグインメインクラス) 
     65                                +- config.php (設定クラス) 
     66                                +- logo.png 
     67 
     68 ▽プラグインメインクラス [必須] 
     69   -各処理を定義するプラグインの本体クラス 
     70   □定数定義 
     71     PLUGIN_NAME      :プラグイン名 [必須] 
     72     PLUGIN_VERSION   :プラグインバージョン 
     73     COMPLIANT_VERSION:本体対応バージョン 
     74     AUTHOR           :作者 
     75     DESCRIPTION      :説明 
     76     PLUGIN_SITE_URL  :プラグイン用のサイトURL 
     77     AUTHOR_SITE_URL  :作者用のサイトURL 
     78     FOOK_POINTS      :使用するフックポイント 
     79 
     80   □関数 
     81   各関数はそれぞれの(インストール、アップデート等)処理で実行される。プラグイン側で必要に応じた処理を記述する。 
     82     install() 
     83       インストール時に実行される。 
     84       ファイルのコピー、DB更新などをプラグインが必要とする場合は、この処理で行う。 
     85     uninstall() 
     86       削除時に実行される。 
     87       インストール時に作成したファイル、データ等を削除する。 
     88     update() 
     89       アップデート時に実行される。 
     90     enable() 
     91       有効へ更新時に実行される。 
     92     disable() 
     93       無効へ更新時に実行される。 
     94     setTemplateTransformer() 
     95       テンプレート生成時に実行される。 
     96     regist() 
     97       SC_Helper_Plugin初期化(ロード)時に実行される。 
     98 
     99 ▽設定クラス(config.php) 
     100   config.phpがhtml/plugin/プラグインディレクトリ以下に存在する場合、config.phpへのリンクをプラグイン一覧に表示します. 
     101   プラグインに設定画面が必要な場合はconfig.phpを作成し、インストール時にhtml/plugin/プラグインディレクトリ以下に保存して下さい。 
     102 
     103 ▽ロゴファイル(logo.png) 
     104   一覧にプラグインロゴを表示させる場合は、logo.pngファイルをインストール時にhtml/plugin/プラグインディレクトリ以下に保存して下さい。 
     105   サイズは(65x65)とします。 
     106  *ロゴファイルが無い場合はnoimageを表示. 
    21107}}}