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 06/02/2008, 20h36   #1
Membre du Club
 
Inscription : juin 2004
Messages : 257
Détails du profil
Informations forums :
Inscription : juin 2004
Messages : 257
Points : 64
Points : 64
Par défaut Écriture d'un plugin

Bonjour,

Voila ma problématique,j'ai une page header.tpl.php que je place dans toutes les pages du site et je cherche a écrire du code html qui est spécifique qui à certaines page. J'ai penser faire un test avec smarty du style :

Code :
{if nompage==="ma_page"}<p> texte</p> {/if}
et pour cela j'ai écrit un plugin smarty dont voila le code :
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
<?php
/**
 * Smarty plugin
 * @package Smarty
 * @subpackage plugins
 */
 
/**
 * Smarty {assign_debug_info} function plugin
 *
 * Type:     function<br>
 * Name:     nompage<br>
 * Purpose:  recherche le nom de la page en cours<br>
 * @param array unused in this plugin, this plugin uses {@link Smarty::$_config},
 *              {@link Smarty::$_tpl_vars} and {@link Smarty::$_smarty_debug_info}
 * @param Smarty
 */
function smarty_function_nompage($params, &$smarty)
{
   return  basename ($_SERVER['PHP_SELF'],".php");
 
}
 
/* vim: set expandtab: */
 
?>
lorsque je fait afficher nom_page , le nom de la page s'affiche correctement, mais le test ne marche pas. Si je suis dans ma_page.php le code html n'est pas écrit.

Quelqu'un peut il m'aider pour trouver une solution?
Merci d'avance
epeichette est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/02/2008, 01h58   #2
Membre éprouvé
 
Avatar de gtraxx
 
Homme Aurélien Gérits
Développeur Web
Inscription : mai 2006
Messages : 1 045
Détails du profil
Informations personnelles :
Nom : Homme Aurélien Gérits
Âge : 30
Localisation : Belgique

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : mai 2006
Messages : 1 045
Points : 498
Points : 498
Je pense que vous vous y êtes mal pris, en faites les plugins du style function ne s'appelle pas de cette manière.
{nompage} est la seule façon de l'appeler, passez lui les conditions directement dans celui-ci ou alors :
Code :
1
2
3
4
{php}
if ({/php} {nompage} {php}==="ma_page")
echo '<p> texte</page>';
{/php}
Sans certitude que cela fonctionne, j'ai pas tester
__________________
Au petit déjeuner, je prend du PHP et au souper du jQuery.
AFUP 2009 : Bien optimiser son code pour le référencement
Mon projet open source de librairie PHP 5: magix cjquery
gtraxx est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/02/2008, 09h46   #3
Membre du Club
 
Inscription : juin 2004
Messages : 257
Détails du profil
Informations forums :
Inscription : juin 2004
Messages : 257
Points : 64
Points : 64
merci pour la réponse

Après test ça ne marche pas, j'ai une erreur dont je ne vois pas l'origine
Citation:
Parse error: syntax error, unexpected ';' in E:\xxxx\%%8D^8D8^8D845330%%header.tpl.php.php on line 45
Sinon, s'il faut passer par les "balises" {php} autant mettre tout en php sans passer par smarty pour aller chercher le nom de la page. C'est ce que je cherchais a éviter...

J'ai vu qu'en dehors des plugins function, il y a des plugins modifier, mais jai pas compris la différence entre les 2. Est-ce que cela pourrait être une réponse à ma problématique et si oui comment est ce que je dois construire le plugin?
epeichette est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/02/2008, 13h54   #4
Membre éprouvé
 
Avatar de gtraxx
 
Homme Aurélien Gérits
Développeur Web
Inscription : mai 2006
Messages : 1 045
Détails du profil
Informations personnelles :
Nom : Homme Aurélien Gérits
Âge : 30
Localisation : Belgique

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : mai 2006
Messages : 1 045
Points : 498
Points : 498
Pour expliquer la différence entre les 2, je dirai que le modifier est une fonction avec paramètre pour modifier un ou des éléments de votre tpl.
Du genre les fonctions trim, htmlentities, preg_replace,urlencode,urldecode, ect...
Par contre un plugin function est plus orienté accessoire du style calendrier, afficher la dernière photos du jour, ect....
Voici un lien qui je crois vous sera utile: http://smarty.incutio.com/?page=SmartyPlugins

Pour en revenir a votre problème, vous pouvez définir vos conditions directement dans le plugin c'est plus propre.
Vous lui passez un paramètre supplémentaire avec $page par exemple, dans le lien que je vous ai donné il y as des tas d'exemple.
__________________
Au petit déjeuner, je prend du PHP et au souper du jQuery.
AFUP 2009 : Bien optimiser son code pour le référencement
Mon projet open source de librairie PHP 5: magix cjquery
gtraxx est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/02/2008, 14h18   #5
Membre du Club
 
Inscription : juin 2004
Messages : 257
Détails du profil
Informations forums :
Inscription : juin 2004
Messages : 257
Points : 64
Points : 64
merci pour la réponse, je vais consulter ce lien avec attention...
epeichette est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/02/2008, 14h23   #6
Membre du Club
 
Inscription : juin 2004
Messages : 257
Détails du profil
Informations forums :
Inscription : juin 2004
Messages : 257
Points : 64
Points : 64
aie je tombe sur une page blanche
epeichette est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/02/2008, 15h29   #7
Membre éprouvé
 
Avatar de gtraxx
 
Homme Aurélien Gérits
Développeur Web
Inscription : mai 2006
Messages : 1 045
Détails du profil
Informations personnelles :
Nom : Homme Aurélien Gérits
Âge : 30
Localisation : Belgique

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : mai 2006
Messages : 1 045
Points : 498
Points : 498
pas possible je tombe sur la liste de plugin smarty .
Si j'ai le temps je regarderai pour votre plugin, car pour le moment j'en créer quelques un mais plutôt orienté outils et "modifier".
Je vous conseil aussi de visiter le forum de smarty dans la section plugin et addon il y as plein d'utilitaire sympathique.
__________________
Au petit déjeuner, je prend du PHP et au souper du jQuery.
AFUP 2009 : Bien optimiser son code pour le référencement
Mon projet open source de librairie PHP 5: magix cjquery
gtraxx est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/02/2008, 02h02   #8
Membre éprouvé
 
Avatar de gtraxx
 
Homme Aurélien Gérits
Développeur Web
Inscription : mai 2006
Messages : 1 045
Détails du profil
Informations personnelles :
Nom : Homme Aurélien Gérits
Âge : 30
Localisation : Belgique

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : mai 2006
Messages : 1 045
Points : 498
Points : 498
Voila je vous ai mis sur la voie en vous donnant un plugin que j'ai fais pour smarty, il ne vous reste qu'as l'adapter a vos besoin.
J'espère que ceci vous aidera, je l'ai testé dans la balise title mais a vous d'en faire ce bon vous semble.
Décompressez l'archive et copier le plugin dans le dossier respectif
Pour info c'est un "modifier"
Fichiers attachés
Type de fichier : gz modifier.PageName.php.tar.gz (468 octets, 8 affichages)
__________________
Au petit déjeuner, je prend du PHP et au souper du jQuery.
AFUP 2009 : Bien optimiser son code pour le référencement
Mon projet open source de librairie PHP 5: magix cjquery
gtraxx est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/02/2008, 10h30   #9
Membre du Club
 
Inscription : juin 2004
Messages : 257
Détails du profil
Informations forums :
Inscription : juin 2004
Messages : 257
Points : 64
Points : 64
Merci beaucoup de votre aide.

Le plugin répond parfaitement a mon besoin.
Avec le lien communiqué, je commence a bien comprendre la conception de plugin smarty...
epeichette est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/02/2008, 16h48   #10
Membre éprouvé
 
Avatar de gtraxx
 
Homme Aurélien Gérits
Développeur Web
Inscription : mai 2006
Messages : 1 045
Détails du profil
Informations personnelles :
Nom : Homme Aurélien Gérits
Âge : 30
Localisation : Belgique

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : mai 2006
Messages : 1 045
Points : 498
Points : 498
Heureux de vous avoir aidé
__________________
Au petit déjeuner, je prend du PHP et au souper du jQuery.
AFUP 2009 : Bien optimiser son code pour le référencement
Mon projet open source de librairie PHP 5: magix cjquery
gtraxx est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h53.


 
 
 
 
Partenaires

Hébergement Web