Consigli su un componente del tema della pagina "Informazioni" per nascondere l'admin: questo rallenterà le cose?

Voglio rimuovere il mio utente dalla pagina “about” di alcuni siti che gestisco. Non sono io che cancellerò il tuo account, o altro. . .

Un modo è questo:

Ma un plugin sembra un po’ eccessivo di questi tempi, quindi ho un componente del tema che fa questo:

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");
        }
      });
    });
  },
};

È stupido per qualche motivo? Questo onPageChange costa molto? Il plugin interesserebbe solo il serializzatore “about”, questo fa un controllo ad ogni cambio di pagina. È un male?

C’è stato un argomento su questo stesso problema di recente che ha semplicemente codificato l’utente nel CSS. Sarebbe meglio avere solo un singolo CSS in un tema che facesse semplicemente:

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

Non sarebbe utile per nessuno tranne che per me, motivo per cui mi piace l’idea di questo componente del tema.

2 Mi Piace

Quindi per ogni cambio di pagina tranne “about” stai elaborando circa due righe di javascript aggiuntivo?

No, non penso che sia male data l’enorme quantità di javascript che viene eseguita continuamente su Discourse :slight_smile:

2 Mi Piace

È per lo più quello che pensavo, ma apprezzo molto la tua conferma. Vedrò di abbellire un po’ questa cosa e renderla pubblica, e poi scriverò degli strumenti per automatizzarne l’aggiunta ad alcuni siti.

Grazie mille.

2 Mi Piace

Quindi Jay, si tratterebbe di un plugin da installare o di un componente tematico?

Penso che potrebbe essere utile anche per estendere la funzionalità ai Mod. Per alcuni casi d’uso.

Questo è un componente tematico. Lo sto ancora ripulendo un po’. Creerò una pagina tematica adeguata per esso la prossima volta, ma puoi vedere GitHub - literatecomputing/discourse-hide-admins-about: Theme component to hide some admin users from about page se sei entusiasta di provarlo.

2 Mi Piace

È molto bello. Sono comunque contento di aspettare il tuo lancio ufficiale.

1 Mi Piace

Questo argomento è stato chiuso automaticamente 30 giorni dopo l’ultima risposta. Non sono più consentite nuove risposte.