2017-08-28 3 views
0

私はメニューを構築するモジュールを持っています。このモジュールが生成する<a>タグにCSSクラスを追加したいと思います。Drupal: 'class'配列を要素の 'attributes'配列に正しく追加する方法は?

dpm()私は自分のクラスを追加する必要がある正しい配列を見つけるために使用しました。これは、すでに

['#localized_options']['attributes']

ありそこに[title]配列が、クラスのためノー配列です。

私のような、私のクラスを追加し、いくつかの異なる方法を試してみた:

$item['#localized_options']['attributes']['class'] = "some-styles"; 

$item['#localized_options']['attributes']['class'][] = "some-styles"; 

$item['#localized_options']['attributes'] = array('class' => "some-styles"); 

しかし、私はエラーを取得しておいてください。

Fatal error: Cannot use string offset as an array

誰1は、私がこれをやるべきか知っているだろう?

答えて

1

フォームAPIによれば、プロパティは#接頭辞で始まる必要があります。 だから私は、正しい方法があると思う:

$item['#localized_options']['#attributes']['class'][] = 'some-styles'; 

参照: https://api.drupal.org/api/drupal/developer%21topics%21forms_api_reference.html/7.x#attributes

PS:

$item['#localized_options']['#attributes'] = array('class' => "some-styles"); 

を使用していないそうでなければあなたは自分のCSSスタイルを追加するためのcomplitely #attributesが消去されます!多くの他のモジュールが独自の#attributesプロパティを追加できるので、これは間違っています!

関連する問題