답변:
#container
form 요소와 다음 코드와 유사한 코드를 사용할 수도 있습니다 .
$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
속성 이나 첫 번째 요소 의 속성을 새로 추가 된 요소로 이동하지 않고 동일한 컨테이너에 렌더링되는 다른 요소를 추가 할 수 있습니다 . 당신이 말했듯이, 이것은 덜 오류가 발생하기 쉽습니다.
이것이 당신이 찾고있는 것입니까?
$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>',
),
);
희망이 도움이됩니다!
theme_render_example_add_div
참조 )
이것에 대한 테마를 만들 수도 있습니다.
$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'),
);
그리고 당신의 테마 훅에서 :
function my_hook_theme(){
return array(
'my_twitter_theme' => array('form' => NULL)
);
}
그리고 테마 기능에서 :
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;
}
Drupal 6에서 이것을 사용합니다 .D7에서도 작동하는지 확실하지 않지만 그렇게 희망합니다