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] Créer une fonction personnalisée Smarty


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre à l'essai
    Inscrit en
    Novembre 2009
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 38
    Points : 22
    Points
    22
    Par défaut [Smarty] Créer une fonction personnalisée Smarty
    Bonsoir,

    je voudrais savoir comment déclarer une fonction smarty utilisable sur php !

    Exemple : une fonction qui permet d'afficher un fichier tpl contenant des variables qlq !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    require('./system/libs/Smarty.class.php');
    $smarty=new Smarty();
    $smarty->template_dir="./styles";
    $smarty->compile_dir="./cache";
    //----------------------------
    function smarty_show_error($titre,$MESSAGE)
    {
    $smarty->assign('ERROR_TITLE',$titre);
    $smarty->assign('ERROR_CONTENT',$MESSAGE);
    $smarty->display("../styles/$STYLE_SELECTED/error.tpl");
    }
    Et qu'on fait appel à cette fonction dans une page PHP selon une condition quelq'un

    Fichier index.php

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    if (!isset($site_status))
    	{
            $titre="Erreur N346F";
            $message="Erreur trouvée ......";
    	smarty_show_error($titre,$message);
    	}
    Est ce correct la fonction ! ?

    merci d'avance

  2. #2
    Expert confirmé
    Avatar de krachik
    Inscrit en
    Décembre 2004
    Messages
    1 964
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 964
    Points : 4 015
    Points
    4 015
    Par défaut
    Bonjour

    Quel est le but de la manœuvre exactement?
    Afficher un tpl ce n'est pas ce que fait la fonction display?
    Si c'est pour suivre ton tpl et les variables pourquoi n'utilises-tu pas le mode debug?

    [edit]
    Je viens de comprendre un peu, tu veux afficher un tpl sous une certaine condition c'est ça?

  3. #3
    Membre à l'essai
    Inscrit en
    Novembre 2009
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 38
    Points : 22
    Points
    22
    Par défaut
    Citation Envoyé par krachik Voir le message
    Bonjour


    [edit]
    Je viens de comprendre un peu, tu veux afficher un tpl sous une certaine condition c'est ça?
    oui, exactement

    par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    	if (is_file("./system/styles.php"))
    	{
    		include_once("./system/styles.php");
    	}
    	else
    	{
    $titre="Erreur N346F";
    $message="Erreur trouvée ......";
    smarty_show_error($titre,$message);
    	}
    Si le fichier Styles est introuvable, le fichier tpl présent dans la fonction smarty_show_error sera appelé avec les variables($titre,$message) !

    dans l'exemple cité !
    une page tpl sera affichée avec un message au centre comme titre de l"erreur,
    et un paragraphe contenant la description de l'erreur

  4. #4
    Expert confirmé
    Avatar de krachik
    Inscrit en
    Décembre 2004
    Messages
    1 964
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 964
    Points : 4 015
    Points
    4 015
    Par défaut
    OK dans ce cas ta fonction devrait fonctionner avec un petit changement en passant par paramètre la variable smarty par exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    function smarty_show_error($titre,$MESSAGE, $smarty){
      $smarty->assign('ERROR_TITLE',$titre);
      $smarty->assign('ERROR_CONTENT',$MESSAGE);
      $smarty->display("../styles/$STYLE_SELECTED/error.tpl");
    }

  5. #5
    Membre à l'essai
    Inscrit en
    Novembre 2009
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 38
    Points : 22
    Points
    22
    Par défaut
    Citation Envoyé par krachik Voir le message
    OK dans ce cas ta fonction devrait fonctionner avec un petit changement en passant par paramètre la variable smarty par exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    function smarty_show_error($titre,$MESSAGE, $smarty){
      $smarty->assign('ERROR_TITLE',$titre);
      $smarty->assign('ERROR_CONTENT',$MESSAGE);
      $smarty->display("../styles/$STYLE_SELECTED/error.tpl");
    }
    c'est fonctionnel si je remplace la variable $STYLE_SELECTED par un nom de thème déjà présent dans mon dossier STYLES, sinon je fais comment pour rendre cette variable globale ( $STYLE_SELECTED ) sans avoir à la re-déclarer dans chaque fonction !

    merci

  6. #6
    Expert confirmé
    Avatar de krachik
    Inscrit en
    Décembre 2004
    Messages
    1 964
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 964
    Points : 4 015
    Points
    4 015
    Par défaut
    Je ne sais pas comment tu manipules $STYLE_SELECTED mais tu peux soit la déclarer en constante dans un de tes fichiers, soit passer cette variable en paramètre à la fonction, etc. A toi de choisir suivant comment tu joues sur $STYLE_SELECTED

  7. #7
    Membre à l'essai
    Inscrit en
    Novembre 2009
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 38
    Points : 22
    Points
    22
    Par défaut
    ok, Merci l'ami pour ton aide !

    j'essayerais de trouver une bonne solution.

Discussions similaires

  1. [XL-2010] Crééer une fonction personnalisée à partir d'une formule matricielle
    Par gonosen59 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 10/08/2016, 18h38
  2. Créer une Fonction recherche sur Access
    Par remwideco dans le forum Access
    Réponses: 4
    Dernier message: 30/01/2006, 10h36
  3. créer une fonction avec parametre optionnel
    Par maximenet dans le forum Langage
    Réponses: 2
    Dernier message: 29/01/2006, 20h51
  4. Réponses: 6
    Dernier message: 10/08/2005, 11h36
  5. Créer une fonction mathématique pendant l'exécution
    Par zeprogrameur dans le forum Langage
    Réponses: 5
    Dernier message: 09/07/2004, 11h36

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