*画面作成について [#pee32382]
Magic3フレームワークでは、Magic3の[[基本思想]]に基づいて、非常に単純な仕組みで個々のモジュールが結びついています。~
このページでは、Magic3の画面生成方法から、フレームワークの役割とモジュールの結びつき方をより理論的にについて説明していきます。~
Magic3では、画面を動的に生成する方法として、Web画面を視覚的に矩形で区切った単位をウィジェットという名前の部品とし、~
「福笑い」のようにウィジェットを切り貼り的にレイアウト可能とすることによって、自由自在に画面が構築できます。~
この仕組みを実現するために、Magic3では画面定義テーブルと、画面マネージメントの仕組みを内包しています。
*ウィジェット [#b662e395]
ウィジェットを単体でみたとき、ウィジェット自体は、index.phpで起動され単にテキストを出力するだけのプログラムです。~
以下の図のように、ウィジェットごとにディレクトリに分けられ、それぞれのディレクトリにindex.phpから始まるプログラムが格納されています。~
(Magic3全体の[[ディレクトリ構成]])~
個々のウィジェットは、完全に独立して存在します。互いに依存性はありません。~
出力するために必要とする資源に関しては、個々のウィジェットの自由になっています。~
DBからデータを取得してもかまいませんし、まったくDBにアクセスしなくてもかまいません。~
Magic3フレームワークからは、個々のウィジェットのindex.phpを起動し、その出力を取得するだけです。
#ref(http://www.magic3.org/doc/add_image/managescreen1.gif,nolink)
*デザインテンプレート [#od60c3f8]
ウィジェットが「福笑い」の目や鼻などの部品とすると、のっぺらぼうの顔の輪郭の絵にあたるものが、デザインテンプレートです。~
デザインテンプレートの土台の上にウィジェットを配置していくことで、Web画面を構成します。~
デザインテンプレートは、HTML,CSS,画像等で生成され、サイトの基本デザインを形成するものですが、~
以下の図のように任意の文字列で位置を示すタグが含まれています。タグ名と画面上の実際の位置は自由に定義します。
#ref(http://www.magic3.org/doc/add_image/managescreen2.gif,nolink)
*画面マネージメント [#z7c4fc87]
上記のように、単にHTMLを吐き出すだけのプログラムであるウィジェットと、埋め込み位置を示すタグを埋め込んだHTML~
であるテンプレートの組み合わせを管理し、出力する仕組みがMagic3の画面生成の中核です。~
画面構成を管理するDBには、タグ名とウィジェット名のマッピングが格納されています。~
Magic3フレームワークは、画面生成時にこのマッピングテーブルの対応を読み込み、テンプレートにウィジェットの出力を埋め込んでいきます。~
埋め込み方法は、タグポジションに関連したウィジェットをインデックス順に起動し、出力を埋め込むといった単純な仕組みです。~

#ref(http://www.magic3.org/doc/add_image/managescreen3.gif,nolink)