
knackforge
August 19, 2015
To add a placeholder or alter the title, description, and hide of the image captcha, do as follows
Use hook_form_FORM_ID_alter() and Form API pre_render function.
E.g:
/**
* Implements hook_form_FORM_ID_alter()
*/
function MY_MODULE_OR_THEME_form_contact_site_form_alter(&$form, &$form_state, $form_id) {
$form['#pre_render'][] = 'yourform_pre_render';
}
function yourform_pre_render($element) {
if (isset($element['captcha']['captcha_widgets']['captcha_response']['#title'])) {
// change title
$element['captcha']['captcha_widgets']['captcha_response']['#title'] = t('Change title name');
// placeholder add
$element['captcha']['captcha_widgets']['captcha_response']['#attributes']['placeholder'] = $element['captcha']['captcha_widgets']['captcha_response']['#title'];
// empty title
$element['captcha']['captcha_widgets']['captcha_response']['#title'] = '';
$element['my_captcha_element']['captcha_widgets']['captcha_response']['#description'] = "New Description";
}
return $element;
}
You can also use hook_form_alter() function:
function MY_MODULE_OR_THEME_form_alter(&$form, &$form_state, $form_id) {
if($form_id == 'FORM_ID') {
$form['#pre_render'][] = 'yourform_pre_render';
}
}// Explains pre_render. This is when you create a form;
function yourform($form, &$form_state) {
$form['#pre_render'][] = 'yourform_pre_render';
$form['name'] = array(
'#title' => t('name'),
'#type' => 'textfield',
'#required' => TRUE,
);
$form['actions'] = array(
'#type' => 'actions',
);
$form['actions']['submit'] = array(
'#type' => 'submit',
'#value' => t('save'),
);
return $form;
}
function yourform_pre_render($element) {
$element['captcha']['captcha_widgets']['captcha_response']['#title'] = t('Your name');
return $element;
}
Just like how your fellow techies do.
We'd love to talk about how we can work together
Take control of your AWS cloud costs that enables you to grow!