<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 12, comments - 19, trackbacks - 0, articles - 23
      BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理
    Liferay Portal為我們提供了非常靈活的主題風(fēng)格定制功能,自身帶了四種風(fēng)格的theme,在官方網(wǎng)站上提供了很多風(fēng)格theme的下載,這無(wú)疑大大增強(qiáng)了主題風(fēng)格定制的功能。但是,我們完全可以開(kāi)發(fā)具有自己風(fēng)格的theme,這里,我們將討論怎樣來(lái)開(kāi)發(fā)個(gè)性的theme。

    第一步:我們將以現(xiàn)有風(fēng)格classic為模板文件創(chuàng)建新的theme,我們將新theme命名為coldtear
    1、將liferay/html/themes目錄下的classic文件夾copy一份副本,并修改副本的文件夾名為coldtea
    2、在liferay/web-inf目錄下新建liferay-look-and-feel-ext.xml文件,文件liferay-look-and-feel.xml是定義主題風(fēng)格theme的配置文件,為了加以區(qū)分,我們?cè)谶@里新建了該文件的擴(kuò)展文件liferay-look-and-feel-ext.xml,該文件內(nèi)容如下:
    <?xml?version="1.0"?>
    <!DOCTYPE?look-and-feel?PUBLIC?"-//Liferay//DTD?Look?and?Feel?4.0.0//EN"?"http://www.liferay.com/dtd/liferay-look-and-feel_4_0_0.dtd">

    <look-and-feel>
    ????
    <compatibility>
    ????????
    <version>4.0.0</version>
    ????
    </compatibility>
    ????
    <company-limit>
    ????????
    <company-includes?/>
    ????????
    <company-excludes?/>
    ????
    </company-limit>
    ????
    <theme?id="coldtear"?name="ColdTear">
    ????????
    <root-path>/html/themes/coldtear</root-path>
    ????????
    <templates-path>/html/themes/coldtear/templates</templates-path>
    ????????
    <images-path>/html/themes/coldtear/images</images-path>
    ????????
    <template-extension>jsp</template-extension>
    ????????
    <color-scheme?id="01"?name="Blue">
    ????????????
    <![CDATA[
    ????????????????body
    -bg=#FFFFFF
    ????????????????
    ????????????????layout
    -bg=#FFFFFF
    ????????????????layout
    -text=#000000

    ????????????????layout
    -tab-bg=#E0E0E0
    ????????????????layout
    -tab-text=#000000

    ????????????????layout
    -tab-selected-bg=#6699CC
    ????????????????layout
    -tab-selected-text=#4A517D

    ????????????????portlet
    -title-bg=#6699CC
    ????????????????portlet
    -title-text=#4A517D

    ????????????????portlet
    -menu-bg=#B6CBEB
    ????????????????portlet
    -menu-text=#000000

    ????????????????portlet
    -bg=#FFFFFF

    ????????????????portlet
    -font=#000000
    ????????????????portlet
    -font-dim=#C4C4C4

    ????????????????portlet
    -msg-status=#000000
    ????????????????portlet
    -msg-info=#000000
    ????????????????portlet
    -msg-error=#FF0000
    ????????????????portlet
    -msg-alert=#FF0000
    ????????????????portlet
    -msg-success=#007F00

    ????????????????portlet
    -section-header=#094170
    ????????????????portlet
    -section-header-bg=#ADBDFB

    ????????????????portlet
    -section-subheader=#405278
    ????????????????portlet
    -section-subheader-bg=#91AEE8

    ????????????????portlet
    -section-body=#000000
    ????????????????portlet
    -section-body-bg=#E2E7FA

    ????????????????portlet
    -section-body-hover=#FFFFFF
    ????????????????portlet
    -section-body-hover-bg=#AC6CFA

    ????????????????portlet
    -section-alternate=#000000
    ????????????????portlet
    -section-alternate-bg=#CFD7FB

    ????????????????portlet
    -section-alternate-hover=#FFFFFF
    ????????????????portlet
    -section-alternate-hover-bg=#AC6CFA

    ????????????????portlet
    -section-selected=#7AA0EC
    ????????????????portlet
    -section-selected-bg=#FAFCFE

    ????????????????portlet
    -section-selected-hover=#00329A
    ????????????????portlet
    -section-selected-hover-bg=#C0D2F7
    ????????????]]
    >
    ????????
    </color-scheme>
    ????
    </theme>
    </look-and-feel>
    這里,注意的是修改theme的id和name,以及root-path、templates-path和images-path的路徑,這樣,我們就可以在主題風(fēng)格頁(yè)面看到我們新的theme了。

    第二步、分析classic的主題布局的劃分
    1、打開(kāi)liferay/html/theme/coldtear/templates目錄,該目錄下存放著很多jsp文件,打開(kāi)portal_normal.jsp文件可以看到,該文件是整個(gè)頁(yè)面的主體,通過(guò)<liferay-util:include />標(biāo)簽和<%@ include>方法包含了很多jsp文件,其中top.jsp文件定義了頭部信息,navigation.jsp定義了導(dǎo)航菜單,bottom.jsp定義了底部語(yǔ)言標(biāo)簽信息,而頁(yè)面的主體信息是由<liferay-theme:box />標(biāo)簽定義的,top="portlet_top.jsp"定義了portlet的標(biāo)題欄信息,bottom="portlet_bottom.jsp"定義了portlet下面的陰影線,portlet的內(nèi)容則是由<liferay-util:include page="<%= Constants.TEXT_HTML_DIR + tilesContent %>" />定義的。所有的css樣式信息是定義在css_cached.jsp文件中的。
    2、liferay portal的頁(yè)面定義大部分地方都采用了DIV+CSS的方式,下面將以classic的整個(gè)DIV定義框架給出,以說(shuō)明classic風(fēng)格的定義方法。
    <div?id="layout-outer-side-decoration">
    <div?id="layout-inner-side-decoration">
    <div?id="layout-box">
    ????
    <!--?定義頭部信息?top.jsp?-->
    ????
    <div?id="layout-top-banner">
    ????????
    <div?id="layout-user-menu"?style="text-align:?right;">
    ????????????
    <div?class="font-small"?style="margin-top:?5px;">
    ????????????????
    <div?id="layout-my-places">
    ????????????????????
    <div?id="p_p_id_49_"?class="portlet-boundary">
    ????????????????????????
    <div?class="portlet-borderless-container">
    ????????????????????????
    </div>
    ????????????????????
    </div>
    ????????????????
    </div>
    ????????????
    </div>
    ????????
    </div>
    ????
    </div>
    ????
    <!--?定義導(dǎo)航菜單?navigation.jsp?-->
    ????
    <div?id="layout-nav-container">
    ????????
    <div?class="layout-nav-tabs-box">
    ????????????
    <div?class="layout-tab"></div>
    ????????????
    <div?class="layout-tab"></div>
    ????????????
    <div?class="layout-tab-selected"></div>
    ????????????
    <div?class="layout-tab"></div>
    ????????
    </div>
    ????????
    <div?id="layout-global-search"></div>
    ????
    </div>
    ????
    <div?class="portlet-bottom-decoration-2"><div><div></div></div></div>
    ????
    <!--?定義主體portlet信息部分??-->
    ????
    <div?id="layout-content-outer-decoration">
    ????????
    <div?id="layout-content-inner-decoration">
    ????????????
    <div?id="layout-content-container">
    ????????????????
    <div?id="layout-column_column-1">
    ????????????????????
    <div?id="p_p_id_73_INSTANCE_9Q28_"?class="portlet-boundary">
    ????????????????????????
    <div?class="portlet-container">
    ????????????????????????????
    <!--?定義portlet標(biāo)題欄信息?portlet-top.jsp?-->
    ????????????????????????????
    <div?class="portlet-header-bar"?id="portlet-header-bar_73_INSTANCE_9Q28"?onmouseover="PortletHeaderBar.show(this.id)"?onmouseout="PortletHeaderBar.hide(this.id)">
    ????????????????????????????????
    <div?class="portlet-wrap-title">
    ????????????????????????????????
    </div>
    ????????????????????????????????
    <div?class="portlet-small-icon-bar"?style="display:?none;">
    ????????????????????????????????
    </div>
    ????????????????????????????
    </div>
    ????????????????????????????
    <!--?定義portlet內(nèi)容信息??-->
    ????????????????????????????
    <div?class="portlet-box">
    ????????????????????????????????
    <div?class="portlet-minimum-height">
    ????????????????????????????????????
    <div?id="p_p_body_73_INSTANCE_9Q28"?>
    ????????????????????????????????????????
    <div?class="slide-maximize-reference">
    ????????????????????????????????????????????
    <div?id="p_p_content_73_INSTANCE_9Q28_"?style="margin-top:?0;?margin-bottom:?0;">
    ????????????????????????????????????????????
    </div>
    ????????????????????????????????????????
    </div><!--?slide-maximize-reference?-->
    ????????????????????????????????????
    </div>
    ????????????????????????????????
    </div>
    ????????????????????????????
    </div><!--?end?portlet-box?-->
    ????????????????????????????
    <!--?定義portlet底部陰影線?portlet-bottom.jsp?-->
    ????????????????????????????
    <div?class="portlet-bottom-decoration-2"><div><div></div></div></div>
    ????????????????????????
    </div><!--?End?portlet-container?-->
    ????????????????????
    </div>
    ????????????????????
    <!--?定義一個(gè)空的portlet區(qū)域?-->
    ????????????????????
    <div?class="layout-blank-portlet"></div>
    ????????????????
    </div>
    ????????????
    </div>
    ????????
    </div>
    ????
    </div>
    ????
    <!--?定義底部信息?bottom.jsp?-->
    ????
    <div?id="layout-bottom-container"></div>
    </div><!--?End?layout-box?-->
    </div>
    </div><!--?End?layout-outer-side-decoration?-->
    這里我們可以看到classic的整體DIV定義框架,注釋部分對(duì)每個(gè)部分的定義都做了區(qū)分。

    第三步、根據(jù)這樣一個(gè)結(jié)構(gòu),我們可以設(shè)計(jì)自定義theme風(fēng)格的結(jié)構(gòu),然后將各個(gè)區(qū)域細(xì)化到各個(gè)jsp文件中,并配以特定的圖片和樣式就可以實(shí)現(xiàn)自定義theme,為了達(dá)到更好的顯示效果,需要教好的掌握CSS的各個(gè)屬性和使用方法。
    主站蜘蛛池模板: 日本特黄特色AAA大片免费| 亚洲日本VA午夜在线影院| 亚洲中文久久精品无码1| 亚洲天堂2017无码中文| 国产成人综合亚洲| 精品久久久久久国产免费了 | 亚洲国产成AV人天堂无码| 亚洲一区二区无码偷拍 | 亚洲人成人77777网站不卡| 亚洲国产午夜精品理论片在线播放 | 久久精品国产亚洲一区二区| 亚洲美女中文字幕| 亚洲第一成年免费网站| mm1313亚洲精品无码又大又粗| 亚洲一区二区三区自拍公司| 亚洲黄色三级视频| 99亚洲男女激情在线观看| 99re8这里有精品热视频免费| 亚洲精品国产免费| 免费日韩在线视频| 亚洲一级二级三级不卡| 亚洲欧洲无码AV不卡在线| 中文字幕av免费专区| 青青青免费国产在线视频小草| 亚洲?V乱码久久精品蜜桃| 亚洲AV日韩精品久久久久久| 亚洲国产区男人本色| 国产精品视频白浆免费视频| 免费看的黄色大片| 亚洲AV无码成人精品区天堂| 亚洲国产视频久久| 国产自国产自愉自愉免费24区 | 亚洲一本大道无码av天堂| 亚洲最大免费视频网| 色吊丝性永久免费看码 | 日韩视频免费在线| 亚洲第一中文字幕| 美女又黄又免费的视频| 日韩在线播放全免费| 精品国产香蕉伊思人在线在线亚洲一区二区 | 久久青草免费91观看|