Feature #3177
closedUpgrade bbPress to 2.x
83%
Description
see related issues for tickets dependent on this.
Related issues
Updated by Boone Gorges over 10 years ago
- Estimated time set to 50.00 h
This will be a complex task. Ray, I've added you as a watcher in the hopes that you can chime in to help plan and implement.
Migrating our raw forum data to bbPress 2.x is easy. But there are many customizations that we've made to our forum functionality that are dependent on bbPress 1.x, and we have to maintain some level of backward compatibility with all of them. Here's the beginning of a list - Ray, please chime in where I've missed things.
1. Attachments. There are existing plugins for attachments for bbPress 2.x. I know about this one http://wordpress.org/plugins/gd-bbpress-attachments/. We will need to write a script to migrate our old attachments to the new plugin (or some middleware that retains the necessary post-links in read-only form). We'll also need to make the necessary modifications to the outgoing email notification when an attachment is present with a forum post.
2. "Live" preview. Ray originally built this for bbPress 2.x - I backported it - so this should be mainly a non-issue, though some of the specifics of the styling will have to be adjusted.
3. "ascending/descending" and per-page views. We have some customizations that allow users to modify "posts per page" and "order" when viewing a topic. It should be possible to do the same in bbPress 2.x, but it'll need to be rewritten from scratch. We may decide that this particular task could be postponed if it's going to be a lot of work.
4. Reply by email. Ray, have you built any bbPress 2.x support here? Would this have to be built out as part of GES? Or would it just piggy-back on exsiting GES activity notifications?
5. HTML email notifications. We'll need to write methods for formatting bbPress 2.x content in outgoing emails.
6. URL format and forwarding. Ray, do the URLs change when going to bbPress 2.x? We want to retain permalinks one way or another.
7. "Follow" functionality. GES lets you follow a specific topic. I think bbPress 2.x has its own version of this. If we decide that we need to maintain backward compatibility with existing Follows, we'll need to write a migrator. (We might alternatively decide to drop backward compatibility. Might be worth looking into how many people are following specific topics right now.)
8. Styling. We have done some customizations to the way that forum topic posting and viewing looks. bbPress 2.x is styled totally differently. IMHO, the bbPress 2.x interface is much better, and we shouldn't attempt to do a pixel-by-pixel duplication of what we currently have - we should take this opportunity to inherit the improvements. But there may be cases where we do want to customize what bbPress provides out of the box.
That's a start - Ray, please feel free to chime in with what I may have missed. Then we can start divvying up tasks as appropriate.
Updated by Boone Gorges over 10 years ago
Hey Ray - I can't remember if I added you as a watcher to this ticket after I created it, so I'm pinging to make sure you've seen it :)
Updated by Raymond Hoh over 10 years ago
Thanks for the ping, Boone! Apologies for the late reply. Was preoccupied with RBE amongst other things.
1. Attachments - Writing the migration script to maintain backwards compatibility should be okay. However, if we plan on using a new plugin for attachments, we should use that plugin for new attachments and not migrate our older attachments to this new plugin.
2. Live Preview - Yeah, I think it's pretty close. I haven't checked it on the latest version of bbPress, so it might need a tiny bit of tweaking.
3. Ascending / Descending - I've always wanted to write a plugin that adds a bbPress forum settings page to a BP profile. This page will have settings such as sort order and pagination. Probably a good opportunity to do so.
4. Reply By Email - There is already support for bbPress 2 with BP Group Email Subscription. I also wrote support for bbPress 2 not attached to a BuddyPress group, but there was an issue with post link in the email that I never really got to the bottom of so I disabled it for non-BP forums.
6. URL format and forwarding - There could be a permalink issue if a WordPress post slug is the same as a bbPress 1 topic slug during conversion. The chances of this happening is slim, but could happen. But for the most part, permalinks should be the same.
7. "Follow" functionality - I made some concessions in GES so when bbPress 2 is used we defer to bbPress 2 for following a topic. It would be valuable to determine how many users are following topics at the moment. I think this is all recorded in a user meta option by GES.
8. Styling - Agreed that it would be a great time to fine-tune the forum UX while we have the chance.
One other thing to note is bbPress has the concept of dynamic user roles. At the moment, this conflicts with Reply By Email because I wanted to copy bbPress' validation schema. And since it is hard to determine these dynamic roles when the user isn't logged in, replies will fail to post. (Or, I'm just not looking in the right place ;)
A way around this is to set the user role automatically in bbPress 2 so a role is saved in the database.
Updated by Boone Gorges over 10 years ago
Thanks for the helpful feedback, Ray! I'm leaning on you a bit, because I think you know the new bbPress better than I do.
However, if we plan on using a new plugin for attachments, we should use that plugin for new attachments and not migrate our older attachments to this new plugin.
I definitely want to use a different plugin from the one we have (which (1) is terrible and (2) would have to be totally rewritten) That said, we need old content to remain available. So, while I could write a stub plugin that'd maintain backward compatibility (though even this would mean writing a script that translated old post IDs into new ones), it seems cleaner to me to migrate them to the new plugin, which will be responsible for handling new content. I'm not totally clear on your objection to this. (Maybe I'm misreading what you've written.)
The rest sounds good. It sounds like at least some of the tasks will be easier than I'd originally thought. I'm going to create some new tickets and throw some of them your way :)
Updated by Matt Gold over 10 years ago
Huge thanks to you both for this complicated but necessary work.
Updated by Boone Gorges over 10 years ago
cdev is now running bbPress 2.x, with forums migrated over. Maybe we can use this ticket as a discussion space for issues regarding the appearance of the new forums. Compare:
- http://cdev.gc.cuny.edu/groups/cac-community-team-project-planning/forum/
- http://commons.gc.cuny.edu/groups/cac-community-team-project-planning/forum/
and
- http://cdev.gc.cuny.edu/groups/cac-community-team-project-planning/forum/topic/agenda-for-todays-comm-team-meeting-1/
- http://commons.gc.cuny.edu/groups/cac-community-team-project-planning/forum/topic/agenda-for-todays-comm-team-meeting-1/
There are some issues to be cleared up (avatars, "voices" counts, attachment migration) but this should be a good starting point for comparison.
Updated by Matt Gold over 10 years ago
Thanks, Boone! Looking pretty good to me! A few questions:
-- previews don't appear to be enabled yet; I assume that's coming
-- can we now enable threaded replies? I believe that's now a setting in the dashboard (or, at least, I've seen it on CBOX installs) -- is that possible here?
Looking pretty good to me otherwise.
Updated by Boone Gorges over 10 years ago
Thanks, Matt.
-- previews don't appear to be enabled yet; I assume that's coming
Right. I had to do a few mods. It's running on cdev now.
-- can we now enable threaded replies? I believe that's now a setting in the dashboard (or, at least, I've seen it on CBOX installs) -- is that possible here?
Yes. I've enabled it on cdev so you can get a feel for it. It's just a question of whether it's something the team wants. IMO the interface is not great out of the box. See #28.
Updated by Matt Gold over 10 years ago
Thanks, Boone. Previews are working perfectly.
Re threaded replies (and maybe this should be a new ticket), they are not working as I would expect. For the threaded replies here, for instance - http://cdev.gc.cuny.edu/groups/scotts-test-group/forum/topic/this-is-a-test-topic/ - my reply to one of Scott's posts was not nested below Scott's post itself. When I replied to my own comment, it was nested properly.
I am guessing that this is because the forum is preserving temporal placement (when the reply was posted) instead of showing threads. Let's say I come to a forum and see three threads, listed in chronological order:
comment thread post 1
comment thread post 2
comment thread post 3
If I come in and reply to post 1, I would expect my reply to be nested under post 1 even through it is the 4th post chronologically. That should look like this:
comment thread post 1
-- comment thread post 4
comment thread post 2
comment thread post 3
Instead, what I am seeing on CDEV is this:
comment thread post 1
comment thread post 2
comment thread post 3
comment thread post 4
thoughts?
Updated by Boone Gorges over 10 years ago
I think the correct interpretation is that replies to the first post in the thread will end up at the end of the list, while replies to items 2+ will appear inline. So, imagine an existing thread:
A
B
C
Then, say D is left in reply to A and E in reply to B. The result will be:
A
B
- E
C
D
Updated by Matt Gold over 10 years ago
Okay - I see - D goes to the end of the list because B and C were also in reply to A. That makes sense. Thank you.
I think that we should implement this. Feature request #28!
Updated by Raymond Hoh over 10 years ago
I should note that threaded replies do not work with pagination in bbPress. So if the threaded replies option is enabled in bbPress, pagination is turned off. Something to keep in mind.
Updated by Boone Gorges about 10 years ago
- Status changed from Assigned to Resolved
All subtasks here are finished, so I'm going to mark this parent item resolved. Phew! Thanks for your help.