new HTML_Template_Flexy_Element -- クラスのコンストラクタ
説明
Flexy は、単一の軽量なクラスですべての HTML タグを表します。
クラスのすべての変数はパブリックとなり、それを使用することができます。
汎用的な代入メソッドや変換メソッドが使用できます。
toHtml() メソッドで、標準の HTML ではなく XHTML を出力させるには、
$element->setAttributes(array('flexy:xhtml'=>true)); を使用するか、
あるいは flexy:xhtml="true" をテンプレート内の要素の属性に指定します。
パブリックプロパティ
- string
$element->tag
html の要素名。例. img は <img...。
- array
$element->attributes
要素の属性。
- array
$element->children
内部に保持するすべての子要素。
toHtml() を実装する任意のオブジェクト、あるいは文字列を指定します。
- string
$element->override
toHtml() がコールされた際に、タグの値ではなくこの値が出力されます。
- string|object
$element->prefix
文字列、あるいは toHtml() メソッドを実装するオブジェクトで、
toHtml() の際にタグの HTML の前に返されます。
- string|object
$element->suffix
文字列、あるいは toHtml() メソッドを実装するオブジェクトで、
toHtml() の際にタグの HTML の後に返されます。
- mixed
$element->value
要素を作成する際に、すべての定義の後でマージされます。
値をここで代入します。toHtml() の際に toValue() メソッドがコールされ、
select の選択肢やチェックボックスの内容、入力値が適切に設定されます。
注意
この関数は、スタティックにコールする
ことはできません。
例
例 47-1要素を使用してテンプレートを変更する $form = new HTML_Template_Flexy();
$form->compile('some_file_name');
// インスタンスを作成します (詳細は何も設定する必要がないことに注意しましょう)
$elements['test'] = new HTML_Template_Flexy_Element;
// 属性を変更します
$elements['test']->attributes['class'] = 'bold';
// 値を設定します
$elements['test']->setValue('Fred');
// それを何かでラップします
$elements['test']->prefix = '******';
$elements['test']->suffix = '!!!!!!';
// 異なる型の要素
$elements['test_textarea'] = new HTML_Template_Flexy_Element;
$elements['test_textarea']->setValue('Blogs');
// select のオプション
$elements['test_select'] = new HTML_Template_Flexy_Element;
$elements['test_select']->setOptions( array(
'123' => 'a select option',
'1234' => 'another select option'
));
$elements['test_select']->setValue('1234');
// チェックボックス
$elements['test_checkbox'] = new HTML_Template_Flexy_Element;
$elements['test_checkbox']->setValue(1);
$elements['test_checkbox']->setAttributes(array('flexy:xhtml'=>true));
// 配列形式のチェックボックス
$elements['test_checkbox_array[]'] = new HTML_Template_Flexy_Element;
$elements['test_checkbox_array[]']->setValue(array(1,2));
// ラジオボタン
$elements['test_radio'] = new HTML_Template_Flexy_Element;
$elements['test_radio']->setValue('yes');
$form->outputObject(new StdClass, $elements);
// 以下の例では新しく追加したデータは既存の属性用になります |
|
例 47-2テンプレートの例 <body>
<form name="xxxx">
<input name="test" length="12">
<textarea name="test_textarea"></textarea>
<select name="test_select"></select>
<input name="test_checkbox" type="checkbox" value="1">
<input name="test_checkbox_array[]" type="checkbox" value="1" />1<br />
<input name="test_checkbox_array[]" type="checkbox" value="2" />2<br />
<input name="test_checkbox_array[]" type="checkbox" value="3" />3<br />
<input name="test_radio" type="radio" id="yes" value="yes" />yes<br />
<input name="test_radio" type="radio" id="no" value="no" />no<br />
</form>
</body> |
|
例 47-3テンプレートからの出力 <body>
<form name="xxxx">
******<input name="test" length="12" class="bold" value="fred">!!!!!!
<textarea name="test_textarea">blogs</textarea>
<select name="test_select">
<option value="123">a selection option</option>
<option value="1234" selected>another selection option</option>
</select>
<input name="test_checkbox" type="checkbox" value="1" checked="checked" />
<input name="test_checkbox_array[]" type="checkbox" value="1" checked>1<br />
<input name="test_checkbox_array[]" type="checkbox" value="2" checked>2<br />
<input name="test_checkbox_array[]" type="checkbox" value="3">3<br />
<input name="test_radio" type="radio" id="yes" value="yes" checked>yes<br />
<input name="test_radio" type="radio" id="no" value="no">no<br />
</form>
</body> |
|