These requests for comments/change have lead to an implemented feature that has been successfully merged into the 3.1/Ascraeus branch. Everything listed in this forum will be available in phpBB 3.1.
I had two ideas coming up on my mind regarding the GA-Dilemma we had since they exist.
The most common problems are the permissions. So far you have the permissions of the forum, you are currently in.
Now I had two possible ideas, which have Pros and Cons:
Link Global Announcement to the forum they got posted in:
Pros:
Permissions are always the same, as they are taken from the forum they are linked to and it's independent from the forum you are currently visiting.
You can easily change the permissions for the users. (Use normal "Move Topic"-Function)
Most users seem to expect that they behave like that already
Less code needs to be changed
Cons:
Not all topics in the forum have the same permissions:
You view Forum A and see two GA (one linked to Forum A the other one to Forum B).
Create hidden Forum (similar to ANONYMOUS-User):
Pros:
All GA have always the same permissions.
You can individually set the permissions for GAs and it's independent from the forum you are currently visiting.
Cons:
More code needs to be changed
New forum must be created and the forum_id stored to the constants.php => to complicated on update from 3.0?
Still not the way the "dumb" user expects it to be
[/color]
I would prefer the first option. What would you guys think?
how about just create a special "global announcement permission" which is absolutely completely promiscuous, and use it for all global announcements? this can completely bypass the $auth->acl_getxx mechanism for global announcements?
just a thought.
One thing that a lot of people dislike about Global Announcements is the fact that they are in fact global rather than just "interregional" Meaning it would be nice if you could select which forums a particular announcement should show up on. This would require the addition of a new n:n forum:topic relationship table. I'm not sure how big a performance hit this would be, or whether one can implement it without much trouble. Those relationships might be cachable if you only have very few, but that would really make it impossible to use the feature for anything but announcements. Now if you went this route you wouldn't want every "global" announcement to have the same permissions, but permissions that fit to the area it was posted in. So I think if we were to implement this we should go the route of having the global announcement being located in one forum and just "linked" into the others.
naderman wrote:So I think if we were to implement this we should go the route of having the global announcement being located in one forum and just "linked" into the others.
That's my first way and I'm currently looking how much work that is.
With interregional you mean something like you can select in which forums a GA should be displayed? Like leaving a always up-to-date shadow-topic?
Member of the Development-Team — No Support via PM
Yup, pretty much. That would actually be another way to implement it. Simply create a topic table entry for each forum it is supposed to show up in and then update them all when changes are made. That's not really nice or normalised, but it should be a lot better for viewing performance. You might get into trouble if anything ever goes out of sync.
naderman wrote:Yup, pretty much. That would actually be another way to implement it. Simply create a topic table entry for each forum it is supposed to show up in and then update them all when changes are made. That's not really nice or normalised, but it should be a lot better for viewing performance. You might get into trouble if anything ever goes out of sync.
The Olympus implementation of Global Announcements is awkward at times. However, so is handling of the user ANONYMOUS.
One thing that bothers me is that globals do not trigger an unread flag on the board. Say you have a small board where the only topic having been replied to since your last visit is a global announcement: you wouldn't know unless you went in and viewed a forum. Option (a) is the only one that could solve that.
I took a quick look at nickvergessen's github patch. Looks pretty good