Fuelphp-themes
FuelPHP-テーマ
テーマは、アプリケーションの複数のルックアンドフィールを有効にするために使用されます。 アプリケーションの機能を乱すことなく、アプリケーションのルックアンドフィールを変更するオプションをユーザー/開発者に提供します。 アプリケーションには、1つ以上のテーマを含めることができます。 各テーマは独自のフォルダーにあります。 この章でテーマを作成する方法を学びましょう。
テーマ設定
FuelPHPは、テーマ用に個別の設定ファイル fuel/app/config/themes.php を提供します。 すべてのテーマ関連の設定は、このファイルで構成されます。 主なテーマ設定のいくつかは次のとおりです-
- active -アクティブなテーマの名前
- fallback -アクティブなテーマが見つからない場合のフォールバックテーマの名前
- paths -テーマを検索および検索するパスの配列
- assets_folder -通常、アセットはWebからアクセスできるようにDOCPATH内にある必要があります。 DOCPATH内のテーマのアセットフォルダーを参照します
- view_ext -テーマのビューファイルの拡張子
- info_file_name -テーマに関する拡張情報を持つファイル
- require_info_file -テーマ情報ファイルinfo_file_nameを要求するかどうか
- use_modules -現在のモジュールを使用するかどうか
テーマファイルの簡単な構成は次のとおりです。
ここで設定しました、
- tpthemesとしてのアクティブおよびフォールバックテーマの名前
- fuel/app/themes/としてのテーマフォルダーのパス */public/assets/tpthemes/としてのアセットフォルダーのパス
テーマクラス
構成が完了したら、FuelPHPが提供するThemeクラスを使用して、テーマの機能を実行できます。 この章のThemeクラスで利用可能なメソッドについて教えてください。
実例
インスタンスメソッドを使用すると、新しいテーマを作成できます。 次の2つのパラメーターがあります。
- $ name -テーマの名前(オプション)
- $ config -テーマ構成配列(構成セクションで見られるものと同じ)
両方のパラメーターはオプションです。 パラメーターが指定されていない場合、構成ファイルからデフォルトのテーマを取得しようとします。 テーマ名が指定されている場合、構成ファイルから他の設定を取得しようとします。 構成も指定されている場合、構成ファイルの設定ではなく、ユーザー指定の設定が使用されます。
フォージ
forgeはインスタンスに似ていますが、構成配列のみを持つ点が異なります。
view
- viewメソッドは、バックグラウンドで* View
- forge()*を使用します。 ビューメソッドが、fuel/app/views/フォルダーではなく、themesフォルダー内のfuel/app/themes/tpthemes/内のビューファイルを検索することを除いて、両方のAPIは似ています。
プレゼンター
- presenterメソッドは、バックグラウンドで* Presenter
- forge()*を使用します。 プレゼンターメソッドがテーマフォルダー、fuel/app/views/フォルダーではなくfuel/app/themes/tpthemes/内のビューファイルを検索することを除いて、両方のAPIは似ています。
asset_path
asset_pathメソッドは、現在選択されているテーマに関連して要求されたアセットへのパスを返します。
add_path
add_pathメソッドを使用すると、実行時にテーマパスを追加できます。
add_paths
add_pathsメソッドを使用すると、実行時に複数のテーマパスを追加できます。
活動的
activeメソッドは、アクティブなテーマを設定できます。
後退する
fallbackメソッドにより、フォールバックテーマを設定できます。
get_template
get_templateメソッドは、現在ロードされているテーマテンプレートのViewインスタンスを返します。
set_template
set_templateメソッドを使用すると、ページのテーマテンプレートを設定できます。
find
テーマへのパスが見つかった場合、findはtrueを返し、そうでない場合はfalseを返します。
all
allメソッドは、すべてのテーマパスのすべてのテーマの配列を返します。
情報を取得
get_infoメソッドは、テーマ情報配列から特定の変数を返します。 テーマが指定されていない場合、アクティブなテーマの情報配列が使用されます。
ここでは、色を取得するメソッドは「newtheme」で定義されています。 定義されていない場合、デフォルトの色として「緑」が使用されます。
set_info
set_infoメソッドは、アクティブテーマまたはフォールバックテーマに変数を設定します。
set_partial
set_partialメソッドを使用すると、ページテンプレートの名前付きセクションにパーシャルビューを設定できます。 通常、それはHMVC呼び出しを介して行われます。
get_partial
get_partialメソッドを使用すると、ページテンプレートの名前付きセクションで以前に設定されたパーシャルのビューインスタンスを取得できます。
実施例
従業員アプリケーションにテーマサポートを追加しましょう。
- ステップ1 *-次の内容の新しいテーマ設定ファイルfuel/app/config/theme.phpを追加します。
- ステップ2 *-テーマtpthemesの新しいアセットフォルダーpublic/assets/tpthemes/cssを追加します。
- ステップ3 *-最新のブートストラップをダウンロードし、bootstrap.min.cssをpublic/assets/tpthemes/cssの下に配置します
- ステップ4 *-新しいフォルダーtpthemesをfuel/app/themesフォルダーの下に追加します。
- ステップ5 *-新しいレイアウトテンプレートを追加して、fuel/app/themes/tpthemes/layout/にbootstraplを追加し、次のコードを追加します。
ここでは、テーマインスタンスとアセットメソッドを使用して、ブートストラップファイルのパスを取得しました。 ヘッダーとコンテンツの2つの変数を定義しました。 header は、ヘッダーの詳細を動的に設定するために定義されます。 content は、ページの実際のコンテンツを動的に設定するために定義されています。
- ステップ6 *-次のように、fuel/app/themes/tpthemes/partialsに新しいヘッダーテンプレートheader.phpを追加します。
ステップ7 *-新しいコントローラー、 *ThemeSample をfuel/app/classes/controller/themesample.phpに、 action をaction_indexに次のように作成します。
ここでは、 Theme クラスのメソッドを使用してテーマの初期化を行うために、 before および after メソッドを使用しました。 使用されるメソッドのいくつかは、instance、get_template、set_template、およびviewです。
- ステップ8 *-最後に、次のように、fuel/app/themes/tpthemes/themesampleでindex.phpのインデックスアクションのビューを追加します。
ここでは、コントローラーで動的に設定する必要がある1つの変数messageを定義しました。
新しいテーマ tpthemes を作成し、それを ThemeSample コントローラーで使用しました。 次に、URL http://localhost:8080/themesample/indexをリクエストして結果を確認します。 結果は次のとおりです。