Algunos usuarios se quejan de la ventana "Tema similar a"

He tenido varios miembros (incluido mi moderador principal) expresando cierta frustración por la función “Tu tema es similar a”. Supongo que parte de esto se debe a los tamaños de pantalla y a que el div para esto oscurece parcialmente las cosas, etc.

Estaba pensando… ¿qué pasaría si simplemente permitieran una opción para que los usuarios desactiven esta función?

3 Me gusta

Y sí, estoy familiarizado con la opción de aumentar el valor mínimo de la consulta de texto a algo más alto. Ya lo he configurado en 25 caracteres, pero creo que la función podría ser útil siempre que no esté molestando a más miembros de los que está ayudando.

2 Me gusta

¿Cambiar la configuración max_similar_results a 0? O simplemente disminuir el valor.

2 Me gusta

Eso efectivamente lo desactivaría, pero no es lo que estaba preguntando. La mejor solución sería que los usuarios a los que no les gusta la función pudieran suprimirla mediante una cookie o una configuración de cuenta.

Esto se puede hacer con bastante facilidad.

Puedes mirar el código de este componente y adaptarlo para ocultar elementos con CSS (apuntando a .similar-topics) en la configuración de preferencias de los usuarios. Eso es exactamente lo que he hecho en https://unicyclist.com/, donde los usuarios tienen una opción para ocultar el icono de donación en la parte superior derecha del encabezado.

image

image


Básicamente, el único cambio que hice al plugin original es que almaceno la configuración en una cookie (quiero recordar a mi usuario que done cada año para las tarifas de los servidores).

Aquí está el código de mi propio componente de tema:

    // establece la duración de la cookie a 1 año
    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=/';
    }
    // devuelve el valor de la 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;
}

// Añadimos la regla CSS en el código HTML
if (getToggleDonationIcon()) {
  let style = document.createElement('style');
  style.innerHTML = ".header-icon-help-fund-servers-fees{ display: none; }";
  document.head.appendChild(style);
}

// técnicamente solo queremos modificar al usuario actual
api.modifyClass("model:user", {
  toggleDonationIcon: function() {
    return getToggleDonationIcon();
  }.property()
});

api.modifyClass("controller:preferences/interface", {
  actions: {
    save() {
      this._super();
      // establece el valor de la cookie como el valor de la configuración
      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";
        }
      }
    }
  }
});
2 Me gusta