Wäre es möglich, dass der Like-Button das Login-Formular nicht öffnet? In meinem Szenario sollte er auch ohne Anmeldung funktionieren…
Nein, das ist nicht möglich. Wir speichern den Benutzer, der einen Beitrag geliked hat, und diese Information wird an vielen Stellen verwendet. Daher kann dies nicht einfach geändert werden.
Gibt es Konzepte für alternative Steuerelemente wie „Sterne“ oder eine „OK“-Schaltfläche, um es nicht angemeldeten Benutzern zu ermöglichen, zu interagieren?
Keine, die sich auf Discourse beziehen; alles bezieht sich auf Benutzerkonten. Wenn der Benutzer nicht eingeloggt ist, gibt es nichts, was protokolliert werden kann.
Kann jemand die Best Practices zur Anpassung der Like-Steuerung beschreiben? Ich bin neu in diesem Tech-Stack; meine einzigen Kenntnisse bezüglich Discourse stammen aus Erfahrungen mit PHP, nicht aber mit der darüberliegenden Technologie.
Könntest du das etwas näher erläutern?
Ich meine, man kann das Aussehen des Buttons ändern, aber darüber hinaus gibt es kaum weitere Möglichkeiten.
Ich meinte eine funktionale Anpassung: Ich möchte die Logik ändern, sodass die „Gefällt mir“-Steuerung auch ohne Anmeldung funktioniert. Ich kenne mich jedoch mit der modularen Struktur von Discourse nicht aus. Würdest du ein Plugin empfehlen oder eine direkte Änderung im PHP-Code? Und wo könnte ich die Änderung vornehmen, ohne die Integrität des Codes zu gefährden? Was passiert mit dem geänderten Code-Snippet bei Updates usw.?
Das Discourse-Kernsystem ist nicht in PHP geschrieben.
Du müsstest ein extrem maßgeschneidertes Plugin erstellen, damit es funktioniert, aber das wäre ein Verstoß gegen die DSGVO.
Abgesehen davon ist eine solche Funktion sehr leicht auszunutzen, da jeder mit einem vernünftigen Verständnis davon, wie Browser-Cookies reverse-engineert werden, willkürliche Beiträge mit unendlich vielen Likes überschwemmen kann.
Hallo Bhanu, glaubst du, dass ich aus dieser Antwort sehr viel lernen werde, um das Problem zu lösen?
Ich habe versucht, die Fragen zu beantworten, die du in dem obigen Beitrag aufgeworfen hast. Mein Vorschlag ist, dass du nicht versuchst, die Kernfunktionen zu modifizieren, es sei denn, du möchtest deine Updates dauerhaft unbrauchbar machen.
Ok. Danke, Bhanu. Jetzt weiß ich, was ich nicht tun sollte ![]()
Ich könnte einen gewissen Nutzen in einem Klon der StackOverflow-Funktion sehen, bei dem anonyme Klicks auf die Abstimmungstasten in der Datenbank gespeichert, aber nicht direkt veröffentlicht werden.
Bevor mit der Umsetzung begonnen wird, würde ich ein extrem fundiertes Konzept dafür sehen, wie die Daten genutzt werden sollen (denken Sie an die DSGVO: „Was planen Sie mit diesen Daten über anonyme Besucher zu tun?" Eine direkte Veröffentlichung im Beitrag scheidet aus, da es äußerst einfach ist, zu betrügen, was anonyme Besucher tun.
Weiß jemand einen Weg (Best Practices)
a) den Like-Button funktional anzupassen oder
b) eine zusätzliche Steuerelement zu erstellen, das Klicks darauf zählt (max. 1 pro IP-Adresse), wobei die Summe der Klicks im Admin-Bereich angezeigt werden kann?
Wenn es nur JavaScript wäre, würde ich nicht fragen, aber die Lösung benötigt Persistenz…
Das ist eigentlich kein Support-Thema, heute macht das niemand mehr. Was Sie anfragen, ist ziemlich komplex und definitiv nichts, was wir Ihnen leicht helfen können.
Wenn Sie nicht mit JavaScript und Ruby vertraut sind, erfordert die Lösung eher Geld
.
Wenn Sie ein Budget haben und die Funktion für Sie wirklich wichtig ist, könnten Sie vielleicht ein neues Thema im Marketplace starten?
Alternativ würde ich im #dev-Channel neu beginnen, da Sie in jedem Fall ein Plugin irgendeiner Art erstellen werden.
Ah, also sind die besten Praktiken für Änderungen in der Logik in diesem Fall Plugins? Ok, gut zu wissen. Danke!
Interessante Tatsache: @sam hat sich damals für diese Funktion eingesetzt, und er hatte recht!
Die daraus resultierenden Daten waren sehr, sehr interessant. Wenn man anonyme Stimmen mit angemeldeten Stimmen verglich, wiesen große Diskrepanzen meist auf ein Thema hin, das ein Eingreifen der Moderation erforderte.