Rat für eine versteckte Admin-Komponente des Themas über die Seite – wird das die Dinge verlangsamen?

Ich möchte meinen Benutzer von der Über-uns-Seite einiger von mir verwalteter Websites entfernen. Ich bin nicht derjenige, der Ihr Konto löscht oder sonst etwas. . .

Ein Weg ist dieser:

Aber ein Plugin scheint heutzutage etwas übertrieben, daher habe ich eine Theme-Komponente, die das macht:

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

Ist das aus irgendeinem Grund dumm? Kostet dieses onPageChange sehr viel? Das Plugin würde nur den About-Serializer beeinflussen, dies prüft bei jeder Seitenänderung. Ist das schlecht?

Es gab kürzlich ein Thema zu genau diesem Problem, das den Benutzer einfach im CSS hartcodiert hat. Wäre es besser, nur ein einziges CSS in einem Theme zu haben, das einfach Folgendes tut:

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

Es wäre für niemanden außer mir nützlich, weshalb ich diese Idee mit der Theme-Komponente irgendwie mag.

2 „Gefällt mir“

Verarbeitest du also für jede Seitenumdrehung außer „Über uns“ etwa zwei zusätzliche Zeilen JavaScript?

Nein, ich glaube nicht, dass das schlimm ist, angesichts der enormen Menge an JavaScript, die ständig auf Discourse läuft :slight_smile:

2 „Gefällt mir“

Das ist größtenteils das, was ich auch dachte, aber ich schätze deine Bestätigung sehr. Ich werde sehen, ob ich das hier etwas aufhübschen und öffentlich machen kann, und dann Werkzeuge schreiben, um es automatisch auf einigen Websites hinzuzufügen.

Vielen Dank.

2 „Gefällt mir“

Wäre das also ein zu installierendes Plugin oder eine Theme-Komponente, Jay?

Ich denke, das könnte sogar nützlich sein, um die Funktionalität auf Mods zu erweitern. Für einige Anwendungsfälle.

Dies ist eine Themenkomponente. Ich bin noch dabei, sie etwas aufzuräumen. Ich werde eine richtige Themenseite dafür erstellen, aber Sie können sich GitHub - literatecomputing/discourse-hide-admins-about: Theme component to hide some admin users from about page ansehen, wenn Sie es ausprobieren möchten.

2 „Gefällt mir“

Das ist ziemlich cool. Ich bin jedoch zufrieden damit, auf Ihre offizielle Einführung zu warten.

1 „Gefällt mir“

Dieses Thema wurde 30 Tage nach der letzten Antwort automatisch geschlossen. Neue Antworten sind nicht mehr möglich.