$flexy->getElements() -- テンプレートから動的要素を取り出す
説明
FORM、INPUT、SELECT、それに属性値に flexy:dynamic を持つ HTML タグは HTML_Template_Flexy_Element のものに置換され、
コンパイルされた Flexy テンプレートと同じフォルダ (compileDir) にシリアライズされて保存されます。
これを利用してそれぞれの HTML 要素に変更を加えたり、ページ内にどういったフォーム要素があるのかを調べる事が出来ます。
注意: 変更を加えた値は $outputObject に引数 $elements として渡す必要があります。
アサインを行うために要素を取り出す必要はなく、空の要素を作成してマージするだけで構いません。
返り値
array - テンプレートに含まれる HTML 要素の配列
(フォーム要素、動的要素が無い場合は空の配列が返る)
注意
この関数は、スタティックにコールする
ことはできません。
例
例 47-1テンプレートの内部を調べる $form = new HTML_Template_Flexy();
$form->compile('some_file_name');
print_r($form->getElements()); |
|
例 47-2テンプレートの例 <BODY>
<FORM name="XXXX">
<INPUT name="yyy">
<SELECT name="zzz">
<OPTION value="aaaa">AAAAA</OPTION>
</SELECT>
</FORM>
</BODY> |
|
例 47-3コンパイルされたテンプレート <BODY>
<?php echo $this->elements['XXXX']->toHtmlnoClose();?>
<?php echo $this->elements['yyy']->toHtml();?>
<?php echo $this->elements['zzz']->toHtml();?>
</form>
</BODY> |
|
例 47-4内部探査の出力結果 Array
(
[XXXX] => html_template_flexy_element Object
(
[tag] => form
[attributes] => Array
(
[name] => XXXX
)
[children] => Array
(
)
[override] =>
[prefix] =>
[suffix] =>
[value] =>
)
[yyy] => html_template_flexy_element Object
(
[tag] => input
[attributes] => Array
(
[name] => yyy
)
[children] => Array
(
)
[override] =>
[prefix] =>
[suffix] =>
[value] =>
)
[zzz] => html_template_flexy_element Object
(
[tag] => select
[attributes] => Array
(
[name] => zzz
)
[children] => Array
(
[0] =>
[1] => html_template_flexy_element Object
(
[tag] => option
[attributes] => Array
(
[value] => aaaa
)
[children] => Array
(
[0] => AAAAA
)
[override] =>
[prefix] =>
[suffix] =>
[value] =>
)
[2] =>
)
[override] =>
[prefix] =>
[suffix] =>
[value] =>
)
) |
|