Since there deliberately isn’t the concept of achievements for posting, I’ve managed to implement it on ours, since we had it on our old forums and some were complain about the lack thereof.
Generic version:
SELECT user_id, 0 post_id, current_timestamp granted_at
FROM badge_posts
WHERE (:backfill OR user_id IN (:user_ids) OR 0 NOT IN (:post_ids) )
GROUP BY user_id
HAVING count(*) > 1000
Change the 1000 for whatever post limit you’re after. I’ve themed ours (due to the nature of our board) on powers of 2.
Note that this will (should) only count posts that are public (not in categories that are restricted or private messages) or otherwise unrestricted (checkbox on edit category ignoring badges)
Additionally, for our board I’ve had to exclude certain topics due to the nature of my charges:
SELECT user_id, 0 post_id, current_timestamp granted_at
FROM badge_posts
WHERE topic_id NOT IN (
[elided]
) AND topic_id NOT IN (
[elided]
) AND (:backfill OR user_id IN (:user_ids) OR 0 NOT IN (:post_ids) )
GROUP BY user_id
HAVING count(*) >= 2048
Thanks. This is very helpful. I am also thinking about encouraging users to initiate discussions. I am messing around your query to count original posts with p.post_number = 1
Acabo de encontrar este pequeño tesoro aquí. Quería crear mis propias consultas de insignias personalizadas para el número de publicaciones en categorías específicas. ¿Cómo se puede modificar esto para incluir también la condición de IDs de categorías específicas, de modo que solo se cuenten las publicaciones de una categoría determinada?
Debería ser una modificación de la primera consulta aquí, donde las insignias se otorgan basándose en la creación de temas en una categoría específica. La diferencia es que otorgamos basándonos en el número de publicaciones en una categoría específica.
Se encuentra con este error al ejecutar la vista previa de la consulta de insignias:
Hubo un error con la consulta. ¿Alguna idea de cómo solucionarlo?
Violación de contrato:
La consulta se activa en las publicaciones, pero hace referencia a la matriz ':user_ids'