I am trying to make a Contact form on a simple web site using latest Drupal 7.
This is what it should look exactly:
http://s18.postimage.org/hi11tr9qh/form.png
This is what I have achieved so far:
http://s10.postimage.org/sboemprmh/form_now.png
This is the core code I have used inside template.php of my custom template:
<?php
/**
* Preproccess call to process the site contact form
*/
function mytheme_preprocess_contact_site_form(&$variables)
{
//an example of setting up an extra variable, you can also put this directly in the template
$variables['info'] = 'Please fill in the fields below to contact us';
// Load additional html from a node
$node = node_load(5);
$node = node_view($node);
$variables['info'] = $node['body'][0]['#markup'];//['#items'][0]['safe_value']
//dpm($node);
$variables['form']['name']['#title'] = '';
$variables['form']['name']['#default_value'] = 'Your Name...';
$variables['form']['mail']['#title'] = '';
$variables['form']['mail']['#default_value'] = 'E-Mail';
$variables['form']['message']['#title'] = '';
$variables['form']['message']['#default_value'] = 'Your Message...';
$options = array();
$options['Purchases'] = 'Purchases';
$options['Delivery'] = 'Delivery';
$options['Urgent attention'] = 'Urgent attention';
$variables['form']['subject']['#title'] = '';
$variables['form']['subject']['#type'] = 'select';
$variables['form']['subject']['#input'] = false;
$variables['form']['subject']['#options'] = $options;
//this is the contents of the form
$variables['contact'] = drupal_render_children($variables['form']);
//dpm($variables['form']);
}
function mytheme_form_required_marker($variables) {
//dpm($variables);
return '';
// This is also used in the installer, pre-database setup.
$t = get_t();
$attributes = array(
'class' => 'form-required',
'title' => $t('This field is required.'),
);
return '<span' . drupal_attributes($attributes) . '>(required)</span>';
}
?>What forced me to post this here, is that this code already supposed to do 2 things which it somehow obviously does not:
- make "subject" field be a select box
- input default values specified
So far I have several questions:
- Is my code correct to achieve the above 2 goals in particular?
- Can I remove asterisks just for this form, keeping them for user login?
- Can I embed "onclick" javascript events directly into form fields html and thus have full control over form generation?
- If someone would suggest me to use Webform module instead, would it allow me to make the form looking exactly like on the first image?
Thanks for the attention.
Eugene
Edit: Images links are fixed.
Comments
I have found some problems in
I have found some problems in my code and will update with the results some later.