MyForums Portlet

Geändert:
 * Inkompatible Verwendung des Tags forum:forum entfernt. Stattdessen lautet das Tag nun forum:forumShortcut

git-svn-id: https://svn.libreccm.org/ccm/trunk@2202 8810af33-2d31-482b-a856-94f89814c4df
master
quasi 2013-06-11 06:36:58 +00:00
parent a97ec7426b
commit ee445f5ddd
1 changed files with 29 additions and 36 deletions

View File

@ -42,19 +42,18 @@ import com.arsdigita.portal.Portlet;
import com.arsdigita.portal.apportlet.AppPortlet; import com.arsdigita.portal.apportlet.AppPortlet;
/** /**
* portlet with no attributes that displays links to all forums that user has * portlet with no attributes that displays links to all forums that user has
* read access to * read access to
* *
* *
* @author chris.gilbert@westsussex.gov.uk * @author chris.gilbert@westsussex.gov.uk
* @version $Id: MyForumsPortlet.java,v 1.4 2006/07/13 10:19:28 cgyg9330 Exp $ * @version $Id: MyForumsPortlet.java,v 1.4 2006/07/13 10:19:28 cgyg9330 Exp $
*/ */
public class MyForumsPortlet extends Portlet { public class MyForumsPortlet extends Portlet {
public static final String BASE_DATA_OBJECT_TYPE = public static final String BASE_DATA_OBJECT_TYPE =
"com.arsdigita.forum.MyForumsPortlet"; "com.arsdigita.forum.MyForumsPortlet";
protected String getBaseDataObjectType() { protected String getBaseDataObjectType() {
return BASE_DATA_OBJECT_TYPE; return BASE_DATA_OBJECT_TYPE;
} }
@ -63,61 +62,55 @@ public class MyForumsPortlet extends Portlet {
super(dataObject); super(dataObject);
} }
protected AbstractPortletRenderer doGetPortletRenderer() { protected AbstractPortletRenderer doGetPortletRenderer() {
return new MyForumsPortletRenderer(this); return new MyForumsPortletRenderer(this);
} }
} }
class MyForumsPortletRenderer class MyForumsPortletRenderer
extends AbstractPortletRenderer extends AbstractPortletRenderer
implements Constants { implements Constants {
private MyForumsPortlet m_portlet; private MyForumsPortlet m_portlet;
public MyForumsPortletRenderer(MyForumsPortlet public MyForumsPortletRenderer(MyForumsPortlet portlet) {
portlet) {
m_portlet = portlet; m_portlet = portlet;
} }
protected void generateBodyXML(PageState pageState, protected void generateBodyXML(PageState pageState,
Element parent) { Element parent) {
Element content = parent.newChildElement(FORUM_XML_PREFIX + ":myForumsPortlet", Element content = parent.newChildElement(FORUM_XML_PREFIX + ":myForumsPortlet",
FORUM_XML_NS); FORUM_XML_NS);
Party party = Kernel.getContext().getParty(); Party party = Kernel.getContext().getParty();
if (party == null) { if (party == null) {
party = Kernel.getPublicUser(); party = Kernel.getPublicUser();
} }
DataCollection forums = SessionManager.getSession().retrieve(Forum.BASE_DATA_OBJECT_TYPE); DataCollection forums = SessionManager.getSession().retrieve(Forum.BASE_DATA_OBJECT_TYPE);
forums.addOrder("lower(" + Forum.TITLE + ")"); forums.addOrder("lower(" + Forum.TITLE + ")");
PermissionService.filterObjects(forums, PrivilegeDescriptor.READ, party.getOID()); PermissionService.filterObjects(forums, PrivilegeDescriptor.READ, party.getOID());
while (forums.next()) { while (forums.next()) {
Forum forum = (Forum)DomainObjectFactory.newInstance(forums.getDataObject()); Forum forum = (Forum) DomainObjectFactory.newInstance(forums.getDataObject());
Element forumEl = content.newChildElement(FORUM_XML_PREFIX + ":forum", FORUM_XML_NS); Element forumEl = content.newChildElement(FORUM_XML_PREFIX + ":forumShortcut", FORUM_XML_NS);
URL url = URL.there(forum, "/", null); URL url = URL.there(forum, "/", null);
forumEl.addAttribute("url", url.toString()); forumEl.addAttribute("url", url.toString());
forumEl.addAttribute("title", forum.getTitle()); forumEl.addAttribute("title", forum.getTitle());
// display last forum update info // display last forum update info
ThreadCollection threads = forum.getThreads(); ThreadCollection threads = forum.getThreads();
threads.addOrder(MessageThread.LAST_UPDATE); threads.addOrder(MessageThread.LAST_UPDATE);
if (threads.next()) { if (threads.next()) {
MessageThread lastUpdatedThread = threads.getMessageThread(); MessageThread lastUpdatedThread = threads.getMessageThread();
forumEl.addAttribute("lastUpdated", new DateFormatter().format(lastUpdatedThread.getLatestUpdateDate())); forumEl.addAttribute("lastUpdated", new DateFormatter().format(lastUpdatedThread.getLatestUpdateDate()));
threads.close(); threads.close();
} else { } else {
forumEl.addAttribute("lastUpdated", ""); forumEl.addAttribute("lastUpdated", "");
} }
} }
} }
} }