Recientemente hubo un gran debate en un foro que administro sobre si se deberían eliminar o no los «Me gusta». La mitad quiere que desaparezcan y la otra mitad desea que se mantengan. He encontrado el componente del tema que oculta la capacidad de dar «Me gusta» a una publicación a los usuarios de nivel TL0 y a los anónimos, y lo he adaptado en gran medida para nuestro uso; sin embargo, no estoy seguro de cómo vincularlo con un campo booleano de usuario que he creado («toggle likes»). En el componente del tema original, se utiliza algo como “settings.hide_for_anon_user” y crea una configuración de tema en settings.yml llamada “hide_for_anon_user”, pero eso solo puede ser activado o desactivado por un administrador y no a nivel de usuario.
¿Cómo podría hacer referencia al campo personalizado para esto? Ya lo he añadido a public_user_custom_fields, pero no sé cómo referenciarlo en el archivo JS del componente. He probado userCustomFields.user_field_10, settings.current_user.custom_fields.user_field_10 y current_user.custom_fields.user_field_10, pero ninguno funciona; simplemente ocultan todas las publicaciones de un hilo.
Creo que puedes crear un grupo sin ‘me gusta’ y usarlo para ocultar los ‘me gusta’, tal como lo hace tl0. Configura el grupo para que cualquiera pueda unirse.
Reemplacé
this.currentUser.trust_level === 0;
por
this.currentUser.no_likes;
pero no funcionó. De nuevo, no estoy seguro de cómo hacer referencia a grupos personalizados; al igual que con los campos de usuario, parece que no está claramente especificado en ninguna documentación.
Pero aún me gustaría ver si hay una manera de hacerlo para que verifique el campo booleano personalizado del usuario en lugar de obligar a las personas a unirse a un grupo. He estado revisando otros complementos para tener una idea de cómo hacerlo, pero todo lo que he probado hasta ahora no ha funcionado.
ETA: Esto parece funcionar, pero necesitas recargar la página después de marcar o desmarcar el campo booleano del usuario.
Aparentemente, esto está ocultando las publicaciones cuando los usuarios no han iniciado sesión. No estoy seguro de cómo modificar el código. ¿Alguien tiene alguna sugerencia?