[buddypress-trac] [BuddyPress] #3980: bp_activity_at_name_filter_updates() causes activity to be saved twice
buddypress-trac
noreply at wordpress.org
Fri Nov 23 16:10:08 UTC 2012
#3980: bp_activity_at_name_filter_updates() causes activity to be saved twice
--------------------------+-----------------------------
Reporter: r-a-y | Owner:
Type: defect (bug) | Status: new
Priority: normal | Milestone: Future Release
Component: Activity | Version: 1.5
Severity: normal | Resolution:
Keywords: dev-feedback |
--------------------------+-----------------------------
Comment (by boonebgorges):
What about DJPaul's original suggestion of moving
`bp_activity_at_name_filter_updates()` to `bp_activity_before_save`? We
wouldn't have access to `$activity->id` at this point, but do we need it?
In `bp_activity_at_name_filter()`, the $activity_id seems to be used for
two things: to check whether the activity is spam, and to increment
mention counts. Checking for spam is easy enough; the
`BP_Activity_Activity` object is passed to `bp_activity_before_save`, and
so we should have access to the `is_spam` property.
Mention count is a little trickier, because the way we currently do
mention count incrementing (in `bp_activity_adjust_mention_count()` is to
call up the activity by id and look for mentions. But this workflow could
pretty easily be changed so that all we need is the content of the
activity item. In fact, the current setup requires doing the
`bp_activity_find_mentions()` logic twice: once in
`bp_activity_at_name_filter()` and again in the `adjust_mention_count()`
function. We could abstract the increment-for-member functionality into
its own standalone function, and then call that inside the `foreach
$usernames` loop in `bp_activity_at_name_filter()`. Not only would this
make it so that the activity id is not required, but it would be more
efficient.
So it looks like it should be possible to move all this logic to
`before_save`. Am I missing anything?
--
Ticket URL: <https://buddypress.trac.wordpress.org/ticket/3980#comment:8>
BuddyPress <http://buddypress.org/>
BuddyPress
More information about the buddypress-trac
mailing list