質問

Drupal Webformsについての別の質問 - フォーム自体が組み込まれています /includes/form.incさんの

function theme_form_element($element, $value)

そして追加します <label> 要素を $output に追加します。1 つの Web フォームに対してのみそのラベルを削除したいので、関数をオーバーライドする必要があります。他のすべての Web フォームでは同じままにして、1 つの Web フォームのみでオーバーライドするにはどうすればよいですか?例えば。

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

私はhook_form_alterを行う必要がありましたが、ラベル自体は[「提出」]要素でいました。 ここではコードです。

  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)を働いていたが、これは別のケースだった。

他のヒント

あなただけのラベルを削除するために探している場合は、

、あなたも( hook_form_alterを使用することができます)の、および$ form_idが問題のWebフォームと同じであることを確認してください。 IDの形式は次のようになります。webform_client_form_N NはWebフォームのノードIDである

あなたが適切なフォームにしているオペレーティング、あなたが使用してラベルの設定を解除することができたら、例えば、次のようなコード:

 unset($form['submitted']['first_name']['#title']);
FIRST_NAMEというフィールドのラベルの設定を解除します。

私は未設定のフォーム要素のタイトルをではないだろう。あなたのフォームがテーマエンジンによってレンダリングされるときに、予期しない結果を得ることができます。

あなたはそれにいくつかの方法を行うことができます:

テーマ各要素または'#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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top