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] convertir une simple fonction pour réutiliser avec Smarty [Fait]


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 35
    Points : 28
    Points
    28
    Par défaut [Smarty] convertir une simple fonction pour réutiliser avec Smarty
    Bonjour,
    C'est la première fois que j'utilise Smarty, je désire convertir un site aux standards de smarty. Pour les fonctions que j'utilise traditionnelment comment faire pour les reutiliser avec smarty ?
    Example :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    function code_url($string) {
    $string = strtolower($string);
    $string = str_replace("( |')", "-", $string);
    $accent = array('&','â','à','é','è','ê','î','ô','û','ç');
    $sans_accent = array('and','a','a','e','e','e','i','o','u','c');
    $string = str_replace($accent, $sans_accent, $string);
    $string = eregi_replace("[^a-z0-9]","-",$string);
    $string = eregi_replace("(^(_)*|(_)*$)","",$string);
    $string = eregi_replace("(-){2,3}","",$string);
    return $string;
    }
    Quelles sont les modifications à apporter pour réutiliser la fonction citée ?
    Merci pour votre aide

  2. #2
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Bonjour

    Si je comprends bien, tu cherches à ajouter des fonctions à Smarty de façon à pouvoir les utiliser dans tes templates ?
    Un peu de doc : Etendre Smarty avec des plugins
    En l'occurrence, ta fonction serait un modificateur, il suffirait donc de la renommer en smarty_modifier_code_url et de la placer dans le répertoire de plugins
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 35
    Points : 28
    Points
    28
    Par défaut
    voila ce que j'ai fait :
    1-Dans un dossier nommé "includes" j'ai crée un fichier "function.url_code.php"
    2-à l'interieur de "function.url_code.php" j'ai le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    function smarty_function_code_url($params, &$smarty) {
    $params = strtolower($params);
    $params = str_replace("( |')", "-", $params);
    $accent = array('&','â','à','é','è','ê','î','ô','û','ç');
    $sans_accent = array('and','a','a','e','e','e','i','o','u','c');
    $params = str_replace($accent, $sans_accent, $params);
    $params = eregi_replace("[^a-z0-9]","-",$params);
    $params = eregi_replace("(^(_)*|(_)*$)","",$params);
    $params = eregi_replace("(-){2,3}","",$params);
    return $params;
    }
    4-dans mon fichier index.php j'ai ceci dans l'entete :
    require_once($current_dir .'/includes/function.url_code.php');

    5-dans mon template "index3.tpl", j'ai la ligne suivante :
    {code_url=$title}

    j'obtiens l'erreur :
    Smarty error: [in index3.tpl line 21]: syntax error: unrecognized tag: code_url=$title (Smarty_Compiler.class.php, line 446) in W:\www\00phptechs\libs\Smarty.class.php on line 1092

    Je suis perdu, c'est mon premier jour avec smarty...
    merci pour toute aide
    yaz

  4. #4
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Je pense que là tu as seulement besoin d'écrire un modificateur... Mais si tu veux rester avec ta fonction il faut l'appeler comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    {code_url param1=$title}
    Et ne pas oublier de prendre en compte le fait que $params est un tableau...

    Pour en faire un modificateur, il faut que tu renommes ton fichier en modifier.code_url.php et que tu changes ta fonction comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    function smarty_modifier_code_url($string) {
    $string = strtolower($string);
    $string = str_replace("( |')", "-", $string);
    $accent = array('&','â','à','é','è','ê','î','ô','û','ç');
    $sans_accent = array('and','a','a','e','e','e','i','o','u','c');
    $string = str_replace($accent, $sans_accent, $string);
    $string = eregi_replace("[^a-z0-9]","-",$string);
    $string = eregi_replace("(^(_)*|(_)*$)","",$string);
    $string = eregi_replace("(-){2,3}","",$string);
    return $string;
    }
    Tu pourras ensuite l'appeler par :
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

Discussions similaires

  1. Réponses: 1
    Dernier message: 18/08/2016, 09h33
  2. probleme avec une simple fonction
    Par francky57 dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 23/10/2008, 11h01
  3. Réponses: 1
    Dernier message: 28/10/2006, 13h05
  4. Réponses: 10
    Dernier message: 02/11/2005, 11h12
  5. Réponses: 4
    Dernier message: 29/09/2005, 11h50

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