Fork Mezzanine-blocks
Il y a déjà un certain temps j'avais fait un article sur une application vraiment indispensable pour le CMS Mezzanine qui se nomme Mezzanine blocks, pour faire un petit résumé de cette application c'est un fork de flat blocks pour django permettant d'administer des blocs via l'admin pour Mezzanine
Alors pourquoi je reparle encore une fois de cette application, et bien parce que je viens tout simplement de le forker pour l'adapter à mes besoins et peut-être aux vôtres.
Nouveautés Mezzanine blocks avec ce fork ?
Et bien je me suis rendu compte au cours des différentes intégrations de thèmes avec Mezzanine que j'utilisais de plus en plus cette application pour placer mes différents blocs sur mes pages, et de base ce qui peut-être affiché est le titre et son contenu.
Dans mon cas j'avais souvent besoin d'afficher une icône (fontawesome par exemple) ou autre chose qui changeait suivant les blocs, et pour réaliser ça je devais systématiquement dupliquer un nouveau template juste pour changer cette icône en question en assignant au bloc via "using" le template lui correspondant.
C'est finalement de la duplication de code pour si peu, j'ai donc voulu directement faire passer une ou plusieurs variables au template afin dintéragir avec l'environnement extérieur.
Fonctionnement de Mezzanine blocks (Fork)
Alors vous pouvez directement cliquer sur ce lien Github Mezzanine block pour le télécharger ou bien directement l'installer avec PIP
pip install git+git://github.com/Cajoline/mezzanine-blocks.git
Je vous laisse suivre le README pour terminer l'installation.
Exemple d'insertion de template Richflatblock
Nous allons voir un exemple avec richflatblock, mais cela fonctionnera aussi avec flatblock et imageflatblock
{% richflatblock {block} using {tpl_name} {passed_args} %}
En suivant l'exemple ci-dessus {block} correspond au nom du bloc, {tpl_name} c'est e nom du template, et {passed_args} ce sont les arguments passés au template c'est donc ce qui nous intéresse.
Notez toutefois qu'il est possible d'ajouter un autre argument que j'ai omis pour l'exemple c'est la durée du cache, si je reprends mon exemple ça va donner ceci:
{% richflatblock {timeout} {block} using {tpl_name} {passed_args} %}
Cela rajoutera une durée pour le cache de ce bloc ainsi que tous les autres paramètres seront accessibles
{% richflatblock "mon_super_block" using "blocks/block.html" "fa fa-facebook" %}
Dans cet exemple j'ai rajouté une chaine de caractère qui sera accessible directement dans le template avec {{passed_args}}, vous pouvez bien entendu en faire passer autant que vous le voulez exemple:
{% richflatblock "mon_super_block" using "blocks/block.html" "fa fa-facebook" 2 "autre string" 20.5 %}
Il suffira de faire une boucle sûr {{passed_args}} ou bien d'y accéder directement par son indice {{passed_args.0}}, {{passed_args.1}}, etc.
Voilà, n'hésitez pas à l'utiliser ou bien à Forker Mezzanine block, et si vous avez des questions n'hésitez pas à les laisser en commentaire ou sur Github
Publié le: Dimanche 01 mai 2016