2017-06-25 1 views
0

Existe-t-il un moyen d'implémenter facilement des accordéons dans Drupal 8. Jusqu'à présent, je l'ai fait avec collection de champs (ou paragraphe) mais mon client souhaite pouvoir mettre un accordéon partout dans un contenu où il veut. avec les champs, j'ai besoin de le préparer sur le gabarit.Comment créer facilement des accordéons en drupal

donc je pense que quelque chose comme un shortcode connu dans WordPress:

[accordion] 
    [accordion-item id="item-1" title="Title of accordion item"]Drop-down content goes here.[/accordion-item] 
    [accordion-item id="item-2" title="Second accordion item"]Drop-down content goes here.[/accordion-item] 
    [accordion-item id="item-3" title="A Third accordion"]Drop-down content goes here.[/accordion-item] 
[/accordion] 

Ou est-il peut-être une sorte d'un module constructeur de page pour Drupal qui permet cela et donne un peu plus de flexibilité la création du contenu?

Merci pour tout conseil.

Répondre

1

Ok, donc voici une solution très personnalisée (pas aussi simple que demandé), mais encore, je suppose que je le ferais de cette façon. Vous aurez besoin de FieldGroup connaissances de module et de prétraitement de thème.

  • Ajoutez un champ supplémentaire dans votre formulaire. Ce sera un groupe de champs d'une entrée de titre et d'un corps de texte. Configurez-le afin que l'utilisateur puisse ajouter une quantité infinie d'éléments.
  • Dites maintenant que vous ajoutez ce jeton dans votre wysiwyg: [accordéon].
  • Dans votre thème, créez une fonction de pré-traitement pour votre noeud (THEMENAME_preprocess_node) et obtenez le contenu wysiwyg. Recherchez le jeton, et si c'est le cas, placez le contenu du groupe de champs là.
  • N'oubliez pas de masquer le contenu du groupe de champs à l'écran.
  • Enfin, dans votre thème, ajoutez une bibliothèque d'accordéons (ou un accordéon jquery-ui du noyau) et appliquez-la sur votre code html injecté.

Il devrait faire le travail.

Modifier: Vous pouvez également choisir Views Accordion. Mais je pense que ce serait une solution moins intéressante pour votre client UX.

+0

merci, sûr un bon indice mais je vais essayer de trouver un moyen plus facile, peut-être existe et quand non, alors je vais avec le vôtre. – mastercheef85

+1

[Views accordéon] (https://www.drupal.org/project/views_accordion) est le moyen le plus simple, mais pas le meilleur si vous voulez considérer l'expérience utilisateur de votre client. – Kiwad