Drupal - тематика вебформ - PullRequest
2 голосов
/ 22 января 2010

Еще один вопрос о веб-формах Drupal - Сама форма встроена в / includes / form.inc 's

function theme_form_element($element, $value)

и добавляет элемент <label> к выводу $. Я хочу удалить эту метку только для одной веб-формы, поэтому мне нужно переопределить функцию. Как я могу переопределить его только для одной веб-формы, оставив его одинаковым для всех остальных? Э.Г.

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?

Ответы [ 3 ]

6 голосов
/ 22 января 2010

Если вы просто хотите удалить метку, вы также можете использовать hook_form_alter () и проверить, что $ form_id равен рассматриваемой веб-форме. Идентификатор будет иметь вид: webform_client_form_N, где N - это идентификатор узла веб-формы.

Как только вы работаете с правильной формой, вы можете сбросить метку, используя, например, такой код:

 unset($form['submitted']['first_name']['#title']);

Что бы сбросить метку для поля с именем first_name.

1 голос
/ 25 января 2010

Мне нужно было сделать hook_form_alter, но сам ярлык был в элементе ['submit']. вот код

  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 для вас!), Но это был другой случай.

0 голосов
/ 24 января 2010

Я бы не отменял заголовки элементов формы. Вы можете получить неожиданные результаты, когда ваша форма будет обработана механизмом тем.

Вы можете сделать это несколькими способами:

Тема каждого элемента или всей формы с '#theme' => 'my_callback'.

Вы также можете создать свой собственный элемент формы, используя hook_elements, который использует соответствующий крюк темы.

См:

http://api.drupal.org/api/drupal/developer--topics--forms_api_reference.html

http://api.drupal.org/api/function/hook_elements/6

...