Alterar Categoria Padrão com Base em Condições

Temos o plugin Pavilion Event que cria uma página /Calendar.

Estou querendo ajustar a página do calendário usando CSS/HTML/Componentes de Tema para torná-la o mais amigável possível.

Como temos apenas algumas categorias onde permitimos a criação de Eventos, filtrei com sucesso o menu suspenso de categorias no compositor para incluir apenas as categorias relevantes.

A parte em que estou tendo dificuldades é definir a categoria padrão no compositor usando CSS/HTML (para que eu possa usar condições para ativá-la nas páginas corretas - como a página do calendário).

O objetivo é que em todos os outros lugares do Discourse a categoria padrão seja ‘Geral’, mas se o usuário estiver criando um tópico a partir da página do Calendário (a página já tem a funcionalidade ‘Novo Tópico’) - a categoria do compositor muda para ‘Planejamento de Eventos’ por padrão, e ativa o template anexado à categoria ‘Planejamento de Eventos’.

Alguém pode me indicar a direção certa?

Obrigado

1 curtida

Para referência - o código que obtive até agora:

Corpo HTML

<!-- Usado para sinalizar a página do Calendário adicionando a classe calendar-page ao corpo -->

  <script>
    // Verifica se o URL termina com "/calendar"
    if (window.location.href.endsWith("/calendar")) {
      // Adiciona uma classe ao corpo para acionar a regra CSS
      document.body.classList.add('calendar-page');
    }
  </script>

<!-- Altera 'Add Topic' para 'Add Event' na tela do calendário -->

  <script>
    // Verifica se o corpo tem a classe "hide-on-calendar"
    if (document.body.classList.contains('calendar-page')) {
      // Atualiza o texto do botão
      const button = document.querySelector('.main-content.calendar .d-button-label');
      if (button) {
        button.textContent = 'Add Event';
      }
    }
  </script>

CSS

// Oculta categorias de eventos que não são Eventos 
    
     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;
    }

Se alguém tiver alguma sugestão sobre como capturar um valor definido nas configurações de categoria por um plugin (neste caso, a configuração do plugin de Eventos “Permitir que eventos sejam adicionados a tópicos nesta categoria.”) para que eu não precise codificar as categorias em código, isso também seria ótimo… mas sei que estou pedindo muito.