IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques et frameworks PHP Discussion :

[phpBB][2] Gérer la présence ou l'absence d'une donnée pour l'afficher


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre régulier
    Inscrit en
    Décembre 2004
    Messages
    95
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 95
    Points : 74
    Points
    74
    Par défaut [phpBB][2] Gérer la présence ou l'absence d'une donnée pour l'afficher
    Bonjour,

    Je réalise mon livre d'or et j'utilise les templates pour l'afficher.

    Voici mon fichier tpl (juste la partie qui nous interesse) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <!-- BEGIN site -->
    		<a href="{site.SITE}" title="Site Web du posteur" > <img src="../templates/images/1/livreDor/home.GIF" border="0" /> </a>
    <!-- END site -->
    Ensuite voici mon cde php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    while(.....){
       //Affichage d'une autre partie du message qui apparait tout le temps (date, pseudo, note,..)
       if ($donnees['site'] != ""){	
    	$template->assign_block_vars('site',array(
    		'SITE'	=> $adresseSite
             ));
       }
    }
    Cependant lorsque mon premier message a un site, le second prendra automatquement le site du premier?? J'aimerais donc savoir si au début de ma boucle affichant les messages, je ne pourrais pas vider le block 'site'..

    J'espère avoir été clair....

    Merci d'avance

    Nicolas.

  2. #2
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Salut

    Non, ton code fonctionne tel quel et rien ne sera remplacé.
    Au passage, j'imagine que tu utilises un système de templates à la phpLib/phpBB ?

    test.tpl
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <!-- BEGIN site -->
          <a href="{site.SITE}" title="Site Web du posteur" >{site.SITE}</a><br />
    <!-- END site -->
    test.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    <?
     
    require('template.php');
     
    $template = new Template('./');
    $template->set_filenames(array('body' => 'test.tpl'));
     
    foreach(array('site_1', 'site_2', 'site_3') as $adresseSite){
       $template->assign_block_vars('site', array(
             'SITE'   => $adresseSite));
    }
     
    $template->pparse('body');
     
    ?>

  3. #3
    Membre régulier
    Inscrit en
    Décembre 2004
    Messages
    95
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 95
    Points : 74
    Points
    74
    Par défaut
    Oui mon code marche mais il ne marche pas comme je le voudrais

    En fait les utilisateurs ne sont pas obligés d'entrer un site internet.. Et si jamais le message précédent possède un site internet et bien le post suivant qui n'en possède pas recupera le précédent.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
    while ($donnees = mysql_fetch_array($req)){
    		$date = date("d.m.Y" , $donnees['date']);
    		$heure = date("H:i", $donnees['date']);
    	    $message = str_replace($smiley, $image, $donnees['comm']);
     
    		$template->assign_vars(array(
    				'AUTEUR'	=> $donnees['pseudo'],
    				'DATE'		=> $date,
    				'HEURE'		=> $heure,
    				'NOTE' 		=> $donnees['note'],
    				'CONTENU'	=> $message
     
    		));
    		if ($donnees['site'] != ""){
    			echo"entre";
    			$template->assign_block_vars('site',array(
    				'SITE'	=> $donnees['site']
    			));
    		}
    		$template->pparse('messages');
    }
    et mon fichier tpl :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    <div class="message">
    	<div class="titre"> 
    		<span class="note">
    			{NOTE}/10
    		</span>
    		Par {AUTEUR}, le {DATE} à {HEURE} 
     
    		<!-- BEGIN site -->
    		<a href="{site.SITE}" title="Site Web du posteur" > <img src="../templates/images/1/livreDor/home.GIF" border="0" /> </a>
    		<!-- END site -->
     
    	</div>
     
    	<div class="contenu">
    		{CONTENU}
    	</div>
    </div>
     
    <br/>
    J'espère que tu m'auras compris Kirkis et que tu pourras m'aider ;-) Mais je te remercie deja beaucoup de m'apporter ton aide.

    Nicolas.

  4. #4
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Ah, tu dois donc répéter le code de ce template ?
    Je pense que tu fais fausse route, cependant je ne comprends pas l'erreur. À l'heure actuelle, il devrait tout remplacer sauf le site (c'est le seul élément qui devrait être répété) !

    Voici ce que j'imagine que tu souhaites faire.

    test.tpl
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <!-- BEGIN actualite -->
       Par {actualite.AUTEUR} le {actualite.DATE}
       <a href="{actualite.SITE}" title="Site Web du posteur" >{actualite.SITE}</a>
       Note :  {actualite.NOTE}
       <br />
    <!-- END actualite -->
    test.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    require('template.php');
     
    $template = new Template('./');
    $template->set_filenames(array('body' => 'test.tpl'));
     
    $actualites[] = array('auteur' => 'Auteur 1',
                      'date' => time(),
                      'note' => "Note de l'auteur 1",
                      'site' => "Site de l'auteur 1");
     
    $actualites[] = array('auteur' => 'Auteur 2',
                      'date' => time(),
                      'note' => "Note de l'auteur 2",
                      'site' => '');
     
    $actualites[] = array('auteur' => 'Auteur 3',
                      'date' => time(),
                      'note' => "Note de l'auteur 3",
                      'site' => "Site de l'auteur 1");
     
    foreach($actualites as $actualite){
       $template->assign_block_vars('actualite', array(
             'AUTEUR'   => $actualite['auteur'],
             'DATE'   => 'À '.date('H:i:s', $actualite['date']).' le '.date('d/m/Y', $actualite['date']),
             'NOTE'   => $actualite['note'],
             'SITE'   => $actualite['site']));
    }
     
    $template->pparse('body');
    Avec cet exemple, le lien existe mais, puisqu'il ne comporte pas de texte, il n'est pas affiché dans le navigateur. Si tu souhaites complètement éviter sa transmission, tu as deux options :
    • construire le lien dans l'appel à $template->assign_block_vars(), ce qui te permet d'attribuer une chaîne vide ou un lien complet
    • utiliser un block imbriqué de type <!-- BEGIN switch_site -->, ce qui est à mon sens la meilleure méthode

Discussions similaires

  1. Gérer les présences avec les compétences
    Par petitmushu dans le forum Conception
    Réponses: 6
    Dernier message: 25/06/2014, 15h41
  2. [XL-2007] Gérer les présences avec les compétences
    Par leflo38 dans le forum Conception
    Réponses: 5
    Dernier message: 27/04/2012, 10h21
  3. [AppleScript] Comment gérer la présence d'un fichier
    Par Racky dans le forum Autres langages
    Réponses: 4
    Dernier message: 05/02/2012, 15h07
  4. [2.5.1] Compter le nombre de présence et d'absence
    Par Mrlaurent90 dans le forum BIRT
    Réponses: 3
    Dernier message: 22/02/2011, 11h42
  5. Spipuler sa présence ou son absence sur le site
    Par mwavoisin dans le forum Débuter
    Réponses: 1
    Dernier message: 10/02/2009, 09h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo