Drupal — оформление элементов веб-формы
-
22-09-2019 - |
Вопрос
Другой вопрос о Drupal Webforms - сама форма встроена /includes/form.inc's
function theme_form_element($element, $value)
и добавляет <label>
элемент в $output.Я хочу удалить эту метку только для одной веб-формы, поэтому мне придется переопределить эту функцию.Как я могу переопределить его только для одной веб-формы, оставив его одинаковым во всех остальных?Например.
if ($block == 'contact'):
// only output <input> form element stored in $value
function mytheme_html_form_element($element, $value) {
$t = get_t();
$output .= " $value\n";
return $output;
}
endif;
Возможно ли это и что происходит в условии if?
Решение 2
мне пришлось сделать ловушку_form_alter, но сама метка находилась в элементе ['submited'].вот код
if($form_id == 'webform_client_form_18') {
$form['submitted']['#children'] = '
<input
type="text"
maxlength="128"
name="submitted[email]"
id="edit-submitted-email"
value="' . $form['submitted']['email']['#default_value']. '"
class="form-text required"
/>
';
}
в другой форме удаление #title сработало (+1 вам!), но это был другой случай.
Другие советы
Если вы просто хотите удалить метку, вы также можете использовать ловушка_form_alter(), и убедитесь, что $form_id равен рассматриваемой веб-форме.Идентификатор будет иметь вид:webform_client_form_N, где N — идентификатор узла веб-формы.
Как только вы начнете работать с правильной формой, вы можете отменить метку, используя, например, такой код:
unset($form['submitted']['first_name']['#title']);
Это приведет к отмене метки для поля с именем first_name.
Я бы не стал отключать заголовки элементов формы.Вы можете получить неожиданные результаты, когда ваша форма будет обработана движком темы.
Вы можете сделать это несколькими способами:
Оформите каждый элемент или всю форму темой with '#theme' => 'my_callback'
.
Вы также можете создать свой собственный элемент формы, используяook_elements, который использует соответствующий крючок темы.
Видеть:
http://api.drupal.org/api/drupal/developer--topics--forms_api_reference.html