I need to add contact
form in the front page but I don't know how. there are some modules like Contact Form On Node that inserts this form in the node page but I only want it to be in the front page. how do I can do this ?
thanks
I need to add contact
form in the front page but I don't know how. there are some modules like Contact Form On Node that inserts this form in the node page but I only want it to be in the front page. how do I can do this ?
thanks
You can use Contact Form Blocks module, in case if you want to use the core contact form.
Alternatively, you can create your contact form using Webform module which supports embedding the form in a block, which you can then display wherever you want.
Also, you can display your existing contact form in a custom block, writing a custom module. In that case, you need to implement 2 hooks:
and then use the function drupal_get_form
to retrieve the form for
rendering. (See this for some more info)
The general solution using webform
is this:
Step 1: Go to your webform and click on edit.
Step 2: Then go to the tab 'Webform'.
Step 3: At the top of the webform menu click on 'Form settings'.
Step 4: Go all the way to the bottom and click on 'Advanced Settings'.
Step 5: Make sure you click on the checkbox that says 'Available as block'.
Step 6: Go to /admin/structure/block. You can either hover over the 'Configure' link or click on the click to see the block id. It will look something like this 'client-block-341'.
Step 7: Use this snippet code to put into the template file you want to output the webform.
<?php
$block = module_invoke('webform', 'block_view', 'client-block-341');
print render($block['content']);
?>
This is the source of this solution.
First you have to install contact module inbuilt in drupal 7.
You Need to follow this refference link to install contact module:
Now you have to create one either block or node to showing contact form.
contact form to a node,
Open template.php in your theme folder and add the following code. Replace [THEME NAME] with the name of your theme. Replace the value of $nid with the actual ID of your node.
/**
* 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);
}
}
Open node.tpl.php in your theme folder (if you don't have it, copy it from your base theme or from modules/node). Add the following code to the spot where you would like the contact form to appear.
if (!empty($contact_form)) {
print $contact_form;
}
==== OR ====
contact form to a block
1). Open template.php in your theme folder and add the following code. Replace [THEME NAME] with the name of your theme. Replace the value of $module and $delta with the actual string values.
Hint: To locate these values go to admin/structure/block and click on the "configure" link next to the block you want to print. The strings will be shown in the URL as such: 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). Clear all caches.