Mehrere Mitglieder (einschließlich meines Hauptmoderators) haben Frustration über die Funktion „Ihr Thema ähnelt“ geäußert. Ich vermute, ein Teil davon liegt an Bildschirmgrößen und daran, dass das Div dafür Dinge teilweise verdeckt usw.
Und ja, ich bin mit der Option vertraut, den Mindestwert für Textabfragen auf einen höheren Wert zu erhöhen. Ich habe ihn bereits auf 25 Zeichen eingestellt, aber ich denke, die Funktion könnte nützlich sein, vorausgesetzt, sie verärgert nicht mehr Mitglieder, als sie hilft.
Das würde sie effektiv ausschalten, aber das war nicht meine Frage. Die beste Lösung wäre, wenn Benutzer, denen die Funktion nicht gefällt, sie über ein Cookie oder eine Kontoeinstellung unterdrücken könnten.
Sie können sich den Code dieser Komponente ansehen und ihn anpassen, um Elemente mit CSS (Ziel .similar-topics) in den Benutzereinstellungen auszublenden. Genau das habe ich auf https://unicyclist.com/ getan, wo Benutzer eine Einstellung haben, um das Spenden-Symbol oben rechts in der Kopfzeile auszublenden.
Im Grunde ist die einzige Änderung, die ich am ursprünglichen Plugin vorgenommen habe, dass ich die Einstellung in einem Cookie speichere (ich möchte meine Benutzer jedes Jahr an die Servergebühren erinnern).
Hier ist mein eigener Theme-Komponenten-Code:
// set the cookie duration to 1 year
function setHideDonationCookie(value=null) {
var now = new Date();
var time = now.getTime();
var expireTime = time + 1000*60*60*24*365;
now.setTime(expireTime);
document.cookie = 'donationButton=' + value + ';expires='+now.toUTCString()+';path=/';
}
// return the cookie value
function getCookie(name) {
var dc = document.cookie;
var prefix = name + "=";
var begin = dc.indexOf("; " + prefix);
if (begin == -1) {
begin = dc.indexOf(prefix);
if (begin != 0) return null;
}
else
{
begin += 2;
var end = document.cookie.indexOf(";", begin);
if (end == -1) {
end = dc.length;
}
}
return decodeURI(dc.substring(begin + prefix.length, end));
}
function getToggleDonationIcon() {
let pref = getCookie('donationButton');
let result = settings.default_enabled;
if (pref !== null) {
result = pref === "true";
}
return result;
}
// We add the CSS rule in the HTML code
if (getToggleDonationIcon()) {
let style = document.createElement('style');
style.innerHTML = ".header-icon-help-fund-servers-fees{ display: none; }";
document.head.appendChild(style);
}
// technically we only want to amend current user here
api.modifyClass("model:user", {
toggleDonationIcon: function() {
return getToggleDonationIcon();
}.property()
});
api.modifyClass("controller:preferences/interface", {
actions: {
save() {
this._super();
// set the cookie value as the setting value
if(this.get("model.toggleDonationIcon") != getToggleDonationIcon()) {
setHideDonationCookie(this.get("model.toggleDonationIcon").toString());
if(this.get("model.toggleDonationIcon") == false) {
document.getElementsByClassName("header-icon-help-fund-servers-fees")[0].style.display = "";
}
else {
document.getElementsByClassName("header-icon-help-fund-servers-fees")[0].style.display = "none";
}
}
}
}
});
{{preference-checkbox labelKey=(theme-prefix 'donation_icon_toggle') checked=model.toggleDonationIcon}}