Możesz także użyć #container
elementu formularza i kodu podobnego do następującego:
$wrapper = array(
'#type' => 'container',
'#attributes' => array(
'class' => array('class-name'),
),
);
$wrapper['twitter-icon'] => array(
'#type' => 'markup',
'#markup' => '<div class="twitter-icon"></div>'
);
$wrapper['twitter-link'] => array(
'#type' => 'markup',
'#markup' => l(t('follow us on Twitter'), 'https://twitter.com/#!/zujava'),
);
Element #container otacza swoje elementy potomne <div>
znacznikiem, którego klasa CSS jest klasą przekazaną we #attributes
właściwości.
Możesz nawet użyć kontenera dla elementu „twitter-icon”, ale to nie daje żadnych korzyści, z wyjątkiem przypadku, gdy możesz dodać element do tego, jak w przypadku następującego kodu:
$wrapper = array(
'#type' => 'container',
'#attributes' => array(
'class' => array('class-name'),
),
);
$wrapper['twitter-icon'] => array(
'#type' => 'container',
'#attributes' => array(
'class' => array('twitter-icon'),
),
);
if ($condition) {
$wrapper['twitter-icon']['twitter-icon-text'] => array(
'#type' => 'markup',
'#markup' => t('Icon text'),
);
}
$wrapper['twitter-link'] => array(
'#type' => 'markup',
'#markup' => l(t('follow us on Twitter'), 'https://twitter.com/#!/zujava'),
);
#suffix
właściwości z ostatniego elementu lub#prefix
właściwości z pierwszego elementu do nowego dodanego elementu. Jak powiedziałeś, jest to mniej podatne na błędy.Czy tego szukasz?
Mam nadzieję, że to pomaga!
źródło
theme_render_example_add_div
Patrz api.drupal.org/api/examples/… )Możesz także stworzyć do tego motyw.
I w haku motywu:
A w funkcji motywu:
Używam tego w Drupal 6, nie jestem pewien, czy działa również w D7, ale mam nadzieję, że tak
źródło