ビューエレメント
ビューエレメントは、HTMLテンプレートやJSON, その他のレンダラによって解釈される、レンダラに依存しない抽象化されたテンプレート変数です。ビューエレメントを使う際に、ユーザは実際に使われるレンダラを意識する必要はありません。設定されたビューエレメントは、実際に使われるレンダラによって適切な形式に変換されます。このため、ビューエレメントはHTMLテンプレート内では単にテンプレート変数として表現されることになります。
ビューエレメントの設定
下記は、Piece_Examples_Basicsパッケージ1に含まれるサンプルアプリケーションから、ビューエレメントの設定部分とHTMLテンプレートからの参照部分を抜粋したものです。
<?php ... function doActivityOnDisplayConfirmation() { $flexyElement = &new Piece_Unity_Service_FlexyElement(); $flexyElement->addForm($this->_flow->getView(), $this->_context->getScriptName()); $viewElement = &$this->_context->getViewElement(); $viewElement->setElementByRef('user', $this->_user); $viewElement->setElement('useAHAH', $this->_useAHAH); $this->_setTitle(); } ...
<h4 class="date-header">{title}</h4> <p>First Name: {user.firstName}</p> <p>Last Name: {user.lastName}</p> ...
ビューエレメントを設定するには、最初にPiece_Unity_ViewElementオブジェクトをPiece_Unity_ContextオブジェクトからgetViewElement()経由で取得する必要があります。Piece_Unity_ViewElementオブジェクト取得後は、必要に応じてsetElement()/setElementByRef()をコールすることでビューエレメントを設定することができます。設定されたビューエレメントは、HTMLテンプレート内で通常のテンプレート変数として参照することができます。
- 1. Piece_Examples_Basics 1.0.0
ビルトインビューエレメント
Piece_Unityの実行環境は多くのビューエレメントを自動的に設定します。これらは、ビルトインビューエレメントと呼ばれています。ビルトインビューエレメントを適切に使うことで、HTMLテンプレートの抽象度を高め、アプリケーションのポータビリティを向上させることができます。下記はビルトインビューエレメントの一覧です。
| 名称 | 値 | 用途 | 設定元 |
| __request | Piece_Unity_Requestオブジェクト | リクエストパラメータへのアクセス | Viewプラグイン? |
| __session | Piece_Unity_Sessionオブジェクト | セッション変数へのアクセス | Viewプラグイン? |
| __eventNameKey | イベント名として認識されるリクエストパラメータの名称 | Viewプラグイン? | |
| __scriptName | 現在のリクエストのスクリプト名 | URLの抽象化 | Viewプラグイン? |
| __basePath | 現在のリクエストのスクリプトが存在するディレクトリの、ドキュメントツリーのトップからの相対URL | URLの抽象化 | Viewプラグイン? |
| __sessionName | セッション名 | セッションIDの埋め込み | Viewプラグイン? |
| __sessionID | セッションID | セッションIDの埋め込み | Viewプラグイン? |
| __appRootPath | Webから見えるアプリケーションの、ドキュメントツリーのトップからの相対URL | URLの抽象化 | Viewプラグイン? |
| __url | Piece_Unity_URLオブジェクト | 適切なURLの生成 | Viewプラグイン? |
| __flowExecutionTicket | フロー実行チケット | Dispatcher_ContinuationPluginプラグイン | |
| __continuation | Piece_Flow_Continuationオブジェクト | フロー変数へのアクセス | Dispatcher_ContinuationPluginプラグイン |
| __flowExecutionTicketKey | フロー実行チケットとして認識されるリクエストパラメータの名称 | Dispatcher_ContinuationPluginプラグイン | |
| __flowNameKey | フロー名として認識されるリクエストパラメータの名称 | Dispatcher_ContinuationPluginプラグイン | |
| __content | HTMLコンテンツ | レイアウトシステムの使用 | Renderer_HTMLPluginプラグイン? |
上記の他にも、バリデーションの結果を保持するPiece_Right_ResultsオブジェクトがPiece_Unity_Validationクラスによって設定されます。また、この一覧にはPiece_Unityコンポーネントが設定するビューエレメントは含まれていないことに注意してください。

