web-dev-qa-db-ja.com

フォーム要素にテーマを設定するにはどうすればよいですか?

フォームのテーマを設定することができました。次に、送信ボタンを<div>、ただし送信ボタンのテーマを設定することはできません。

このコードはフォームで機能しました。

print "text text text";
print drupal_render_children($variables["form"]);

これが、送信ボタンのテーマを設定するために使用したコードです。

$form['submit'] = array(
  '#type' => 'submit',
  '#value' => t('Submit'),
  '#attributes' => array('style' => "padding: 0 10px;"),
  '#theme' => "submit",
);

function scores_theme($existing, $type, $theme, $path) {
  $path = drupal_get_path('module', 'scores');
  return array(
    'submit' => array(
      'render element' => 'submit',
      'template' => 'submit',
      'path' => $path,
    ),
  );
}

Submit.tpl.phpには何を入れればよいですか?これらはどれも機能しません。

print drupal_render_children($submit);

print drupal_render($variables['submit']);

print drupal_render($submit);
5
user4035
function YOUR_THEME_form_FORM_ID_alter(&$form, &$form_state) {
      $form['submit']['#prefix'] = '<div class="scores-submit-btn">';
      $form['submit']['#sufix'] = '</div>';
}
2
deem

そして、水平方向のフォームを使用している場合、プレフィックス/サフィックスにキーフィールドをもう1つ含めない場合、実際にはまったくうまくいきません...

だから、これを...水平線のために。タイプフォーム(通常、左にフロートされ、最後に送信されるフォーム):

これだけではなく...

...
'#prefix' => "<div class='submit-button-custom'>",
'#suffix' => "</div>",
...

これを行う...

...
'#prefix' => "<div class='submit-button-custom'>
              <label for=op>&nbsp;<label>",
'#suffix' => "</div>",
...

ここで、「op」は、想定される送信ボタンの「name」属性(この場合)です。

お役に立てれば。

2

#prefixと#suffixでフォーム要素をラップできるはずです:

$form['submit'] = array(
  '#type' => 'submit',
  '#value' => t('Submit'),
  '#attributes' => array('style' => "padding: 0 10px;"),
  '#theme' => "submit",
  '#prefix' => "<div class='submit-button-custom'>",
  '#suffix' => "</div>",
);
2
Paul

各Drupalフォームには送信ボタンがあるため、送信ボタンのスタイルを設定する場合は、#prefixおよび#suffixフォームプロパティを使用して2つの方法でそれを実現できます。#prefixおよび#suffixはラップしますフォーム要素を特定のHTMLタグに挿入します。

カスタムフォームでは、以下を使用します。

_$form['submit'] = array(
  '#type' => 'submit',
  '#value' => t('Submit'),
  '#prefix' => "&#60;div class='scores-submit-btn'&#62;",
  '#suffix' => "&#60;/div&#62;",
);
_

別のモジュールで作成されたフォームでは、hook_form_alte()を使用してフォーム要素を追加できます。

_function hook_form_alter(&$form, &$form_state, $form_id) {
  switch ($form_id) {
    case 'FORM_ID':
      $form['submit']['#prefix'] = "&#60;div class='scores-submit-btn'&#62;";
      $form['submit']['#sufix'] = "&#60;/div&#62;";
      break;
  }
}
_

CSSファイルで、必要なスタイルを指定するだけです。

_.scores-submit-btn {
  padding: 0 10px;
}
_
0
inizio

https://drupal.stackexchange.com/questions/100442/how-to-change-or-alter-the-html-code-generated-by-drupalに記載されているフォームの下にスパンを追加したい場合-7-form-element]

これを使えます

$form['item_name'] = array(
      '#title' => '<span>Pin Number</span>',
          '#type' => 'password',
      '#size' => 35,
          '#maxlength' => 40,
          '#required' => TRUE,
    ); 
0
Pankaj Chauhan