HTML_QuickForm_advmultiselect::setElementTemplate
Вернуться к: Template-based renderer
HTML_QuickForm_advmultiselect::setElementTemplate
Synopsis
void HTML_QuickForm_advmultiselect::setElementTemplate ( string $html = NULL , boolean $js = TRUE )
It is so easy to re-arrange select boxes, headers and buttons position. The template is a bit of html code with reserved placeholders words. They are:
- stylesheet
-
The CSS delimited by the style tags required only for the single multi-select with checkboxes shape. Not included in the default template. You can use instead, the getElementCss() method.
- javascript
-
The JavaScript delimited by the script tags required to manage item of both multi-select boxes. If it is not included, you can use instead, the getElementJs() method.
- class
-
A CSS class identifier in one of your stylesheets that is the default table layout. Default values are:
<table border="0" cellpadding="10" cellspacing="0">
- label_2
-
The unselected list header
- label_3
-
The selected list header
- unselected
-
The unselected list.
- selected
-
The selected list.
- add
-
The add button to swap one (or more) item from the unselected to the selected list.
- remove
-
The remove button to swap one (or more) item back from the selected to the unselected list.
- moveup
-
The button to move one item of the selected list to the top.
- movedown
-
The button to move one item of the selected list to the bottom.
- movetop
-
The button to move one item of the selected list directly at the top of the list
- movebottom
-
The button to move one item of the selected list directly at the bottom of the list
Parameter
- string $html
-
(optional) The HTML surrounding select boxes and buttons
- boolean $js
-
(optional) if we need to include qfams javascript handler
Throws
throws no exceptions thrown
Note
since version 0.4.0 (2005-06-25)
This function can not be called statically.
Example
In this partial example, the fruit list select boxes are set to vertical alignement with images for the 'add' and 'remove' buttons. Default presentation are horizontal alignment with input text buttons in the middle side.
<?php
require_once 'HTML/QuickForm.php';
require_once 'HTML/QuickForm/advmultiselect.php';
$form = new HTML_QuickForm('ams');
$form->removeAttribute('name'); // XHTML compliance
$fruit_array = array(
'apple' => 'Apple',
'orange' => 'Orange',
'pear' => 'Pear',
'banana' => 'Banana',
'cherry' => 'Cherry',
'kiwi' => 'Kiwi',
'lemon' => 'Lemon',
'lime' => 'Lime',
'tangerine' => 'Tangerine',
);
$ams =& $form->addElement('advmultiselect', 'fruit', null, $fruit_array);
$ams->setLabel(array('Fruit:', 'Available', 'Selected'));
$ams->setButtonAttributes('add', array('type' => 'image', 'src' => '/img/down.png'));
$ams->setButtonAttributes('remove', array('type' => 'image', 'src' => '/img/up.png'));
// vertical select box with image buttons as selector
$template = '
<table{class}>
<!-- BEGIN label_2 --><tr><th align="center">{label_2}</th></tr><!-- END label_2 -->
<tr>
<td>{unselected}</td>
</tr>
<tr>
<td align="center">{add}{remove}</td>
</tr>
<tr>
<td>{selected}</td>
</tr>
<!-- BEGIN label_3 --><tr><th align="center">{label_3}</th></tr><!-- END label_3 -->
</table>';
$ams->setElementTemplate($template);
// ....
?>
Вернуться к: Template-based renderer