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 html en smarty


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Invité2
    Invité(e)
    Par défaut [Smarty] convertir html en smarty
    Bonjour à tous,
    J'ai encore du mal avec Smarty
    J'ai un textarea ou je peux écrire ce que je veux afficher dans ma page web et qui est enregistré dans une bdd(cela fonction bien). Mais si je veux mettre un plugin Smarty :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    {menu name="chocolate"}
    Quand j'affiche ma page, au lieu de m'afficher mon menu, cela m'affiche :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    {menu name="chocolate"}
    J'ai un problème de compilation et ne vois pas comment procéder.

    Merci.

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

    De quel plugin s'agit il? le menu est censé être comment?
    T'as pas des balises literal qui traînent?

  3. #3
    Invité2
    Invité(e)
    Par défaut
    c'est un plugin qui affiche un menu. Je l'ai utilisé pour faire un test.
    Si je le met un fichier .tpl, il fonctionne.

    Même si je met un commentaire en smarty, la page va l'interpréter comme du html.

    Il n'y a aucune balise litteral

  4. #4
    Membre Expert
    Avatar de krachik
    Inscrit en
    Décembre 2004
    Messages
    1 964
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 964
    Par défaut
    J'ai du mal à comprendre tes phrases

    Même si je met un commentaire en smarty, la page va l'interpréter comme du html.
    j'arrive pas à comprendre ce que ça veut dire

  5. #5
    Invité2
    Invité(e)
    Par défaut
    oui, désolé, moi aussi j'ai du mal à me comprendre.

    Voici une image pour expliquer.

    Dans la partie module, au lieu de me charger le module, cela m’écrit {module name="news"}, il n'est pas interprété par Smarty.
    Je pense qu'il faut re-compiler mais je ne vois pas trop comment m'y prendre..

    Dernière modification par Invité2 ; 01/04/2011 à 09h15.

  6. #6
    Membre Expert
    Avatar de krachik
    Inscrit en
    Décembre 2004
    Messages
    1 964
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 964
    Par défaut
    Toujours difficile de t'aider avec ces informations, il en faut plus pour comprendre pourquoi c'est pas interprété
    Il s'agit d'un CMS qui utilise smarty?

    Bref si tu penses qu'il faut recompiler, il faut juste trouver les configs de smarty et appliquer ce qu'il faut par exemple
    $smarty->force_compile = true;
    $smarty->compile_check = true;
    Mais ça m'étonnerait que ce soit ça. Pour t'aider efficacement il faudrait savoir comment est appelé le plugin et ou etc

  7. #7
    Invité2
    Invité(e)
    Par défaut
    Bonjour,

    C'est un cms que je suis en train de construire.

    Le fonctionnement :

    J'ai une classe "template" dans laquelle j'affecte des variables à l'objet Smarty.
    Exemple : $smarty->title.
    Dans cette meme classe, j'affecte les valeurs à ces variables.
    Exemple : $smarty->title = "titre"
    Toujours la cette classe, une fois que toutes les variables sont chargées, j'affiche le tempate :
    $smarty->display("db:".$id)

    pour cet exemple, j'ai un plugin 'title' qui contient 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_title($params, &$smarty)
    {
        if (!isset($smarty->title)) {
            $smarty->_trigger_fatal_error("[plugin] le paramètre 'title' est vide");
            return;
        }
    	else{
    		return $smarty->title;
    	}
    }
    J'appel ce plugin dans le template par :
    Dernière modification par Invité2 ; 01/04/2011 à 11h08.

  8. #8
    Invité2
    Invité(e)
    Par défaut
    Peut être avec la fonction suivante ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    function _compile_source($resource_name, &$source_content, &$compiled_content, $cache_include_path=null)
    C'est bien avec cette fonction

    J'ai fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    function smarty_function_DisplayContentModule($params,&$smarty)
    { 
      $tpl = '{test}';
      if( empty($tpl) ) return;
     
      $smarty->_compile_source('Display content module', $tpl, $_compiled);
      @ob_start();
      $smarty->_eval('?>' . $_compiled);
      $result = @ob_get_contents();
      @ob_end_clean();
     
      return $result;
    }
    Cela fonctionne, il ne me reste plus qu'a attribuer la valeur de $tpl par la valeur contenue dans la bdd.
    Dernière modification par Invité2 ; 08/04/2011 à 09h32.

Discussions similaires

  1. convertir html to xml
    Par gone01 dans le forum XML
    Réponses: 1
    Dernier message: 04/07/2008, 22h35
  2. Convertir html vers iso/unicode
    Par althea_vestrit dans le forum Entrée/Sortie
    Réponses: 1
    Dernier message: 31/12/2007, 12h27
  3. Convertir HTML > PDF
    Par mauvais_karma dans le forum Documents
    Réponses: 6
    Dernier message: 26/02/2007, 13h29
  4. [débutant]convertir html en xml
    Par linkB2 dans le forum Format d'échange (XML, JSON...)
    Réponses: 1
    Dernier message: 22/05/2006, 12h48
  5. [LOGICIEL] Convertir HTML en PDF (tutoriel)
    Par rabobsky dans le forum Autres Logiciels
    Réponses: 4
    Dernier message: 05/10/2005, 12h45

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