Planète

Par kgaut
Kevin Gautreau

Drupal 8 - Entité - Champ de base « Référence à un terme de taxonomie »

Pour faire un champ de base référence à un terme de taxonomie, on va utiliser le type "entity_reference", en lui passant évidement le nom du vocabulaire, (ici "option_types") :

$fields['type'] = BaseFieldDefinition::create('entity_reference')
      ->setLabel(t('Catégorie'))
      ->setSetting('target_type', 'taxonomy_term')
      ->setSetting('handler', 'default:taxonomy_term')
      ->setSetting('handler_settings', [
         // ici définir l'id du vocabulaire
          'target_bundles' => [ 'option_types' => 'option_types']
      ])
      //on utilisera l'affichage en mode "radio / checkbox" en fonction de la cardinalité
      ->setDisplayOptions('form', array(
        'type' => 'options_buttons',
        'weight' => 3,
      ))
      ->setDisplayConfigurable('form', TRUE)
      ->setDisplayConfigurable('view', TRUE);

Pour utiliser le formulaire type "tag" :

    $fields['type'] = BaseFieldDefinition::create('entity_reference')
      ->setLabel(t('Catégorie'))
      ->setSetting('target_type', 'taxonomy_term')
      ->setSetting('handler', 'default:taxonomy_term')
      ->setSetting('handler_settings', [
          'target_bundles' => [ 'option_types' => 'option_types']
      ])
      ->setDisplayOptions('form', array(
        'type' => 'entity_reference_autocomplete',
        'weight' => 3,
        'settings' => array(
          'match_operator' => 'CONTAINS',
          'size' => '10',
          'autocomplete_type' => 'tags',
          'placeholder' => '',
        ),
      ))
      ->setDisplayConfigurable('form', TRUE)
      ->setDisplayConfigurable('view', TRUE);

Note, pour avoir une cardinalité illimitée (autant de valeurs possibles que l'utilisateur le désir) ajouter l'appel suivant à la déclaration de votre propriétée :

->setCardinality(FieldStorageDefinitionInterface::CARDINALITY_UNLIMITED)

 

Par kgaut
Kevin Gautreau

Drupal 8 - Rediriger un utilisateur lors de sa connexion

Pour rediriger un utilisateur lorsqu'il se connecte on peut utiliser le hook HOOK_user_login().

Le code qui suit ne redirige que si une redirection n'est pas déjà présente dans l'url :


function MONMODULE_user_login($account) {
  if (!isset($_GET['destination'])) {
    $response = new \Symfony\Component\HttpFoundation\RedirectResponse(\Drupal::url('popote.user.commandes'));
    $response->send();
  }
}

 

Quelques optimisations MySQL pour un Drupal 8 performant

Que celui qui n'a jamais vu un serveur MySQL avec ses paramètres par défaut sur un serveur Quadri Coeur et 128 Go de RAM lève la main. Il n'est pas rare que le serveur MySQL soit oublié à la mise en place d'un projet, Drupal 8 ou autres. Découvrons quelques paramètres de base à affiner selon votre environnement et votre projet pour booster les performances de votre site ou application Internet.

Par anavarre

Présentation Drupal Lyon 2016 - Environnements de dév automatisés avec LXC et Ansible

Ce n'est pas vraiment du Drupal mais ça peut servir à tous les drupalistes ! Pour le meetup Drupal Lyon de juillet 2016 j'ai voulu parler des containers mais surtout de l'orchestration. Que ce soit LXC, ou Docker, peu importe en fait. Tout dépend de vos besoins. Mais pour l'orchestration, ma préférence va clairement à Ansible qui est facile d'apprentissage et si pratique au quotidien, que ce soit pour vos environnements de dév ou prod.

Par anavarre

Présentation DrupalCamp Nantes 2016 - Migrer un site Drupal 6 ou Drupal 7 vers Drupal 8

J'ai présenté un retour d'expérience de la migration de la base de connaissance docs.acquia.com de Drupal 6 à Drupal 8 au DrupalCamp Nantes 2016. Les thèmes principaux abordés sont : comment auditer et préparer sa migration, comment utiliser les nouvelles commandes Drush à notre disposition pour facilement mettre en place les conditions d'une migration réussie et quelques astuces glanées par l'expérience acquise au cours de cette migration somme toute assez complexe.

Par anavarre

DrupalFacile a 5 ans !

Cela paraît à peine croyable mais DrupalFacile vient de fêter ses 5 ans ! Le temps passe vite, et Drupal 7 qui était alors la nouvelle version à venir que tout le monde attendait est désormais installé un peu partout en production. La bonne nouvelle pour fêter cet anniversaire est que DrupalFacile revient pour vous apprendre Drupal 8 !

Par anavarre

Et si on changeait le format de DrupalFacile pour Drupal 8 ?

Je reçois plusieurs fois par semaine des e-mails de drupalistes impatients de pouvoir apprendre Drupal 8 et surtout inquiets de savoir si DrupalFacile va continuer à exister ou pas. La réponse est oui ! Mais probablement pas sous la forme de vidéos, car je n'ai plus assez de temps à consacrer à ce mode d'apprentissage pour l'instant. Plutôt que de ne rien poster pendant des mois et des mois, je me disais qu'en changeant le format et en adoptant un mode plus 'agile' on pourrait peut-être faire revivre le site et surtout aborder Drupal 8 !

Par anavarre

Présentation meetup Drupal Lyon - L'intégration continue pour tous

Au pied levé, j'ai préparé une présentation sur l'intégration continue pour Drupal Lyon. Plutôt que de parler CI d'entreprise et de rentrer dans les détails de Jenkins et du workflow typique d'une équipe de dév, pourquoi ne pas déjà aborder toutes les bonnes pratiques et méthodologies à employer pour soi-même créer un produit testé et fiable ? Bienvenue dans l'intégration continue pour tous !

Par anavarre

Meetup Drupal Lyon - Présentation sur la sécurité

Pour le dernier meetup Drupal Lyon avant la coupure de l'été, j'ai fait une présentation sur la sécurité. Puisque le panel est assez hétérogène et qu'on parle aussi bien à des nouveaux venus sur Drupal qu'à des experts, je me suis dit qu'il serait intéressant de faire une présentation à la fois high-level et qui récapitule un ensemble de bonnes pratiques sur la sécurité qu'on a parfois tendance à oublier. L'idée principale c'est : ne pensez pas être "nul" en sécurité ou pas assez expert pour en parler ou vous y coller.

Par anavarre

Bilan 2013 et perspectives 2014

L'année 2013 aura littéralement été une année en demi-teinte pour DrupalFacile. Les 6 premiers mois de l'année ont été intenses avec des vidéos postées régulièrement et même un record de traffic battu en mars (6924 visiteurs uniques). Hélas, depuis avant l'été, le site est au point mort et DrupalFacile reçoit régulièrement des encouragements et des demandes de vidéos qui sont précieusement consignées !

Par Mixalis44
Mickael Zafiriou
Développeur Drupal depuis 2013.

PLes thèmes avec twig

Présentation du fonctionnement des thèmes customs que Drupal
8 met à disposition.
De la déclaration en php en passant par le template Twig, du
rendu à la surcharge, cet article essaiera d'aborder
la majeure partie des points concernant les thèmes.

Créer des entrées de menu sans lien avec Drupal 8

Il n'est pas rare de vouloir regrouper des liens d'un menu principal d'un site, afin de les grouper par thématique, ou par cible, ou tout autre critère. Une des manières la plus simple d'arriver à ses fins est tout simplement de créer des entrées dans le menu principal de votre site Drupal 8, mais des entrées sans lien, vous permettant de les distinguer comme en-tête de section. Et aussi pour ne pas avoir à créer un page spéciale, à cet unique usage, du fait que les entrées d'un menu Drupal 8 doivent obligatoirement avoir un lien. Découvrons comment parvenir à nos fins.

Par Mixalis44
Mickael Zafiriou
Développeur Drupal depuis 2013.

Promotion des autres blogs Drupaliste

Pour mon premier billet de blog, je vais faire la promotion des blogs de développeurs Drupal.
Ces blogs m'ont inspirés et m'ont dépannés dans certains projets professionnels

Par Mixalis44
Mickael Zafiriou
Développeur Drupal depuis 2013.

Promotion des autres blogs Drupaliste

Pour ce premier billet de blog, j'ai envie de faire la promotion des blogs de drupalistes. À force de lire des articles de ces personnes j'ai eu envie à mon tour, d'en écrire afin d'essayer d'apporter un peu plus de contenu francophone concernant Drupal.
Voici les blogs que je fréquente et que je lis dès qu'un nouvel article sort.

Par kgaut
Kevin Gautreau

Drupal 8 - Migrate - exemples réels de migrations

Ce site à été construit à l'origine sous Drupal 6, migré sous drupal 7 en 2012, Je suis en train de préparer la migration de ce site vers Drupal 8 via la Migrate API.

Vu que je galère pas mal à trouver des exemples à jours, complets et qui fonctionne, je me suis dis que ce serait intéressant de partager mon expérience, le plus simple étant de partager directement mon module de migration, je l'ai donc mis directement sur github afin que vous puissiez piocher directement dedans pour voir comment je migre l'intégralité du contenu de ce site vers une installation de Drupal 8.

J'ai tenté de faire un readme assez complet, mais les recettes YAML ne sont pas encore super bien documentées, c'est à faire... Pour l'ensemble, c'est du glané à droite à gauche, sur internet mais aussi dans les exemples du module migrate_plus.

En vrac ce que vous pourrez trouver :

  • Explications de base sur la mise en oeuvre de migrate
  • Migration de termes de taxonomie (les vocabulaires étant été recréés préalablement)
  • Migration de noeuds (pareil, les types de contenus et les champs sont recréés manuellement)
  • Migration de « managed files » (fichiers liés à des noeuds (comme l'image d'introduction de ce post)
  • Migration et traitement (process) de zone  « wysiwyg » avec fichiers intégrés : j'en ai profité pour « ranger » l'ensemble des fichiers uploadés dans ckeditor.
  • Migration d'alias d'url (module path)
  • Migration de redirections (module redirect)

Sera fait dans les prochains jours :

  • Migration de commentaires
  • Migration de flag (les noeuds de ce blog ont des "likes" qui sont des flags.
  • Documentation des fichiers YAML, Sources et Process.

Comme je l'ai dis, je me suis beaucoup inspiré du sous-module migrate_example de migrate_plus, c'est pourquoi il reste encore pas mal de commentaire en anglais faisant référence à des types de contenu « beer », qu'il faut que j'adapte.

Remarque : Je ne suis pas un expert de migrate, l'ensemble est probablement améliorable, mais comme disait un sage : « le mieux est l'ennemi du bien », je cherche avant tout à avoir quelque chose qui fonctionne. Ceci étant dit, n'hésitez-pas à me faire part de vos remarques, commentaires ou questions via les commentaires ou bien les issues sur Github ! Je suis preneur de toute idée d'amélioration.

Le tout est disponible sur Github : https://github.com/kgaut/kgaut_migrate.


 

Par Mixalis44
Mickael Zafiriou
Développeur Drupal depuis 2013.

Et c'est r'parti

Et c'est r'parti pour un DrupalCamp. Après Nantes nous voici conviés, pour ce rendez-vous 2017, à Lannion.

 

Par admin

Drupalcamp Lannion, au boulot ou en famille ?

Comme tous les ans, les organisateurs des drupalcamp lancent des appels à partenariat.
Sur le site de l'événement, vous trouverez le détail des offres.
Avis aux entreprises : nous avons besoin de vous !

Mais cette année, nous avons aussi pensé aux participants et à leurs familles. Le camp se déroulant du 27 au 29 octobre prochain, pendant les vacances de la Toussaint, nous nous sommes dit que certains pourraient être tentés par une expérience bretonne un peu plus conséquente.

Alors si l'envie vous prend de profiter du camp pour visiter le coin, nous vous proposons de répondre à ce questionnaire rapide. Avec un peu de chance, nous pourrions vous proposer quelque chose.

Pages