Changeset 11356
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/bp-activity/bp-activity-functions.php
r11351 r11356 838 838 */ 839 839 return apply_filters( 'bp_activity_get_types', $actions ); 840 } 841 842 /** 843 * Gets the current activity context. 844 * 845 * The "context" is the current view type, corresponding roughly to the 846 * current component. Use this context to determine which activity actions 847 * should be whitelisted for the filter dropdown. 848 * 849 * @since 2.8.0 850 * 851 * @return string Activity context. 'member', 'member_groups', 'group', 'activity'. 852 */ 853 function bp_activity_get_current_context() { 854 // On member pages, default to 'member', unless this is a user's Groups activity. 855 if ( bp_is_user() ) { 856 if ( bp_is_active( 'groups' ) && bp_is_current_action( bp_get_groups_slug() ) ) { 857 $context = 'member_groups'; 858 } else { 859 $context = 'member'; 860 } 861 862 // On individual group pages, default to 'group'. 863 } elseif ( bp_is_active( 'groups' ) && bp_is_group() ) { 864 $context = 'group'; 865 866 // 'activity' everywhere else. 867 } else { 868 $context = 'activity'; 869 } 870 871 return $context; 872 } 873 874 /** 875 * Gets a flat list of activity actions compatible with a given context. 876 * 877 * @since 2.8.0 878 * 879 * @param string $context Optional. Name of the context. Defaults to the current context. 880 * @return array 881 */ 882 function bp_activity_get_actions_for_context( $context = '' ) { 883 if ( ! $context ) { 884 $context = bp_activity_get_current_context(); 885 } 886 887 $actions = array(); 888 foreach ( bp_activity_get_actions() as $component_actions ) { 889 foreach ( $component_actions as $component_action ) { 890 if ( in_array( $context, (array) $component_action['context'], true ) ) { 891 $actions[] = $component_action; 892 } 893 } 894 } 895 896 return $actions; 840 897 } 841 898 -
trunk/src/bp-activity/bp-activity-template.php
r11351 r11356 3801 3801 */ 3802 3802 function bp_get_activity_show_filters( $context = '' ) { 3803 // Set default context based on current page. 3804 if ( empty( $context ) ) { 3805 3806 // On member pages, default to 'member', unless this 3807 // is a user's Groups activity. 3808 if ( bp_is_user() ) { 3809 if ( bp_is_active( 'groups' ) && bp_is_current_action( bp_get_groups_slug() ) ) { 3810 $context = 'member_groups'; 3811 } else { 3812 $context = 'member'; 3813 } 3814 3815 // On individual group pages, default to 'group'. 3816 } elseif ( bp_is_active( 'groups' ) && bp_is_group() ) { 3817 $context = 'group'; 3818 3819 // 'activity' everywhere else. 3820 } else { 3821 $context = 'activity'; 3803 $filters = array(); 3804 $actions = bp_activity_get_actions_for_context( $context ); 3805 foreach ( $actions as $action ) { 3806 // Friends activity collapses two filters into one. 3807 if ( in_array( $action['key'], array( 'friendship_accepted', 'friendship_created' ) ) ) { 3808 $action['key'] = 'friendship_accepted,friendship_created'; 3822 3809 } 3823 } 3824 3825 $filters = array(); 3826 3827 // Walk through the registered actions, and prepare an the 3828 // select box options. 3829 foreach ( bp_activity_get_actions() as $actions ) { 3830 foreach ( $actions as $action ) { 3831 if ( ! in_array( $context, (array) $action['context'] ) ) { 3832 continue; 3833 } 3834 3835 // Friends activity collapses two filters into one. 3836 if ( in_array( $action['key'], array( 'friendship_accepted', 'friendship_created' ) ) ) { 3837 $action['key'] = 'friendship_accepted,friendship_created'; 3838 } 3839 3840 $filters[ $action['key'] ] = $action['label']; 3841 } 3810 3811 $filters[ $action['key'] ] = $action['label']; 3842 3812 } 3843 3813 -
trunk/src/bp-templates/bp-legacy/buddypress-functions.php
r11351 r11356 688 688 // Activity stream filtering on action. 689 689 if ( ! empty( $_BP_COOKIE['bp-' . $object . '-filter'] ) && '-1' != $_BP_COOKIE['bp-' . $object . '-filter'] ) { 690 $qs[] = 'type=' . $_BP_COOKIE['bp-' . $object . '-filter']; 691 $qs[] = 'action=' . $_BP_COOKIE['bp-' . $object . '-filter']; 690 $actions = bp_activity_get_actions_for_context(); 691 foreach ( $actions as $action ) { 692 if ( $action['key'] === $_BP_COOKIE['bp-' . $object . '-filter'] ) { 693 $qs[] = 'type=' . $_BP_COOKIE['bp-' . $object . '-filter']; 694 $qs[] = 'action=' . $_BP_COOKIE['bp-' . $object . '-filter']; 695 } 696 } 692 697 } 693 698
Note: See TracChangeset
for help on using the changeset viewer.