Benutzern erlauben, Schlüsselwörter zu blockieren

|||
|-|-|-|
| :information_source: | Zusammenfassung | Diese Theme-Komponente ermöglicht es Benutzern, Schlüsselwörter zu blockieren. Erfordert die Erstellung von drei benutzerdefinierten Benutzerfeldern in den Admin-Einstellungen, um zu funktionieren.
| :eyeglasses:|Vorschau| Ich kann dies im Theme-Creator nicht in der Vorschau anzeigen, da benutzerdefinierte Benutzerfelder erstellt werden müssen. Unten sind jedoch Screenshots beigefügt. |
| :hammer_and_wrench:|Repository| Github - a-very-old-sock/discourse-keyword-block |
| :question:|Installationsanleitung|So installieren Sie ein Theme oder eine Theme-Komponente|
| :open_book:|Neu bei Discourse Themes?| Anfängerleitfaden zur Verwendung von Discourse Themes

Installieren Sie diese Theme-Komponente

Diese Theme-Komponente ermöglicht es Benutzern, Schlüsselwörter zu blockieren, die vom Benutzer in den Einstellungen → Profil angegeben werden. Erfordert die Erstellung von drei benutzerdefinierten Benutzerfeldern in den Admin-Einstellungen, um zu funktionieren.

Schlüsselwörter im Thema-Titel oder Thema-Auszug blockieren:

Themen oder Antwortbeiträge blockieren, die das Schlüsselwort enthalten, sowie vorgeschlagene Themen, die das Schlüsselwort enthalten:

Diese Theme-Komponente ermöglicht es einem einzelnen Benutzer, Schlüsselwörter anzugeben, die er nicht sehen möchte, und blendet die Themen und Antwortbeiträge, die dieses Schlüsselwort enthalten, mit einem Link zum Anzeigen aus. “Watched words” ist eine Admin-Einstellung, die für alle Benutzer im gesamten System gilt. Dies ermöglicht es einzelnen Benutzern, ihre eigenen Schlüsselwörter anzugeben, die sie nicht sehen möchten.

Beispielszenario: Ein Haustierforum hat einen allgemeinen Thread über den Umgang mit Tierhaaren, bei dem das Hauptthema nicht mit einer bestimmten Tierart gekennzeichnet ist. Benutzer A antwortet über seinen Hund, Benutzer B antwortet über seine Katze, aber Benutzer A möchte überhaupt nichts über Katzen sehen. Was diese Theme-Komponente tut, ist, dass sie es Benutzer A ermöglicht, “Katze” in seine Blockierliste einzutragen, und dann überall dort, wo “Katze” in einem Thema oder einer Antwort erscheint, wird es durch “Blockiert wegen Katzen” ersetzt, mit einem Klick zum Anzeigen.

Der Benutzer muss eine durch Kommas getrennte Liste seiner blockierten Schlüsselwörter in einem benutzerdefinierten Benutzerfeld unter Einstellungen → Profil angeben und kann angeben, ob die zu blockierenden Schlüsselwörter Groß-/Kleinschreibung beachten oder das ganze Wort übereinstimmen müssen. (Groß-/Kleinschreibung und Übereinstimmung des ganzen Wortes gelten für die gesamte Blockierliste, nicht für einzelne Schlüsselwörter).

Diese Theme-Komponente erfordert, dass Sie drei benutzerdefinierte Benutzerfelder unter Admin → Anpassen → Benutzerfelder erstellen, um zu funktionieren. Standardmäßig erwarten die Einstellungen der Theme-Komponente, dass diese Benutzerfelder 1, 2 und 3 in der unten aufgeführten Reihenfolge sind. Wenn Sie andere benutzerdefinierte Benutzerfelder definiert haben, müssen Sie die richtigen Nummern der Benutzerfelder in den Einstellungen der Theme-Komponente eingeben. (Die Nummerierung der Benutzerfelder beginnt bei 1, zählen Sie also die Liste der anderen definierten Benutzerfelder herunter). Weitere Details finden Sie im Meta-Leitfaden Erstellen und Konfigurieren von benutzerdefinierten Benutzerfeldern.

1 - Liste der blockierten Begriffe des Benutzers

Feldtyp: Textfeld

Feldname: (beliebiger Name ist hier in Ordnung) Blockierte Begriffe

Feldbeschreibung: (beliebiger Name ist hier in Ordnung) Blockieren Sie Wörter oder Phrasen, die in Beiträgen oder Themen erscheinen. Komma-getrennt. Um einen Benutzernamen zu blockieren, fügen Sie @ hinzu, wenn die Übereinstimmung des ganzen Wortes ausgewählt ist.

:white_check_mark: Nach der Anmeldung bearbeitbar

:cross_mark: Bei der Anmeldung erforderlich

:cross_mark: Auf öffentlichem Profil anzeigen

:cross_mark: Auf Benutzerkarte anzeigen

:cross_mark: Durchsuchbar

2 - Berücksichtigung der Groß-/Kleinschreibung

Feldtyp: Bestätigung

Feldname: (beliebiger Name ist hier in Ordnung) Blockierte Begriffe - Groß-/Kleinschreibung beachten

Feldbeschreibung: (beliebiger Name ist hier in Ordnung) Wörter in der Liste “Blockierte Begriffe” beachten die Groß-/Kleinschreibung.

:white_check_mark: Nach der Anmeldung bearbeitbar

:cross_mark: Bei der Anmeldung erforderlich

:cross_mark: Auf öffentlichem Profil anzeigen

:cross_mark: Auf Benutzerkarte anzeigen

:cross_mark: Durchsuchbar

3 - Ganze oder teilweise Wörter suchen

Feldtyp: Bestätigung

Feldname: (beliebiger Name ist hier in Ordnung) Blockierte Begriffe - ganze Wörter

Feldbeschreibung: (beliebiger Name ist hier in Ordnung) Blockierte Begriffe müssen als ganze Wörter erscheinen, nicht als Teilwörter.

:white_check_mark: Nach der Anmeldung bearbeitbar

:cross_mark: Bei der Anmeldung erforderlich

:cross_mark: Auf öffentlichem Profil anzeigen

:cross_mark: Auf Benutzerkarte anzeigen

:cross_mark: Durchsuchbar

Das unten stehende CSS ist in der Theme-Komponente enthalten und verhindert, dass benutzerdefinierte Benutzerfelder im Anmeldeformular angezeigt werden. Wenn Sie andere benutzerdefinierte Benutzerfelder haben, die im Anmeldeformular angezeigt werden sollen, müssen Sie dies mit Ihrem eigenen benutzerdefinierten CSS überschreiben.

.login-form .user-fields {
    display: none;
}

Ich habe dies nur mit dem Standard-Theme getestet. Beiträge und Themen werden blockiert, wenn Kategorien so eingestellt sind, dass sie Kategorien/Neueste und Kategorien/Top anzeigen, aber nicht in Kategorien/Featured oder in den Box-Kategorieansichten. Ich werde dies wahrscheinlich nicht ändern, da ich es für meine eigene Website nicht benötige, aber Pull-Anfragen sind willkommen.

Dies blockiert derzeit nur einen Beitrag, der ein Schlüsselwort im Titel oder im im Browser sichtbaren Auszug enthält. Ich konnte nicht herausfinden, wie der Inhalt des gesamten Beitrags beim Anzeigen von Suchergebnissen oder einer Themenliste überprüft werden kann, aber ich würde mich über Ideen freuen, wie dies möglich ist.

Ich beabsichtige, dass dies auch in der Vollbild-Suchansicht funktioniert, aber ab dem 24.02.2023 habe ich derzeit Schwierigkeiten, dies zum Laufen zu bringen. Ich werde dies bearbeiten, wenn ich das Blockieren in der Suche zum Laufen bringe.

Dies ist mit der Theme-Komponente “Topic Excerpts” kompatibel; es ist nicht kompatibel mit “Topic List Previews”. Ich habe dies nicht ausgiebig mit anderen Theme-Komponenten getestet.

3 „Gefällt mir“

Nachdem ich benutzerdefinierte Benutzerfelder erstellt und die Komponente aktiviert habe, erhalte ich Folgendes:

Irgendwelche Ideen, wovor es mich warnen will? Vielleicht deswegen:

Die Komponente/das Theme "User Keyword Blocker" wirft Fehler: TypeError: null ist kein Objekt (evaluating 'e.match')

Backtrace
Nachricht

Die Komponente/das Theme "User Keyword Blocker" wirft Fehler:
TypeError: null ist kein Objekt (evaluating 'e.match')

Backtrace

viewingCategoryId@https://foorumi.katiska.eu/theme-javascripts/2d7e05cf5f7eb3e5f8699871f25f32a21d9221c2.js?__ws=foorumi.katiska.eu:209:77
@https://cdnfoorumi.katiska.eu/assets/vendor-f2e959203bc406b4698a4388ad51464d9ee2c5ff7b4011f332b7d88c6ce5dab8.br.js:1347:71
@https://cdnfoorumi.katiska.eu/assets/vendor-f2e959203bc406b4698a4388ad51464d9ee2c5ff7b4011f332b7d88c6ce5dab8.br.js:3677:13
get@https://cdnfoorumi.katiska.eu/assets/vendor-f2e959203bc406b4698a4388ad51464d9ee2c5ff7b4011f332b7d88c6ce5dab8.br.js:1347:56
Ee@https://cdnfoorumi.katiska.eu/assets/vendor-f2e959203bc406b4698a4388ad51464d9ee2c5ff7b4011f332b7d88c6ce5dab8.br.js:1324:40
map@[native code]
@https://cdnfoorumi.katiska.eu/assets/vendor-f2e959203bc406b4698a4388ad51464d9ee2c5ff7b4011f332b7d88c6ce5dab8.br.js:5042:163
@https://cdnfoorumi.katiska.eu/assets/vendor-f2e959203bc406b4698a4388ad51464d9ee2c5ff7b4011f332b7d88c6ce5dab8.br.js:1347:71
@https://cdnfoorumi.katiska.eu/assets/vendor-f2e959203bc406b4698a4388ad51464d9ee2c5ff7b4011f332b7d88c6ce5dab8.br.js:3677:13
get@https://cdnfoorumi.katiska.eu/assets/vendor-f2e959203bc406b4698a4388ad51464d9ee2c5ff7b4011f332b7d88c6ce5dab8.br.js:1347:56

Env

HTTP HOSTS: foorumi.katiska.eu

Also… was zum Teufel habe ich falsch gemacht?

1 „Gefällt mir“

Hmm, ich bin mir nicht sicher, ich konnte dies weder mit einem neu erstellten Benutzerfeld noch mit einem nicht vorhandenen Benutzerfeld reproduzieren.

Es sieht so aus, als ob Sie das Standardthema haben? Haben Sie andere Themenkomponenten aktiviert? Es sieht so aus, als hätte es etwas mit dem Regex-Abgleich zu tun, aber es sollte keine Fehler auslösen, wenn es nichts findet.

Natürlich habe ich auch andere Komponenten :wink: Aber sicher – es kann ein Konflikt zwischen dieser und einer anderen Komponente oder einem Plugin sein.

Ich werde versuchen, zu einem späteren Zeitpunkt etwas tiefer zu graben.

Und das ist jetzt passiert ;)\n\nDer Konflikt tritt zwischen diesem und Topic List Previews auf. Zumindest in meinem Setup.\n\nAlso lasse ich dich und @merefield darüber streiten, wer von euch (wen? Ich hasse Englisch wirklich) was behebt :wink:

1 „Gefällt mir“

Leider viel zu beschäftigt, um Konflikte mit Theme Components von Drittanbietern zu unterstützen, aber PRs sind willkommen. Vorerst müssen Sie sich eben zwischen ihnen entscheiden. :slight_smile:

2 „Gefällt mir“

Ich würde mich fragen, ob dies zur Erweiterung der Benutzersperrfunktion verwendet werden könnte?

D. h. einen stummgeschalteten Benutzer in die Blockierliste aufnehmen, um Antworten an den stummgeschalteten Benutzer auszublenden?

Theoretisch halte ich es für möglich, aber ich finde im Moment keinen einfachen Weg, es zu tun. Im Moment benutze ich decorateCooked, was keinen einfachen Zugriff auf das übergeordnete Element zu ermöglichen scheint, in dem sich die Antwortinformationen befinden. Ich werde vielleicht noch etwas damit herumspielen und sehen, ob ich es zum Laufen bringe, aber keine Versprechungen.

Dies blockiert Erwähnungen eines Benutzernamens im Beitrag, wenn der Benutzername in der Blockierliste enthalten ist; wenn die Übereinstimmung ganzer Wörter aktiviert ist, muss der Benutzername in der Blockierliste die @Erwähnung enthalten, aber wenn die Übereinstimmung ganzer Wörter deaktiviert ist, kann nur der Benutzername ohne @ enthalten sein.

1 „Gefällt mir“

Ich glaube nicht, dass ich sie auch kompatibel machen kann, aber ich habe im OP vermerkt, dass sie nicht kompatibel sind. PRs sind jedoch willkommen.

Entschuldigen Sie bitte. Ich sehe mir das an. Was ich mit dem Erweitern von Block/Stummschalten von Benutzern meinte, ist, den Benutzernamen zu einer Liste blockierter Wörter hinzuzufügen. Meine Theorie ist, dass vielleicht der Benutzername in:

[quote=“asc, post:9, topic:256228”]

Wenn ich also zum Beispiel Ihren Benutzernamen “asc” hinzufüge, werden alle Antworten mit dem oben Genannten als ausgeblendet angezeigt.

Um nur zu bestätigen, wird das blockierte Wort nicht angezeigt? Nur ein Link zum Aufheben der Blockierung des Beitrags? Oder kann das beobachtete Wort überschrieben werden, um das blockierte Wort nicht anzuzeigen?

Wenn ja, dann würde dies dem vollständigeren Block näher kommen, den einige Benutzer wünschen.