web-dev-qa-db-fra.com

Comment ajouter le formulaire de contact en première page?

J'ai besoin d'ajouter le formulaire contact dans la première page mais je ne sais pas comment. il y a des modules comme Formulaire de contact sur le nœud qui insère ce formulaire dans la page du nœud mais je veux seulement qu'il soit dans la première page. comment puis-je faire cela?

merci

5
M a m a D
  • Vous pouvez utiliser le module Contact Form Blocks , si vous souhaitez utiliser le formulaire de contact principal.

  • Alternativement, vous pouvez créer votre formulaire de contact en utilisant le module Webform qui prend en charge l'intégration du formulaire dans un bloc, que vous pouvez ensuite afficher où vous le souhaitez.

  • En outre, vous pouvez afficher votre formulaire de contact existant dans un bloc personnalisé, en écrivant un module personnalisé. Dans ce cas, vous devez implémenter 2 crochets:

    puis utilisez la fonction drupal_get_form pour récupérer le formulaire pour le rendu. (Voir ceci pour plus d'informations)

12
m1n0

La solution générale utilisant webform est la suivante:

Étape 1 : Accédez à votre formulaire Web et cliquez sur modifier.

Étape 2 : Allez ensuite dans l'onglet 'Webform'.

enter image description here

Étape 3 : En haut du menu du formulaire Web, cliquez sur "Paramètres du formulaire".

Étape 4 : allez jusqu'en bas et cliquez sur "Paramètres avancés".

enter image description here

Étape 5 : assurez-vous de cliquer sur la case à cocher qui indique "Disponible en bloc".

Étape 6 : Allez dans/admin/structure/block. Vous pouvez soit survoler le lien "Configurer", soit cliquer sur le clic pour voir l'identifiant du bloc. Il ressemblera à ceci "client-block-341".

enter image description here

Étape 7 : utilisez ce code d'extrait pour placer dans le fichier de modèle que vous souhaitez générer le formulaire Web.

<?php 
    $block = module_invoke('webform', 'block_view', 'client-block-341');
    print render($block['content']); 
?>

C'est le source de cette solution.

4
M a m a D

Vous devez d'abord installer le module de contact intégré dans drupal 7.

Vous devez suivre ce lien de référence pour installer le module de contact:

http://www.inmotionhosting.com/support/edu/drupal-7/contact-us-page/how-to-install-the-contact-module-in-drupal?tsrc=rsbed

http://www.inmotionhosting.com/support/edu/drupal-7/contact-us-page/configuring-the-contact-form-in-drupal?tsrc=rsbed

http://www.inmotionhosting.com/support/edu/drupal-7/contact-us-page/adding-the-contact-form-to-the-menu-in-drupal?tsrc=rsbed

Vous devez maintenant créer un bloc ou un nœud pour afficher le formulaire de contact.

formulaire de contact vers un nœud,

  1. Ouvrez template.php dans votre dossier de thème et ajoutez le code suivant. Remplacez [NOM DU THÈME] par le nom de votre thème. Remplacez la valeur de $ nid par l'ID réel de votre nœud.

    /**
     * Implements preprocess_node().
     */
    function [THEME NAME]_preprocess_node(&$vars) {
      // Print contact form on contact page.
      $nid = 7;
      if ($vars['node']->nid == $nid && module_exists('contact')) {
        module_load_include('inc', 'contact', 'contact.pages');
        $contact_form = drupal_get_form('contact_site_form');
        $vars['contact_form'] = render($contact_form);
      }
    }
    
  2. Ouvrez node.tpl.php dans votre dossier de thème (si vous ne l'avez pas, copiez-le à partir de votre thème de base ou de modules/node). Ajoutez le code suivant à l'endroit où vous souhaitez que le formulaire de contact apparaisse.

    if (!empty($contact_form)) {
      print $contact_form;
    }
    
  3. Videz tous les caches.

==== OR ====

formulaire de contact vers un bloc

1). Ouvrez template.php dans votre dossier de thème et ajoutez le code suivant. Remplacez [NOM DU THÈME] par le nom de votre thème. Remplacez la valeur de $ module et $ delta par les valeurs de chaîne réelles.

Astuce: Pour localiser ces valeurs, allez dans admin/structure/block et cliquez sur le lien "configurer" à côté du bloc que vous souhaitez imprimer. Les chaînes seront affichées dans l'URL en tant que telles: admin/structure/block/manage/[module]/[delta]/configure.

    /**
     * Implements preprocess_block().
     */
    function [THEME NAME]_preprocess_block(&$vars) {
      // Preprocess the Contact form block. 
      $module = 'block';
      $delta = 3;
      if ($vars['block']->module == $module && $vars['block']->delta == $delta) {
        module_load_include('inc', 'contact', 'contact.pages');
        $contact_form = drupal_get_form('contact_site_form');
        $vars['content'] = render($contact_form);
      }
    }

2). Videz tous les caches.

0
Chirag Shah