sitemap.xmap

来自「Hippo CMS是一个以信息为中心的开源内容管理系统。Hippo CMS目标是」· XMAP 代码 · 共 564 行 · 第 1/2 页

XMAP
564
字号
<?xml version="1.0"?>
<!--
  Copyright 2001-2007 Hippo (www.hippo.nl)

  Licensed under the Apache License, Version 2.0 (the "License");
  you may not use this file except in compliance with the License.
  You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
-->
<!--  Search sitemap 
      Author: ddam -->
  
<map:sitemap xmlns:map="http://apache.org/cocoon/sitemap/1.0">
  
  <!-- =========================== Components ================================ -->
  
  <map:components>
    <map:generators default="file">
      <map:generator name="directory" src="org.apache.cocoon.generation.DirectoryGenerator" logger="sitemap.generation.directory"/>
    </map:generators>
    <map:transformers default="xslt">

      <map:transformer name="forms" 
        src="org.apache.cocoon.forms.transformation.FormsTemplateTransformer" 
        logger="forms"/>
      <map:transformer name="stripnamespaces" src="org.apache.cocoon.transformation.StripNameSpacesTransformer"/>
      <map:transformer name="i18n" src="org.apache.cocoon.transformation.I18nTransformer">
        <catalogues default="messages">
          <catalogue id="other" name="OtherMessages" location="site://cforms/messages"/>
          <catalogue id="forms" name="FormsMessages" location="site://cforms/messages"/>
        	<catalogue id="messages" name="messages">
        		<location>cocoon://extensions/translations</location>
        		<location>site://explorer/translations</location>
        		<location>site://dashboard/translations</location>
        		<location>translations</location>
        	</catalogue>
        </catalogues>
        <cache-at-startup>false</cache-at-startup>
      </map:transformer>
    </map:transformers>
    <map:serializers default="xml">
      <map:serializer name="text" 
        src="org.apache.cocoon.serialization.TextSerializer"
        mime-type="text/plain" 
        logger="sitemap.serializer.text" 
        />
    </map:serializers>
    <map:matchers default="wildcard">
      <map:matcher name="regexp" 
        src="org.apache.cocoon.matching.RegexpURIMatcher" 
        logger="sitemap.matching.regexp"/>
    </map:matchers>
    <map:selectors default="parameter">
      <map:selector name="simple" src="org.apache.cocoon.selection.SimpleSelector"/>
    </map:selectors>
    <map:readers default="resource"/>
    <map:pipes default="noncaching"/>
  </map:components>
  
  <!-- ========================== Flowscript ================================= -->
  
  <map:flow language="javascript">
    <map:script src="flow/search.js"/>
    <map:script src="flow/cache.js"/>
  </map:flow>
  
  <!-- views -->
  
  <map:views>
    <map:view from-label="content" name="content">
      <map:serialize type="xml"/>
    </map:view>
    <map:view from-label="query" name="query">
      <map:serialize type="xml"/>
    </map:view>
  </map:views>
  
  <!-- =========================== Pipelines ================================= -->
  
  <map:pipelines>
    <map:pipeline type="ecaching">

      
      <map:match pattern="fetchDocumentIfExists(/**,**)">
        <map:call function="jxcache">
          <map:parameter name="pipeline" value="call-fetchDocumentIfExists"/>
          <map:parameter name="key:target" value="{repository:files}/{1}"/>
          <map:parameter name="key:alternative" value="{2}"/>
        </map:call>  
      </map:match>
      
      <map:match pattern="call-fetchDocumentIfExists">        
        <map:generate type="jx" src="resources/jx/documentExists.jx"/>
        <map:transform type="webdav"/>
        <map:transform src="transformers/util/checkIfExists.xsl">
          <map:parameter name="alternative" value="{flow-attr:alternative}"/>
          <map:parameter name="repository-prefix" value="{repository:rootPath}{repository:filesPath}"/>
        </map:transform>
        <map:transform type="include"/>
        <map:transform type="stripnamespaces"/>
        <map:serialize type="xml"/>
      </map:match>

      
      <map:match pattern="configuration-file()">
        <map:generate src="cocoon:/fetchDocumentIfExists(/configuration/search/config.xml,config/defaultConfig.xml)"/>
        <map:transform src="transformers/util/striproot.xsl"/>
        <map:transform src="transformers/util/stripnamespaces.xsl"/>
        <map:serialize type="xml"/>
      </map:match>
      
      <map:match pattern="configuration-file(**)">
        <map:generate src="{1}"/>
        <map:serialize type="xml"/>
      </map:match>

      <map:match pattern="get-config-files(**)">
        <map:generate src="cocoon:/configuration-file({1})"/>
        <map:transform src="transformers/util/includeConfigurationFiles.xsl"/>
        <map:transform type="include"/>
        <map:transform type="i18n">
          <map:parameter name="locale" value="{session-attr:locale}"/>
        </map:transform>
        <map:serialize type="xml"/>
      </map:match>
      
      <map:match pattern="config-files(**)">
        <map:call function="jxcache">
          <map:parameter name="pipeline" value="call-config-files"/>
          <map:parameter name="system:currentUser" value="{session-attr:username}"/>
          <map:parameter name="system:previewPath" value="{repository:filesPath}"/>
          <map:parameter name="key:config-file" value="{1}"/>
        </map:call>
      </map:match>
      
      <map:match pattern="call-config-files">
        <map:generate src="cocoon:/get-config-files({flow-attr:config-file})" type="jx"/>
        <map:transform src="transformers/util/striproot.xsl"/>
        <map:transform type="stripnamespaces"/>
        <map:serialize type="xml"/>
      </map:match>
      
      <map:match pattern="users">
        <map:call function="jxcache">
          <map:parameter name="pipeline" value="call-users"/>
          <map:parameter name="key:target" value="{repository:users}"/>
        </map:call>
      </map:match>
      
      <map:match pattern="call-users">
        <map:generate src="resources/jx/users.jx" type="jx">
          <map:parameter name="target" value="{repository:users}"/>
        </map:generate>
        <map:transform type="webdav" label="data"/>
        <map:transform src="transformers/util/formatUsers.xsl">
          <map:parameter name="rolespath" value="{repository:rootPath}{repository:rolesPath}"/>          
          <map:parameter name="userspath" value="{repository:rootPath}{repository:usersPath}"/>
        </map:transform>
        <map:serialize type="xml"/>
      </map:match>      
      
      <map:match pattern="roles">
        <map:call function="jxcache">
          <map:parameter name="pipeline" value="call-roles"/>
          <map:parameter name="key:target" value="{repository:roles}"/>
        </map:call>
      </map:match>
      
      <map:match pattern="call-roles">
        <map:generate src="resources/jx/roles.jx" type="jx"/>
        <map:transform type="webdav"/>
        <map:transform src="transformers/util/formatRoles.xsl">
          <map:parameter name="rolespath" value="{repository:rootPath}{repository:rolesPath}"/>          
          <map:parameter name="userspath" value="{repository:rootPath}{repository:usersPath}"/>          
        </map:transform>
        <map:serialize/>  
      </map:match>
      
      
    </map:pipeline>
    
    <map:pipeline type="noncaching" internal-only="false">

      <map:match pattern="updateElement">
        <map:generate src="{request-param:source}"/>
        <map:transform src="transformers/util/source2ajaxresponse.xsl">
          <map:parameter name="target" value="{request-param:target}"/>
          <map:parameter name="format" value="{request-param:format}"/>
        </map:transform>
        <map:serialize type="text"/>
      </map:match>
      
      <map:match pattern="custom.css">
        <map:select type="resource-exists">
          <map:when test="repository://configuration/search/css/custom.css">
            <map:read src="repository://configuration/search/css/custom.css"/>
          </map:when>
          <map:otherwise>
            <map:read src="resources/css/empty.css"/>
          </map:otherwise>
        </map:select>
      </map:match>
      
      <map:match pattern="custom/**.css">
        <map:select type="resource-exists">
          <map:when test="repository://configuration/search/css/{1}.css">
            <map:read src="repository://configuration/search/css/{1}.css"/>
          </map:when>
          <map:otherwise>
            <map:read src="resources/css/empty.css"/>
          </map:otherwise>
        </map:select>
      </map:match>
      
      <map:match pattern="js/i18n_messages.js">        
        <map:generate src="cocoon:/translations/messages_en.xml"/>
        <map:transform src="transformers/util/i18n_messages.xsl"/>
        <map:transform type="i18n">
          <map:parameter name="locale" value="{session-attr:locale}"/>
        </map:transform>
        <map:transform src="transformers/util/html2plaintext.xsl"/>
        <map:serialize type="text"/>
      </map:match>

      <map:match pattern="js/**.js">
        <map:read src="resources/js/{1}.js" mime-type="text/javascript"/>
      </map:match>

      <map:match pattern="images/**">
        <map:read src="resources/images/{1}"/>
      </map:match>
      
      <!-- css -->
      <map:match pattern="css/**.css">
        <map:read src="resources/css/{1}.css" mime-type="text/css"/>
      </map:match>
      
      <!-- load css file by filename -->
      <map:match pattern="css/**_*.css">
        <map:read src="resources/css/{1}_{2}.css" mime-type="text/css"/>
      </map:match>
    </map:pipeline>
    
    <map:pipeline type="noncaching">
      
      <map:match pattern="batchOpResults.html">
        <map:generate src="resources/jx/pastedTextHtmlPage.jx" type="jx">
          <map:parameter name="text" value="{request-param:results}"/> 
          <map:parameter name="title" value="{request-param:title}"/>          
        </map:generate>
        <map:serialize type="html"/>            
      </map:match>
      
      <map:match pattern="doSearchReplace">        
        <map:generate src="cocoon:/search-input()" type="jx"/>
        <!-- when scope of this batch operation is 'all', 
          first fetch ALL search results -->
        <map:select type="simple">          
          <map:parameter name="value" value="{request-param:__batchScope__}"/>
          <map:when test="all">
            <map:transform src="transformers/queryGenerator/generateDasl.xsl">
              <map:parameter name="pagesize" value="no-limit"/>
            </map:transform>
            <map:transform type="i18n">
              <map:parameter name="locale" value="{session-attr:locale}"/>
            </map:transform>
            <map:transform type="webdav"/>
          </map:when>
        </map:select>
        <map:select type="simple">          
          <map:parameter name="value" value="{request-param:__batchScope__}"/>
          <!-- only perform search and replace when the __batchScope__ param has one of the following
                values:
                (1) 'selection' => search and replace in the documents selected by the user
                (2) 'all' => search and replace in all the search results

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?