Skip to:
Content

BuddyPress.org


Ignore:
Timestamp:
02/05/2016 03:37:27 AM (9 years ago)
Author:
boonebgorges
Message:

Sort activity actions when they're added, instead of when they're fetched.

Sorting activity actions can be an expensive process, so should not be done
any more frequently than necessary. And it's only necessary to sort when a
new action has been added. So instead of sorting in bp_activity_get_actions(),
we now do it in bp_activity_set_action().

Props boonebgorges, imath.
Fixes #6865.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/bp-activity/bp-activity-functions.php

    r10457 r10515  
    385385        'position'        => $position,
    386386    ), $component_id, $type, $description, $format_callback, $label, $context );
     387
     388    // Sort the actions of the affected component.
     389    $action_array = (array) $bp->activity->actions->{$component_id};
     390    $action_array = bp_sort_by_key( $action_array, 'position', 'num' );
     391
     392    // Restore keys.
     393    $bp->activity->actions->{$component_id} = new stdClass;
     394    foreach ( $action_array as $key_ordered ) {
     395        $bp->activity->actions->{$component_id}->{$key_ordered['key']} = $key_ordered;
     396    }
    387397
    388398    return true;
     
    571581                $post_type->position
    572582            );
    573         }
    574     }
    575 
    576     // Sort the actions by their position within each component.
    577     foreach ( $bp->activity->actions as $component => $actions ) {
    578         $actions = (array) $actions;
    579         $temp = bp_sort_by_key( $actions, 'position', 'num' );
    580 
    581         // Restore keys.
    582         $bp->activity->actions->{$component} = new stdClass;
    583         foreach ( $temp as $key_ordered ) {
    584             $bp->activity->actions->{$component}->{$key_ordered['key']} = $key_ordered;
    585583        }
    586584    }
Note: See TracChangeset for help on using the changeset viewer.