By popular demand, here’s the method we used at the CUNY Academic Commons to get the BuddyPress admin bar to appear on the non-WP/BP portions of our site. In our case, that means MediaWiki and bbPress, but theoretically this method could work for any kind of software out there.
I should note that I did not devise this method. It was invented by the inimitable Zach and Lucas of Cast Iron Coding.
The concept is as follows. A bit of jQuery looks for a div of a certain ID on a page and, when it finds it, opens a dummy WP page that contains essentially nothing but the BP admin bar loader, which then appears on your page. Download the zip file containing the necessary files (admin-bar-integration) and follow these steps to make it happen.
Upload the file page-component.php to your WP theme directory.
Create a new page in WordPress. The page should be blank. In the Attributes box, select the Template called “Component (do not use)”. Name the page bpnavslug and publish it, making sure that you take note of the permalink. You’ll need that URL (relative to your site’s webroot) in step 4.
If any part of your site creates a menu or a list of your WordPress pages, you’ll want to exclude this empty page from those listings. Find the function call wp_list_pages in your theme (often in header.php or index.php) and add an exclude argument. For example, if the page number of bpnavslug is 4, make sure all references to wp_list_pages read wp_list_pages('exclude=4').
Open the file bp-bar-integration.js. On line 3, you’ll see the path /bpnavslug/. Replace it with the path to the bpnavslug post you created in step 2.
Upload bp-bar-integration.js to your server. For the sake of argument, I’ll put mine at /wp-content/js/bp-bar-integration.js.
Now let’s turn to the application where you want the admin bar to appear. Open the theme file that contains the </body> tag. In bbPress, for example, this is usually footer.php.
Immediately before the body close tag, paste the following code: <div id="bpContainer">
Be sure to replace the src attribute with path from your upload in step 5.
Finally, you’ll have to include the CSS for the admin bar. On a default installation of BuddyPress 1.0.3 or less, the following code will work: <link rel='stylesheet' id='bp-admin-bar-css' href='/wp-content/plugins/buddypress/bp-core/css/admin-bar.css' type='text/css' media='screen' />
On a more recent version of BP (1.1+), the admin bar stylesheet has been rolled in with the rest of the styles. Either create your own stylesheet containing just the admin bar code, or import the entire stylesheet: <link rel='stylesheet' id='bp-admin-bar-css' href='/wp-content/themes/bp-default/style.css' type='text/css' media='screen' />
A note: This method appears to be incompatible with the Google Analytics WP plugin (which appends Google’s JS to the footer of every WP page, and thus into bpnavslug, and ends up gumming up the works). You could probably get around this with some creative if-statements in the GA plugin itself.
Good luck. Because of the diversity of people’s setups, I can’t guarantee that this method will work for everyone, nor can I provide support to everyone who tries it. But I do encourage you to post whether you’ve been successful in the comments, and to help each other figure things out.
With a lot of help from users, Group Forum Subscription is becoming pretty stable (and widely used!). I’ll be releasing the next version 1.3 within the next few days, and one of the new features is localization. If you’re using the plugin for a site in a language other than English, I encourage you to have a go at creating a translation and, if you’d like, providing it to me for release with future versions.
Never translated a WordPress plugin before? Neither had I, until the other day when I put my rusty French to work on this plugin. The process is quite easy. There are two ways to do it:
If you’d rather not install a program, you can download my French translation group-forum-subscription-fr_FR and edit it in a plain-text editor (like Notepad or TextEdit – not Word!). The lines beginning “msgid” are the original English. The lines beginning “msgstr” are the translations. Replace the French translations with translations in your language and post/send the file to me.
If you’re using Group Forum Subscription for BuddyPress, you might like to know that I’ve just pushed out v1.1. There’s nothing new in terms of functionality, but a lot of small bugs have been fixed, as well as a fairly large bug that was affecting automatic subscription on the joining/leaving of BP groups. Download the latest version through your WP Plugins panel, or download it from wordpress.org.
Thanks to r-a-y, MarkS, WestPointer, and other users for helping me to spot and squash those bugs!
BuddyPress and bbPress connect nicely, giving BuddyPress groups a handsome forum interface, but the software has no native ability to allow users to receive email when their favorite discussions are updated. Without this functionality, it can be hard for users to keep up-to-date with forums, and subsequently the forums are less active than they otherwise could be.
Group Forum Subscription is a set of plugins I’ve written (mostly on the BuddyPress side, with a small bbPress trigger plugin) that adds the missing forum notification functionality. GFS allows members of BuddyPress communities to subscribe to email notifications of new discussion activity. Subscriptions can be managed on a topic-by-topic or group-by-group basis.
The plugin also has some administrative settings. Notable among these is the ability to set up email notifications for the first time after the plugin is installed, so that users are automatically subscribed to topics in their groups without having to set it up manually. This is a setup process that we’ll be running in the upcoming days here on the CUNY Academic Commons.
WordPress’s Post Tags box, which appears on each Edit Post and Add New Post screen, has a great feature called “Choose from the most used tags in Post Tags”. This link allows you to see which tags you’ve used frequently in the past and apply them to your current blog post. The feature gives rise to two nice effects. One is that you avoid ending up with a lot of close-but-not-quite-identical tags on your blog (like “WordPress”, “WP”, “Word Press”, and so on) that, because they aren’t grouped together, tend to defeat the organizing purpose of tags. Another benefit is that it reminds you of the things you found important in past posts, and encourages you to mark your current post with the same tags, if relevant.
This plugin (and set of hacks) that I’m calling Sitewide Tag Suggestion allows you to glean the same benefits from the tag collection not just of a single blog, but of all the blogs on a WPMU installation. In short: STS adds another link to the Post Tags box, this one allowing authors choose from the entire community’s most popular tags when composing a post.
If you’ve got a blog on the CUNY Academic Commons, you can take advantage of Sitewide Tag Suggestion today. Just check out the Post Tags box when you’re writing a blog entry.
Detailed instructions for installation – which, partially as a result of my own ineptitude, involves a few hacks to WPMU’s core code – are contained inside of the file. Please note that WPMU 2.8+ is required, as is Donncha’s Sitewide Tags plugin.
BuddyPress comes with several WordPress widgets, among which are the Groups and Members widgets that you see on the CUNY Academic Commons home page. This plugin makes those widgets a little more customizable, allowing users to specify which of the three tabs (Newest, Active, or Popular) they’d like to be each widget’s default view.
If you’ve got a blog on the CUNY Academic Commons, you can start using this feature right away. Just look in Dashboard > Appearance > Widgets. Be sure to select the Groups/Members widgets whose descriptions say “Enhanced”.
Since releasing my MediaWiki extension BuddyPressActivity, which puts wiki edits into your BuddyPress activity stream, I’ve noticed a bug or two. In particular, the cool feature that filters out multiple edits of a page by a given author within a 24 hour period wasn’t working right. I’ve made the necessary fixes in v0.2.
Boone Gorges, who is familiar to many of you as the homegrown rising star of our development team, recently traveled to Vancouver to take part in the Open Ed 2009 conference. From what I’ve gathered, Boone’s flights to Canada and back went relatively smoothly.
And indeed, far from missing connections, Boone was able to make some valuable ones, particularly with the development team at the University of British Columbia’s Office of Learning Technology. Knowing that UBC is working on projects that are similar to ours, Boone starting thinking about ways in which our Dev teams could do a better job of sharing things with one another — something that make sense, given the commitment we all have to open education. Boone speculated on this in a blog post titled “Sharing Hacks“:
Communication about code is a hard thing. On one end of the spectrum is internal communication. The gang at OLT keeps internal notes of the small hacks they do on their system, as do we at the CUNY Academic Commons. On the other end is end-user documentation, meant for a broad and largely non-technical audience. The kind of communication that’s missing here is the stuff in the middle, between groups doing similar sorts of work.
Boone ended that post by stating his commitment to writing more frequently on this development blog about the smaller issues of development. But his larger point — that those of us developing open-source educational platforms need to communicate more regularly with one another — is one that can’t be emphasized strongly enough.
And so, I will close this post with one of Boone’s central questions: “What are some good ways to get this kind of sharing moving?” His post, along with this one, represents a start, as does the revival of UBC’s development blog. But we need to build more lasting channels of communication soon, lest we miss some important connections.
UPDATE: BP Dev Andy writes in a comment to this post that this bug will be fixed in BP core soon. If you’re running a recent version of BP, it’s likely that you won’t need this plugin. Please make sure you can reproduce the issue before installing.
This plugin fixes a small but potentially annoying quirk in BuddyPress. If you, as a blog owner, edit a comment that appears on your blog, BuddyPress adds an entry to the sitewide and individual activity streams – but it doesn’t delete the old entries. As a result, if you end up (for example) editing your own comment a few times in a row, you’ll see multiple items on the activity feed.
This plugin fixes the problem by checking whether a submitted comment is an edit, and if it is, by deleting previous versions of the comment in the activity stream.
Until the plugin is in the WordPress repository, I’ve made it available in a zip file here. Just load bp-activity-skip-comment-edits.php into your /wp-content/plugins folder, activate in Dashboard > Plugins (sitewide, if you’d like), and you should be good to go.