[IT168 特別記事] Dwoo に関する前回のチュートリアル (PHP 開発に必須、PHP テンプレート エンジン Dwoo を段階的に学習します) では、Dwoo の基本的な使い方について説明しました。この記事では、プラグイン メカニズムの記述や一般的な PHP フレームワークとの統合方法など、Dwoo の高度な使用法についてさらに説明します。
1. Dwoo でのテンプレートの継承
Dwoo の強力な機能の 1 つは、テンプレートの継承をサポートしていることです。これは非常に簡単に実装できます。親テンプレートを定義するだけで、子テンプレートが親テンプレートを継承し、さまざまな新しい機能を子テンプレートに定義できます。賢明な開発者は、この機能を上手に活用して、作業の重複を減らします。
Dwoo でテンプレートを継承する鍵となるのは、テンプレートが別のテンプレートを継承できるようにする「拡張」プラグイン メカニズムです。この機能をよりよく理解するために、次の例を示します。以下に示すように、base.tpl という名前の基本クラス テンプレートがすでに存在すると仮定します。このテンプレートには、ナビゲーション領域とコンテンツ領域の 2 つの領域が含まれています。
<html> |
ここで、一部のページで水平ナビゲーション バーを使用する必要があると仮定すると、基本クラスのテンプレート ページを継承するだけでよく、次のようにナビゲーション バーのスタイルを再定義できます。このコードは子として定義します。 tpl:
{extends "base.tpl"} |
ここで、{extends “base.tpl”}は親クラスのテンプレートを継承することを示すために使用されており、ここの{block “nav”}領域ではナビゲーションバーの内容が書き換えられ、最終的な出力は以下のようになります:
次に、一部のページで追加のサブナビゲーション メニューが必要であるとします。この場合、次のコードを使用できます。
extends "child.tpl"} {block "nav"} {$dwoo.parent} <div id="sub-nav"> <h2>{$subtitle}h2> <ul> {loop $items} <li><a href="#">{$item}a>li> {/loop} ul> div> {/block} {block "content"} <div id="content"> This is content for the Dining page. div> {/block} |
ここで、{$dwoo.parent} は親クラス テンプレートを呼び出すために使用されます。ここでは child.tpl テンプレートが継承されます。つまり、親クラス テンプレートのナビゲーション バーのコンテンツが呼び出され、A が呼び出されます。ここで垂直ナビゲーション バーが再定義され、コンテンツ領域のコンテンツもここで書き換えられ、親テンプレートの対応するコンテンツ領域のコンテンツがカバーされることに注意してください。