Changer la catégorie par défaut en fonction des conditions

Nous avons le plugin Pavilion Event qui crée une page /Calendar.

Je cherche à ajuster la page du calendrier à l’aide de CSS/HTML/Composants Thème pour la rendre aussi conviviale que possible.

Comme nous n’avons que quelques catégories dans lesquelles nous autorisons la création d’événements, j’ai réussi à filtrer la liste déroulante des catégories dans le compositeur pour n’inclure que les catégories pertinentes.

La partie sur laquelle je bloque est la définition de la catégorie par défaut dans le compositeur à l’aide de CSS/HTML (afin que je puisse utiliser des conditions pour la déclencher sur les bonnes pages - comme la page du calendrier).

L’objectif est que partout ailleurs sur Discourse, la catégorie par défaut soit « Général », mais si l’utilisateur crée un sujet depuis la page du calendrier (la page a déjà la fonctionnalité « Nouveau sujet »), la catégorie du compositeur par défaut soit « Planification d’événements » et déclenche le modèle attaché à la catégorie « Planification d’événements ».

Quelqu’un peut-il m’orienter dans la bonne direction ?

Merci

1 « J'aime »

Pour référence - le code que j’ai obtenu jusqu’à présent :

Corps HTML

<!-- Utilisé pour signaler la page Calendrier en ajoutant la classe calendar-page au corps -->

  <script>
    // Vérifie si l'URL se termine par "/calendar"
    if (window.location.href.endsWith("/calendar")) {
      // Ajoute une classe au corps pour déclencher la règle CSS
      document.body.classList.add('calendar-page');
    }
  </script>

<!-- Change "Ajouter un sujet" en "Ajouter un événement" dans l'écran du calendrier -->

  <script>
    // Vérifie si le corps a la classe "hide-on-calendar"
    if (document.body.classList.contains('calendar-page')) {
      // Met à jour le texte du bouton
      const button = document.querySelector('.main-content.calendar .d-button-label');
      if (button) {
        button.textContent = 'Add Event';
      }
    }
  </script>

CSS

// Masquer les catégories d'événements non pertinents
    
     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;
    }

Si quelqu’un a des suggestions sur la façon de récupérer une valeur définie dans les paramètres de catégorie par un plugin (dans ce cas, le paramètre “Autoriser l’ajout d’événements aux sujets de cette catégorie” du plugin Event’s) afin que je n’aie pas à coder en dur les catégories, ce serait aussi génial… mais je sais que je pousse ma chance.