Рекурсивный акроним словосочетания «PHP: Hypertext Preprocessor»
Добро пожаловать на форум PHP программистов!
За последние 24 часа нас посетили 16483 программиста и 1680 роботов. Сейчас ищут 1498 программистов ...
Structures_DataGrid_Renderer_CheckableHTMLTable
Вернуться к: Renderer drivers
Structures_DataGrid_Renderer_CheckableHTMLTable
Structures_DataGrid_Renderer_CheckableHTMLTable – HTML table rendering driver with a checkbox for each row of the grid
This driver is experimental and has not been officially released yet. It is only available from SVN.
Description
Driver for rendering the DataGrid as an HTML table with a checkbox for each row
Supported operations modes
This driver supports the following operation modes:
Mode | Supported? |
---|---|
Container Support | yes |
Output Buffering | yes |
Direct Rendering | no |
Streaming | no |
Object Preserving | no |
Options
This driver accepts the following options:
Option | Type | Description | Default Value |
---|---|---|---|
buildFooter | bool | Whether to build the footer. | true |
buildHeader | bool | Whether to build the header. | true |
classASC | string | A CSS class name for TH elements to define that sorting is currently ascending. | '' |
classDESC | string | A CSS class name for TH elements to define that sorting is currently descending. | '' |
columnAttributes | array | Column cells attributes. This is an array of the form: array(fieldName => array(attribute => value, ...) ...) This option is only used by XML/HTML based drivers. | array() |
convertEntities | bool | Whether or not to convert html entities. This calls htmlspecialchars(). | true |
defaultCellValue | string | What value to put by default into empty cells. | null |
defaultColumnValues | array | Per-column default cell value. This is an array of the form: array(fieldName => value, ...). | array() |
emptyRowAttributes | array | An associative array containing the attributes for empty rows. | array() |
encoding | string | The content encoding. If the mbstring extension is present the default value is set from mb_internal_encoding(), otherwise it is ISO-8859-1. | 'ISO-8859-1' |
evenRowAttributes | array | An associative array containing each attribute of the even rows. | array() |
excludeVars | array | Variables to be removed from the generated HTTP queries. | array() |
extraVars | array | Variables to be added to the generated HTTP queries. | array() |
fillWithEmptyRows | bool | Ensures that all pages have the same number of rows. | false |
form | object | Instance of a HTML_QuickForm object. | null |
formRenderer | object | Instance of a HTML_QuickForm_Renderer_QuickHtml object. | null |
headerAttributes | array | Attributes for the header row. This is an array of the form: array(attribute => value, ...) | array() |
hideColumnLinks | array | By default sorting links are enabled on all columns. With this option it is possible to disable sorting links on specific columns. This is an array of the form: array(fieldName, ...). This option only affects drivers that support sorting. | array() |
inputName | string | The HTML_QuickForm element name for the checkboxes. | 'checkedItems' |
numberAlign | bool | Whether to right-align numeric values. | true |
oddRowAttributes | array | An associative array containing each attribute of the odd rows. | array() |
onMove | string | Name of a Javascript function to call on onclick/onsubmit events when the user is either paging or sorting the data. This function receives a single object argument of the form: { page: <page>, sort: [{field: <field>, direction: <direction>}, ...], data: <user_data> }. Remark: setting this option doesn't remove the href attribute, you should return false from your handler function to void it (eg: for AJAX, etc..). | null |
onMoveData | string | User data passed in the "data" member of the object argument passed to onMove. No JSON serialization is performed, this is assigned as a raw string to the "data" attribute. It's up to you to add quotes, slashes, etc... | '' |
primaryKey | string | The name of the primary key. This value is used for the checkboxes. | 'id' |
selfPath | string | The complete path for sorting and paging links. | $_SERVER['PHP_SELF'] |
sortIconASC | string | The icon to define that sorting is currently ascending. Can be text or HTML to define an image. | '' |
sortIconDESC | string | The icon to define that sorting is currently descending. Can be text or HTML to define an image. | '' |
sortingResetsPaging | bool | Whether sorting HTTP queries reset paging. | true |
General notes
This driver puts a checkbox for each row of the table into the first column. By default, a new column with the value of the 'inputName' option is added for the checkboxes. If you want to customize this column, you can add a column yourself as it is shown in the example.
Examples
Basic usage
<?php
require_once 'HTML/QuickForm.php';
require_once 'HTML/QuickForm/Renderer/QuickHtml.php';
require_once 'Structures/DataGrid.php';
// prepare the form and the QuickHtml renderer
$form =& new HTML_QuickForm();
$renderer =& new HTML_QuickForm_Renderer_QuickHtml();
// add action selectbox and submit button to the form
$form->addElement('select', 'action', 'choose',
array('delete' => 'Delete',
'move' => 'Move to archive'));
$form->addElement('submit', 'submit', 'Save');
// prepare the DataGrid
$dg =& new Structures_DataGrid();
if (PEAR::isError($dg)) {
die($dg->getMessage() . '<br />' . $dg->getDebugInfo());
}
// bind some data (e.g. via a SQL query and MDB2)
$error = $dg->bind('SELECT * FROM news',
array('dsn' => 'mysql://user:password@server/database'));
if (PEAR::isError($error)) {
die($error->getMessage() . '<br />' . $error->getDebugInfo());
}
// the renderer adds an auto-generated column for the checkbox by default;
// it is also possible to add a column yourself, for example like in the
// following four lines:
$column = new Structures_DataGrid_Column('checkboxes', 'idList', null,
array('width' => '10'));
$dg->addColumn($column);
$dg->generateColumns();
$rendererOptions = array('form' => $form,
'formRenderer' => $renderer,
'inputName' => 'idList',
'primaryKey' => 'id'
);
// use a template string for the form
$tpl = '';
// generate the HTML table and add it to the template string
$tpl .= $dg->getOutput('CheckableHTMLTable', $rendererOptions);
if (PEAR::isError($tpl)) {
die($tpl->getMessage() . '<br />' . $tpl->getDebugInfo());
}
// add the HTML code of the action selectbox and the submit button to the
// template string
$tpl .= $renderer->elementToHtml('action');
$tpl .= $renderer->elementToHtml('submit');
// we're now ready to output the form (toHtml() adds the <form> / </form>
// pair to the template)
echo $renderer->toHtml($tpl);
// if the form was submitted and the data is valid, show the submitted data
if ($form->isSubmitted() && $form->validate()) {
var_dump($form->getSubmitValues());
}
?>
Вернуться к: Renderer drivers