Forum OpenACS Q&A: Would you help me test a blog module?

Posted by Jerry Asher on
I have a blog module that I am finishing up. It's for 3.2.5 though it should be easy to port to 4.0 (famous last words, eh?). Before I release it, I would like to generate some hits, aside from my own, and get some feedback.

It's at For the most part it's a new front end to a common bboard. It is templatable in a ad_calendar widget sort of manner, and it permits your users to create a blog of their own (and isn't that what all your users want?)

Would you consider visiting, and maybe posting an entry or so in the discussion groups?

Posted by Michael Feldstein on
A couple of things. First of all, once you create a blog, how do you
post an entry to it? There is not obvious "post an entry" link.
Second, blogs conventionally are meant to have only one author
post. This is in contrast to the bboard permissions. Now, the
blog owner might want to allow people to comment on his/her
entries, in which case the "weird stuff" admin setting would be
Posted by Jerry Asher on
God I hate the behavior of the escape key and textarea boxes, at least in IE. Please, the name of the turkey who determined that hitting escape should clear a textarea box without anyway of redo.

'Nuff said, I'll retype this answer back in.

Well that points out the us software developers aren't the best UI developers. I had thought that owners of a blog would find the intriguing redballs and colored pawprints intriguing and mouse over them or click on them. Mousing over would reveal the alt text, 'manage your blog', and 'post new entry', and clicking would bring them to the right form. (And I thought the pawprint somewhat iconically representative, "click here to leave your footprint on the blog")

Anyway, as I mentioned it's a relatively simple process to template/theme, so I just created a "new user" theme that is more textual in nature. If you return, and change your blog to the new user theme, that should clarify pieces of the interface.

You're right about the canonical blog being a one person as owner kind of thing and bboard permissions involving groups of folks as owners and typically allowing most people to post new topics. It's also true, IIRC, that the typical ACS bboard either gives complete freedom to the users to create any kind of bboard they wish, or no freedom at all. So I changed bboard a bit. The default for 'blog' bboards is that any user can create one blog bboard, regardless of other settings of the bboard system.

I've also made changes to ensure that only the owner of the blog (or members of a particular blogs admin group) can post new blog entries or admin the blog, everyone else can just reply to existing threads. That's similar to what one of the weird stuff parameters claims to do, but under the hood the weird stuff parameter doesn't prevent folks from posting new entries, it just removes the links that make it obvious. Anyone can actually create a post to q-and-a-post-reply-form.tcl that will enter a post into weird stuff'd bboard that claims to let only the owner originate a post. That's not supposed to be the case with blog forums. Only blog owners can post entire new blog entries.

Finally, I just want to thank you for taking the time to test the system, and post your comments.

Posted by Rich Graves on
This is awesome!    We will be porting it to ACS Classic 3.4.10, which looks easy. This should help a little with openacs 4.x because the db api and security schemes are similar.    Any thoughts on making it group-scoped rather than user-scoped? We'd want to offer a blog to every student organization. We were going to abuse the enhanced-news module for that but I like this UI better and things like email alerts and full-text-search are already handled.    I guess we don't really need to change any code since there's nothing stopping a group that owns an email address from creating an ACS "user" with their group name, but it'd be cleaner if we could just make the club group the admin group for the bboard. (Is there anywhere in bboard that requires the admin group to be group_type='admin'?)
Posted by Jerry Asher on
Yes, I think that porting it to ACS 3.4.10 should be straight forward.

I built it using a hacked OpenACS 3.2.5 that I've back ported a lot of 3.4.10 features too.  I would think it would take a few hours at most to change the ns_db calls to db_ calls.  A quick glance at the datamodel shows a few changes, the most appear to be that the 3.2.5 version uses a native boolean datatype.

As far as group scoping, I looked into that at the beginning, but it seemed that bboard was built before the "standard acs group scoping mechanism" came about.  Specifically, bboard_topics, contains group_id, but does not contain a scope column.  I would imagine that adding group scoping to blog is more a matter of adding group scoping to bboard itself.  That is, wading through 153 files in www/bboard plus tcl/bboard-defs.tcl and adding support for group scoping.  It may not be that bad.  If you aren't using the usgeospatial forums or the ed-com forums, etc., you can ignore those files....  Anyway, for 153 reasons, I chose not to do the group-scoping, but it would be nice.

It has been built such that any member of a blog's administration group is considered an owner.  The site-wide admin can visit /admin/bboard/ and then click on the {blog of interest} and can use the hyper-administration page to add or remove blog administrators from a particular blog.  That will probably be tedious if you have tons of groups, so you could migrate that ability from /admin to /bboard and let groups take care of administrator status for themselves.

Alternatively, I think that your suggestion that the club group_id be the administrator group_id would work.  Bboard has a function (bboard_user_is_admin_for_topic) that checks to see if the user is the primary maintainer of the bboard (the creator of the bboard), or if the user is an ad_administration_group_member of bboard and your topic.  It eventually boils down to just checking for group membership with a group defined for bboard in the table administration_info.  I believe you can just short-circuit the creation of that group in the bboard code with the substitution of the club's group id.  And then you would be in like flynn.

Enjoy, I hope you find it useful.

Posted by Allan Regenbaum on
Rich/ Jerry ... did anyone port this to classic acs ?