Puncte:0

Drupal hubspot forms with Varnish

drapel br

I have a Drupal 8 hubspot form built in a custom module which holds many fields among which a "Favorite Pizza" field coming from hubspot and this field is rendered as a required fieldset. The code is very long so I decided to explain to you the process instead:

  • In the Drupal buildForm function, we call an external hubspotbuildForm function
  • Inside this function, I collect the following cookie in php $_COOKIE['pizzaLover'], if this cookie holds the value of false, then the form fieldset Favorite Pizza is no longer shown and is no longer required

Hubspot renders the Drupal form without this field. It doesn't even show up in HTML.

Since the page with this Drupal form will be cached in Varnish, I assume that the buildForm function of Drupal will be executed only one time and hence it will call the hubspotbuildform only once, so if a user has $_COOKIE['pizzaLover'] equals to true, then the Favorite pizza fieldset will become visible and required. Then, if another user visits the page, even if his cookie is set to false, he will be able to see the Favorite Pizza field because the page is cached.

This is not what I want, so I chose instead to go to javacsript and execute a function on document ready to check if the cookie is set through JS, if this cookie is set to false then, I tried to remove the required property of this fieldset but it didn't work since the fieldset has embedded required html code. I tried the .remove() function to remove the html fieldset related to this field. The field went away but when I click on submit, the form is not submitting as if it was exepecting a value from me.

Any idea what to do? I want to remove the required field in javascript without blocking the submission.

Kevin avatar
drapel in
În funcție de gazdă, este posibil ca numele cookie-ului să se conformeze unui anumit model de denumire pentru a fi transmis prin stratul de cache către aplicația care urmează să fie citită. Acest lucru este valabil pentru Acquia și Pantheon, de exemplu. În plus, cu excepția cazului în care formularul este construit cu AJAX, probabil că nu doriți ca această pagină să fie stocată în cache.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.