Discourse 플러그인 API 구성 요소를 사용하여 헤더 메뉴를 추가했습니다. 하지만 해당 헤더에 드롭다운 메뉴를 추가하는 방법에 대해서는 전혀 모르겠습니다.
Discourse API 플러그인 또는 기타 방법으로 Discourse 헤더에 드롭다운 메뉴를 추가할 수 있을까요?
아래와 같은 출력을 기대하고 있습니다.
이 테마 컴포넌트를 살펴보는 것이 좋을 수 있습니다: Header Submenus. 이 컴포넌트를 사용하면 서브메뉴가 있는 헤더 메뉴를 만들 수 있습니다. 해당 컴포넌트를 그대로 사용하거나, 자체 컴포넌트를 만드는 방법의 예시 코드로 참고할 수 있습니다.
저는 discourse 플러그인 API 이벤트를 통해 커스텀 HTML을 삽입하는 방식으로 이 문제를 해결했습니다.
먼저 “Custom Header Links” 구성 요소를 설치하고 헤더를 평소처럼 설정했습니다. 그런 다음 헤더 DOM 요소가 로드되면 아래처럼 discourse API 이벤트를 사용해 헤더에 커스텀 HTML을 삽입했습니다.
api.onPageChange(url => {
if($(".header-buttons").length != 0 && i == 0) {
$('.custom-header-links .services-custom-header-links a').append("inserting icons");
$(".header-buttons").prepend("adding ul tag elements");
$(".resource-dropdown-menu").after("appending next ul element using first inserted ul element class name");
i++;
}
});
이 방법을 사용하면 헤더 DOM에 서브메뉴를 추가할 수 있습니다. 하지만 정렬 문제가 발생하므로 CSS를 통해 정렬을 유지해야 합니다. 또한, 서브메뉴를 열기 위한 클릭 함수와 헤더 배경색 변경 등도 작성해야 합니다. 감사합니다 ![]()