Fablim - filières en commun

Le wiki : https://filieresencommuns.org/
image Capture_fablim_faq.png (0.6MB)
Le lien vers la page test de présentation des questions : https://filieresencommuns.org/?QloGtest
Le 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 yeswiki
Mais 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 %}

Si on veut afficher les tags avec leur lien actif il faut pouvoir récuperer le champ préparé ...
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 %}