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:

Articles relatifs

Commentaires

  1. 19 décembre 2006 | 9:24
    ledad

    oui, j’ai une question: a quoi cela sert il ??? :p

  2. 19 décembre 2006 | 10:36
    Jerry

    A faire des belles listes, toutes ordonnées, tout simplement ;-) Passe à mon bureau, je te montre

  3. 19 décembre 2006 | 12:31
    ledad

    effectivement, rien ne vaut une belle demonstration… :D

Déposer votre commentaire