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 :

[Smarty] Gestion des blocs


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    306
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 306
    Par défaut [Smarty] Gestion des blocs
    Bonjour,

    Savez-vous si avec Smarty, on peut gérer les notions de block. Par block , j'entends un bout de HTML dans le template que l'on décide ou non d'afficher ?

    Eric.

  2. #2
    Membre émérite Avatar de cadoudal56
    Profil pro
    Inscrit en
    Février 2005
    Messages
    694
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2005
    Messages : 694
    Par défaut
    Hello,

    Oui bien sur, ce n'est pas un probleme.
    Je le fais sur mon site qui est généré avec PHP et Smarty.

    Voici comment j'ai fais :

    Création d'une DIV dans la page
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <a href="javascript:" onclick="blocking('bloc1','yes', 'block'); return false;">details :</a><br>
    <div id="bloc1" style="display:none; padding-top:0px;">
    </div>
    Ensuite, voici le javascript qui va bien avec :
    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
     
    function blocking(nr, cookie, vis_state)
    {
            if (document.layers)
            {
                    current = (document.layers[nr].display == 'none') ? vis_state : 'none';
                    if (cookie != '')
                            writeCookie(nr, current);
                    document.layers[nr].display = current;
            }
            else if (document.all)
            {
                    current = (document.all[nr].style.display == 'none') ? vis_state : 'none';
                    if (cookie != '')
                            writeCookie(nr, current);
                    document.all[nr].style.display = current;
            }
            else if (document.getElementById)
            {
                    display = (document.getElementById(nr).style.display == 'none') ? vis_state : 'none';
                    if (cookie != '')
                            writeCookie(nr, display);
                    document.getElementById(nr).style.display = display;
            }
    }
     
    function writeCookie(name, data, noDays){
      var cookieStr = name + "="+ data
      if (writeCookie.arguments.length > 2){
        cookieStr += "; expires=" + getCookieExpireDate(noDays)
        }
      document.cookie = cookieStr
    }
     
    function readCookie(cookieName){
       var searchName = cookieName + "="
       var cookies = document.cookie
       var start = cookies.indexOf(cookieName)
       if (start == -1){ // cookie not found
         return ""
         }
       start += searchName.length //start of the cookie data
       var end = cookies.indexOf(";", start)
       if (end == -1){
         end = cookies.length
         }
       return cookies.substring(start, end)
    }
    Tu peux inclure le javascript dans un fichier a part auquel tu fais appel dans l'entete.
    Sinon, tu peux inclure directement le script dans la template smarty, mais tu dois prendre soin de l'insérer entre les balises :


    Les balises literal empeche smarty d'interpréter le accolades { } qui viennent du javascript

    @+
    cadou

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    306
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 306
    Par défaut
    Ok merci pour ta réponse mais je souhaitais savoir si smarty gérait en natif la notion de bloc sans passer par du javascript ?

    Je sais que le moteure de template de phplib le fait (tu peux définir des <!-- BLOCK 1--> dans le template et l'activer après dans le code PHP).

Discussions similaires

  1. Gestion des espaces blancs et solidarité du bloc
    Par Marielou dans le forum iReport
    Réponses: 3
    Dernier message: 28/11/2012, 17h32
  2. [MySQL] Gestion des checkbox avec mysql en smarty
    Par GuilVIII dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 09/12/2011, 07h38
  3. Gestion des Blocs et Les Onglet d'une Forme
    Par scofield dans le forum Forms
    Réponses: 10
    Dernier message: 10/11/2007, 09h07
  4. gestion des blocs
    Par iOops dans le forum Mise en page CSS
    Réponses: 1
    Dernier message: 29/03/2007, 09h22

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