2012-01-06 4 views
0

간결한 답변을 찾는 데 어려움을 겪고 있습니다. Drupal의 ANY 요소에 클래스 또는 ID를 추가 할 수 있기를 원합니다. 따라서 페이지의 버튼을 쉽게 만들려면 클래스 "버튼"을 추가하고 싶습니다. 어떻게 그리고 어디에서 이것을 할 수 있습니까? form.inc에서 참조를 보았고 module.php와 같은 것을 사용했으나 구체적인 도움을 얻기 위해 고심하고 있습니다.클래스/ID를 모든 요소에 추가하는 방법은 무엇입니까?

+0

어떤 버전의 드루팔 (Drupal)입니까? – Clive

+0

드루팔 (Drupal) 7.10. 미안하다. –

답변

0

오버라이드를 구현해야합니다. 폼 항목에 대한 마크 업을 제공하는 핵심 테마 여기에는 theme_button, theme_submit, theme_textfield 등이 포함됩니다.

는 이렇게 활성 테마의 template.php 파일에 MYTHEME_theme_name()을 구현하고 당신이 맞는 볼 출력을 무시하려면 :

위의 기능은 theme_button() 함수에서 직접 복사 및 단지에 여분의 줄을 추가한다
function mytheme_button(&$variables) { 
    $element = $variables['element']; 
    $element['#attributes']['type'] = 'submit'; 
    element_set_attributes($element, array('id', 'name', 'value')); 

    $element['#attributes']['class'][] = 'form-' . $element['#button_type']; 
    if (!empty($element['#attributes']['disabled'])) { 
    $element['#attributes']['class'][] = 'form-button-disabled'; 
    } 

    $element['#attributes']['class'][] = 'my-new-class'; 

    return '<input' . drupal_attributes($element['#attributes']) . ' />'; 
} 

버튼 요소에 추가 클래스를 추가하십시오.

훅을 구현하면 드루팔 (Drupal)의 캐시가 지워져 있는지 확인하십시오. 그러면 테마 레지스트리가 그 훅을 가져옵니다.

드루팔 (Drupal은 이미 form-text, form-submit 등의 클래스를 개별 요소에 추가 했으므로 CSS를 사용하여 요소를 대상으로하려는 경우 해당 요소를 사용하려고 할 수 있습니다.

+0

와우. 그래, 그 힘은 아직 나에게 그렇게 강하지 않다. 나는 트위터/부트 스트랩 CSS를 사용하려고 노력하고 있으므로 "상대적으로"쉽게 할 수있을 것이라고 생각했습니다. 나는 주변을 어지럽히고 내가 얼마나 멀리 갈 수 있는지 보게 될 것이다. –

-1

page.tpl.php에서 sites/all/themes/yourthemes/...으로 이동하고 ID 또는 클래스 이름을 원하는대로 지정할 수 있습니다.

0

변경하려는 요소에 따라 다릅니다. 당신이 hook_form_alter와 형태의 클래스와 ID가 "의를 추가 할 수 있습니다 예를 들어
.
다른 요소는 예를 들어 html.tpl.php 될 수있는 요소가 오는 위치에 따라 변경하거나 사용자 지정 테마 템플릿 내에서 기각되어야한다 ., page.tpl.php, block.tpl.php, node.tpl.php과 DevelDevel themer 모듈 등
당신이 볼 수있는 위치의 더 나은 의견을 가질 수

편집 :. BTW 코어를 해킹하지 마십시오. 나중에 많은 문제가 발생합니다!

관련 문제