Flexy uses a single lightweight class to represent All HTML Tags, All the variables of the class are public, and you are encouraged to use them. And the methods provide generic assignment and conversion abilities.
Parameter
$tag - The name of the HTML Tag eg. img for <img ....
$attributes - Associative array of attributes, where key="value" is output when you turn it in toHtml(), If you need to represent a attribute without a value, use TRUE as the value. This also accepts a string in the format "href='/test.jpg' alt='test'", which will be parsed into the attributes array of the object.
Public Properties
string $element->tag
The name of the html element eg. img for <img...
array $element->attributes
Attributes for the element
array $element->children
All the sub elements inside this, can be any object that implements toHtml(), or a string.
string $element->override
this value of thiswill be output when toHtml() is called, rather than the tags.
string|object $element->prefix
string or object that implements toHtml() method, and is returned by toHtml() before the tag HTML
string|object $element->suffix
string or object that implements toHtml() method, and is returned by toHtml() after the tag HTML
mixed $element->value
when you create an element, that is to be merged later with a full definition, you can assign the value here, and during toHtml(), the toValue() method will be called and select options, checkboxes and input values will be correctly filled in.
$form = new HTML_Template_Flexy(); $form->compile($this->masterTemplate); // create an instance (note you dont have to specify any details..) $elements['test'] = new HTML_Template_Flexy_Element; // change an attribute $elements['test']->attributes['class'] = 'bold'; // sets the value $elements['test']->setValue('Fred'); // wrap it with something $elements['test']->prefix = '******'; $elements['test']->suffix = '!!!!!!'; // for the different types of elements: $elements['test_textarea'] = new HTML_Template_Flexy_Element; $elements['test_textarea']->setValue('Blogs'); // select options $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'); // checkboxes $elements['test_checkbox'] = new HTML_Template_Flexy_Element; $elements['test_checkbox']->setValue(1); // array type checkboxes.. $elements['test_checkbox[]'] = new HTML_Template_Flexy_Element; $elements['test_checkbox[]']->setValue(array(1,2)); // radio buttons $elements['test_radio'] = new HTML_Template_Flexy_Element; $elements['test_radio']->setValue('yes'); $form->output(new StdClass, $elements); // in the example below, the new data you have added is to the existing attributes
Deliver First Class Web Sites: 101 Essential Checklists Want to learn how to make your web sites usable and accessible? Want to ensure that your sites meet current best practice, without spending hours trawling through incomprehensible specifications and recommendations from dozens of different books, research papers, and web sites? Want to make sure that the sites you build are "right the first time," requiring no costly redevelopments?