Fork Mezzanine-blocks

01 Mai

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
blog comments powered by Disqus
Monter

© Circonflex-studio - Tous droits réservés - Mentions legales
Développeur web indépendant / Webdesigner / Intégrateur
Nice - Cannes - Monaco - Antibes - côte d'azur | site valide HTML 5

Ce site à été développé en Python avec le framework Django

"http://www.cssawards.net/nominee/circonflex-studio/"