Hi,

  I am developing a WEB Page Content Management System. This system able to create a 
new web 
page within cocoon2 environment. Because user can add new page, delete page, add 
folder with the 
content management system, so I will need a dinamic sitemap to handler all the request.

  I start to find out the solution to dinamically generate a sitemap, but fail. But at 
the time 
i found a very powerfull feature in cocoon2 that is Action. Here is how i use action 
to get a 
dinamic Sitemap:

Sitemap.xmap

 <map:components>
  ...
  ... 
  <map:actions>
   <!-- here i register my action -->
   <map:action name="path-selector" src="action.PathSelector"/>      
  </map:actions>
 </map:components>
 
 <map:pipelines>
   <map:pipeline>
  
   <!-- here is the aggregation part -- >

   <!-- here is the center part of the aggregation -- >
   <!-- Note: the web page is a aggregated page, it aggregated from 5 smaller part --> 
  
   <!-- The path-selector action return the requested path URL and XSLPath for this 
web page -->
   <!-- path-selection action will search the database to get the centerXSLPath and 
return to
        the sitemap -- >

    <map:match pattern="**.agg">
       <map:act type="path-selector">  
         <map:parameter name="skel"  value="false" /> 
         <map:parameter name="template"  value="1" /> 
         <map:generate src="{path}"/> 
         <map:transform src="{centerXSLPath}"/> 
       </map:act>              
         <map:serialize type="html"/>       
     </map:match>

    <!-- here is the foot_note of the aggregation page-- >
    <!-- this part will only show the copyright information and address -->
     <map:match pattern="foot_note.xml">
         <map:generate src="xml/foot_note.xml"/> 
         <map:transform src="stylesheet/foot_note.xsl"/>        
         <map:serialize type="html"/>       
     </map:match>
     
    <!-- here is the side_menu of the aggregation page-- >
    <!-- here we use the dummy xml file, because we don't have any infomation to put 
-->
    <!-- this part is only contain picture and javascript -- >  
     <map:match pattern="side_menu.xml">
         <map:generate src="xml/dummy.xml"/> 
         <map:transform src="stylesheet/side_menu.xsl"/>        
         <map:serialize type="html"/>       
     </map:match>
     
     <!-- here is the Navigation Link of the aggregation page-- >     
     <!-- User may use the Content Management System to select which page will be 
linked -->
     <!-- and the linked page information will stored in database. -- >
     <!-- This link will be generated according the information from database -- >
     <!-- and we use esql tanglib to connect to the database -- >
     <map:match pattern="links.xml">
          <map:generate type="serverpages" src="xml/link.xsp"/> 
          <map:transform src="stylesheet/links.xsl"/>               
         <map:serialize/>       
     </map:match>
     
    <!-- here is the aggregation mapping -->     
     <map:match pattern="**.xml">
       <map:act type="path-selector"> 
          <map:parameter name="skel"  value="true" />        
        <map:aggregate element="page" >
          <map:part src="{path}" element="maincontent" 
ns="http://www.brel.com/maincontent"/>    
          
          <map:part src="foot_note.xml" element="foot_note" 
ns="http://www.brel.com/foot_note"/> 

          <map:part src="side_menu.xml" element="side_menu" 
ns="http://www.brel.com/side_menu"/> 

          <map:part src="links.xml" element="links" ns="http://www.brel.com/links"/> 
        </map:aggregate>        
        <map:transform src="{aggXSLPath}"/> 
       </map:act>       
       
       <map:serialize type="html"/>     
    </map:match>
   
      
      <map:match pattern="**.gif">
         <map:act type="path-selector">
             <map:read src="{path}" mime-type="image/gif"/>  
         </map:act>          
      </map:match>
      
      <map:match pattern="**.css">
             <map:act type="path-selector">
                 <map:read src="{path}" mime-type="text/css"/>  
             </map:act>          
      </map:match>
      
      <map:match pattern="**.jpg">
              <map:act type="path-selector">
                  <map:read src="{path}" mime-type="image/jpg"/>  
              </map:act>    
      
      </map:match>
      
      <map:match pattern="**.png">
          <map:act type="path-selector">
             <map:read src="{path}" mime-type="image/png"/>  
          </map:act>       
      </map:match>
      
      <map:match pattern="**.swf">
         <map:act type="path-selector">
         <map:read src="{path}" mime-type="application/x-shockwave-flash"/>
         </map:act>       
      </map:match>

      <map:match pattern="**.js">
        <map:act type="path-selector">
           <map:read src="{path}" mime-type="text/javascript"/>
        </map:act>
      </map:match>
      
      
      
      <map:match pattern="**.doc">
        <map:act type="path-selector">
           <map:read src="{path}" mime-type="application/winword"/>
        </map:act>    
      </map:match>
      
      <map:match pattern="**.rtf">
            <map:act type="path-selector">
               <map:read src="{path}" mime-type="application/winword"/>
            </map:act>    
      </map:match>

   <map:match pattern="*">
       <map:act type="path-selector">
           <map:read src="{path}" mime-type="application/winword"/>
       </map:act>    
   </map:match>


I post this mail is to get your opinions and suggestions, is it the right way to solve 
the 
problem ?


Thank

Kok Choon


--------------------------------------------------------
Name: Ling Kok Choon
E-mail: Ling Kok Choon <[EMAIL PROTECTED]>
Date: 08/14/01
Time: 14:11:03

This message was sent by Z-Mail Pro - from NetManage
NetManage - delivers Standards Based IntraNet Solutions
--------------------------------------------------------

---------------------------------------------------------------------
Please check that your question has not already been answered in the
FAQ before posting. <http://xml.apache.org/cocoon/faqs.html>

To unsubscribe, e-mail: <[EMAIL PROTECTED]>
For additional commands, e-mail: <[EMAIL PROTECTED]>

Reply via email to