Update of
/var/cvs/contributions/CMSContainer_Modules/subsite/src/java/com/finalist/cmsc/subsite/publish
In directory
james.mmbase.org:/tmp/cvs-serv18646/subsite/src/java/com/finalist/cmsc/subsite/publish
Modified Files:
SubSitePublisher.java
Log Message:
CMSC-617: Subsite/PersonalPages publisher fixes
See also:
http://cvs.mmbase.org/viewcvs/contributions/CMSContainer_Modules/subsite/src/java/com/finalist/cmsc/subsite/publish
See also: http://www.mmbase.org/jira/browse/CMSC-617
Index: SubSitePublisher.java
===================================================================
RCS file:
/var/cvs/contributions/CMSContainer_Modules/subsite/src/java/com/finalist/cmsc/subsite/publish/SubSitePublisher.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- SubSitePublisher.java 18 Feb 2008 10:55:44 -0000 1.2
+++ SubSitePublisher.java 28 Feb 2008 10:34:42 -0000 1.3
@@ -6,8 +6,11 @@
import org.mmbase.bridge.Cloud;
import org.mmbase.bridge.Node;
+import org.mmbase.bridge.NodeIterator;
+import org.mmbase.bridge.NodeList;
import com.finalist.cmsc.publish.PagePublisher;
+import com.finalist.cmsc.repository.RepositoryUtil;
import com.finalist.cmsc.subsite.util.SubSiteUtil;
public class SubSitePublisher extends PagePublisher {
@@ -16,30 +19,42 @@
super(cloud);
}
+ @Override
public void publish(Node node) {
Map<Node, Date> nodes = new LinkedHashMap<Node, Date>();
addPageNodes(node, nodes);
- addSubSiteChannel(node,nodes);
+ addSubSiteChannel(node, nodes);
publishNodes(nodes);
}
protected void addSubSiteChannel(Node node, Map<Node, Date> nodes) {
- //Publish content channel of PersonalPage or SubSite-object
+ // Publish content channel of PersonalPage or SubSite-object
if (SubSiteUtil.isSubSiteType(node)) {
Node subsiteNode = SubSiteUtil.getSubsiteChannel(node);
- addChannels(nodes,subsiteNode);
+ if (subsiteNode != null) {
+ addChannels(nodes, subsiteNode);
+ }
} else if (SubSiteUtil.isPersonalPageType(node)) {
+ // the root channel from this personal page
Node ppNode = SubSiteUtil.getPersonalpageChannel(node);
- addChannels(nodes,ppNode);
+
+ if (ppNode != null) {
+ addChannels(nodes, ppNode);
+
+ // add any children channels as well
+ NodeList children = RepositoryUtil.getChildren(ppNode);
+ for (NodeIterator ni = children.nodeIterator(); ni.hasNext();) {
+ addChannels(nodes, ni.nextNode());
+ }
+ }
}
}
@Override
public boolean isPublishable(Node node) {
- return SubSiteUtil.isSubSiteType(node);
+ return (SubSiteUtil.isSubSiteType(node) ||
SubSiteUtil.isPersonalPageType(node));
}
-
}
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs