Вы также можете использовать #container
элемент формы и код, подобный следующему:
$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'),
);
Элемент #container оборачивает свои дочерние элементы <div>
тегом, класс CSS которого передается в #attributes
свойстве.
Вы могли бы даже использовать контейнер для элемента «twitter-icon», но это не дает вам никаких преимуществ, за исключением случая, когда вы могли бы добавить элемент к этому, как в следующем коде:
$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
свойство из последнего элемента или#prefix
свойство из первого элемента, в новый добавленный элемент. Как вы сказали, это менее подвержено ошибкам.Это то, что вы ищете?
Надеюсь, это поможет!
источник
theme_render_example_add_div
См. Api.drupal.org/api/examples/… )Вы также можете создать тему для этого.
И в твоей теме крючок:
И в функции темы:
Я использую это в Drupal 6, я не уверен, работает ли также в D7, но я надеюсь, что так
источник