#4: Show new stuff since last login
- Contents
- Proposed by
- Jon Stahl, ONE/Northwest
- Seconded by
- Marshall Mayer, LiveModern.com
- Proposal type
- User interface
- State
- completed
Motivation
Returning forum visitors quickly become frustrated by having to wade through all of the old forum content in order to find what's new. This problem only becomes more severe as a forum grows, and can become a huge barrier to effective ongoing user participation in a forum.
Proposal
We believe that there are several simple steps to making it easy for Ploneboard user to find "what's new."
1) In the board contents page, show:
* The total number of conversations & replies for each forum
* The number of new conversations + replies since user's last login
2) In the forum contents page, show:
* The number of new replies since user's last login
3) Create one or more portlets that could be deployed anywhere on the site showing:
* Most recently created forums and/or conversations (since user's last login, or overall if not logged in)
* Most recently active forums and/or conversations (based on # of recent conversations and/or replies since user's last login or overall if not logged in)
Totally agree...
Scalability is very, very important. For this feature and everything about Ploneboard.
It's all about "unburying" new/hot content in the forums, which becomes ever more important on a large site.
What happens next
If we agree on this approach, what happens until some future verson of Plone (more cache-friendly)?
Where does this go?
Martin
Proposed Templages
I'll reproduce here an email exchange between myself and Wichert on what these pages should look and act like. Feedback needed here ASAP.
Marshall proposal: A portlet should be developed, but not installed anywhere as part of the quickinstall. The title of the portlet should be "forum comments". Each list entry should include the title of the conversation, the title of the forum (in parentheses, right after the conversation title), and the date of the new comment (all preceded by a graphic, and alternating background). It should include only the 5 most recent comments, most recent first. Pretty standard stuff. A More... link should take you to the page described below.
Wichert comment: In what context should those be searched? Should the portlet be site-global?
Marshall proposal: A page should be developed that displays all of the most recent comments, most recent comments first. If you are not logged in, it will display all recent comments. If you are logged in, it will display all comments since your last login, most recent first.
Wichert comment: Unfortunately it is not always possible to know the last login time: the last login time is only recorded when someone uses the login form to log in. If you use single sign-on, HTTP authentication, session cookies or any other method which does not use the login form it is not recorded.
Marshall proposal: The link to this page (besides in the portlet) should be on each main page template (for all forums, for all conversations, and for all comments in a conversation), near the top of the page (across from the up to links, underneath the rss/print/email/toggle buttons?). The page itself should list all recent comments, with the following columns: forum title (each list entry linked to the actual forum); conversation title (each list entry linked to the actual conversation); author (each list entry linked to the author's profile that originated the conversation); comments (with the number of comments to the specific conversation); and last comment (each list entry to include the date and time and the author of the last comment, linked to the actual comment). Once a list entry has been accessed in a particular session, the list entry should be grayed out. List entries should be kept to one line, and 20 items should be listed per page. Access to previous and next pages should be linked.
Wichert comment: This will violate one of the Plone principles: no use of sessions.
Marshall proposal: Conversations that have never received a comment should also have their own page. It should be like the most recent comments, but made visible only to accounts that have other than membership permissions (i.e., all listings on this page are specific to the account because the account has reviewer or owner in a specific forum, or manager permissions for the site). The link to this page should be next to the links above, but visible only if you have permission to view the page.
Wichert comment: Why do you want to restrict it? The required information is already accessible to normal members, just not as conveniently. Adding extra restrictions makes it a lot more expensive to generate the page: we will have to do manual security checking and wake up a lot of objects.
I'll respond below...
+1
I agree with the general idea here, but it should be executed with care to be scalable and usable in big installations.
The two killer functionalities I see are
It's very easy to make too many of these available, though - and kill caching as a result. Especially the portlet approach is a disaster waiting to happen. ;)
It all depends on the scale of your site of course - but a general pattern in Plone in the upcoming versions is that we're trying to make it as cache-friendly as possible, and move often-updated listings like the Review portlet and Latest Changes portlet to a separate "Dashboard" template that can have different caching policies.