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

Langage PHP Discussion :

Imbriquer des blocs avec Hyla tpl [PHP 5.0]


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    188
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 188
    Points : 55
    Points
    55
    Par défaut Imbriquer des blocs avec Hyla tpl
    Bonjour ,
    je viens de lire toute la doc de hyla tpl et je ne trouve pas la solution a mon problème, alors j'explique
    j'essai de mettre a jour un forum que j'avais crée en intégrant un système de template (Hyla tpl)

    le soucis c'est que je n'arrive pas a imbriqué les blocks de la façons suivante avec hyla tpl:

    CATEGORIE 1
    sous cat 1
    sous cat 2
    sous cat 3

    CATEGORIE 2
    sous cat 1
    sous cat 2
    sous cat 3

    CATEGORIE 3
    sous cat 1
    sous cat 2
    sous cat 3
    … etc etc

    voici mon code 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 'tpl/hyla_tpl.class.php';
    $tpl = new Hyla_Tpl('tpl');
    $tpl->importFile('../forum.html');
     
    while($ResSQLFORUM=$SQLFORUM->fetch()){
     
     
        if($CATEGORIE!=$ResSQLFORUM['NomCategorie']){
           $CATEGORIE=stripslashes(htmlspecialchars($ResSQLFORUM['NomCategorie']));
           $FORUM='';
           echo '<strong>'.$CATEGORIE.'</strong><br>';
     
     
             $tpl->setVar('Cat', $CATEGORIE.'<br>');
             $tpl->render('line');
     
            }
     
     
            if($FORUM!=$ResSQLFORUM['NomForum']){
            $FORUM=$ResSQLFORUM['NomForum'];
    	echo stripslashes(htmlspecialchars($ResSQLFORUM['NomForum'])).'<br>';
     
            $tpl->setVar('For', $FORUM.'<br>');
            $tpl->render('line2');
     
            }
     
           echo $tpl->render();

    et voici le code hml :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <!-- BEGIN line -->
     
    <!-- IF line -->
     
    {$Cat}
     
    <!-- BEGIN line2 -->
     
     <!-- IF line -->
     
          {$For}
    <!-- END line2 -->
    <!-- END line -->

  2. #2
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    qu'est-ce que tu obtiens actuellement ?
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    188
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 188
    Points : 55
    Points
    55
    Par défaut
    Bonjour Celira,

    actuellement j'obtiens un affichage comme ça :

    CATEGORIE
    sous categorie1
    CATEGORIE
    sous categorie2
    CATEGORIE
    sous categorie3
    …etc etc

    En fait il me met autant de "CATEGORIE" qu'il y a de "sous catégorie" je sais pas si tu comprend ce que je veux dire.

  4. #4
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Je ne connais pas Hyla, mais est-ce normal que tu ais deux fois <!-- IF line --> dans ton template ?
    Instinctivement, j'aurais mis un <!-- IF line2 --> pour le 2e.
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    188
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 188
    Points : 55
    Points
    55
    Par défaut
    oui c'est normal en faite c'était le dernier essai que j'avais effectuer mai a la base c'est vrais que c'était <!-- IF line --> et <!-- IF line2 -->

    mai sa change rien c'est le même problème

  6. #6
    Membre régulier
    Homme Profil pro
    Développeur PHP
    Inscrit en
    Mai 2014
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Développeur PHP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2014
    Messages : 37
    Points : 76
    Points
    76
    Par défaut
    Bonjour keusty,
    Moi je ferais plus un truc comme ça ;
    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
     
    require 'tpl/hyla_tpl.class.php';
    $tpl = new Hyla_Tpl('tpl');
    $tpl->importFile('../forum.html');
     
    $CATEGORIE= '';
    while($ResSQLFORUM=$SQLFORUM->fetch()){
     
        $tpl->setVar('Cat', stripslashes(htmlspecialchars($ResSQLFORUM['NomCategorie'])).'<br>');
     
        if($CATEGORIE!=$ResSQLFORUM['NomCategorie']){
           $CATEGORIE=$ResSQLFORUM['NomCategorie'];
           $FORUM=$ResSQLFORUM['NomForum'];
           $tpl->setVar('For', $FORUM.'<br>');
           $tpl->render('linecat');
        }
     
     
        if($FORUM!=$ResSQLFORUM['NomForum']){
            $FORUM=$ResSQLFORUM['NomForum'];
            $tpl->setVar('For', $FORUM.'<br>');
        }
        $tpl->render('line');
     
           echo $tpl->render();
    }
    On affiche la lligne catégorie que si l'on a changé de catégorie et on affiche le block line en permanence.
    Le template ressemble alors à cela.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <!-- BEGIN line -->
        <!-- BEGIN linecat -->
            <strong>{$Cat}</strong>
                {$For}
        <!-- ELSE linecat -->
                {$For}
        <!-- END linecat -->
    <!-- END line -->
    PS : j'ai supprimé les echo qui affichaient les lignes hors template.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    if($CATEGORIE!=$ResSQLFORUM['NomCategorie']){
           $CATEGORIE=stripslashes(htmlspecialchars($ResSQLFORUM['NomCategorie']));
    Ton $CATEGORIE était différent puisque tu le modifiais au moment de l'affectation.

    Bon ok j'aurais pu commenter. :p

    J'espère que ça te conviens.

    A dispo

    JFFM

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    188
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 188
    Points : 55
    Points
    55
    Par défaut
    Citation Envoyé par Justforfunmedia Voir le message
    Bonjour keusty,
    Moi je ferais plus un truc comme ça ...
    Bonjour Justforfunmedia,

    Merci pour ton aide

    J'ai un peu saisie le truque mais la j'ai un nouveau problème c'est que sa m'affiche bien les catégories et les sous catégories mais en plusieurs exemplaire c'est a dire comme ce ci :

    CATEGORIE1
    sous categorie1
    sous categorie2
    sous categorie3

    CATEGORIE2
    sous categorie1
    sous categorie2
    sous categorie3

    et après sa me remet la CATEGORIE1 et ses sous catégorie et ainsi de suite en plus il y a un problème en plus,
    c'est que sa me répète même l'entête alors qu'elle n'est même pas dans la boucle je comprend plus rien avec ce hyla .

    voici le code html pour bien voire ou ce situe mon entête qui se répète , il se trouve bien en dehors de la boucle BEGIN tu es d'accord avec moi?

    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
    <body>
     
        <!--ENTETE--------------------------------------------->
        {!include:Incl/Entete.html}
        <!--FIN ENTETE----------------------------------------->
     
     
        <div id="ContenuSite">
          <div id="DebutForum">Debut</div>
     
     
     
        <!-- BEGIN line -->
        <!-- BEGIN linecat -->
            <div class="Categorie">{$Cat}</div>
            <div class="Forum">{$For}</div>
        <!-- ELSE linecat -->            
                 <div class="Forum">{$For}</div>
        <!-- END linecat -->
        <!-- END line -->
     
     
          <div id="FinForum">Fin</div>
        </div>
     
     
          <p id="EntreContenuEtPiedpage"></</p>
        <!--Pied de page----------------------------------------->
        {!include:Incl/PiedPage.html}
        <!--FIN PIED DE PAGE------------------------------------->
    </body>

  8. #8
    Membre régulier
    Homme Profil pro
    Développeur PHP
    Inscrit en
    Mai 2014
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Développeur PHP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2014
    Messages : 37
    Points : 76
    Points
    76
    Par défaut
    Avec ton template ça m'affiche ça.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    en tete
    Debut
    CATEGORIE1
    sous categorie1
    sous categorie2
    sous categorie3
    CATEGORIE2
    sous categorie1
    sous categorie2
    sous categorie3
    Fin
     
    pied de page
    Mais je crois que le code que je t'ai fourni comportait un bug sur l'emplacement de l'accolade.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
        $tpl->render('line');
           echo $tpl->render();
    }
    la le render était fait dans chaque boucle.
    le code doit être
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
        $tpl->render('line');
    }
    echo $tpl->render();

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    188
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 188
    Points : 55
    Points
    55
    Par défaut
    Bonjour, Justforfunmedia

    Je vien de trouver pourquoi mon entête se répétais en faite j'avais 2 "echo $tpl->render();" J'en avais un cacher tout en bas de la page que j'avais oublier ,
    maintenant tout marche parfaitement bien vraiment un grand merci a toi Justforfunmedia tu m'a beaucoup aider

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

Discussions similaires

  1. Protéger des blocs avec paramètres
    Par Manou26 dans le forum Simulink
    Réponses: 10
    Dernier message: 10/11/2014, 18h33
  2. faire des blocs avec dreamweaver
    Par luchermannguehi dans le forum Dreamweaver
    Réponses: 2
    Dernier message: 12/04/2010, 18h59
  3. Composant connectant des bloc avec des splines
    Par Jeff Nodrev dans le forum wxWidgets
    Réponses: 4
    Dernier message: 18/03/2008, 14h35
  4. Difficulté avec le positionnement des blocs en absolute
    Par WA007 dans le forum Mise en page CSS
    Réponses: 4
    Dernier message: 24/11/2007, 19h06
  5. centrer un bloc avec des div+css
    Par fabrisss dans le forum Mise en page CSS
    Réponses: 4
    Dernier message: 27/10/2005, 23h41

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