Conseils sur un composant de thème de page "à propos" pour masquer un administrateur -- cela va-t-il ralentir les choses ?

Je souhaite supprimer mon utilisateur de la page “À propos” de certains sites que je gère. Je ne suis pas celui qui va supprimer votre compte, ni quoi que ce soit d’autre. . .

Une façon de faire est la suivante :

Mais un plugin me semble un peu excessif de nos jours, j’ai donc un composant de thème qui fait cela :

import { withPluginApi } from "discourse/lib/plugin-api";

const hidden_admins = settings.hidden_admins.split("|");
const PLUGIN_ID = "hide-admins";

export default {
  name: "theme-javascript-initializer",
  initialize() {
    withPluginApi("0.8.30", (api) => {
      api.onPageChange((url) => {
        if (url != "/about") {
          return;
        }
        for (const admin of hidden_admins) {
          var element = document.querySelector(`[data-username=${admin}]`);
          if (element === null) {
            break;
          }
          element.classList.add("hide-me");
        }
      });
    });
  },
};

Est-ce stupide pour une raison quelconque ? Est-ce que onPageChange coûte très cher ? Le plugin n’affecterait que le sérialiseur “À propos”, celui-ci effectue une vérification à chaque changement de page. Est-ce mal ?

Il y a eu récemment un sujet sur ce problème précis qui codait en dur l’utilisateur dans le CSS. Serait-il préférable d’avoir juste un seul CSS dans un thème qui ferait simplement :

.about-page div[data-username="pfaffman"] {
  display: none !important;
}

Ce ne serait utile pour personne d’autre que moi, c’est pourquoi j’aime bien cette idée de composant de thème.

2 « J'aime »

Donc, pour chaque changement de page, sauf « à propos », vous traitez environ deux lignes de JavaScript supplémentaires ?

Non, je ne pense pas que ce soit grave étant donné l’énorme quantité de JavaScript qui s’exécute constamment sur Discourse :)

2 « J'aime »

C’est à peu près ce que je pensais, mais j’apprécie beaucoup votre confirmation. Je vais voir comment rendre cette chose plus présentable et la publier, puis écrire des outils pour automatiser son ajout à certains sites.

Merci beaucoup.

2 « J'aime »

Alors Jay, serait-ce un plugin à installer ou un composant de thème ?

Je pense que cela pourrait être utile même pour étendre les fonctionnalités aux mods. Pour certains cas d’utilisation.

Ceci est un composant de thème. Je suis encore en train de le nettoyer un peu. Je créerai une page de thème appropriée pour cela lors de la prochaine mise à jour, mais vous pouvez consulter GitHub - literatecomputing/discourse-hide-admins-about: Theme component to hide some admin users from about page si vous êtes impatient de l’essayer.

2 « J'aime »

C’est assez cool. Je suis cependant satisfait d’attendre votre déploiement officiel.

1 « J'aime »

Ce sujet a été automatiquement fermé 30 jours après la dernière réponse. Les nouvelles réponses ne sont plus autorisées.