C'est très bien de partager sa solution...
Une petite révision du titre du topic ("Moteur de template" n'est pas très clair) et mettre résolu semble une bonne idée.
8-)
Hors ligne
Bonjour
Mon cas avec deux blocs imbriqués n'est pas résolu.....
Mais effectivement dès résolution, j'envisageai de dire merci à toute l'équipe pour le soutien apporté et éventuellement montrer les possibilités obtenues par ce plugin
Cordialement
Hors ligne
Et pourquoi as-tu viré le while?!
$result = pwg_query("SELECT br_bureau.Bureau, br_bureau.Boite, br_bureau.Lettre,
br_bureau.dates, br_bureau.Periode, br_bureau.Indice,
bureaux_distributeurs.Observations, br_bureau.num_bureau
FROM br_bureau INNER JOIN bureaux_distributeurs
ON (br_bureau.Bureau = bureaux_distributeurs.Bureau_distributeur)
AND (br_bureau.num_bureau = bureaux_distributeurs.num_periode)
WHERE Bureau like '" . $params['commune'] . "'
GROUP BY br_bureau.Bureau, br_bureau.Boite, br_bureau.Lettre,
br_bureau.dates, br_bureau.Periode, br_bureau.Indice,
bureaux_distributeurs.Observations, br_bureau.num_bureau
ORDER BY br_bureau.Boite;");
// modèle à utiliser auquel on adjoint un nom arbitraire
$template->set_filenames(array(
'body' => dirname(__FILE__) . '/br_bureau.tpl'
));
//
// Assignation des variables dans le block 'user'
//
while( $row = mysql_fetch_array($result) )
{
$template->assign_block_vars('periode', array(
'PERIODE' => $row['Periode'],
'OBSERVATIONS' => $row['Observations']));
$template->assign_block_vars('periode.user', array(
'BOITE' => $row['Boite'],
'LETTRE' => $row['Lettre'],
'INDICE' => $row['Indice'],
'DATE' => $row['Date']));
}
// Affichage des données
$desc = $template->parse('body', true);
Dernière modification par P@t (2007-12-03 14:00:38)
Hors ligne
Bonjour
Merci je vais tester cela ce soir
J'ai bien noté vos remarques de présentation.
Cordialement
Hors ligne
J'avais pas vu, le code tpl n'est pas bon non plus:
<table border="1" >
<!-- BEGIN periode -->
<tr>
<td width="30%"> <div align="center"><font face="Comic Sans MS" size="2">Période</font></div></td>
<td width="70%"> <div align="center"><font face="Comic Sans MS" size="2">Evolutions</font></div></td>
</tr>
<tr>
<td width="30%"> <div align="center"><font face="Comic Sans MS" size="2">{periode.PERIODE}</font></div></td>
<td width="70%"> <div align="center"><font face="Comic Sans MS" size="2">{periode.OBSERVATIONS}</font></div></td>
</tr>
<!-- BEGIN user -->
<tr>
<td width="30%"> <div align="center"><font face="Comic Sans MS" size="2">Commune</font></div></td>
<td width="30%"><div align="center"><font size="2" face="Comic Sans MS">Lettre Timbre</font></div></td>
<td width="20%"> <div align="center"><font face="Comic Sans MS" size="2">Dates observées</font></div></td>
<td width="20%"> <div align="center"><font face="Comic Sans MS" size="2">Indice</font></div></td>
</tr>
<tr>
<td width="30%"><div align="center"><font face="Comic Sans MS" size="2">{periode.user.BOITE}</font></div></td>
<td width="30%"><div align="center"><font size="2" face="Comic Sans MS">{periode.user.LETTRE}</font></div></td>
<td width="20%"> <div align="center"><font face="Comic Sans MS" size="2">{periode.user.DATES}</font></div></td>
<td width="20%"> <div align="center"><font face="Comic Sans MS" size="2">{periode.user.INDICE}</font></div></td>
</tr>
<!-- END user -->
<!-- END periode -->
</table>
Du coup, j'ai modifié le code php dans le post ci-dessus...
Hors ligne
Bonjour
Voici le résultat que j'obtienne
<tr>
<td width="30%"> <div align="center"><font face="Comic Sans MS" size="2">Période</font></div></td>
<td colspan="3" width="70%"> <div align="center"><font face="Comic Sans MS" size="2">Evolutions</font></div></td> </tr>
<tr>
<td width="30%"> <div align="center"><font face="Comic Sans MS" size="2">12/1849 - 12/1911</font></div></td>
<td colspan="3" width="70%"> <div align="center"><font face="Comic Sans MS" size="2">Ouverture du bureau d'Allaire.</font></div></td> </tr>
<tr>
<td width="30%"> <div align="center"><font face="Comic Sans MS" size="2">Commune</font></div></td>
<td width="30%"><div align="center"><font size="2" face="Comic Sans MS">Lettre Timbre</font></div></td>
<td width="20%"> <div align="center"><font face="Comic Sans MS" size="2">Dates observées</font></div></td>
<td width="20%"> <div align="center"><font face="Comic Sans MS" size="2">Indice</font></div></td> </tr>
<tr>
<td width="30%"><div align="center"><font face="Comic Sans MS" size="2">ST GORGON</font></div></td>
<td width="30%"><div align="center"><font size="2" face="Comic Sans MS"></font></div></td>
<td width="20%"> <div align="center"><font face="Comic Sans MS" size="2">Jamais rencontré</font></div></td>
<td width="20%"> <div align="center"><font face="Comic Sans MS" size="2">+9</font></div></td>
</tr>
<tr>
<td width="30%"> <div align="center"><font face="Comic Sans MS" size="2">Période</font></div></td>
<td colspan="3" width="70%"> <div align="center"><font face="Comic Sans MS" size="2">Evolutions</font></div></td> </tr>
<tr>
<td width="30%"> <div align="center"><font face="Comic Sans MS" size="2">12/1849 - 12/1911</font></div></td>
<td colspan="3" width="70%"> <div align="center"><font face="Comic Sans MS" size="2">Ouverture du bureau d'Allaire.</font></div></td> </tr>
<tr>
<td width="30%"> <div align="center"><font face="Comic Sans MS" size="2">Commune</font></div></td>
<td width="30%"><div align="center"><font size="2" face="Comic Sans MS">Lettre Timbre</font></div></td>
<td width="20%"> <div align="center"><font face="Comic Sans MS" size="2">Dates observées</font></div></td>
<td width="20%"> <div align="center"><font face="Comic Sans MS" size="2">Indice</font></div></td></tr>
<tr>
<td width="30%"><div align="center"><font face="Comic Sans MS" size="2">ST JACUT LES PINS Gare</font></div></td>
<td width="30%"><div align="center"><font size="2" face="Comic Sans MS"></font></div></td>
<td width="20%"> <div align="center"><font face="Comic Sans MS" size="2">Jamais rencontré</font></div></td>
<td width="20%"> <div align="center"><font face="Comic Sans MS" size="2"></font></div></td>
</tr>
Alors que je souhaite obtenir ceci
<tr>
<td width="33%"> <div align="center"><font face="Comic Sans MS" size="2">Période</font></div></td>
<td colspan="3"> <div align="center"><font face="Comic Sans MS" size="2">Evolutions</font></div></td>
</tr>
<tr>
<td width="33%"> <div align="center"><font face="Comic Sans MS" size="2">12/1849
- 12/1911</font></div></td>
<td colspan="3"> <div align="center"><font face="Comic Sans MS" size="2">Ouverture
du bureau d'Allaire.</font></div></td>
</tr>
<tr>
<td width="33%"> <div align="center"><font face="Comic Sans MS" size="2">Commune</font></div></td>
<td width="32%"><div align="center"><font size="2" face="Comic Sans MS">Lettre
Timbre</font></div></td>
<td width="21%"> <div align="center"><font face="Comic Sans MS" size="2">Dates
observées</font></div></td>
<td width="14%"> <div align="center"><font face="Comic Sans MS" size="2">Indice</font></div></td>
</tr>
<tr>
<td width="33%"><div align="center"><font face="Comic Sans MS" size="2">ST
GORGON</font></div></td>
<td width="32%"><div align="center"><font size="2" face="Comic Sans MS"></font></div></td>
<td width="21%"> <div align="center"><font face="Comic Sans MS" size="2">Jamais
rencontré</font></div></td>
<td width="14%"> <div align="center"><font face="Comic Sans MS" size="2">+9</font></div></td>
</tr>
<tr>
<td width="33%"><div align="center"><font face="Comic Sans MS" size="2">ST
JACUT LES PINS Gare</font></div></td>
<td width="32%"><div align="center"><font size="2" face="Comic Sans MS"></font></div></td>
<td width="21%"> <div align="center"><font face="Comic Sans MS" size="2">Jamais
rencontré</font></div></td>
<td width="14%"> <div align="center"><font face="Comic Sans MS" size="2"></font></div></td>
</tr>
Merci de ton aide
Hors ligne
Si je comprend bien, pas besoin de block imbriqués alors...
Voila pour le fichier tpl:
<tr>
<td width="30%"> <div align="center"><font face="Comic Sans MS" size="2">Période</font></div></td>
<td width="70%"> <div align="center"><font face="Comic Sans MS" size="2">Evolutions</font></div></td>
</tr>
<tr>
<td width="30%"> <div align="center"><font face="Comic Sans MS" size="2">{PERIODE}</font></div></td>
<td width="70%"> <div align="center"><font face="Comic Sans MS" size="2">{OBSERVATIONS}</font></div></td>
</tr>
<tr>
<td width="30%"> <div align="center"><font face="Comic Sans MS" size="2">Commune</font></div></td>
<td width="30%"><div align="center"><font size="2" face="Comic Sans MS">Lettre Timbre</font></div></td>
<td width="20%"> <div align="center"><font face="Comic Sans MS" size="2">Dates observées</font></div></td>
<td width="20%"> <div align="center"><font face="Comic Sans MS" size="2">Indice</font></div></td>
</tr>
<!-- BEGIN user -->
<tr>
<td width="30%"><div align="center"><font face="Comic Sans MS" size="2">{user.BOITE}</font></div></td>
<td width="30%"><div align="center"><font size="2" face="Comic Sans MS">{user.LETTRE}</font></div></td>
<td width="20%"> <div align="center"><font face="Comic Sans MS" size="2">{user.DATES}</font></div></td>
<td width="20%"> <div align="center"><font face="Comic Sans MS" size="2">{user.INDICE}</font></div></td>
</tr>
<!-- END user -->
Et pour le fichier php, ca donnera:
while( $row = mysql_fetch_array($result) )
{
$template->assign_vars ( array(
'PERIODE' => $row['Periode'],
'OBSERVATIONS' => $row['Observations']));
$template->assign_block_vars('user', array(
'BOITE' => $row['Boite'],
'LETTRE' => $row['Lettre'],
'INDICE' => $row['Indice'],
'DATE' => $row['Date']));
}
Mais j'ai quand meme du mal à comprendre ce que tu veux faire...
A mon avis, il va falloir se pencher sur les requetes SQL...
Dernière modification par P@t (2007-12-03 19:48:57)
Hors ligne
Bonjour
Voici le résultat que j'obtienne
<table border="1" >
<tr>
<td width="30%"> <div align="center"><font face="Comic Sans MS" size="2">Période</font></div></td>
<td width="70%"> <div align="center"><font face="Comic Sans MS" size="2">Evolutions</font></div></td>
</tr>
<tr>
<td width="30%"> <div align="center"><font face="Comic Sans MS" size="2">12/1849 - 12/1911</font></div></td>
<td width="70%"> <div align="center"><font face="Comic Sans MS" size="2">Ouverture du bureau d'Allaire.</font></div></td>
</tr>
<tr>
<td width="30%"> <div align="center"><font face="Comic Sans MS" size="2">12/1849 - 12/1911</font></div></td>
<td width="70%"> <div align="center"><font face="Comic Sans MS" size="2">Ouverture du bureau d'Allaire.</font></div></td>
</tr>
<tr>
<td width="30%"> <div align="center"><font face="Comic Sans MS" size="2">12/1849 - 12/1911</font></div></td>
<td width="70%"> <div align="center"><font face="Comic Sans MS" size="2">Ouverture du bureau d'Allaire.</font></div></td>
</tr>
<tr>
<td width="30%"> <div align="center"><font face="Comic Sans MS" size="2">12/1849 - 12/1911</font></div></td>
<td width="70%"> <div align="center"><font face="Comic Sans MS" size="2">Ouverture du bureau d'Allaire.</font></div></td>
</tr>
<tr>
<td width="30%"> <div align="center"><font face="Comic Sans MS" size="2">12/1849 - 12/1911</font></div></td>
<td width="70%"> <div align="center"><font face="Comic Sans MS" size="2">Ouverture du bureau d'Allaire.</font></div></td>
</tr>
<tr>
<td width="30%"> <div align="center"><font face="Comic Sans MS" size="2">12/1849 - 12/1911</font></div></td>
<td width="70%"> <div align="center"><font face="Comic Sans MS" size="2">Ouverture du bureau d'Allaire.</font></div></td>
</tr>
<tr>
<td width="30%"> <div align="center"><font face="Comic Sans MS" size="2">Commune</font></div></td>
<td width="30%"><div align="center"><font size="2" face="Comic Sans MS">Lettre Timbre</font></div></td>
<td width="20%"> <div align="center"><font face="Comic Sans MS" size="2">Dates observées</font></div></td>
<td width="20%"> <div align="center"><font face="Comic Sans MS" size="2">Indice</font></div></td>
</tr>
<tr>
<td width="30%"><div align="center"><font face="Comic Sans MS" size="2">ST GORGON</font></div></td>
<td width="30%"><div align="center"><font size="2" face="Comic Sans MS"></font></div></td>
<td width="20%"> <div align="center"><font face="Comic Sans MS" size="2">Jamais rencontré</font></div></td>
<td width="20%"> <div align="center"><font face="Comic Sans MS" size="2">+9</font></div></td>
</tr>
<tr>
<td width="30%"><div align="center"><font face="Comic Sans MS" size="2">ST JACUT LES PINS Gare</font></div></td>
<td width="30%"><div align="center"><font size="2" face="Comic Sans MS"></font></div></td>
<td width="20%"> <div align="center"><font face="Comic Sans MS" size="2">Jamais rencontré</font></div></td>
<td width="20%"> <div align="center"><font face="Comic Sans MS" size="2"></font></div></td>
</tr>
Je ne veux afficher qu'une seule période ou plusieurs si celle-ci ne concerne pas la même date.
Je pense qu'il me faut bien des blocks imbriqués
Hors ligne
marcophilie56 a écrit:
Je ne veux afficher qu'une seule période ou plusieurs si celle-ci ne concerne pas la même date.
Je pense qu'il me faut bien des blocks imbriqués
Moi je pense surtout qu'il va falloir compliquer un peu le code php!
Je vais regarder ca...
Hors ligne
Bon, je pense que ton fichier php devrait ressembler à ca:
$result = pwg_query("SELECT br_bureau.Bureau, br_bureau.Boite, br_bureau.Lettre,
br_bureau.dates, br_bureau.Periode, br_bureau.Indice,
bureaux_distributeurs.Observations, br_bureau.num_bureau
FROM br_bureau INNER JOIN bureaux_distributeurs
ON (br_bureau.Bureau = bureaux_distributeurs.Bureau_distributeur)
AND (br_bureau.num_bureau = bureaux_distributeurs.num_periode)
WHERE Bureau like '" . $params['commune'] . "'
GROUP BY br_bureau.Bureau, br_bureau.Boite, br_bureau.Lettre,
br_bureau.dates, br_bureau.Periode, br_bureau.Indice,
bureaux_distributeurs.Observations, br_bureau.num_bureau
ORDER BY br_bureau.Periode ASC, br_bureau.Boite;");
$template->set_filenames(array('body' => dirname(__FILE__) . '/br_bureau.tpl'));
$periode = '';
while( $row = mysql_fetch_array($result) )
{
if ($row['Periode'] != $periode)
{
$periode = $row['Periode'];
$template->assign_block_vars('periode', array(
'PERIODE' => $row['Periode'],
'OBSERVATIONS' => $row['Observations']));
}
$template->assign_block_vars('user', array(
'BOITE' => $row['Boite'],
'LETTRE' => $row['Lettre'],
'INDICE' => $row['Indice'],
'DATE' => $row['Date']));
}
$desc = $template->parse('body', true);
Principe: On ordonne le résultat de la requete par periode
Puis on ajoute une ligne "Periode / Observation" uniquement si la période change.
La ligne "Commune, lettres, dates, indice" est également ajoutée en meme temps.
Pour le fichier tpl:
<!-- BEGIN periode -->
<tr>
<td width="30%"> <div align="center"><font face="Comic Sans MS" size="2">Période</font></div></td>
<td width="70%"> <div align="center"><font face="Comic Sans MS" size="2">Evolutions</font></div></td>
</tr>
<tr>
<td width="30%"> <div align="center"><font face="Comic Sans MS" size="2">{periode.PERIODE}</font></div></td>
<td width="70%"> <div align="center"><font face="Comic Sans MS" size="2">{periode.OBSERVATIONS}</font></div></td>
</tr>
<tr>
<td width="30%"> <div align="center"><font face="Comic Sans MS" size="2">Commune</font></div></td>
<td width="30%"><div align="center"><font size="2" face="Comic Sans MS">Lettre Timbre</font></div></td>
<td width="20%"> <div align="center"><font face="Comic Sans MS" size="2">Dates observées</font></div></td>
<td width="20%"> <div align="center"><font face="Comic Sans MS" size="2">Indice</font></div></td>
</tr>
<!-- END periode -->
<!-- BEGIN user -->
<tr>
<td width="30%"><div align="center"><font face="Comic Sans MS" size="2">{user.BOITE}</font></div></td>
<td width="30%"><div align="center"><font size="2" face="Comic Sans MS">{user.LETTRE}</font></div></td>
<td width="20%"> <div align="center"><font face="Comic Sans MS" size="2">{user.DATES}</font></div></td>
<td width="20%"> <div align="center"><font face="Comic Sans MS" size="2">{user.INDICE}</font></div></td>
</tr>
<!-- END user -->
Hors ligne
Bonjour
Cette solution marche lorsqu'il y a une seule période par contre lorsqu'il y a plusieurs périodes l'affichage me donne toutes les périodes d'abord puis le reste ensuite.
Je pense qu'il faut imbriquer les 2 blocs, j'ai fait plusieurs essais sans réussite.
Je suis absent jusqu'à demain soir
Cordialement
PS : j'ai vu que j'étais cité dans les Perles collecter à juste titre d'ailleurs....
Hors ligne
Hum... normal...
On va essayer autre chose alors ;-)
PHP:
$template->set_filenames(array('body' => dirname(__FILE__) . '/br_bureau.tpl'));
$periode = '';
while( $row = mysql_fetch_array($result) )
{
if ($row['Periode'] != $periode)
{
$periode = $row['Periode'];
$template->assign_block_vars('periode', array(
'PERIODE' => $row['Periode'],
'OBSERVATIONS' => $row['Observations']));
}
$template->assign_block_vars('periode.user', array(
'BOITE' => $row['Boite'],
'LETTRE' => $row['Lettre'],
'INDICE' => $row['Indice'],
'DATE' => $row['Date']));
}
$desc = $template->parse('body', true);
TPL:
<!-- BEGIN periode -->
<tr>
<td width="30%"> <div align="center"><font face="Comic Sans MS" size="2">Période</font></div></td>
<td width="70%"> <div align="center"><font face="Comic Sans MS" size="2">Evolutions</font></div></td>
</tr>
<tr>
<td width="30%"> <div align="center"><font face="Comic Sans MS" size="2">{periode.PERIODE}</font></div></td>
<td width="70%"> <div align="center"><font face="Comic Sans MS" size="2">{periode.OBSERVATIONS}</font></div></td>
</tr>
<tr>
<td width="30%"> <div align="center"><font face="Comic Sans MS" size="2">Commune</font></div></td>
<td width="30%"><div align="center"><font size="2" face="Comic Sans MS">Lettre Timbre</font></div></td>
<td width="20%"> <div align="center"><font face="Comic Sans MS" size="2">Dates observées</font></div></td>
<td width="20%"> <div align="center"><font face="Comic Sans MS" size="2">Indice</font></div></td>
</tr>
<!-- BEGIN user -->
<tr>
<td width="30%"><div align="center"><font face="Comic Sans MS" size="2">{user.BOITE}</font></div></td>
<td width="30%"><div align="center"><font size="2" face="Comic Sans MS">{user.LETTRE}</font></div></td>
<td width="20%"> <div align="center"><font face="Comic Sans MS" size="2">{user.DATES}</font></div></td>
<td width="20%"> <div align="center"><font face="Comic Sans MS" size="2">{user.INDICE}</font></div></td>
</tr>
<!-- END user -->
<!-- END periode -->
Hors ligne
Bonjour
Merci beaucoup tout marche impeccable.
Pas contre, je ne sais pas comment signaler que ma demande est résolue.
Comme convenu, je vais faire un nouveau post pour décrire ce qui a été réalisé pour la mise des descriptions des catégories.
Bravo et bonne continuation à l'équipe.
Cordialement
Hors ligne
marcophilie56 a écrit:
Pas contre, je ne sais pas comment signaler que ma demande est résolue.
http://forum.phpwebgallery.net/viewtopi … 672#p76672
Et sur le premier post tu cliques sur Modifier...
8-)
Hors ligne