it-swarm-eu.dev

Jak se mohu připojit k systému Kontaktní formulář Zprávu odeslaná a změnit generované HTML?

Mám web Drupal=, kde používám celostátní kontaktní systém umožňující návštěvníkům odesílat zprávy majiteli stránek. Jakmile návštěvník odešle formulář, uživatel je přesměrován na domovskou stránku a nahoře se objeví lepkavé:

Vaše zpráva byla odeslána.

Moje otázka tedy, je možné tuto zprávu změnit a do výstupu přidat nějaké HTML? V ideálním případě bych přidal nějaký javascript, abych vytvořil virtuální zobrazení stránky pro účet Google Analytics, abych ho mohl sledovat jako konverzi cíle.

Představuji si, že by to byla funkce hook_ sedí v mém souboru šablony, ale v tomto procesu jsem relativně nová.

7
shanabus

Jistě, použijte hook_form_alter () a přidejte zpětné volání do $ formuláře ['# submit']. Nejjednodušší způsob, jak najít id formuláře je kontrola pomocí firebug. Tento článek obsahuje mnohem podrobnější informace: http://www.lullabot.com/articles/modifying-forms-drupal-5-and-6 .

Ve zkratce:

  • Najděte ID pro kontaktní formulář, „contact_mail_page“ nebo něco (všimněte si, jak se hifeny mění na podtržítka)
  • V novém uživatelském modulu implementujte buď: yourmodule_form_alter($form_id, &$form, 'contact_mail_page') nebo yourmodule_form_contact_mail_page_alter($form_id, &$form)
  • Upravte kontaktní formulář podle potřeby pomocí proměnné $ form předané odkazem
5
Alex Weber

Modul webform může být vhodnější pro vaše potřeby, pokud se jedná pouze o obecný webový formulář.

1
user630

@shanabus, chápete, že „napsat háček pro modul“ je nesprávné. Hlavním cílem vytvoření vlastního háku pro jakýkoli existující modul, včetně systémového modulu, je překonat chování. Takto přizpůsobíte Drupal podle konkrétních potřeb webů) Stávající kód neupravíte, ale přidáte nový kód, který k přidávání nových/náhradních funkcí používá systém „zavěšení“.

Vlastní funkce zavěšení obvykle existuje ve vlastním modulu vytvořeném speciálně pro web autorem webu. Považujte za místo uložení vašich přizpůsobení specifických pro váš web, které nebudete sdílet s větší komunitou Drupal.) Klasické použití by bylo hook_form_alter, jak naznačuje Alex výše.

Zvažte více podrobností v dokumentaci k rozhraní API pro připojení API: http://api.drupal.org/api/drupal/includes--module.inc/group/hooks . Toto je často koncept, se kterým noví Drupal vývojáři bojují), takže se nenechte odradit, pokud to vyžaduje nějaké zvláštní úsilí, abychom tento koncept vymysleli. Všichni jsme tady byli :)

0
DeeZone