Liferay Portal 的 CMS 功能是通过 Journal Portlet 实现的,在介绍怎样使用 Journal Portlet 之前,有必要理解 structures 、 templates 和 articles 的概念,它们是 Journal portlet 功能的基础。
l Structures :定于了 content 的类型和数量, content 的类型包括 text 、 text area 、 images 、 selection lists 等
l Templates :确定 content 怎样排列或摆放
l Articles :确定每个 content 包含的实际的 text 和 images
我们以下图为例定义一个 content ,分为三个步骤:
第一步、创建 Structure ,包含一下元素:一个 text 元素名为“ headline ”(对应图片 1 区域)、三个 text area 元素为名称分别为“ body-text ”(对应 4 区域)“ caption-1 ”(对应 2 区域)“ caption-2 ”(对应 6 区域)、两个 image 元素名称分别为“ image-1 ”(对应 3 区域)和“ image-2 ”(对应 5 区域)
添加完这些元素后的界面如下:
          
            点击
          
          
            Launch Editor
          
          
            按钮,可以看到
          
          
            XML
          
          
            定义,也可以在此增删或修改元素及类型,内容如下:
            
          
        
 <
          
          
            root
          
          
            >
          
            <
          
          
            root
          
          
            >
          
          
             <
          
          
            dynamic
          
          
            -
          
          
            element name
          
          
            =
          
          
            '
          
          
            headline
          
          
            '
          
          
             type
          
          
            =
          
          
            '
          
          
            text
          
          
            '
          
          
            ><!---->
            
              dynamic
            
            
              -
            
            
              element
            
            
              >
              
          
          
            <
          
          
            dynamic
          
          
            -
          
          
            element name
          
          
            =
          
          
            '
          
          
            headline
          
          
            '
          
          
             type
          
          
            =
          
          
            '
          
          
            text
          
          
            '
          
          
            ><!---->
            
              dynamic
            
            
              -
            
            
              element
            
            
              >
            
            
               <
            
            
              dynamic
            
            
              -
            
            
              element name
            
            
              =
            
            
              '
            
            
              body-text
            
            
              '
            
            
               type
            
            
              =
            
            
              '
            
            
              text_area
            
            
              '
            
            
              ><!---->
              
                dynamic
              
              
                -
              
              
                element
              
              
                >
                
            
            
              <
            
            
              dynamic
            
            
              -
            
            
              element name
            
            
              =
            
            
              '
            
            
              body-text
            
            
              '
            
            
               type
            
            
              =
            
            
              '
            
            
              text_area
            
            
              '
            
            
              ><!---->
              
                dynamic
              
              
                -
              
              
                element
              
              
                >
              
              
                 <
              
              
                dynamic
              
              
                -
              
              
                element name
              
              
                =
              
              
                '
              
              
                caption-1
              
              
                '
              
              
                 type
              
              
                =
              
              
                '
              
              
                text_area
              
              
                '
              
              
                ><!---->
                
                  dynamic
                
                
                  -
                
                
                  element
                
                
                  >
                  
              
              
                <
              
              
                dynamic
              
              
                -
              
              
                element name
              
              
                =
              
              
                '
              
              
                caption-1
              
              
                '
              
              
                 type
              
              
                =
              
              
                '
              
              
                text_area
              
              
                '
              
              
                ><!---->
                
                  dynamic
                
                
                  -
                
                
                  element
                
                
                  >
                
                
                   <
                
                
                  dynamic
                
                
                  -
                
                
                  element name
                
                
                  =
                
                
                  '
                
                
                  caption-2
                
                
                  '
                
                
                   type
                
                
                  =
                
                
                  '
                
                
                  text_area
                
                
                  '
                
                
                  ><!---->
                  
                    dynamic
                  
                  
                    -
                  
                  
                    element
                  
                  
                    >
                    
                
                
                  <
                
                
                  dynamic
                
                
                  -
                
                
                  element name
                
                
                  =
                
                
                  '
                
                
                  caption-2
                
                
                  '
                
                
                   type
                
                
                  =
                
                
                  '
                
                
                  text_area
                
                
                  '
                
                
                  ><!---->
                  
                    dynamic
                  
                  
                    -
                  
                  
                    element
                  
                  
                    >
                  
                  
                     <
                  
                  
                    dynamic
                  
                  
                    -
                  
                  
                    element name
                  
                  
                    =
                  
                  
                    '
                  
                  
                    image-1
                  
                  
                    '
                  
                  
                     type
                  
                  
                    =
                  
                  
                    '
                  
                  
                    image
                  
                  
                    '
                  
                  
                    ><!---->
                    
                      dynamic
                    
                    
                      -
                    
                    
                      element
                    
                    
                      >
                      
                  
                  
                    <
                  
                  
                    dynamic
                  
                  
                    -
                  
                  
                    element name
                  
                  
                    =
                  
                  
                    '
                  
                  
                    image-1
                  
                  
                    '
                  
                  
                     type
                  
                  
                    =
                  
                  
                    '
                  
                  
                    image
                  
                  
                    '
                  
                  
                    ><!---->
                    
                      dynamic
                    
                    
                      -
                    
                    
                      element
                    
                    
                      >
                    
                    
                       <
                    
                    
                      dynamic
                    
                    
                      -
                    
                    
                      element name
                    
                    
                      =
                    
                    
                      '
                    
                    
                      image-2
                    
                    
                      '
                    
                    
                       type
                    
                    
                      =
                    
                    
                      '
                    
                    
                      image
                    
                    
                      '
                    
                    
                      ><!---->
                      
                        dynamic
                      
                      
                        -
                      
                      
                        element
                      
                      
                        >
                        
                    
                    
                      <
                    
                    
                      dynamic
                    
                    
                      -
                    
                    
                      element name
                    
                    
                      =
                    
                    
                      '
                    
                    
                      image-2
                    
                    
                      '
                    
                    
                       type
                    
                    
                      =
                    
                    
                      '
                    
                    
                      image
                    
                    
                      '
                    
                    
                      ><!---->
                      
                        dynamic
                      
                      
                        -
                      
                      
                        element
                      
                      
                        >
                      
                      
                         <!---->
                        
                          root
                        
                        
                          >
                      
                      
                        <!---->
                        
                          root
                        
                        
                          >
                        
                        
                           
                        
                      
                    
                  
                
              
            
          
        
    
      第二步、创建
    
    
      Template
    
    
      ,添入
    
    
      ID
    
    
      、
    
    
      Name
    
    
      、
    
    
      Description
    
    
      信息后,在
    
    
      Structure
    
    
      一栏选择上一步创建的
    
    
      Structure
    
    
      (这里为
    
    
      test
    
    
      )
      
      
      
    
  
    
      然后点击
    
    
       Launch Editor 
    
    
      按钮,打开
    
    
       Template 
    
    
      编辑窗口,按照所需要的格式定义
    
    
       Template 
    
    
      ,如下:
      
    
  
 xml version
      
      
        =
      
      
        "
      
      
        1.0
      
      
        "
      
      
        ?>
    
      
        xml version
      
      
        =
      
      
        "
      
      
        1.0
      
      
        "
      
      
        ?>
      
      
         
         <
      
      
        xsl:stylesheet xmlns:xsl
      
      
        =
      
      
        "
      
      
        http://www.w3.org/1999/XSL/Transform
      
      
        "
      
      
         version
      
      
        =
      
      
        "
      
      
        1.0
      
      
        "
      
      
        >
      
      
        <
      
      
        xsl:stylesheet xmlns:xsl
      
      
        =
      
      
        "
      
      
        http://www.w3.org/1999/XSL/Transform
      
      
        "
      
      
         version
      
      
        =
      
      
        "
      
      
        1.0
      
      
        "
      
      
        >
      
      
          
         <
      
      
        xsl:output method
      
      
        =
      
      
        "
      
      
        html
      
      
        "
      
      
         omit
      
      
        -
      
      
        xml
      
      
        -
      
      
        declaration
      
      
        =
      
      
        "
      
      
        yes
      
      
        "
      
      
        />
          
      
      
        <
      
      
        xsl:output method
      
      
        =
      
      
        "
      
      
        html
      
      
        "
      
      
         omit
      
      
        -
      
      
        xml
      
      
        -
      
      
        declaration
      
      
        =
      
      
        "
      
      
        yes
      
      
        "
      
      
        />
      
      
          
         <
      
      
        xsl:template match
      
      
        =
      
      
        "
      
      
        /
      
      
        "
      
      
        >
          
      
      
        <
      
      
        xsl:template match
      
      
        =
      
      
        "
      
      
        /
      
      
        "
      
      
        >
      
      
         
         <
      
      
        table cellpadding
      
      
        =
      
      
        "
      
      
        0
      
      
        "
      
      
         cellspacing
      
      
        =
      
      
        "
      
      
        0
      
      
        "
      
      
         border
      
      
        =
      
      
        "
      
      
        0
      
      
        "
      
      
         width
      
      
        =
      
      
        "
      
      
        100%
      
      
        "
      
      
        >
            
      
      
        <
      
      
        table cellpadding
      
      
        =
      
      
        "
      
      
        0
      
      
        "
      
      
         cellspacing
      
      
        =
      
      
        "
      
      
        0
      
      
        "
      
      
         border
      
      
        =
      
      
        "
      
      
        0
      
      
        "
      
      
         width
      
      
        =
      
      
        "
      
      
        100%
      
      
        "
      
      
        >
      
      
         
         <
      
      
        tr
      
      
        >
              
      
      
        <
      
      
        tr
      
      
        >
      
      
         
         <
      
      
        td colspan
      
      
        =
      
      
        "
      
      
        2
      
      
        "
      
      
        >
                
      
      
        <
      
      
        td colspan
      
      
        =
      
      
        "
      
      
        2
      
      
        "
      
      
        >
      
      
         <
      
      
        xsl:value
      
      
        -
      
      
        of
                  
      
      
        <
      
      
        xsl:value
      
      
        -
      
      
        of
         disable
      
      
        -
      
      
        output
      
      
        -
      
      
        escaping
      
      
        =
      
      
        "
      
      
        yes
      
      
        "
      
      
         select
      
      
        =
      
      
        "
      
      
        root/dynamic-element[@name='headline']/dynamic-content
      
      
        "
      
      
        />
         disable
      
      
        -
      
      
        output
      
      
        -
      
      
        escaping
      
      
        =
      
      
        "
      
      
        yes
      
      
        "
      
      
         select
      
      
        =
      
      
        "
      
      
        root/dynamic-element[@name='headline']/dynamic-content
      
      
        "
      
      
        />
      
      
         <!----> 
        
          td
        
        
          >
                
      
      
        <!----> 
        
          td
        
        
          >
        
        
           <!----> 
          
            tr
          
          
            >
                
        
        
          <!----> 
          
            tr
          
          
            >
          
          
             <
          
          
            tr
          
          
            >
                  
          
          
            <
          
          
            tr
          
          
            >
          
          
             <
          
          
            td
          
          
            >
                    
          
          
            <
          
          
            td
          
          
            >
          
          
             <
          
          
            img
          
          
            >
                      
          
          
            <
          
          
            img
          
          
            >
          
          
             
             <
          
          
            xsl:attribute name
          
          
            =
          
          
            "
          
          
            src
          
          
            "
          
          
            >
                        
          
          
            <
          
          
            xsl:attribute name
          
          
            =
          
          
            "
          
          
            src
          
          
            "
          
          
            >
          
          
             
             <
          
          
            xsl:value
          
          
            -
          
          
            of
                          
          
          
            <
          
          
            xsl:value
          
          
            -
          
          
            of 
             disable
          
          
            -
          
          
            output
          
          
            -
          
          
            escaping
          
          
            =
          
          
            "
          
          
            yes
          
          
            "
          
          
             select
          
          
            =
          
          
            "
          
          
            root/dynamic-element[@name='image-1']/dynamic-content
          
          
            "
          
          
            />
            disable
          
          
            -
          
          
            output
          
          
            -
          
          
            escaping
          
          
            =
          
          
            "
          
          
            yes
          
          
            "
          
          
             select
          
          
            =
          
          
            "
          
          
            root/dynamic-element[@name='image-1']/dynamic-content
          
          
            "
          
          
            />
          
          
             
             <!----> 
            
              xsl:attribute
            
            
              >
                        
          
          
            <!----> 
            
              xsl:attribute
            
            
              >
            
            
               
               <!----> 
              
                img
              
              
                >
                        
            
            
              <!----> 
              
                img
              
              
                >
              
              
                 <!----> 
                
                  td
                
                
                  >
                        
              
              
                <!----> 
                
                  td
                
                
                  >
                
                
                   <
                
                
                  td
                
                
                  >
                          
                
                
                  <
                
                
                  td
                
                
                  >
                
                
                   <
                
                
                  xsl:value
                
                
                  -
                
                
                  of
                            
                
                
                  <
                
                
                  xsl:value
                
                
                  -
                
                
                  of 
                   disable
                
                
                  -
                
                
                  output
                
                
                  -
                
                
                  escaping
                
                
                  =
                
                
                  "
                
                
                  yes
                
                
                  "
                
                
                   select
                
                
                  =
                
                
                  "
                
                
                  root/dynamic-element[@name='caption-1']/dynamic-content
                
                
                  "
                
                
                  />
                  disable
                
                
                  -
                
                
                  output
                
                
                  -
                
                
                  escaping
                
                
                  =
                
                
                  "
                
                
                  yes
                
                
                  "
                
                
                   select
                
                
                  =
                
                
                  "
                
                
                  root/dynamic-element[@name='caption-1']/dynamic-content
                
                
                  "
                
                
                  />
                
                
                   <!----> 
                  
                    td
                  
                  
                    >
                          
                
                
                  <!----> 
                  
                    td
                  
                  
                    >
                  
                  
                     <!----> 
                    
                      tr
                    
                    
                      >
                          
                  
                  
                    <!----> 
                    
                      tr
                    
                    
                      >
                    
                    
                       <
                    
                    
                      tr
                    
                    
                      >
                            
                    
                    
                      <
                    
                    
                      tr
                    
                    
                      >
                    
                    
                       <
                    
                    
                      td colspan
                    
                    
                      =
                    
                    
                      "
                    
                    
                      2
                    
                    
                      "
                    
                    
                      >
                              
                    
                    
                      <
                    
                    
                      td colspan
                    
                    
                      =
                    
                    
                      "
                    
                    
                      2
                    
                    
                      "
                    
                    
                      >
                    
                    
                       <
                    
                    
                      xsl:value
                    
                    
                      -
                    
                    
                      of
                                
                    
                    
                      <
                    
                    
                      xsl:value
                    
                    
                      -
                    
                    
                      of 
                       disable
                    
                    
                      -
                    
                    
                      output
                    
                    
                      -
                    
                    
                      escaping
                    
                    
                      =
                    
                    
                      "
                    
                    
                      yes
                    
                    
                      "
                    
                    
                       select
                    
                    
                      =
                    
                    
                      "
                    
                    
                      root/dynamic-element[@name='body-text']/dynamic-content
                    
                    
                      "
                    
                    
                      />
                      disable
                    
                    
                      -
                    
                    
                      output
                    
                    
                      -
                    
                    
                      escaping
                    
                    
                      =
                    
                    
                      "
                    
                    
                      yes
                    
                    
                      "
                    
                    
                       select
                    
                    
                      =
                    
                    
                      "
                    
                    
                      root/dynamic-element[@name='body-text']/dynamic-content
                    
                    
                      "
                    
                    
                      />
                    
                    
                       <!----> 
                      
                        td
                      
                      
                        >
                              
                    
                    
                      <!----> 
                      
                        td
                      
                      
                        >
                      
                      
                         <!----> 
                        
                          tr
                        
                        
                          >
                              
                      
                      
                        <!----> 
                        
                          tr
                        
                        
                          >
                        
                        
                           <
                        
                        
                          tr
                        
                        
                          >
                                
                        
                        
                          <
                        
                        
                          tr
                        
                        
                          >
                        
                        
                           <
                        
                        
                          td
                        
                        
                          >
                                  
                        
                        
                          <
                        
                        
                          td
                        
                        
                          >
                        
                        
                           <
                        
                        
                          xsl:value
                        
                        
                          -
                        
                        
                          of
                                    
                        
                        
                          <
                        
                        
                          xsl:value
                        
                        
                          -
                        
                        
                          of 
                           disable
                        
                        
                          -
                        
                        
                          output
                        
                        
                          -
                        
                        
                          escaping
                        
                        
                          =
                        
                        
                          "
                        
                        
                          yes
                        
                        
                          "
                        
                        
                           select
                        
                        
                          =
                        
                        
                          "
                        
                        
                          root/dynamic-element[@name='caption-2']/dynamic-content
                        
                        
                          "
                        
                        
                          />
                          disable
                        
                        
                          -
                        
                        
                          output
                        
                        
                          -
                        
                        
                          escaping
                        
                        
                          =
                        
                        
                          "
                        
                        
                          yes
                        
                        
                          "
                        
                        
                           select
                        
                        
                          =
                        
                        
                          "
                        
                        
                          root/dynamic-element[@name='caption-2']/dynamic-content
                        
                        
                          "
                        
                        
                          />
                        
                        
                           <!----> 
                          
                            td
                          
                          
                            >
                                  
                        
                        
                          <!----> 
                          
                            td
                          
                          
                            >
                          
                          
                             <
                          
                          
                            td
                          
                          
                            >
                                    
                          
                          
                            <
                          
                          
                            td
                          
                          
                            >
                          
                          
                             <
                          
                          
                            img
                          
                          
                            >
                                      
                          
                          
                            <
                          
                          
                            img
                          
                          
                            >
                          
                          
                             
                             <
                          
                          
                            xsl:attribute name
                          
                          
                            =
                          
                          
                            "
                          
                          
                            src
                          
                          
                            "
                          
                          
                            >
                                        
                          
                          
                            <
                          
                          
                            xsl:attribute name
                          
                          
                            =
                          
                          
                            "
                          
                          
                            src
                          
                          
                            "
                          
                          
                            >
                          
                          
                             
                             <
                          
                          
                            xsl:value
                          
                          
                            -
                          
                          
                            of
                                          
                          
                          
                            <
                          
                          
                            xsl:value
                          
                          
                            -
                          
                          
                            of 
                             disable
                          
                          
                            -
                          
                          
                            output
                          
                          
                            -
                          
                          
                            escaping
                          
                          
                            =
                          
                          
                            "
                          
                          
                            yes
                          
                          
                            "
                          
                          
                             select
                          
                          
                            =
                          
                          
                            "
                          
                          
                            root/dynamic-element[@name='image-2']/dynamic-content
                          
                          
                            "
                          
                          
                            />
                            disable
                          
                          
                            -
                          
                          
                            output
                          
                          
                            -
                          
                          
                            escaping
                          
                          
                            =
                          
                          
                            "
                          
                          
                            yes
                          
                          
                            "
                          
                          
                             select
                          
                          
                            =
                          
                          
                            "
                          
                          
                            root/dynamic-element[@name='image-2']/dynamic-content
                          
                          
                            "
                          
                          
                            />
                          
                          
                             
                             <!----> 
                            
                              xsl:attribute
                            
                            
                              >
                                        
                          
                          
                            <!----> 
                            
                              xsl:attribute
                            
                            
                              >
                            
                            
                               
                               <!----> 
                              
                                img
                              
                              
                                >
                                        
                            
                            
                              <!----> 
                              
                                img
                              
                              
                                >
                              
                              
                                 <!----> 
                                
                                  td
                                
                                
                                  >
                                        
                              
                              
                                <!----> 
                                
                                  td
                                
                                
                                  >
                                
                                
                                   <!----> 
                                  
                                    tr
                                  
                                  
                                    >
                                        
                                
                                
                                  <!----> 
                                  
                                    tr
                                  
                                  
                                    >
                                  
                                  
                                     <!----> 
                                    
                                      table
                                    
                                    
                                      >
                                        
                                  
                                  
                                    <!----> 
                                    
                                      table
                                    
                                    
                                      >
                                    
                                    
                                       
                                       <!----> 
                                      
                                        xsl:template
                                      
                                      
                                        >
                                        
                                    
                                    
                                      <!----> 
                                      
                                        xsl:template
                                      
                                      
                                        >
                                      
                                      
                                         
                                         <!----> 
                                        
                                          xsl:stylesheet
                                        
                                        
                                          >
                                      
                                      
                                        <!----> 
                                        
                                          xsl:stylesheet
                                        
                                        
                                          >
                                        
                                        
                                           
                                        
                                      
                                    
                                  
                                
                              
                            
                          
                        
                      
                    
                  
                
              
            
          
        
      
    
  下面对该文件进行说明:
1 、这里的 @name=’ 名称 ’ 必须要和第一步中创建 Structure 中的元素名称一致,页面格式根据需求使用 HTML 语言定义即可。
2 、对 text 、 text area 类型的元素输出时的格式如下:
<xsl:value-of></xsl:value-of>
disable-output-escaping="yes" select="root/dynamic-element[@name='caption-2']/dynamic-content"/>
1、 对 image 类型的元素输出时的格式如下:
    
      
    
  
<xsl:attribute name="src"> </xsl:attribute>
<xsl:value-of></xsl:value-of>
disable-output-escaping="yes" select="root/dynamic-element[@name='image-2']/dynamic-content"/>
第三步、创建 Article ,添写基本信息后,在 Structure 一栏选择 test ,对应的 Template 一栏也选择 test 即可,然后在对应的元素域里添入合适的文本或者图片,点击预览即可以看到如下界面,确定无问题后,点击保存或者保存并发布按钮即可完成 content 的定制。
通过以上三个步骤,我们就实现了定制 content 的功能。使用 Journal Portlet ,我们可以定制任何不同风格的 content 来展示必要的信息。


 
					 
					