나는 비슷한 문제를 다루었습니다. 동일한 페이지에 여러 양식이 있어야하므로 중복 ID를 방지하기 위해 양식의 ID와 그 요소를 변경해야했습니다. 나는 다음과 같은 일을했다 :
function voci_comment_form($form, &$form_state, $cid) {
$form['#attributes']['id'] = 'voci-comment-form-' . $cid;
$form['#attributes']['class'][] = 'voci-comment-form';
$form['body'] = array(
'#title' => 'Post a comment',
'#type' => 'textarea',
'#resizable' => FALSE,
'#rows' => 1,
);
$form['comment'] = array(
'#type' => 'submit',
'#value' => 'Comment',
);
foreach ($form as $k => &$element) {
$k = str_replace('_', '-', $k);
$element['#attributes']['id'] = "edit-$k-$cid";
$element['#attributes']['class'][] = "edit-$k";
}
return $form;
}
이 기본적으로 전달 된 $ CID를 기반으로 고유 ID를 설정하면 쉽게 스타일을 할 수 있도록 코드는 형태로 각 요소에 클래스를 추가합니다.. 좀 더 견고한 솔루션이 가능할 것이라고 확신하지만 이것이 기본 아이디어입니다. Drupal에서 테스트되었습니다.
테마 기능 내 요소를 구성하기 위해 고유 한 Id 속성을 설정할 수 있다는 의미입니까? 그렇다면 요소의 ID 속성을 어떻게 참조 할 수 있습니까? 나는 여기서 잃어버린 것 같아. 감사합니다. – Andrew
이 솔루션을 찾았습니다. 폼 요소의 속성 키를 사용하여 클래스, id 등의 추가 속성을 설정할 수 있습니다. 지금까지 도와 줘서 고마워. – Andrew