私はcssファイルでテーマを設定するための「マーカー」として使用するカスタムクラス名をフォーム項目に追加しようとしています。
私はstackexchange/overflowと、Drupalのドキュメントを含む他のいくつかのサイトやフォーラムに参加していますが、機能しない理由を見つけていません。
公式ドキュメントには、属性タグの使用が次のように記載されています。
'#attributes' => array('class' => 'myclass'),
しかし、以下の私の例に見られるように、これは機能しないか、エラーが発生します。
私は何か間違ったことをしていますか?
#attributes は item フォーム要素ではサポートされていません。
項目
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'; }
最後に、.moduleファイルにコードを追加して解決しました。 divをコンテンツでクラスでラップしました。
_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'));