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.
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.
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
Ensuite, voici le javascript qui va bien avec :
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>
Tu peux inclure le javascript dans un fichier a part auquel tu fais appel dans l'entete.
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) }
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
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).
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager