多くのCMにはテンプレートテーマ機能があり、設定を通じてこの機能を実装するにはどうすればよいですか?今日はこの問題について議論します。
ご存知のとおり、laravel レンダリング テンプレートは View::make() を通じて実装され、テンプレート ファイルのパスを明示的に指定する必要があります:
コードは次のとおりです:
この場合、テンプレート テーマ関数を自分で実装する必要があるのは、テーマ名に対応するディレクトリにテンプレート ファイルを配置することだけです。たとえば、デフォルトのテーマがデフォルトの場合、次のように記述します。
コードは次のとおりです:
カスタムテーマカスタム:
コードは次のとおりです:
設定ファイルからテーマ名を読み取ります:
コードは次のとおりです:
これは基本的にテンプレートテーマの機能を実現しますが、まだ問題があります。つまり、カスタムテーマはすべてのデフォルトテーマのすべてのテンプレートを実装する必要があります。そうしないと、一部のページテンプレートファイルでエラーが発生するため、さらなる最適化が必要です:
コードは次のとおりです:
つまり、テンプレートをレンダリングする前に、まずテンプレート ファイルが存在するかどうかを確認し、存在しない場合は、デフォルト テーマの対応するテンプレートが使用されます。
非常に多くのコード行があるため、この時点で、Response::view() が View::make() と同等であることがわかり、Response にもカプセル化が行われます。メソッド Response::macro() メソッドを使用してマクロを定義でき、ロジックをマクロにカプセル化できます:
コードは次のとおりです:
使用:
コードは次のとおりです:
関数インデックス()テンプレートに渡される変数は、Response::render の 2 番目のパラメータを渡す必要があることに注意してください。
今日のチュートリアルはここまでです。後で詳しく分析していきます。気に入っていただければ幸いです。
http://www.bkjia.com/PHPjc/962929.html