Quote from: laurentc at Apr 28, 2007, 11:55 AM
Tiens plus de nouvelles de notre cher ami et même pas un merci pour le temps passé à résoudre son problème
exact, je n’ai meme pas dit merci
donc, avec retard, merci laurentc pour ton bout de code, ce qui me manquait c’etait les deux instructions :
$result_annonce = $modx->db->select("id, pagetitle", "modx_site_content");
...
$grd = new DataGrid('',$result_annonce);
j’ai donc terminé le snippet que tu m’avais envoyé, je l’ai nommé snpDataGrid
c’est plus facile à utiliser que l’artifice que j’avais bidouillé avec l’utilisation des TV datagrid + le nouveau binding @EVAL_IN_SELECT
en plus ca fonctionne sans souci, meme avec une requete SELECT comprenant plein de jointures
donc merci encore
anthony
PS : il faudrait encore que je commente la fin de chaque ligne de la section
// ************************ DEBUT ENTREES FACULTATIVES ************************
// ************************ FIN ENTREES FACULTATIVES ************************
en expliquant le role de chaque parametre ...
<?php
// DESCRIPTION :
// => Ce snippet prend au minimum 4 arguments, et via l'instanciation de la classe DataGrid, il retourne tout
// le code HTML correspondant a une balise TABLE presentant le contenu d'une requete select
//
// ENTREE OBLIGATOIRES:
// $select : la clause select de la requete a executer, mais sans le mot cle SELECT
// $from : la clause from de la requete a executer, mais sans le mot cle FROM
// $fields : la liste de certains ou tous les noms de champs retournes par l'argument $select, dans l'ordre dans
// lequel on veut les voir dans la table (les noms de champs doivent etre separes par des virgules)
// $columns : le libelle des champs specifies par l'argument $fields, tel que l'on veut le voir affiche dans
// la ligne d'en-tetes de la table dont le html est retourne par le snippet (les libelles des champs
// doivent etre separes par des virgules)
// ENTREE FACULTATIVES:
// - $orderby : la clause order by de la requete a executer, mais sans le mot cle ORDER BY
// - $limit : la clause limit de la requete a executer, mais sans le mot cle LIMIT
// - $where : la clause where de la requete a executer, mais sans le mot cle WHERE
// - $pageSize : le nombre d'enregistrement a faire figurer sur chaque page (si pas fourni, alors tous les
// enregistrements sur une unique page) - valeur par defaut : vide
// - $pagerLocation : l'emplacement du pager, utilise si le nombre de resultats de la requete excede la valeur
// de l'argument $pageSize (valeurs possibles : top-right, top-left, bottom-left, bottom-right,
// both_right, ou both-left) - valeur par defaut : both_right
// - pour les autres entrees facultatives, cf. ci dessous dans le debut du code
//
// SORTIE :
// le code HTML d'une balise TABLE contenant le resultat d'une requete SELECT
//
// EXEMPLE :
// $params['select'] = 't1.f1 as CHAMP1, concat(t1.f2,t2.f3) as CHAMP2';
// $params['from'] = 'TABLE1 t1, TABLE2 t2';
// $params['fields'] = 'CHAMP2, CHAMP1';
// $params['columns'] = 'Lib du Champ 2,Lib du Champ 1';
// $params['where'] = 't1.f4 = t2.f4 AND t1.f5 = \'toto\'';
// $params['pageSize'] = '100';
// $params['orderby'] = 'CHAMP2 DESC';
// return $modx->runSnippet('snpDataGrid',$params);
// ************************ DEBUT ENTREES FACULTATIVES ************************
$pageSize = (isset($pageSize))? $pageSize : '';
$pagerLocation = (isset($pagerLocation))? $pagerLocation : 'both-right';
$noRecordMsg = (isset($noRecordMsg))? $noRecordMsg : 'Aucun enregistrement';
$cellPadding = (isset($cellPadding))? $cellPadding : '1';
$cellSpacing = (isset($cellSpacing))? $cellSpacing : '1';
$columnHeaderClass = (isset($columnHeaderClass))? $columnHeaderClass : '';
$cssClass = (isset($cssClass))? $cssClass : '';
$itemClass = (isset($itemClass))? $itemClass : '';
$altItemClass = (isset($altItemClass))? $altItemClass : '';
$columnHeaderStyle = (isset($columnHeaderStyle))? $columnHeaderStyle : '';
$cssStyle = (isset($cssStyle))? $cssStyle : '';
$itemStyle = (isset($itemStyle))? $itemStyle : '';
$altItemStyle = (isset($altItemStyle))? $altItemStyle : '';
$colWidths = (isset($colWidths))? $colWidths : '';
$colAligns = (isset($colAligns))? $colAligns : '';
$colColors = (isset($colColors))? $colColors : '';
$colTypes = (isset($colTypes))? $colTypes : '';
$header = (isset($header))? $header : '';
$footer = (isset($footer))? $footer : '';
$pagerClass = (isset($pagerClass))? $pagerClass : '';
$pagerStyle = (isset($pagerStyle))? $pagerStyle : '';
$orderby = (isset($orderby))? $orderby : '';
$limit = (isset($limit))? $limit : '';
// ************************ FIN ENTREES FACULTATIVES ************************
$result = $modx->db->select($select, $from, $where, $orderby, $limit);
include_once MODX_BASE_PATH."manager/includes/controls/datagrid.class.php";
$grd = new DataGrid('',$result);
$grd->noRecordMsg = $noRecordMsg;
$grd->columnHeaderClass = $columnHeaderClass;
$grd->cssClass = $cssClass;
$grd->itemClass = $itemClass;
$grd->altItemClass = $altItemClass;
$grd->columnHeaderStyle = $columnHeaderStyle;
$grd->cssStyle = $cssStyle;
$grd->itemStyle = $itemStyle;
$grd->altItemStyle = $altItemStyle;
$grd->columns = $columns;
$grd->fields = $fields;
$grd->colWidths = $colWidths;
$grd->colAligns = $colAligns;
$grd->colColors = $colColors;
$grd->colTypes = $colTypes;
$grd->cellPadding = $cellPadding;
$grd->cellSpacing = $cellSpacing;
$grd->header = $header;
$grd->footer = $footer;
$grd->pageSize = $pageSize;
$grd->pagerLocation = $pagerLocation;
$grd->pagerClass = $pagerClass;
$grd->pagerStyle = $pagerStyle;
$grd->fields = $fields;
$o = $grd->render();
return $o;
?>