Annonce

#1 2007-11-25 12:25:30

marcophilie56
Membre
2007-01-22
175

[Résolu] Moteur de template

Bonjour
Je veux des tests de création de page avec le système de template.
Pouvez vous m'indiquer le moteur de template utilisé par PWG et le nom du fichier ?
Merci d'avance
Cordialement

Dernière modification par marcophilie56 (2007-12-05 18:59:15)

Hors ligne

#2 2007-11-25 14:36:24

mathiasm
Former Piwigo Team
2006-02-06
2692

Re: [Résolu] Moteur de template

le moteur est extrait de phpBB, avec une ou deux modifs en plus. Le fichier s'appelle template.php (étonnant, non?).

En bonus, je l'avais dans mon historique: http://phpcodeur.net/articles/php/templates

Hors ligne

#3 2007-11-25 18:50:31

marcophilie56
Membre
2007-01-22
175

Re: [Résolu] Moteur de template

Bonjour
J'ai essayé justement de suivre le tutoriel que tu indiques mais je pense que je dois faire une erreur car je n'arrive pas à passer les donner du php vers le tpl :
Voici mon php nommé receveur.php:
<?php
include('template.php');
$connect = mysql_connect('localhost', 'root', '');
$result = mysql_query("SELECT Source, Date, Evenement, Commune  FROM caran  WHERE Commune like 'ALLAIRE' and Type = 'Personnel'  ORDER BY num_ordre");
echo mysql_num_rows($result);
  // on créé une nouvelle instance de la classe Template
  // et on indique en argument le chemin vers les modèles
  $template = new Template('./');
  // modèle à utiliser auquel on adjoint un nom arbitraire
  $template->set_filenames(array(
    'body' => 'receveur.tpl'
  ));
  // Assignation des variables
  $template->assign_vars( array(
    'NB_USERS' => mysql_num_rows($result)
  ));
  //
  // Assignation des variables dans le block 'user'
  //
  while( $row = mysql_fetch_array($result) )
  {
      $template->assign_block_vars('user', array(
           'SOURCE' => $row['Source'],
           'DATE'  => $row['Date'],
           'EVENEMENT' => $row['Evenement'],
           'COMMUNE'  => $row['Commune']

      ));
  }
   // Affichage des données
  $template->pparse('body');
?>

Voici mon fichier tpl :
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<table width="95%" border="1" align="center">
<tr>
    <td colspan="2"> Il y a {NB_USER} membres </td>  </tr>
  <tr>
    <td width="5%"> <div align="center"><font face="Comic Sans MS" size="2">Source</font></div></td>
    <td width="10%"> <div align="center"><font face="Comic Sans MS" size="2">Date</font></div></td>
    <td width="10%"><div align="center"><font size="2" face="Comic Sans MS">Courrier</font></div></td><td width="53%"> <div align="center"><font face="Comic Sans MS" size="2">Ev&eacute;nement</font></div></td>  </tr>
  <!-- BEGIN user -->
<tr>
<td width="5%"> <div align="center"><font face="Comic Sans MS" size="2">{Source}</font></div></td>
<td width="10%"><div align="center"><font face="Comic Sans MS" size="2">{Date}</font></div></td>
<td width="10%"><div align="center"><font size="2" face="Comic Sans MS">{Commune}</font></div></td>
<td width="53%"> <font face="Comic Sans MS" size="2">{Evenement}</font></td></tr>
  <!-- END user -->
</table>
</body>

Remarque l'écho mit dans le fichier php affiche bien le nombre de lignes exact de la requête.
Merci de ton aide
Cordialement

Hors ligne

#4 2007-11-25 19:07:15

P@t
Ex Equipe Piwigo
Nice
2007-06-13
5695

Re: [Résolu] Moteur de template

Ton template est incorrect...
Voila les modifs:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<table width="95%" border="1" align="center">
<tr>
    <td colspan="2"> Il y a {NB_USERS} membres </td>  </tr>
  <tr>
    <td width="5%"> <div align="center"><font face="Comic Sans MS" size="2">Source</font></div></td>
    <td width="10%"> <div align="center"><font face="Comic Sans MS" size="2">Date</font></div></td>
    <td width="10%"><div align="center"><font size="2" face="Comic Sans MS">Courrier</font></div></td><td width="53%"> <div align="center"><font face="Comic Sans MS" size="2">Ev&eacute;nement</font></div></td>  </tr>
  <!-- BEGIN user -->
<tr>
<td width="5%"> <div align="center"><font face="Comic Sans MS" size="2">{user.SOURCE}</font></div></td>
<td width="10%"><div align="center"><font face="Comic Sans MS" size="2">{user.DATE}</font></div></td>
<td width="10%"><div align="center"><font size="2" face="Comic Sans MS">{user.COMMUNE}</font></div></td>
<td width="53%"> <font face="Comic Sans MS" size="2">{user.EVENEMENT}</font></td></tr>
  <!-- END user -->
</table>
</body>

Dernière modification par P@t (2007-11-25 19:12:02)


P@t

Hors ligne

#5 2007-11-25 19:20:29

marcophilie56
Membre
2007-01-22
175

Re: [Résolu] Moteur de template

Bonsoir
Merci beaucoup.
Mon idée est maintenant d'intégrer cette page dans la description d'une catégorie sachant que j'ai besoin de récupérer des paramètres de cette catégorie pour générer la page.
Si vous avez des idées, je suis preneur.
Cordialement

Hors ligne

#6 2007-11-25 19:23:33

P@t
Ex Equipe Piwigo
Nice
2007-06-13
5695

Re: [Résolu] Moteur de template

Il va falloir nous dire un peu plus précisémment ce que tu veux obtenir...


P@t

Hors ligne

#7 2007-11-25 19:40:30

marcophilie56
Membre
2007-01-22
175

Re: [Résolu] Moteur de template

Bonjour
Voici ce que je souhaite : http://marcophilie56.free.fr/galerie/in … egory/8782
remplacer le texte html de la description de la catégorie par une requête liée aux éléments de la catégorie ici lj'ai besoin de récupérer le paramètre nom de la commune ici Allaire et le nom de la catégorie ici Chefs d'établissements.
Cordialment

Hors ligne

#8 2007-11-25 19:45:09

P@t
Ex Equipe Piwigo
Nice
2007-06-13
5695

Re: [Résolu] Moteur de template

Je n'ai pas accès à la page...
Je viens de m'enregistrer sur la galerie... si tu peux me donner les droits!


P@t

Hors ligne

#9 2007-11-25 20:09:24

marcophilie56
Membre
2007-01-22
175

Re: [Résolu] Moteur de template

Bonjour
C'est fait tu es également conseiller
Cordialement

Hors ligne

#10 2007-11-25 20:16:58

P@t
Ex Equipe Piwigo
Nice
2007-06-13
5695

Re: [Résolu] Moteur de template

Ok... je regarderai ca demain....


P@t

Hors ligne

#11 2007-11-26 17:36:10

P@t
Ex Equipe Piwigo
Nice
2007-06-13
5695

Re: [Résolu] Moteur de template

Voila, je pense etre arrivé à quelque chose de pas mal...

Tout d'abord, récupère la dernière version du fichier include/section_init.inc.php ici

Ensuite, tu crées un nouveau plugin dans lequel tu rentres le code suivant:

Code:

function get_special_description($desc)
{
  global $page;
  if (isset($page['category'])) {
    preg_match_all("#\<\!-- (.*?)\: (.*?) --\>#is", $desc, $matches);
    foreach ($matches[1] as $key => $param) {
      $params[$param] = $matches[2][$key];
    }
    include(dirname(__FILE__) . '/monfichier.php');
  }
}

add_event_handler('render_category_description', 'get_special_description');

Tu places le fichier php à appeler dans le dossier du plugin (que j'ai appelé ici monfichier.php)

Tes descriptions devront ensuite se présenter ainsi:

<!-- commune: nom de la commune -->
<!-- categorie: nom de la catégorie -->
<!-- parametre3: autre parametre -->

Tu pourras alors utiliser dans ton fichiers les paramètres suivants:
$params['commune']    ( = 'nom de la commune' )
$params['categorie']    ( = 'nom de la catégorie' )
$params['parametre3']    ( = 'autre parametre' )

Tu peux rentrer autant de paramètres que tu veux de la meme manière...

Ton fichier php devra renvoyer la chaine de caractère que tu souhaites afficher comme description.
Dans ton exemple ci-dessus, ca sera:

return $template->parse('body', true);

Dernière modification par P@t (2007-11-26 17:53:56)


P@t

Hors ligne

#12 2007-11-26 19:02:36

marcophilie56
Membre
2007-01-22
175

Re: [Résolu] Moteur de template

Bonjour
J'ai réalisé la mise à jour en local.
J'arrive à m'identifier puis sur la page d'accueil mais lorsque je clique sur n'importe quelle catégorie , j'ai le message d'erreur suivant : Template->make_filename(): Error - file .//receveur.tpl does not exist
Merci de m'indiquer quelle est le bugue sûrement le path ?
Cordialement

Dernière modification par marcophilie56 (2007-11-26 19:02:54)

Hors ligne

#13 2007-11-26 19:58:36

P@t
Ex Equipe Piwigo
Nice
2007-06-13
5695

Re: [Résolu] Moteur de template

Exact... ton fichier template doit également se trouver dans le meme répertoire que ton fichier php!
Et dans ce cas tu mets:

$template->set_filenames(array(
    'body' => dirname(__FILE__) . '/receveur.tpl'
  ));


P@t

Hors ligne

#14 2007-11-26 20:16:35

marcophilie56
Membre
2007-01-22
175

Re: [Résolu] Moteur de template

Merci pour la correction mais je n'ai pas compris la suite c'est à dire comment pour certaines catégories afficher mon template en remplacement de la description de la catégorie.
J'attends les explications car je crois que ce système va résoudre une grande partie de mes recherches
Cordialement

Hors ligne

#15 2007-11-26 20:20:30

P@t
Ex Equipe Piwigo
Nice
2007-06-13
5695

Re: [Résolu] Moteur de template

Et c'est la que j'avais oublié une petite bricole dans le code....
Voila la correction:

function get_special_description($desc)
{
  global $page;
  if (isset($page['category'])) {
    preg_match_all("#\<\!-- (.*?)\: (.*?) --\>#is", $desc, $matches);
       foreach ($matches[1] as $key => $param) {
         $params[$param] = $matches[2][$key];
       }
     if (isset($params)) include(dirname(__FILE__) . '/monfichier.php');
  }
}

add_event_handler('render_category_description', 'get_special_description');

Ainsi, ton fichier sera inclu uniquement s'il trouve des paramètres dans la description...

Dernière modification par P@t (2007-11-26 20:27:03)


P@t

Hors ligne

Pied de page des forums

Propulsé par FluxBB

github twitter newsletter Faire un don Piwigo.org © 2002-2024 · Contact