For a long time, BuddyPress has been sorely in need of better support for media, as images, video, and audio play a major part in connecting people on social networks. BuddyPress core has adopted the features-as-plugin development model to help facilitate the development of a new media component called BP Attachments. This new Attachments API, once finished, would allow BuddyPress to store media as attachments, offering developers a standard way of extending the plugin to build media-related functionality.
With no way of knowing when or if BuddyPress will add a core media component, developers have struggled over the years to tackle media support with independent solutions. Brajesh Singh, a prolific BuddyPress plugin developer, created the popular BP Gallery four years ago to address this need, but the plugin is now outdated.
Last week Singh introduced MediaPress, his latest attempt at creating gallery/album capabilities for BuddyPress. The plugin is now in beta and boasts an impressive list of features, including:
- User media/gallery/album support
- Group media/gallery/album support
- Built-in photo, audio, and video support
- Supports privacy
- Drag-and-drop uploader
- Upload from Activity
- Automatic wall galleries creation
- Wall gallery support for Groups/Users
- Grid layout for media
- Playlist view support for audio/Video Galleries
- Widgets and shortcodes to list galleries, media, playlist, audio, etc.
MediaPress adds upload buttons for images, audio, and video to the activity update box. Users can also upload from the gallery menu item in their profiles.
MediaPress’ gallery support works very similar to Facebook. Images uploaded via the activity stream will be placed in a wall photo gallery where users can view, edit, or delete them.
MediaPress comes with an extensive array of admin options for controlling its features. It’s also tightly integrated with WordPress and BuddyPress, which is why audio playlists in the activity stream look similar to audio uploaded to posts.
Singh built MediaPress to be easy to customize and easy for other components to extend. Here are a few examples of what developers can do with the plugin:
- Use a different storage manager (supports local uploads by default but you can write one for the cloud- check core/storage/storage-manager.php for details).
- Add support for a new Media Type. (Check core/common/api.php, core/common/init.php for details.)
- Write a custom media loop. (Check MPP_Media_Query in core/common/query-media.php.)
- Write your own custom Gallery loop/list. (Check MPP_Gallery_Query for details.)
The Future of MediaPress
MediaPress does not utilize the BP Attachments API. I spoke with Singh to see what his plans are, when/if BP core adds better media support. “Yes, I will continue developing it even if BP adds its own media component,” he said. “MediaPress has a more versatile API than what will come in any media component in the next 2-3 years at least.”
Singh spent the last year and a half planning the plugin, but it was only within the last four months that he got serious about building it. “I spent most of the time planning the architecture and API. My basic goal was to make it easy for site admins as well as developers to use and extend the plugin,” he said.
MediaPress is open source and will remain free to use, as Singh’s primary goal is better community adoption. After the first release, he is planning on putting the plugin on GitHub and will also submit it to WordPress.org. He hopes to build a community around it.
Singh will be retiring BP Gallery in favor of MediaPress. “Things have changed in last 4 years – custom post types, taxonomy APIs made it into WordPress core, as well as multisite,” he said. “We needed a plugin to reflect these changes and work better with the current APIs. I did not feel updating BP Gallery will do it justice.”
There are very few media plugins for BuddyPress at the moment, and Singh said that it seemed all of them were either bloated or very limited in options. MediaPress is currently the most advanced gallery/album solution for BuddyPress, even though it’s still in beta. I tested the plugin and found its UI to be fairly intuitive. It fits in like a natural part of BuddyPress. Check out the live demo to see it in action.
In the future, Singh plans to add support for WordPress (non-BuddyPress) sites and bbPress. If you’d like to help test the MediaPress beta, you can download it from BuddyDev.com.
What about non-media files, such as Word docs or PDFs?