Einige Benutzer beschweren sich über das Fenster "Ähnliche Themen"

Das lässt sich recht einfach machen.

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.

image

image


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}} 
2 „Gefällt mir“