google maps in een drupal-contactformulier?

30 Nov

Een standaard Drupal installatie heeft een contact module, die een site-wide contactformulier genereert. Je kan wel (via fckeditor of andere manieren) hier wat basic opmaak aan toevoegen, maar de meer geavanceerde tags wordt geblokkeerd in deze module. Een Google Maps kan je dus wel integreren, maar doordat de <iframe> tag wordt gestript van de source-code, krijg je in het uiteindelijke resultaat enkel en alleen 'view larger map' te zien.

En toch, via wat omwegen kan je hier een mouw aanpassen:

  • download de GMap module
  • ga naar admin/build/modules en activeer de modules GMap en Contact
  • Vraag een Google Maps API Key aan, geef die in op de GMap Settings pagina, en klik 'Save'
  • Ga naar admin/settings/filters, en selecteer "Full HTML" als default invoerformaat. Configureer dit "Full HTML" formaat, selecteer bijkomend de "GMap macro expander", en bewaar de nieuwe instellingen
  • Ga nu naar admin/build/contact/settings, copy-paste de macro uit Google in het "Additional Information" veld en bewaar.
  • Open de 'template.php' file van je theme en voeg onderstaande functie toe:
    function theme_contact_mail_page($form){
      $output = check_markup(variable_get('contact_form_information',
        t('You can leave a message using the contact form below.')));  
      unset($form['contact_information']);
      $output .= drupal_render($form);
      return $output;
    }
    
  • Voilà! Kijk even je contact page na of alles nu correct wordt getoond en klaar is kees.

Succes!