new HTML_Template_Flexy_Element

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

Synopsis

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

new HTML_Template_Flexy_Element ( string $tag = '' , array $attributes = = null )

Description

Flexy は、単一の軽量なクラスですべての HTML タグを表します。 クラスのすべての変数はパブリックとなり、それを使用することができます。 汎用的な代入メソッドや変換メソッドが使用できます。

toHtml() メソッドで、標準の HTML ではなく XHTML を出力させるには、 $element->setAttributes(array('flexy:xhtml'=>true)); を使用するか、 あるいは flexy:xhtml="true" をテンプレート内の要素の属性に指定します。

Parameter

  • $tag - HTML タグの名前。たとえば img は <img ....。

  • $attributes - 属性の連想配列。toHtml() では key="value" 形式の出力になります。 値のない属性を表す場合は、値として TRUE を使用します。ここには "href='/test.jpg' alt='test'" のような文字列も指定でき、 これはオブジェクトの属性の配列として扱われます。

パブリックプロパティ

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 の選択肢やチェックボックスの内容、入力値が適切に設定されます。

Throws

例外はスローされません。

Note

This function can not be called statically.

Example

要素を使用してテンプレートを変更する

<?php
$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);

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

テンプレートの例

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

テンプレートからの出力

         
<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>
テンプレートから動的要素を取り出す (Previous) 一般的なタグ型から値を取得したり保存したりするためのユーティリティ関数 (Next)
Last updated: Fri, 18 Apr 2014 — Download Documentation
Do you think that something on this page is wrong? Please file a bug report or add a note.
View this page in:

User Notes:

There are no user contributed notes for this page.