Рейтинг:0

Drupal hubspot forms with Varnish

флаг 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
флаг in
В зависимости от вашего хоста имя файла cookie может соответствовать определенному шаблону именования, который будет передаваться через уровень кэширования приложению для чтения. Это верно, например, для Acquia и Pantheon. Кроме того, если форма не построена с помощью AJAX, вы, вероятно, не хотите, чтобы эта страница кэшировалась.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.