ビューヘルパの解説 1
標準で利用できるビューヘルパ
よく使われる要素のビューヘルパはZend Frameworkで標準的に準備されています。では、まずフォームに関するビューヘルパについて説明します。サンプルでは、中央にあるフォームがこれらのヘルパを利用しています。
<?php echo $this->form('inputForm', array('action' => '/Index/index', 'method' => 'post'), false); echo $this->formText('dateTime', '', array('size' => '30')); ... echo $this->formText('newmemo', '', array('size' => '60')); ... echo $this->formSubmit('', $this->translate('submit')); echo '</form>';
まず、先頭の$this->formはFORMタグを出力するものです。ここで2つ目の引数にFORMタグの属性を配列で与えています。その後のformTextはテキスト入力を、formSubmitはサブミットボタンを出力するためのビューヘルパです。formTextの2つ目の引数で配列を渡していますが、ここではテキスト入力の幅を指定しています。
この他にもHTMLのフォームを出力するためのビューヘルパにはさまざまなものがあります。一覧を次に示します。
| ヘルパ名 | 引数 | 説明 |
| form | $name、 $attribs、 $content | FORMタグを作成。$contentを省略したり、falseを指定すると開始タグだけを作成する。$contentsの中身があった場合は$contentsを囲むようなFORMタグを作成する。 |
| formText | $name、 $value、 $attribs | テキスト入力を作成。 |
| formPassword | $name、 $value、 $attribs | パスワード入力を作成。 |
| formHidden | $name、 $value、 $attribs | 隠し要素を作成。 |
| formSubmit | $name、 $value、 $attribs | 送信ボタンを作成。 |
| formReset | $name、 $value、 $attribs | フォームのリセットボタンを作成。 |
| formTextarea | $name、 $value、 $attribs | テキストエリアを作成 |
| formButton | $name、 $value、 $attribs | フォームのボタンを作成。 |
| formCheckbox | $name、 $value、 $attribs、 $options | チェックボックスを作成。$optionsは配列で、1つ目の要素がチェックボックスがチェックされているときの値、2つ目の要素がチェックボックスがチェックされていないときの値になる。標準ではそれぞれ'1'と'0'。 |
| formFile | $name、 $value、 $attribs | ファイル選択を作成。 |
| formLabel | $name、 $value、 $attribs | ラベル要素を作成。 |
| formMultiCheckbox | $name、 $value、 $attribs、 $options、 $listsep | 複数のチェックボックスを作成。$optionsは連想配列で、$valueは選択されている値。$listsepは各チェックボックスを区切る要素で、標準では"<br />"。 |
| formRadio | $name、 $value、 $attribs、 $options | ラジオボタンを作成。$optionsは連想配列で、各要素の鍵がラジオボタンのvalue属性、要素の値がラジオボタンのlabel属性となる。 |
| formSelect | $name、 $value、 $attribs、 $options | オプション要素を作成。$optionsは連想配列で、各要素の鍵がラジオボタンのvalue属性、要素の値がラジオボタンのlabel属性となる。$valueのオプションが最初に選択されている状態となる。 |
あと一点気をつけないといけないのが、このformヘルパ使ってFORMタグを作成する際にはname属性を指定することができないようです。試しに属性を指定する配列に'name' => 'inputForm'を加えてみてください、無視されると思います(実は、内部で$nameに上書きされた上に無視されてしまいます)。
また、これ以外にも次のようなビューヘルパがあります。
| ヘルパ名 | 引数 | 説明 |
| url | $urlOptions、 $name、 $reset | $nameで与えられたルートのassembleメソッドを利用してURLを作成する。$urlOptionsURLはそのassembleメソッドに渡される引数。 |
| htmlList | $items、 $ordered、 $attribs、 $escape | HTMLのリスト要素(ulやol)を作成。$itemsが多次元配列だった場合、入れ子のリストを作成する。また、$escapeがtrueだった場合、各要素にエスケープ処理を行う。$orderedがtrueだった場合順序つきのリスト(ol)、falseだった場合は順序なしのリスト(ul)を作成する。 |
urlヘルパは、サンプルの最後尾にあるリンクを生成するのに使われています。urlヘルパの$urlOptionsでは、どのようなものを与えれば良いのか分かりづらいかと思いますが、実は使っているルータによって変化します。例えば、標準のルータを利用する場合には次のようになります。
$this->url(array('controller'=>'Smarty', 'action'=>'noView'));
このコードは、標準のルータでアクションコントローラをSmartyに、アクションをnoViewに指定した場合のURLを作成します。この場合には/Smarty/noViewを作成します。
