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).
Partager