19 décembre 2006
Utiliser HTMLSortForm avec Structures_DataGrid, DataObjects && HTML_QuickForm_DHTMLRulesTableless
Pour avoir un exemple commenté, lisez la suite ;-)
Comme un exemple vaut mieux qu’un long discours, voilà un fichier "typique".
Je vous laisse effectuer vous-même les includes et require qui vont bien.
<?php
/* Votre code ici*/
// Paramètre de tri (peut-être récupéré en $_GET)$tri = array('titre' => 'ASC', 'id' => 'DESC'); $parpage = array_key_exists('parpage', $_GET ) ? $_GET['parpage'] : '20';
// Dataobject$rq = new myTable(); $rq->monChamp= 3;
// Structure$dg = & new Structures_DataGrid($parpage);$dg->sortRecordSet($tri);$dg->bind($rq);
// Colonnes:$dg->addColumn(new Structures_DataGrid_Column('id', 'id', 'id'));$dg->addColumn(new Structures_DataGrid_Column('Titre', 'titre', 'titre'));$dg->addColumn(new Structures_DataGrid_Column('Texte', 'texte', 'texte'));
/****************************************/// Numéro de pageecho $dg->getOutput(DATAGRID_RENDER_PAGER);
/****************************************/// Contenu$rendererOptions = array( 'sortIconASC' => '<img src="images/up.gif" alt="Tri ascendant" border="0" />', 'sortIconDESC' => '<img src="images/down.gif" alt="Tri descendant" border="0" />' );
$table = new HTML_Table(array('width' => '100%', 'cellspacing' => '1', 'cellpadding' => '1', 'class' => 'inputbox'));$dg->fill($table, $rendererOptions);$table->altRowAttributes(0, array('bgcolor'=>'#FFFFFF'), array('bgcolor'=>'#CCCCCC'), true);
echo $table->toHtml();
/****************************************/// formulaire
$parpages = array();for ($i=5; $i<51; $i+=5) { $parpages[$i] = "$i par page";}
$rendererOptions_Sort = array( 'textAscending' => 'Ascendant', 'textChoose' => 'Choix...', 'textDescending' => 'Descendant', 'textSortBy' => 'Trier par', 'textSubmit' => 'Valider', 'textThenBy' => 'Ensuite par...', 'directionStyle' => 'radio', 'sortFieldsNum' => 2);
$form = & new HTML_QuickForm_DHTMLRulesTableless(null, 'GET');$dg->setRenderer('HTMLSortForm');$dg->fill($form, $rendererOptions_Sort);
$form->addElement('select', 'parpage', 'Par page :');$form->addElement('submit', 'filtrer', 'Filtrer');$form->setDefaults(array('parpage' => 20));
$renderer =& new HTML_QuickForm_Renderer_Tableless();$GLOBALS['_HTML_QuickForm_default_renderer'] =& $renderer;$renderer->addStopFieldsetElements('submit');
echo $form->toHtml();/****************************************/?>
N’hésiter pas à me contacter si vous avez des questions.
Tags:pear
Articles relatifs

oui, j’ai une question: a quoi cela sert il ??? :p
A faire des belles listes, toutes ordonnées, tout simplement ;-) Passe à mon bureau, je te montre
effectivement, rien ne vaut une belle demonstration… :D