[buddypress-trac] [BuddyPress Trac] #3460: Support custom post types in activity stream
buddypress-trac
noreply at wordpress.org
Thu Feb 27 23:05:25 UTC 2014
#3460: Support custom post types in activity stream
-----------------------------------+-----------------------------
Reporter: boonebgorges | Owner: boonebgorges
Type: enhancement | Status: new
Priority: low | Milestone: Future Release
Component: Activity | Version: 1.2.8
Severity: normal | Resolution:
Keywords: 2nd-opinion has-patch |
-----------------------------------+-----------------------------
Comment (by imath):
3460.04.diff is refreshed to latest trunk.
I improved a few things comparing to 3460.03.diff, taking care of
backcompat in case plugins / themes were using the filters :
- bp_blogs_record_post_post_types
- bp_blogs_record_comment_post_types
The way it works hasn't changed from 3460.03.diff, tracked post types can
be by default :
- the post types created by plugins that are network activated
- the post types that are set on root blog
- the post types that are in common between root blog and child blogs
About the post types that are only "active" on child blogs, it's possible
to make them trackable by using some filters in
[http://codex.buddypress.org/plugindev/bp-custom-php/ bp-custom.php], for
instance :
{{{
// to save an activity when a 'my_custom_post_type' is posted
function child_blog_only_post_type( $tracked_post_type = array() ) {
if ( ! in_array( 'my_custom_post_type', $tracked_post_type ) )
$tracked_post_type['my_custom_post_type'] = 1;
return $tracked_post_type;
}
add_filter( 'bp_blogs_is_blog_post_type_trackable',
'child_blog_only_post_type', 10, 1 );
// to add a new action in filter selectboxes of the activity directory and
of the member profile page
function test_de_filtre() {
bp_activity_set_action( buddypress()->blogs->id,
'new_blog_my_custom_post_type', sprintf( __( 'New %s posted', 'buddypress'
), 'my Custom post type' ) );
}
add_action( 'bp_blogs_register_activity_actions',
'child_blog_activity_action' );
}}}
There's a way to make things simplier than using these filters for the
child blog only post types. We can create a new Administration UI that
would only load on child blogs to create checkboxes for each post type the
same way {{{bp_admin_setting_callback_post_types_tracked()}}} is building
the checkbox list for the "network active" post types. Then we could
"merge" the child blog settings with network one into the
{{{bp_blogs_is_blog_post_type_trackable()}}} function as one of its
argument is the blog id.
Building a UI into child blogs just for this purpose might not worth it...
On the other hand, it could be a way to have an allow/disallow feature per
post type / per blog. For instance if the page post type is active on the
root blog, a child blog could deactivate the page of his blog... Then, we
would have to think about who can access to this UI : regular admin or
superadmin only ?
I think the patch is ready to be tested.
--
Ticket URL: <https://buddypress.trac.wordpress.org/ticket/3460#comment:56>
BuddyPress Trac <http://buddypress.org/>
BuddyPress Trac
More information about the buddypress-trac
mailing list