Yakforms - Migration sur Drupal 9

Bonjour,

Je me présente rapidement, je m’appelle Mélissandre Varin, développeuse web en alternance au sein du CEM (Centre d’Expressions Musicales) au Havre.

Ma mission ici est de migrer Yakforms de Drupal 7 à Drupal 9. Yakforms permet de créer des formulaires facilement avec une interface agréable et le migrer vers une version plus récente de Drupal est une nécessité pour nous, et serait sûrement bénéfique à plus d’un !

Étant développeuse Junior, je m’adapte doucement à l’environnement. J’ai d’ores et déjà étudié les dépendances de form_builder ui, module qui permet notamment de glisser-déposer des champs de textes, des check-lists et autres champs directement depuis un petit menu sur la page du formulaire en cours de création. Ce dernier me semble être la première chose sur laquelle me pencher afin de le réécrire Yakforms sur Drupal 9.

J’aurais besoin de petits coups de main, je reviens vers vous avec des questions plus détaillées/précises très prochainement.

En remerciant d’avance la communauté !

2 « J'aime »

Bienvenue ici @Medic !

La semaine dernière, un utilisateur autrichien est venu poser plein de questions (que vous m’aviez déjà posées au CEM) sur le statut et l’avenir de Yakforms.

Ma réponse est en anglais, mais ça ne devrait pas te poser de souci a priori.

Si tu as besoin de précisions, fais le moi savoir ! :slight_smile:

2 « J'aime »

Salut @Medic,

Je m’attelle également sur mon temps libre à déterminer comment faire en sorte d’avoir Yakforms sur Drupal 9.

Quoi qu’il en soit, dans mes pérégrinations, j’ai buté sur beaucoup d’embûches. Je vais essayer de t’énumérer l’ensemble ici, afin que tu puisses avoir une idée de ta tâche et t’aider à planifier ton travail.

  1. Primo, la manière de définir les modules/profiles/thèmes a changé entre Drupal 7 et Drupal 8 (et donc 9). Avant on passait par des fichiers .info, .install, des set_variables() etc… Ces fichiers étaient du code PHP, principalement. Maintenant, c’est par le biais de fichier .yml. Leur formulation n’est plus du tout la même chose. De plus les déclarations des configurations se font via des fichiers .yml dans le sous-dossiers config/install au lieu de la longue liste de variables. De plus, il faut encore penser à modifier dans le code tous les appels à set_variable et get_variables par des Drupal::config. (https://www.drupal.org/node/1667896)
  2. Secundo, beaucoup de modules ont été dépréciés par le passage à Drupal 8. (Deprecated and obsolete extensions | Core modules and themes | Drupal Wiki guide on Drupal.org) Et certains ne sont plus du tout supportés par les dev pour Drupal 9. C’est notamment le cas du non-moindre module « Theme Key » qui permet de poser un thème selon des conditions particulières. Les dev conseille l’utilsiation de « Theme Shifter » mais celui-ci n’a pas la même formulation. https://www.drupal.org/node/1667896 Par ailleurs, Par ailleurs WebForm a été intégré au groupe Core et certaines de ces fonctionnalités pourraient avoir changé.
  3. Faire attention à la version PHP sur ton système. Sur une Debian, tu dois absolument passer par le dépôt chez sury.org car la version de la distribution n’est pas supporté par Drupal 8 ou 9. Par ailleurs, certains modules ne peuvent pas fonctionné avec PHP 8.1 ou PHP 8.2. Donc c’est un peu galère. Pour ma part, je suis sur Debian 11, PHP 8.1 (avec insertion dépôt de Sury) et Drupal 9.5.4
  4. Ah oui, d’après ce que j’ai compris, certains modules sont deprecated mais peuvent être disponibles via le canal « contributed ». Et là, je crois qu’il n’y pas d’autres possibilité de passer par un « composer require »… je pense que c’est le cas pour Color et RDF.

J’ai un petit dépôt sur Framagit dans cette optique. Si tu veux, je t’ouvre l’accès pour que tu vois vers où je m’engage. Il me faut juste ton pseudo sur Framagit et je t’envoie l’accès.

Ce n’est pas grand chose, mais si ça peut t’aider. :wink:

2 « J'aime »

Merci pour cet accueil et cette réponse rapide !

J’ai lu les différentes questions/réponses et en effet, cela se rapproche de notre premier échange :slight_smile: !
Après avoir fait un point avec PaliPalo, je prendrais le temps de répondre (in english of course) à propos de mon avancée sur le projet.
Je te remercie d’avance, je n’hésiterais pas à venir te questionner si besoin !

Merci PaliPalo d’avoir pris le temps de répondre avec toutes ces précisions, cela m’éclaire d’autant que j’ai rencontré quelques-unes de ces embûches !

Mon pseudo framagit est le suivant : Mélissandre @unmelico
Aussi, je pensais à un éventuel échange en visio pour en discuter de vive voix, serais-tu disponible pour échanger à ce sujet ? J’aurais quelques questions, notamment sur les technos vers lesquelles me tourner :).

J’ai t’ai envoyé l’invitation pour accéder au dépôt. Dis-moi si c’est OK. Et soit indulgente, s’il-te-plaît, c’est réellement du work-in-progress. (J’ai mis un peu de temps car, j’ai du recréer le dépôt, il y avait des informations plus personnelles que je n’avais pas envie de voir s’égrainer sur le web sans que nous nous en rendions compte :slightly_smiling_face:)

Pour la visio, ça va risquer d’être difficile. D’une ma webcam n’est plus supporté par mon Linux (j’ai regardé mais j’avoue que j’ai du mal à m’y retrouver dans les spéc UVC, surtout que mon modèle utilise la norme 1.0… à sa façon…) Mais également, parce que je n’ai pas d’horaire structuré. Donc programmer quelque-chose n’est pas aisé. Je vis au jour le jour, quoi :slight_smile: Mais tu peux me joindre via Framapiaf sous le même pseudo. Je répondrai à tes questions du mieux et aussi rapidement que je peux. Mais attention, j’ai beau être un vieux briscard d’informaticien, je n’ai pas la connaissance infuse en ce qui concerne le développement web. Je suis plutôt vulgum pecus, même.

1 « J'aime »

Merci pour l’invitation au dépôt, je vais y jeter un coup d’œil de suite !
Pas de problème pour la visio, j’ai créé un compte framapiaf pour échanger à l’écrit :),
Et je te remercie de prendre le temps de me répondre :slight_smile: !

Pas de soucis. Maintenant, on peut faire l’inverse. Si tu as un dépôt et que tu veux que j’y jette un coup d’oeil de temps en temps ou à ta demande pour voir si je peux être d’une quelconque aide. Je dis ça au vu que ton projet est plus officiel que le mien et qu’il sera peut-être proposé à la communauté une fois en place.

Jusque-là, j’ai tâtonné plusieurs manières de faire, et aujourd’hui, je suis partie sur une idée bien précise : recréer cette interface de création de formulaire (que l’on connaît bien sur Yakforms) en React Js, avec le glisser déposer à la base de la mise en forme.
Mon travail étant encore en cours de construction, je te demanderais d’être indulgent d’autant que React est une technologie que j’apprends à maîtriser :innocent:
Je mettrai au propre mon travail demain, et t’ajouterai sur le dépôt par la même occasion :smile:

1 « J'aime »

Je ne peux pas t’assurer à 100% que ton choix est plus pertinent. Je m’étais fait la même réflexion mais j’ai préféré partir sur quelque-chose de connu et facilement reproductible que tout recommencer de but en blanc. Quoi qu’il en soit, le fait que tu partes sur une base fraîche te permettra d’avoir une maîtrise de la solution.

Et si tu pouvais bien la documenter, ça serait merveilleux. :slight_smile:

Effectivement, dans mes propres avancements sur une solution restant basée sur Drupal, j’ai beaucoup de difficulté à migrer/traduire Yakforms de Drupal 7 vers un modus operandi Drupal 8 à minima. Ici, je me heurte aux définitions de blocs - je suis sur la voie mais le concept m’est encore nébuleux.

Et ne t’inquiète pas, les personnes qui ne fanfaronne pas et qui restent humbles vis-à-vis de leur travail auront toujours droit à mon indulgence. Et puis, je t’ai demandé également de l’être avec moi, donc donnant-donnant :wink:

En tout cas, garde courage ! :raised_hands:

2 « J'aime »

L’idée de repartir de zéro était exactement dans ce but ! Que je la documente au maximum et que je puisse avoir une parfaite maîtrise du code :slight_smile:

J’ai pour l’instant qu’un début d’application, mais dès que j’aurais quelque chose de plus concret, je t’inclurais au projet pour que tu me donnes ton avis :smiley: !

Merci beaucoup, je garde courage et fais de mon mieux, c’est promis :wink:

2 « J'aime »