web-dev-qa-db-ja.com

form-itemにクラスを追加する

私はcssファイルでテーマを設定するための「マーカー」として使用するカスタムクラス名をフォーム項目に追加しようとしています。

私はstackexchange/overflowと、Drupalのドキュメントを含む他のいくつかのサイトやフォーラムに参加していますが、機能しない理由を見つけていません。

公式ドキュメントには、属性タグの使用が次のように記載されています。

'#attributes' => array('class' => 'myclass'),

しかし、以下の私の例に見られるように、これは機能しないか、エラーが発生します。

screenshot

私は何か間違ったことをしていますか?

1
Donaldini

#attributesitem フォーム要素ではサポートされていません。

項目

Description:オプションのタイトルと説明を許可する表示専用フォーム要素を生成します。

注:これは読み取り専用フィールドであるため、#requiredプロパティを設定しても、フォーム要素のテーマが実際に必要であるかのように見える以外は何も行われません(つまり、#titleの横に赤い星を付けます)。

プロパティ:#access、#after_build、#description、#element_validate、#parents、#post_render、#prefix、#pre_render、#required、#suffix、 #theme、#title、#tree、#type、#value、#weight

次に、次のようなカスタムテーマ呼び出しを追加する必要があります。

function MYTHEME_preprocess_form_element(&$vars) { $vars['#attributes']['class'][] = 'another-class'; }

2
niksmac

最後に、.moduleファイルにコードを追加して解決しました。 divをコンテンツでクラスでラップしました。

0
Donaldini

_form_set_class()を使用できます

ドキュメント: https://api.drupal.org/api/drupal/includes!form.inc/function/_form_set_class/6.x

例:

_form_set_class($element, array('my-class'));
0
Rafal Enden