조건에 따라 기본 카테고리 변경

우리는 /Calendar 페이지를 생성하는 Pavilion Event 플러그인을 보유하고 있습니다.

CSS/HTML/Theme Components를 사용하여 캘린더 페이지를 조정하여 최대한 사용자 친화적으로 만들고 싶습니다.

이벤트 생성이 허용되는 카테고리가 몇 개밖에 없기 때문에, 작성기(composer)의 카테고리 드롭다운을 관련 카테고리만 포함하도록 성공적으로 필터링했습니다.

제가 어려움을 겪는 부분은 CSS/HTML을 사용하여 작성기의 기본 카테고리를 설정하는 것입니다(이렇게 하면 캘린더 페이지와 같은 올바른 페이지에서 조건을 트리거할 수 있습니다).

목표는 Discourse의 다른 모든 곳에서 기본 카테고리가 'General’이되, 사용자가 캘린더 페이지(이미 ‘New Topic’ 기능이 있는 페이지)에서 주제를 생성할 때 작성기의 카테고리가 'Event Planning’으로 기본 설정되고, ‘Event Planning’ 카테고리에 연결된 템플릿이 트리거되도록 하는 것입니다.

누군가 올바른 방향을 알려줄 수 있을까요?

감사합니다

참고로, 지금까지 작성한 코드는 다음과 같습니다:

HTML 본문

<!-- body에 calendar-page 클래스를 추가하여 캘린더 페이지를 식별하는 데 사용 -->

  <script>
    // URL이 "/calendar"로 끝나는지 확인
    if (window.location.href.endsWith("/calendar")) {
      // CSS 규칙을 트리거하기 위해 body에 클래스 추가
      document.body.classList.add('calendar-page');
    }
  </script>

<!-- 캘린더 화면에서 'Add Topic'을 'Add Event'로 변경 -->

  <script>
    // body에 "hide-on-calendar" 클래스가 있는지 확인
    if (document.body.classList.contains('calendar-page')) {
      // 버튼 텍스트 업데이트
      const button = document.querySelector('.main-content.calendar .d-button-label');
      if (button) {
        button.textContent = 'Add Event';
      }
    }
  </script>

CSS

// 이벤트 카테고리가 아닌 항목 숨기기 
    
     body.calendar-page li.select-kit-row.category-row[title]:not([title="Private Events"]):not([title="Public Events"]):not([title="Induction Sessions"]):not([title="Space Bookings"]) {
      display: none;
    }

누군가가 플러그인(이 경우 이벤트 플러그인의 “이 카테고리에 있는 토픽에 이벤트를 추가할 수 있음.” 설정)에 의해 카테고리 설정에 할당된 값을 가져오는 방법에 대해 제안을 해준다면, 카테고리를 하드코딩할 필요가 없으니 정말 좋겠습니다 … 하지만 제가 너무 욕심을 부리는 것 같다는 점은 잘 알고 있습니다.