Forum OpenACS Q&A: Yet another OpenACS 4 website...

Collapse
Posted by Gilbert Wong on

Here is a link to a site that I've been working on for the past few months:

http://beta.vtec.net

We're doing a beta of the forums right now. There are other sections (news, articles, links) that are partially done but are still going through some minor changes. Feel free to poke around and give your feedback.

It's based on the pre-beta code of OpenACS 4. There are no major problems with the core code, with the exception of a strange search error which I haven't had time to fix yet. Anyway, I used the acs- core and the rest is custom code. I also reworked some of the acs- subsite user interface pages (/packages/acs- subsite/www/register, /pvt, /shared, /user) to facilitate some customizations my client requested.

Collapse
Posted by Talli Somekh on
Hey Gilbert...

Great work!!! Those forums are looking very killer. Did you build them for scratch or did you template the standard bboards?

Either way, great work! I'd love to hear how you did all this stuff as it's a real departure from pretty much all the OACS-based bboards I've seen.

talli

PS
Hope to see many many "yet another OACS4 sites" from everyone!

Collapse
Posted by Bart Teeuwisse on
My compliments Gilbert. Great work.

Do tell how you modified the bboard package.

Collapse
Posted by Cynthia Kiser on
Gilbert, like everyone else, I am really impressed. I especially liked that one could reply to the middle part of a threaded message and the threading structure branched to indicate this!!!! Please make my day and tell me that you have also used the appropriate header voodoo to make the email alters thread in mail readers like mutt. (That is about the only ACS 4x bboard improvement that I am frustrated has never been implemented on web/db forum)

Are you planning to package up and release your forum code?

Collapse
Posted by Zachari Partridge on
Gilbert,
I like it very much.  I'm currently trying my hand at creating a package based on the bboard system also.  Any insight you could give would be most appreciated.

Thanks,  Zack.

Collapse
Posted by Jonathan Ellis on
heh, I've always hated UBB-style boards.  Oh, well.
Collapse
Posted by Zachari Partridge on
I didn't know what UBB-style was so in case someone else doesn't... Some BBoard Styles
Collapse
Posted by Gilbert Wong on
My implementation uses some ideas from the bboards packages but it uses none of the bboards code.  Email alerts was one of the features I borrowed from the OpenACS boards (using the idea of map tables to map messages to subscribers).  However, I left out some of the other bboard features, not sure which ones, but the OpenACS bboard experts will be able to see what seems similar and what doesn't.  All of the messages have a tree_sortkey and a parent_id which helps me build the hierarchy.  Thanks to everyone who worked on the "connect by" solution!

Also what you don't see is the news and articles sections (you can guess the URLs for those sections) which are directly integrated with the forums code.  It's similar to the general comments package in OpenACS 3 where you can respond to any page, but I hard coded it because it was easier to do it that way :)  Again, those responses are threaded just like the rest of the forums.  The articles package allows you to upload files (.zip, .tar.gz) into a special (not CMS) area.  It uncompresses the files and places them in a special directory.  If you have HTML files, it will suck it into the database, and it will modify the links (img src and a href) to make the file paths correct.  You can also create/edit articles online.  I chose not to use the CMS because I couldn't figure out how to use it properly and because my client didn't really need to worry about tracking revisions.

Oh yeah, and there's an ad management package there too.  I'm still working on the layout for that part.

Cynthia - please tell me more about the "voodoo headers".

Jonathan - you can switch to a threaded mode (ie non-ubb mode).  There are some links at the top of the forum index page (thread, fancy, flat) which will allow you to go to your favorite thread layout.  It's hard to see the links and we're going to make it a graphic so it's more obvious.

Yes, my current plan is to release the whole package at some point in the near future (in a month or two).  But first, I need to clean up the code and work out all of the bugs.  My vision is that this will be either a separate distribution of OpenACS 4 (ie out of the box functionality) or you can use the APM to download the necessary parts and patch the core code with my tweaks.

Collapse
Posted by Don Baccus on
After we get this release out, let's talk about incorporating your subsite UI tweaks into our tree.  Can you elaborate on what changes you made for your client?  We may want all of them, some of them, none of them depending on just what you did.  "all of them" wouldn't be a terribly surprising outcome of a discussion!

The bboard's do look very interesting.  I'm not terribly fond of the standard OpenACS 4 bboards, especially "under the hood", but Open Force is doing a lot of repair work as part of the dotLRN effort, so it is going to be better than the code you've seen in the past.  Still, when Ben and I have discussed the package we've muttered "the *bleep*er needs to be rewritten" more than once ...

IMO there's nothing at all wrong with having two bboard packages available for download.  We could include an alternative bboard as part of our "bundle", separately in our download archives (when we have them) or we could simply point people to you.  If enough people vote with their feet, so to speak, your bboard might even replace the current one as the "standard".  Who knows?  Ain't it great?!? :)

Once you see the dotLRN portals package I'm sure you'll want to write a portlet for your bboards, too :)  Open Force has done an excellent job with the new portals package.

Collapse
Posted by C. R. Oldham on
Once you see the dotLRN portals package

And how long until we can see it? Do you know?

Collapse
Posted by Gilbert Wong on
Don,

I only made a few changes in the acs-subsite user pages.  Most of the changes are HTML layout changes.  The major change in the TCL/SQL code is the addition of a random token (and column to track it) to supplement the user email verification process.  The reason I modified it was because the oid/rowid is a constant in the database and when people change their email addresses, there is no easy way to verify that the email address is still valid.  So I added the random token and changed the basic-info-update page to check for a change in the email address.  If it was changed, I toggle the user verified column (can't remember the exact column name) to false, log out the user, generate a secret token, and email the confirmation link.  So a smart user cannot easily fool the email verification system.  I also had to change the registration end too.

Collapse
Posted by Don Baccus on
These all sound good, Gilbert ... ping me about getting these incorporated after we get our release rolled out.
Collapse
Posted by Matthew Terenzio on
While I've been around long enough to know that if Don or Ben makes a change to the BBoards code, it will be for the better, I couldn't help but think that we are criticizing the vehicle which built the photo.net/ACS/OpenACS communities. That is, the BBOARDS themselves. In my opinion, they have been and are wonderful tools.
Collapse
Posted by Scott Mc Williams on
Well Matthew, I for one, would be happy to get rid of the current bboard completely. I am all for nostalgia, but honestly, bboard (which is such an important part of a number of OpenACS sites I've launched) is one of the worst modules in the system. I agree that is WAS great when it came out, and it might be nice as a stand alone module (well, strike that...I wouldn't use it for that even). But, it's time to lay it to rest. I have TONS of ideas for a new bboard module, some of which Gilbert seems to have incoporated. I posted here not too long ago with a link to www.ikonboard.com as a possible replacement for the bboard as it stands. This is not an opensource solution, but I would at least look to it for inspiration. OpenACS bboards should have all of that functionality and MORE!

Should we have two bboards available to admins? Sure, why not. But, I would say, let's stop trying to bandage the old one...it's given up the ghost. We have the technology, we can build a new bboard...better, stronger faster than ever before. And for a whole lot less than six million dollars. In the same way that the current bboard allows the admin to choose one of three different styles (USEnet, Q&A and uh...US Geospatial? does anyone REALLY use anything besides Q&A...for shame) we might as well include the old bboard along with the new improved UBB/EZBoard/Ikonboard clone.

Keep in mind, that I'm no coder...but I could certainly write a spec sheet to keep a handful of coders busy for awhile! ;)

Scott

Collapse
Posted by Jerry Asher on
In the same way that the current bboard allows the admin to choose one of three different styles
Various policies of how it looks should be separated from the underlying data model. I built a pretty deluxe blog module on top of bboard to find that because of the hardcoding of the three styles into PG and Oracle, it is basically impossible for an existing style to use the blog bboard without stripping various constraints from the PG model. PG w/o constraints? Yeah, that's almost down to MySQL.

A new bboard can be made much better, and that's been touched on many times before. So why not again. Unification with mailman or ezmlm, and either ubb support or some such stuff so that we neither have to slip into html just to quote something, nor are we open to javascript, other malicious HTML attacks, or just the whole unnested tag thing.

Collapse
Posted by Jerry Asher on
Sorry, , forgot to close that tag.
Collapse
Posted by Talli Somekh on
Jerry brings up a very important feature - integration with mailing lists. I think that dotLRN is supposed to have incorporated this feature but I haven't heard anything about it in a while. It's probably the least important feature for their alpha release.

But if building this feature into the bboards recquires a total rewrite, I think that the effort would be worth it.

talli

Collapse
Posted by Don Baccus on
Whoa!  The [Open]ACS 4 bulletin board is NOT based on the ACS 3.x bboard package, not at all.  It's very different and while I have complaints about its under-the-hood implementation (which to some degree first I, and now OF, have worked on cleaning up) the feature set's a bit nicer than the old boards.

As part of dotLRN OF will indeed have to provide a level of e-mail integration not seen in the past, as ACES 3.5 (aka SloanSpace) does provide this.

Gilbert's effort looks pretty nice, but I do have some questions about it, i.e. how much of what I'm looking at is templated vs. built in?

My personal preference is for a standard templated package to provide lean and sparse output that can then be built on when customizing sites (making more use of the template system's ability to use master/slave chains, includes, etc in order to make it easy to whack away at look and feel in a handful of places rather than page-by-page through the system).

I didn't play around enough to see if it allows image and other attachment uploads, unthreaded as well as threaded bboards, etc.

One thing to recognize, though, is that no group of people larger than three or four are ever going to agree on look and feel and feature set for a bulletin board package.  That's why I don't mind our having two to choose from.  In many ways having separate packages to meet differing sets of opinions regarding "the perfect bboard" makes a heck of a lot more sense than trying to write a single uber-bboard that fits everyone's taste and preference.

Collapse
Posted by Cynthia Kiser on
Gilbert after some poking around in mutt documentation, some RFCs, and some documentation (http://www.dsv.su.se/jpalme/ietf/message-threading.html and DJB: http://cr.yp.to/immhf/thread.html), I think that the voodoo for getting the ACS 4.2 bboard alerts to thread nicely may be the In-Reply-To headers that are set in acs-messaging/tcl/acs-messaging-procs.tcl  acs_messaging_process_queue. Was going to check to see if they are in the OpenACS acs-messaging package but find that cvsweb browsing just serves errors right now. If your bboard would keep track of and send out In-Reply-To headers, it would be great!

If that is too much hassle, then using a more standard subject line convention might also work. Subject lines with "Re:" prepended to the subject line get treated properly by mutt's pseudo-thread feature but the "In Response to" additions of the current bboards mean that if I sort by subject to motor through threads, the questions get totally separated from the chain of answers.