2011-01-11 3 views
2

드루팔 테마로 아주 성공적으로 (또는 적어도 내가 생각하기에) 드루팔 (drupal) 테마로 주변을 둘러 보았습니다.하지만 CSS를 기본 링크 메뉴에 삽입하여 HTML을 통해 일반적으로 사용자 정의 할 때 CSS를 삽입하려고했습니다. 벽에 부딪쳤다.drupal menu customizacion via css?

div, 링크 및 텍스트에 CSS 스타일을 적용 할 수 있었지만 일부 CSS 스프라이트 메뉴 기술로 기본 (및 보조) 링크 메뉴를 훨씬 더 사용자 정의하고 싶지만 드루팔 호환 그 과정에서 드루팔 자신의 PHP를 많이 사용한다. 또는 내가 정말로 프로그래머가 아니더라도, 나는 정말로 약간의 코드를 재 작성해야한다. 나는 신경 쓰지 않는다.

저는 여러 사이트에서 사용하고 있지만 특별히 유용한 것은 없기 때문에 누구나 올바른 방향으로 나를 가리킬 수 있다면 꽤 감사 할 것입니다.

thanx.

답변

0

- 당신의 template.php

function mythemename_menu_item_link($link) { 
    if (empty($link['localized_options'])) { 
    $link['localized_options'] = array(); 
    } 

    // LOOK HERE 
    // add a key for main menu items, so we can theme each item in a different way 
    // add this class only for a specific menu 
    if ($link['menu_name'] == 'menu-menu-mymenu') { 
    if ($link['localized_options']['attributes']['class']) { 
     $link['localized_options']['attributes']['class'] .= ' menu-'. $link['mlid']; 
    } 
    else { 
     $link['localized_options']['attributes']['class'] = 'menu-'. $link['mlid']; 
    } 
    } 

    return l($link['title'], $link['href'], $link['localized_options']); 
} 

이 코드는 청소기 될 수 있습니다에이 기능을 추가 할 수 있지만 내가했습니다 더 많은 행을 추가하여 더 잘 읽을 수 있습니다.

0

질문을 올바르게 이해하면 사용자 정의 클래스/ID를 메뉴에 추가하려고합니다. 이것은 주어진 메뉴에 대한 theme_menu_tree를 오버라이드하여 할 수 있습니다. 내 기본 메뉴는 template.php 파일에 다음을 추가하여 수행합니다.

function THEMENAME_menu_tree__main_menu($variables){ 
return '<ul class="menu main-menu">' . $variables['tree'] . '</ul>'; 
} 

희망이 도움이 될 것입니다.

themer 모듈도 살펴 봐야 템플릿 기능 등에 대한 제안을 얻을 수 있습니다.

환호, 요르겐

당신은 각 메뉴 항목에 대한 ID와 같은 클래스를 추가 할 수 있습니다