new HTML_Template_Flexy_Element

new HTML_Template_Flexy_Element -- クラスのコンストラクタ

概要

require_once 'HTML/Template/Flexy/Element.php';

new HTML_Template_Flexy_Element ([string $tag = '' [, array $attributes = NULL]])

説明

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);

// 以下の例では新しく追加したデータは既存の属性用になります