2010-07-30 4 views
1

Je fais le tour des maisons en essayant de trouver un moyen de mettre en œuvre un filtre simple.Comment créer un filtre jinja2 et l'utiliser dans des pylônes?

Je veux créer l'équivalent de quelques Smarty « balises » pour faciliter le port, notamment {mail_to} http://www.smarty.net/manual/en/language.function.mailto.php

je semble aller en rond entre les jinga2 docs http://jinja.pocoo.org/2/documentation/extensions#module-jinja2.ext

et les webhelpers http://pylonshq.com/docs/en/0.9.7/modules/templating/

Ce que je me attends à écrire est quelque chose comme

{% mail_to user=c.user.email encode='hex' %} 

Vous ne savez pas comment assembler le tout, c.-à-d. Emplacement de la bibliothèque et comment charger pour l'utilisation.

tia

Répondre

1

Write extension et de le mettre dans le répertoire lib/extensions.py

Pour charger vous extension dans l'environnement faire dans config/environment.py:

from MYAPP.lib import extensions 

config['pylons.app_globals'].jinja2_env = Environment(loader=ChoiceLoader(
      [FileSystemLoader(path) for path in paths['templates']]), 
      extensions=[extensions.YOU_EXTENSION_MAIL_TO_CLASS])) 

# If you extension use some options, you can init it 
config['pylons.app_globals'].jinja2_env.mail_to_smtp_host = 'some_host' 

Après dans les modèles de vôtre appelez simplement {% mail_to arg1, arg2%}

Questions connexes