Certains utilisateurs se plaignent de la fenêtre "Sujet similaire à"

Plusieurs membres (y compris mon modérateur principal) m’ont fait part de leur frustration concernant la fonctionnalité « Votre sujet est similaire à ». Je suppose qu’une partie de cela est due aux tailles d’écran et au fait que la div pour cela obscurcit partiellement les choses, etc.

Je me disais… et si vous permettiez simplement aux utilisateurs de désactiver cette fonctionnalité ?

3 « J'aime »

Et oui, je connais l’option permettant d’augmenter la valeur minimale de la requête textuelle à quelque chose de plus élevé. Je l’ai déjà définie à 25 caractères, mais je pense que la fonctionnalité pourrait être utile à condition qu’elle ne décourage pas plus de membres qu’elle n’en aide.

2 « J'aime »

Régler le paramètre max_similar_results sur 0 ? Ou juste diminuer la valeur.

2 « J'aime »

Cela l’éteindrait effectivement, mais ce n’est pas ce que je demandais. La meilleure solution serait que les utilisateurs qui n’aiment pas cette fonctionnalité puissent la supprimer via un cookie ou un réglage de compte.

Cela peut être fait assez facilement.

Vous pouvez examiner le code de ce composant et l’adapter pour masquer des éléments avec CSS (cibler .similar-topics) dans les paramètres de préférences des utilisateurs. C’est exactement ce que j’ai fait sur https://unicyclist.com/, où les utilisateurs ont un paramètre pour masquer l’icône de don en haut à droite de l’en-tête.

image

image


Fondamentalement, la seule modification que j’ai apportée au plugin d’origine est que je stocke le paramètre dans un cookie (je veux rappeler à mon utilisateur de faire un don chaque année pour les frais de serveur).

Voici mon propre code de composant de thème :

<script type="text/discourse-plugin" version="0.8">
    // définir la durée du cookie à 1 an
    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=/';
    }
    // retourner la valeur du cookie
    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;
}

// Nous ajoutons la règle CSS dans le code HTML
if (getToggleDonationIcon()) {
  let style = document.createElement('style');
  style.innerHTML = ".header-icon-help-fund-servers-fees{ display: none; }";
  document.head.appendChild(style);
}

// techniquement, nous voulons seulement modifier l'utilisateur actuel ici
api.modifyClass("model:user", {
  toggleDonationIcon: function() {
    return getToggleDonationIcon();
  }.property()
});

api.modifyClass("controller:preferences/interface", {
  actions: {
    save() {
      this._super();
      // définir la valeur du cookie comme la valeur du paramètre
      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";
        }
      }
    }
  }
});
</script>

<script type='text/x-handlebars' data-template-name='/connectors/user-preferences-interface/add-selector'>
  {{preference-checkbox labelKey=(theme-prefix 'donation_icon_toggle') checked=model.toggleDonationIcon}} 
</script>
2 « J'aime »