Fablim - filières en commun
Le wiki : https://filieresencommuns.org/ Le lien vers la page test de présentation des questions : https://filieresencommuns.org/?QloGtestLe lien vers la page test qui va nous permettre de transformer les questions actuelles en réponses liées à une question : https://filieresencommuns.org/?FaqlogistiquetesT
Les maquettes : https://www.figma.com/file/gsf9h3OWglVQ29ZjOFADTD/Fili%C3%A8res-en-communs?node-id=450%3A585
Exemple pour tag http://ebook.coop-tic.eu/francais/wakka.php?wiki=FiltreS
https://yeswiki.net/?FilterTags
Astuces twig
Pour réaliser les templates, j'ai essayé d'utiliser les modèles twig fournis dans yeswikiMais j'ai été vite bloquée pour aller chercher les infos des fiches liées
Voici le code proposé par Jerem mais que je n'ai pas réussi à faire fonctionner, j'ai préférer rebasculer vers un template classique .tpl.html sur lequel j'avais des exemples de code source qui fonctionnent
Afficher un champ issu d'une fiche liée dans un template de fiche
question sur les templates si j'ai des fiches liées et que je souhaite afficher un champ en particulier de cette fiche liée dans les tpl.html je faisais $entryManager->search ... pour recup $fiche_liee[champ] . Tu as déjà fait en twig ?reponse jerem
nous n'avons pas mis beaucoup de helpers dans twig et pour ce cas là, .... je pense que soit :
- tu ajoutes dans un fichier fiche-x.tpl.html
use YesWiki\Bazar\Service\EntryManager; echo $this->render('@bazar/fiche-x.twig,['fiches'=>$fiches,'form'=>$form,'html'=>$html,'entryManager'=>$this-wiki->services->get(EntryManager::class)]');
et comme ça dans twig tu peux faire
{% set fichesliees = attribute(entryManager,'search',[{formIds:"7"}]) %}
(attention à la syntaxe c'est un appel d'un tableau [] dans lequel le premier élément est un objet avec les bonnes clés pour la méthode search)
si tu fais l'appel dans une zone de type {% set %} mais pas dans {{ }} tu pourrais utiliser
entryManager.search({formIds:"7",quries:{bf_truc:"1"}})
- soit (mais c'est plus long à déployer), on ajoute dans le coeur un helper twig du genre {{ getFieldsFromLinkedEntries(fiche,parentFieldName,childFieldName) }}
Je pencherais pour la deuxième ... est-ce que tu peux faire une issue github comme proposition et la signaler sur le canal dev ? Ce sera plus facile pour recueillir le point de vue de tous
Afficher un champ liste ou tag (mis en forme) dans un template de liste
concerne le champ tag dans faq.twig - ayant juste besoin d'insérer des balises html autour des tags, la fonction split de twig m'a permis de mettre en forme simplement la liste de tags{% for tag in fiche.bf_tags|split(',') %} <div class="trombi-content"> {{tag}} </div> {% endfor %}
dans mon-template.tpl.html
<?php use YesWiki\Bazar\Service\FormManager; echo $this->render("@bazar/mon-template.twig",[ 'fiches' => $fiches, 'param' => $param, 'info_res' => $info_res, 'filters' => $filters, 'pager_links' => $pager_links, 'formManager' => $this->wiki->services->get(FormManager::class), ]);
dans mon-template.twig
{% for entry in fiches %} {% set form = attribute(formManager,'getOne',[entry.id_typeannonce]) %} {% if form is not empty %} {% for field in form.prepared %} {% if field.propertyName == 'bf_truc" %} {{ attribute(field,'renderStaticIfPermitted',[entry]) }} {# parfois je rajoute |raw vraiment si nécessaire et sûr qu'il ne peut y avoir d'attaque XSS #} {# parfois je mets ceci dans une macro pour aller plus vite#} {% endif %} {% endfor %} {% endif %} {% endfor %}