Update of
/var/cvs/contributions/CMSContainer_Modules/subsite/src/java/com/finalist/cmsc/subsite/util
In directory
james.mmbase.org:/tmp/cvs-serv32203/subsite/src/java/com/finalist/cmsc/subsite/util
Modified Files:
Tag: b1_4
SubSiteUtil.java
Log Message:
CMSC-617 Personal Pages module
Backport to 1.4
See also:
http://cvs.mmbase.org/viewcvs/contributions/CMSContainer_Modules/subsite/src/java/com/finalist/cmsc/subsite/util
See also: http://www.mmbase.org/jira/browse/CMSC-617
Index: SubSiteUtil.java
===================================================================
RCS file:
/var/cvs/contributions/CMSContainer_Modules/subsite/src/java/com/finalist/cmsc/subsite/util/SubSiteUtil.java,v
retrieving revision 1.3
retrieving revision 1.3.2.1
diff -u -b -r1.3 -r1.3.2.1
--- SubSiteUtil.java 1 Feb 2008 12:55:56 -0000 1.3
+++ SubSiteUtil.java 25 Feb 2008 16:26:15 -0000 1.3.2.1
@@ -1,49 +1,72 @@
package com.finalist.cmsc.subsite.util;
+import java.util.List;
+
+import net.sf.mmapps.commons.util.StringUtil;
+
import org.mmbase.bridge.Cloud;
+import org.mmbase.bridge.Field;
import org.mmbase.bridge.Node;
import org.mmbase.bridge.NodeList;
+import org.mmbase.bridge.NodeManager;
+import org.mmbase.bridge.NodeQuery;
import org.mmbase.bridge.util.SearchUtil;
-import com.finalist.cmsc.mmbase.TreeUtil;
import com.finalist.cmsc.navigation.NavigationUtil;
import com.finalist.cmsc.navigation.PagesUtil;
import com.finalist.cmsc.repository.RepositoryUtil;
public class SubSiteUtil {
+
public static final String SUBSITE = "subsite";
public static final String PERSONALPAGE = "personalpage";
+
public static final String ALIAS_SUBSITE = "repository.subsite";
- public static NodeList getOrderedChildren(Node parentNode) {
- return SearchUtil.findRelatedOrderedNodeList(parentNode,
SubSiteUtil.SUBSITE, NavigationUtil.NAVREL,
- PagesUtil.FRAGMENT_FIELD);
- }
+ public static final String USERID = "userid";
- public static int getChildCount(Node node) {
- return TreeUtil.getChildCount(node,
node.getCloud().getNodeManager(SUBSITE), NavigationUtil.NAVREL);
- }
+ public static final String PERSONAL_PAGE_ID = "personalPageId";
public static boolean isSubSiteType(Node node) {
return node.getNodeManager().getName().equals(SUBSITE);
}
+ public static boolean isPersonalPageType(Node node) {
+ return node.getNodeManager().getName().equals(PERSONALPAGE);
+ }
+
public static Node createSubSiteContentChannel(Node subsite) {
Node subsiteRootChannel = getRepositoryRoot(subsite.getCloud());
return createContentChannel(subsite, subsiteRootChannel);
}
public static Node createPersonalPageContentChannel(Node personalpage) {
+ return createPersonalPageContentChannel(personalpage, null);
+ }
+
+ public static Node createPersonalPageContentChannel(Node personalpage,
List<String> childChannels) {
Node personalpageChannel = getSubsiteChannel(personalpage);
- return createContentChannel(personalpage, personalpageChannel);
+ return createContentChannel(personalpage, personalpageChannel,
childChannels);
}
private static Node createContentChannel(Node page, Node parentChannel) {
- //create channel in the Content Repository
+ return createContentChannel(page, parentChannel, null);
+ }
+
+ private static Node createContentChannel(Node page, Node parentChannel,
List<String> childChannelNames) {
+ // create channel in the Content Repository
Cloud cloud = page.getCloud();
String fragment = page.getStringValue(PagesUtil.FRAGMENT_FIELD);
Node channel = RepositoryUtil.createChannel(cloud,
page.getStringValue(PagesUtil.TITLE_FIELD), fragment);
RepositoryUtil.appendChild(parentChannel, channel);
+
+ if (childChannelNames != null) {
+ for (String childChannelName : childChannelNames) {
+ Node childChannel = RepositoryUtil.createChannel(cloud,
childChannelName);
+ RepositoryUtil.appendChild(channel, childChannel);
+ }
+ }
+
return channel;
}
@@ -55,9 +78,38 @@
return RepositoryUtil.getChild(repositoryRootChannel, fragment);
}
+ public static Node getPersonalpageChannel(Node personalpage) {
+ Node ppChannel = getSubsiteChannel(personalpage);
+ String fragment = personalpage.getStringValue(PagesUtil.FRAGMENT_FIELD);
+ return RepositoryUtil.getChild(ppChannel, fragment);
+ }
+
+ public static Node getPersonalpageNodeByUserId(Cloud cloud, String userId) {
+ if (userId == null || StringUtil.isEmpty(userId)) {
+ return null;
+ }
+
+ NodeManager personalPageNodeManager = cloud.getNodeManager(PERSONALPAGE);
+ NodeQuery query = personalPageNodeManager.createQuery();
+ Field userIdField = personalPageNodeManager.getField(USERID);
+ SearchUtil.addEqualConstraint(query, userIdField, userId);
+ SearchUtil.addLimitConstraint(query, 0, 1);
+
+ NodeList nodeList = personalPageNodeManager.getList(query);
+
+ return nodeList.isEmpty() ? null : (Node) nodeList.get(0);
+ }
+
public static Node getRepositoryRoot(Cloud cloud) {
Node repositoryRootChannel = cloud.getNode(ALIAS_SUBSITE);
return repositoryRootChannel;
}
+ public static Node createPersonalPage(Cloud cloud, String name, Node
layout, String personalPageId) {
+ Node personalPage = PagesUtil.createPage(cloud, name, layout,
PERSONALPAGE);
+ personalPage.setStringValue(USERID, personalPageId);
+ personalPage.commit();
+
+ return personalPage;
+ }
}
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs