Compte tenu de ce tableau rendable:
$output = array(
'Twitter-icon' => array(
'#type' => 'markup',
'#markup' => '<div class="Twitter-icon"></div>'
),
'Twitter-link' => array(
'#type' => 'markup',
'#markup' => l('follow us on Twitter', 'https://Twitter.com/#!/zujava'),
),
);
Comment encapsuler ces deux éléments dans une seule DIV?
Vous pouvez également utiliser le #container
élément de formulaire et code similaire au suivant:
$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'),
);
L'élément # container enveloppe ses éléments enfants avec un <div>
tag, dont la classe CSS est celle passée dans le #attributes
propriété.
Vous pouvez même utiliser un conteneur pour l'élément "Twitter-icon", mais cela ne vous donne aucun avantage, sauf dans le cas où vous pourriez éventuellement ajouter un élément à cela, comme avec le code suivant:
$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'),
);
C'est ce que tu cherches?
$output = array(
'Twitter-icon' => array(
'#type' => 'markup',
'#markup' => '<div class="Twitter-icon"></div>'
'#prefix' => '<div class="test">',
),
'Twitter-link' => array(
'#type' => 'markup',
'#markup' => l('follow us on Twitter', 'https://Twitter.com/#!/fdgf'),
'#suffix' => '</div>',
),
);
J'espère que cela pourra aider!
Vous pouvez également créer un thème pour cela.
$form['Twitter']['#theme'] = 'my_Twitter_theme';
$form['Twitter']['icon'] = array(
'Twitter-icon' => array(
'#type' => 'markup',
'#markup' => '<div class="Twitter-icon"></div>'
);
$form['Twitter']['link'] = array(
'#type' => 'markup',
'#markup' => l('follow us on Twitter', 'https://Twitter.com/#!/zujava'),
);
Et dans votre thème crochet:
function my_hook_theme(){
return array(
'my_Twitter_theme' => array('form' => NULL)
);
}
Et dans la fonction thème:
function theme_my_Twitter_theme($form){
$output = "";
$output .= "<div class=\"Twitter\">";
$output .= drupal_render($form['icon']);
$output .= drupal_render($form['link']);
$output .= "</div>";
$output .= drupal_render($form);
return $output;
}
J'utilise ceci dans Drupal 6, je ne sais pas si cela fonctionne aussi dans D7 mais j'espère que oui