Tạo một theme cho riêng bạn - Create your own theme

Có hai yếu tố làm ảnh hưởng đến giao diện của Page: Theme và Layout.

Theme có liên quan đến color+image+template
Layout có liên quan đến bố cục trang, phân chia trang thành từng cell như trong một table.

Bài viết này tôi xin giới thiệu cách viết một theme trong Liferay Extension Environment.

Ghi chú:Trong bài viết này tôi sử dụng Liferay Portal Professional 4.2

Có hai cách:
Cách 1: Viết theme như một web application
Trong phương pháp này, theme là một web application. Khi deploy, theme sẽ nằm ngang hàng với ROOT (trong trường hợp bạn dùng Tomcat server).
Giả sử đối với theme breeze-themes-4.2.0 , cấu trúc thư mục sẽ như sau



Để viết theme dạng này, cách nhanh nhất là bạn download một theme mẫu (ví dụ breeze-themes-4.2.0). Sau đó bạn extract theme này vào thư mục ext\themes như sau:



Bây giờ bạn hãy vào chỉnh sửa tên của theme trong file web.xml và liferay-look-and-feel.xml, chỉnh sửa color + image + template theo ý bạn.

Sau đó bạn vào thư mục ext\themes và chạy: ant deploy

Kiểm tra trong thư mục webapps của Tomcat, bạn sẽ thấy như hình dưới đây:



Cách 2: Viết theme như một phần của portal

Tôi thích cách này hơn, vì thấy sự gọn gàng và đơn giản. Theme không phải là một web application mà là một phần của portal, tương đương như các default theme.

Để lấy ví dụ, chúng ta hãy tạo một theme khác tên là estyle

Đầu tiên, bạn hãy tạo thư mục: liferay\ext\ext-web\docroot\html\themes\estyle.

Sau đó, bạn hãy copy nội dung của theme mẫu Brochure trong thư mục \liferay\portal\portal-web\docroot\html\themes\brochure vào thư mục estyle vừa tạo.

Kết quả sẽ trông như thế này:



Khai báo theme mới:
Bạn tạo file \ext\ext-web\docroot\WEB-INF\liferay-look-and-feel-ext.xml
(xin lỗi vì trong bản viết đầu tiên mình ghi sai là \ext\ext-web\docroot\html\liferay-look-and-feel-ext.xml)
với nội dung như sau:
-------------------------------
<?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.2.0</version>

</compatibility>

<company-limit>

<company-includes />

<company-excludes />

</company-limit>

<theme id="estyle" name="estyle">

<root-path>/html/themes/estyle</root-path>

<templates-path>/html/themes/estyle/templates</templates-path>

<images-path>/html/themes/estyle/images</images-path>

<template-extension>jsp</template-extension>

<color-scheme id="01" name="Default">

<![CDATA[

body-bg=#FFFFFF



layout-bg=#F2F2F2

layout-text=#000000



layout-tab-bg=#E0E0E0

layout-tab-text=#000000



layout-tab-selected-bg=#6699CC

layout-tab-selected-text=#4A517D



portlet-title-bg=#132b47

portlet-title-text=#FFFFFF



portlet-menu-bg=#B6CBEB

portlet-menu-text=#000000



portlet-bg=#F2F2F2



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=#596171

portlet-section-header-bg=#AFBEDA



portlet-section-subheader=#405278

portlet-section-subheader-bg=#91AEE8



portlet-section-body=#3F3F3F

portlet-section-body-bg=#EAF2FF



portlet-section-body-hover=#FFFFFF

portlet-section-body-hover-bg=#5274AE



portlet-section-alternate=#3F3F3F

portlet-section-alternate-bg=#DBE1ED



portlet-section-alternate-hover=#FFFFFF

portlet-section-alternate-hover-bg=#5274AE



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>
-------------------------------

Chỉnh sửa theme này theo ý bạn. Sau đó deploy bằng lệnh:





-------------------------------------
Kiểm tra: Bây giờ bạn hãy khởi động lại tomcat, login (username=test@liferay.com, password=test). Nhấn vào mục Page Setting, chọn theme estyle !



Chúc bạn tạo được những theme theo ý muốn.

See also: Cách tạo layout (đang cật nhập)

______________________________________________________

Hiện có (6) phản hồi:

  • Nặc danh [ lúc 07:34 1 tháng 3, 2007 ]  

    chào bạn, mình là friendss bên diễn đàn javavietnam, mình đã làm như bạn hướng dẫn nhưng không hiểu sao themes mới vẫn không thấy xuất hiện trong look and feel để mình chọn, không biết còn thiếu bước nào không nữa, bạn kiểm tra lại giúp mình nhé! thanks!!!

  • AnhQuan [ lúc 09:41 1 tháng 3, 2007 ]  

    Bạn cần cho thêm thông tin thì may ra mình đoán được nguyên nhân. Còn nói chung chung thế này thì chịu luôn.

    Bạn dùng cách 1 (tạo Theme trong EXT) hay cách 2 (tạo Theme là 1 web-application độc lập, đóng gói thành WAR rồi deploy) ?

    Trong quá trình tạo theme, có báo lỗi gì không ?

    Đầu tiên bạn thử download 1 theme mẫu về deploy thử xem sao.

  • Nặc danh [ lúc 17:33 1 tháng 3, 2007 ]  

    mình làm theo cách 2 (tạo themes như một phần của portal) như sau:

    tạo thư mục liferay\ext\ext-web\docroot\html\themes\aqua

    download aqua-themes-4.2.0.war vào đĩa C:\

    copy nội dung thư mục C:\aqua-themes-4.2.0.war\html\themes\aqua\ vào thư mục aqua vừa tạo ở trên liferay\ext\ext-web\docroot\html\themes\aqua\

    tạo file liferay\ext\ext-web\docroot\html\liferay-look-and-feel-ext.xml với nội dung giống như file của bạn chỉ khác là mình thay estyle=aqua; template-extension=vm (do những file này có phần mở rộng là vm)


    sau đó deploy như bạn hướng dẫn, không có vấn đề gì xảy ra, build successful

    sau đó mình restart lại tomcat, đăng nhập vào, chọn page setting, look and feel nhưng chẳng thấy themes aqua đâu cả.

    bạn xem mình làm vậy có gì sai không nhé. thanks!

  • Quan [ lúc 05:13 3 tháng 3, 2007 ]  

    Mình vừa download cái theme Aqua về làm thử. Phát hiện ra một lỗi sai trong bài viết là :
    file liferay-look-and-feel-ext.xml phải để trong ext\ext-web\docroot\WEB-INF chứ không phải để trong ext\ext-web\docroot\html (Sorry nha).

    friendss lưu ý là: theme Aqua ở dạng WAR, tức là một web application rồi. Nên nếu bạn extract rồi copy y chang nội dung của theme này vào theme mới của bạn thì không được. Để làm theo cách 2 đối với theme Aqua này, bạn nên copy nội dung file Aqua\Web-inf\liferay-look-and-feel.xml vào liferay-look-and-feel-ext.xml. Sau đó xóa hẳn hai thư mục Aqua\WEB-INF và Aqua\META-INF đi. Mọi khai báo theme mới đều nằm trong liferay-look-and-feel-ext.xml nên để hai thư mục này ở đây là không cần thiết.

    File liferay-look-and-feel-ext.xml thay đổi tùy theo theme, nên nếu bạn định phát triển theme của mình từ theme mẫu thì tốt nhất nên copy y chang nội dung file liferay-look-and-feel.xml của theme đó.

    Nhìn hình có lẽ dễ hiểu hơn
    Cấu trúc thư mục nguyên thủy của theme Aqua
    http://img245.imageshack.us/img245/2773/aqua1ky0.png

    Bạn nên copy và chỉnh lại như sau:
    http://img250.imageshack.us/img250/1530/aqua2wx3.png

    (Sorry không post hình trực tiếp trong comment được)

    Cũng cần lưu ý tên thư mục cho đúng ở phần:
    <root-path</html/themes/aqua</root-path>
    <templates-path</html/themes/aqua/templates</templates-path>
    <images-path</html/themes/aqua/images</images-path>

    Hi vọng bạn làm xong!

  • Nặc danh [ lúc 12:41 3 tháng 3, 2007 ]  

    cảm ơn bạn nhiều nhé, mình đã làm được rồi, có gì nhờ bạn chỉ dẫn thêm nhé!!!
    bạn nghiên cứu liferay này bao lâu mà giỏi vậy, có đọc thêm sách gì hay giới thiệu cho mình với. thanks!

  • Quan [ lúc 14:12 3 tháng 3, 2007 ]  

    Mấy trò hack hiếc linh tinh này có gì đâu mà giỏi.
    Mình cũng chỉ mới học Java từ tháng 8/2007 trở lại đây thôi. Nhưng mình không học theo kiểu ngồi đọc eBook gù cả lưng mà làm đại 1 project nào đó, đụng vấn đề nào thì tìm tutorial/ebook về vấn đề đó.

    Theo mình thì quan trọng là học Java phải có hứng thú, chứ học theo kiểu "bị học Java" thì không ăn thua gì.

    Wish you have fun with Java :)