Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > Templates > Smarty
Smarty Forum d'entraide sur le moteur de templates Smarty. Avant de poster -> FAQ Smarty et Cours Smarty
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 14/09/2007, 12h32   #1
Membre habitué
 
Inscription : juin 2004
Messages : 296
Détails du profil
Informations personnelles :
Âge : 34

Informations forums :
Inscription : juin 2004
Messages : 296
Points : 147
Points : 147
Par défaut 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.
kaboume est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/09/2007, 13h11   #2
Membre chevronné
 
Avatar de cadoudal56
 
Inscription : février 2005
Messages : 671
Détails du profil
Informations personnelles :
Âge : 40

Informations forums :
Inscription : février 2005
Messages : 671
Points : 646
Points : 646
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 :
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 :
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
__________________
PHP Competition System
Script de gestion de coupes et championnats
http://phpcompet.free.fr

Mon jeu de foot
cadoudal56 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/09/2007, 15h31   #3
Membre habitué
 
Inscription : juin 2004
Messages : 296
Détails du profil
Informations personnelles :
Âge : 34

Informations forums :
Inscription : juin 2004
Messages : 296
Points : 147
Points : 147
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).
kaboume est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 20h54.


 
 
 
 
Partenaires

Hébergement Web