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

EDI, CMS, Outils, Scripts et API PHP Discussion :

[phpBB][Template] Affichage conditionnel


Sujet :

EDI, CMS, Outils, Scripts et API PHP

  1. #1
    Membre averti Avatar de hisy
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    377
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2004
    Messages : 377
    Points : 353
    Points
    353
    Par défaut [phpBB][Template] Affichage conditionnel
    Bonjour

    J'utilise le moteur de template de phpBB et je me demandais s'il existait un moyen de gérer une forme d'affichage conditionnel ...

    Pour l'instant je joue avec la propriété de style="visibility={afficheBlock}" en settant afficheBlock à visible ou hidden ...

    J'ai parcourus le code de mon template.php et je n'ai rien trouvé qui y fasse allusion mais peut être existe un extension officielle ou perso qui permette cette fonctionnalité qui est qd m tres utile ...

    Merci pour vos réponses, codes ou pistes...
    Take it HiSy

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 778
    Points
    17 778
    Par défaut
    Dans ton code HTML (template) tu utilises un bloc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <!-- BEGIN mon_bloc -->
    Le code HTML ici
    <!-- END mon_bloc -->
    Et pour le code PHP de mémoire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    // ...
    if (ma_condition) {
        $tpl->assign_block_vars('mon_bloc', array()); // $tpl représente le template
    }
    // ...

    Julp.

  3. #3
    Membre averti Avatar de hisy
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    377
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2004
    Messages : 377
    Points : 353
    Points
    353
    Par défaut
    Bon sang mais c biensûr !!!

    Merci bcp !!!
    Take it HiSy

  4. #4
    Membre habitué
    Profil pro
    Expert technique
    Inscrit en
    Septembre 2003
    Messages
    328
    Détails du profil
    Informations personnelles :
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert technique

    Informations forums :
    Inscription : Septembre 2003
    Messages : 328
    Points : 159
    Points
    159
    Par défaut
    Bonjour, je sais que ca fait un bail, mais j'aurai voulu avoir une précision.

    Est-il possible de faire des block imbriqué ?

    exemple :
    <!-- BEGIN bloc1 -->
    <h1> TOTO {bloc1.id}</h1>
    <!-- BEGIN bloc2 -->
    {bloc1.bloc2.variable}
    <!-- END bloc2 -->
    <!-- END bloc1 -->

    TOTO 1
    var1
    var2
    TATA
    var1
    var2

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    123
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 123
    Points : 111
    Points
    111
    Par défaut
    Pour ceux qui tomberons sur ce post et qui cherchent comme je l'ai fait, cette réponse à la question de zerros peut vous être pratique.

    La réponse est: oui il est possible de faire des blocs imbriqué qui s'affichent de manière conditionnelle avec phpBB. Voici comment je fais personnellement, illustré par un exemple de base :

    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
    30
    31
    32
    33
    34
    <?php
      include('phpbb.php'); //n'oubliez pas de télécharger le fichier de phpBB!
     
      //création d'une nouvelle instance de la classe Template
      $template = new Template('./');
     
      //modèles à utiliser
      $template->set_filenames(array(
    		'page1' => 'page.tpl',
      ));
     
    	$condition = true;
     
    	if($condition) {
    		//Cette ligne a pour affet d'afifche le bloc « bOui »
    		$template->assign_block_vars('bOui', array());
     
    		//affiche 5 fois le bloc bCompte (boucle)
    		for ($i = 1; $i <= 5; $i++) {
    			$cube = $i * $i;
    			$template->assign_block_vars('bOui.bCompte', array(
    				'vNombre' => $i,
    				'vCube' => $cube,
    			));
    		}
    	}
    	else {
    		//Cette ligne a pour affet d'afifche le bloc « bNon »
    		$template->assign_block_vars('bNon', array());
    	}
     
      //affichage de la page
      $template->pparse('page1');
    ?>
    Le fichier .tpl
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <!-- BEGIN bOui -->
    <p>[condition est égal à true] Voici une liste avec un décompte allant de 1 à 5:</p>
    <ul>
       <!-- BEGIN bCompte -->
       <li>Nombre : <strong>{bOui.bCompte.vNombre}</strong>; Cube: <strong>{bOui.bCompte.vCube}</strong>.</li>
       <!-- END bCompte -->
    </ul>
    <!-- END bOui -->
     
    <!-- BEGIN bNon -->
    <p>[condition est égal à false] Seul ce paragraphe est affiché</p>
    <!-- END bNon -->
    Le code XHTML résultant sera:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <p>[condition est égal à true] Voici une liste avec un décompte allant de 1 à 5:</p>
    <ul>
       <li>Nombre : <strong>1</strong>; Cube: <strong>1</strong>.</li>
       <li>Nombre : <strong>2</strong>; Cube: <strong>4</strong>.</li>
       <li>Nombre : <strong>3</strong>; Cube: <strong>9</strong>.</li>
       <li>Nombre : <strong>4</strong>; Cube: <strong>16</strong>.</li>
       <li>Nombre : <strong>5</strong>; Cube: <strong>25</strong>.</li>
    </ul>

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [phpBB] Template phpBB affichage conditionnel
    Par diengkals dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 0
    Dernier message: 15/08/2012, 14h36
  2. [Smarty] Affichage conditionnel de templates avec Smarty
    Par aztec dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 10/03/2008, 10h27
  3. [MySQL] select avec affichage conditionnel
    Par encoupe dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 31/10/2005, 23h46
  4. [VB.NET] Affichage conditionnel dans un repeater
    Par NicoNGRI dans le forum ASP.NET
    Réponses: 4
    Dernier message: 07/02/2005, 12h58
  5. [STRUTS] [JAVA] Affichage conditionnel de bean:write
    Par babylone7 dans le forum Struts 1
    Réponses: 6
    Dernier message: 29/04/2004, 16h20

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