PMs mit der 'Notify Users'-Flag fördern

Wir möchten Nutzer ermutigen, kontroverse oder persönliche Rückmeldungen zu Beiträgen eher in privaten Nachrichten (und das auf zivilisierte und freundliche Weise..) zu äußern, anstatt sie öffentlich zu posten und damit die Diskussion möglicherweise vom Thema abzulenken. Hier ist das Abzeichen:

Die Abfrage:

SELECT p.user_id, current_timestamp AS granted_at
FROM posts AS p
JOIN topics t on t.id = p.topic_id
WHERE t.archetype = 'private_message'
AND t.title LIKE 'Your post in "%"'
AND p.post_number = 1
AND p.like_count >= 1
AND (:backfill OR p.user_id IN (:user_ids))
GROUP BY p.user_id
HAVING count(*) >= 1

Ich habe keinen spezifischen Trigger für das Flaggen von Nachrichten gefunden, daher verwendet die Abfrage den Standardtitel „Your post in …". Ich würde sagen, das Abzeichen lässt sich auf verschiedene Weise leicht manipulieren oder betrügen, aber es würde sein Ziel dennoch erreichen, indem es diesem Feature mehr Sichtbarkeit verleiht und kommuniziert, dass dies als positive Handlung für die Community angesehen wird.

3 „Gefällt mir“

Könnte dieser auf der post_action für „Benachrichtige Benutzer“ basieren?

Etwas wie:

SELECT pa.user_id, current_timestamp AS granted_at
FROM post_actions pa
  JOIN posts p ON p.id = pa.related_post_id
WHERE pa.post_action_type_id = 6
  AND p.like_count >= 1
  AND (:backfill OR p.user_id IN (:user_ids))
GROUP BY pa.user_id
HAVING COUNT(*) >= 1

Eigentlich glaube ich, dass sich das auf Links in dem Beitrag bezieht, auf dem die Flagge basierte, nicht auf die PM. Es muss möglicherweise leicht angepasst werden.

Eine schnelle Änderung des Joins, um p.id = pa.related_post_id zu verwenden, erledigt die Arbeit, denke ich. :+1:

Ich denke, das „HAVING` wird nur benötigt, wenn Sie eine Silber- und Goldversion von mehr als nur einer gewähren möchten.

3 „Gefällt mir“