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

Reply via email to