7. Xây dựng portlet trong Liferay
7.3. Tạo, kết nối database
Ant build CSDL
Tạo bảng sử dụng trong portlet
Vào sql/portal mở file xml tương ứng với CSDL sử dụng, ở đây ta dùng portal- postgressql.xml tương ứng với CSDL Postgres
Tìm đến cấu trúc bảng đã thiết lập trong file service.xml, các trường kiểu String có kích thước mặc định là 75, có thể thay đổi kích thước các trường cho phù hợp. Lưu ý: Các kích thước thay đổi tại đây sẽ bị ghi đè nếu vì một lý do nào đó ta cần build service lại. Tuy nhiên có thể khắc phục như sau:
Thay cách thiết lập thông thường
<column name="field1" type="String" />
Bằng:
<field name="field1" type="String"> <hint name="max-length">200</hint> </field>
Sau đó copy đoạn code tạo bảng này sang màn hình SQL của database để tạo bảng. Ngoài ra có thể copy index sang màn hình SQL của database để tạo index từ sql/indexes/indexes-sql-server.xml
Lưu ý: Nếu chưa có CSDL thì xây dựng từ đầu bằng cách copy toàn bộ nội dung file portal-postgressql.xml sang past vào màn hình SQL của database để xây dựng mới CSDL
Kết nối cơ sở dữ liệu:
..\servers\tomcat\conf\Catalina\localhost\ROOT.xml
7.4. Viết các hàm trong impl
(Xem chi tiết trong mã nguồn demo kèm theo).
7.5. Thiết lập cấu hình portlet
Thiết lập cấu hình trên các file portlet-ext.xml, liferay- portlet-ext.xml, liferay- display.xml, struts-config.xml, tiles-defs.xml.
(Xem chi tiết trong mã nguồn demo kèm theo).
Định nghĩa portlet
portlet-ext.xml
liferay-portlet-ext.xml
Định nghĩa việc điều khiển hiển thị các trang
tiles-defs.xml
7.6. Viết các java action
Tạo thư mục action trong portlet , viết các file action trong đó . Các java action này có nhiệm vụ lấy dữ liệu từ các trang JSP, xử lý dữ liệu thông qua các hàm java rồi trả kết quả cho các file .JSP hiển thị dữ liệu trên trình duyệt.
(Xem chi tiết các file .jsp trong mã nguồn demo kèm theo).
7.7. Tạo các trang .JSP
Đây là nơi thể hiện việc hiển thị của portlet, các trang giao diện tương tác với người sử dụng. Ta thường tạo một file init.jsp để tạo các giá trị khởi đầu cho portlet. Sau đó các trang khác sẽ include file này.
(Xem chi tiết các file .jsp trong mã nguồn demo kèm theo).
Ngoài ra, chúng ta cũng có thể sử dụng portals bridges để chuyển một ứng dụng web đã phát triển tr ước đó thành portlet và tích hợp vào portal . Mô ̣t số bridge hỗ trợ chuyển thành các portlet, bao gồm:
JSF portlet
Struts portlet
PHP portlet
Perl portlet
Ta có thể tham khảo chi tiết và tải về các bridge này ta ̣i trang web
http://portals.apache.org/bridges/download.html
8. Xây dựng giao diê ̣n người dùng
8.1. Bô ̣ giao diê ̣n người dùng(theme)
Liferay giới thiệu khái niệm theme từ version 3.5 để giúp người sử dụng dễ dàng trong việc thay đổi “look and feel” của portal. Theme trong liferay quy định cách thức hiển thị của các thành phần dựa trên các file CSS, JavaScript, template và image.
Để tùy biến một theme phải qua 4 bước cơ bản sau: - Cấu hình các thuộc tính
- Chỉnh sửa template - Định nghĩa CSS - Chỉnh sửa JavaScript
Tất cả theme trong Liferay được dựng trên một “master theme” được biết là “Classic”. Sau đây là cấu trúc cơ bản của mô ̣t theme :
Hình 13. Cấu trúc của theme
Trong đó:
Templates: Templates gồm có các file sau:
- portal_normal.vm: file này chứa toàn bộ cấu trúc, nó bao gồm header, footer và bao gồm 2 template dock.vm, navigation.vm.
+ Thẻ <div id="wrapper"> bao gồm toàn bộ phần nội dung của portal.
+ $theme.include() được dùng để chèn nội dung của các thành phần khác vào như header, footer.
- doc.vm: file này bao gồm tất cả mã html cho dock
- navigation.vm: file này bao gồm tất cả mã html cho navigation
- portal_pop_up.vm: file này bao gồm toàn bộ cấu trúc html của cửa sổ popup - portlet.vm: file này chứa mã html mà bao bọc các portlet, bao gồm cả portlet
title và portlet-icons.
Các file template này dựa trên cấu trúc của Velocity template. Velocity template là một bộ máy template dựa trên ngôn ngữ Java. Nó là cách đơn giản nhất để phối hợp nội dung của website.
Liferay hỗ trợ các thẻ thư viện Taglib cho phép người dùng có thể nhúng các hàm thư viện này vào các file template một cách dễ dàng . Các taglib này được định nghĩa trong portal \util-taglib\src\com\liferay\taglib và người sử dụng có thể gọi chúng ra . Chẳng ha ̣n:
$theme.language(): sẽ gọi ra các ngôn ngữ mà liferay hỗ trợ $theme.journalContentSearch(): gọi ra thanh search.
$theme.search()
Các taglib này được khai báo trong portal\util-
taglib\src\com\liferay\taglib\util\VelocityTaglib.java CSS: CSS gồm các file sau:
- main.css: file này bao gồm các file css khác.
- custom.css: file này cho phép nhà phát triển chỉnh sửa thành phần của css trong các file khác nhưng không làm thay đổi các file này mà các thành phần đó được định nghĩa lại trong custom.css, điều này giúp cho việc sửa đổi và nâng cấp dễ dàng.
- base.css: file này bao gồm các style cơ bản như là style cho các element không được chỉ định trực tiếp trong các file css khác. File này sẽ thiết lập các thuộc tính css chung nhất của portal
- form.css: file này chứa toàn bộ style cho các thành phần form như : textbox, textarea, các button submit, reset …
- layout.css: file này chứa style dùng cho layout template như độ rộng của các cột, khoảng cách giữa các cột …
- navigation.css: file này chứa toàn bộ style dùng cho navigation. Navigator thường được dùng để chứa menu, ngôn ngữ hoặc thanh search của portal.
- portlet.css : file này chứa style dùng cho portlet. - tab.css : file này chứa style dùng cho tab trong portlet. JavaScript :
Liferay bao gồm thư viện javascript jQuery, điều này làm cho việc viết các mã javascript phức tạp trở nên đơn giản hơn rất nhiều.
Có 2 cách để triển khai theme, đó là:
Triển khai theme như là một phần của portal
Triển khai theme như một ứng dụng độc lập
Cách 1: Xây dựng theme như là một phần của portal
Chẳng hạn, ở đây ta xây dựng theme có tên là my -training theo các bước sau:
- Copy thư mục class trong ..\servers\tomcat\webapps\ROOT\html\themes vào thư mục ..\ext-web\docroot\html\themes và đổi tên thư mục classic thành my - training.
- Cấu hình các thuô ̣ c tính và đăng ký theme với portal bằng cách tạo file ..\ext- web\docroot\WEB-INF\liferay-look-and-feel-ext.xml với nội dung sau:
<?xml version="1.0"?> <look-and-feel> <compatibility> <version>4.4.2</version> </compatibility> <company-limit> <company-includes /> <company-excludes /> </company-limit>
<theme id="my-training" name="My Training">
<root-path>/html/themes/my-training</root-path> <templates-path>${root-path}/templates</templates-path> <images-path>${root-path}/images</images-path> <template-extension>vm</template-extension> </theme> </look-and-feel>
Sau đó deploy lại Liferay , đăng nhập http://localhost:8080 từ menu Welcome chọn Manager Pages -> Look and Feel bạn sẽ thấy theme mới trong theme list. Theme mới này giống với Classic theme. Đến đây bạn có thể thay đổi theme theo ý mình.
- Thay đổi nội dung của các file css . Lưu ý là viê ̣c thay đổi nô ̣i dung sẽ dễ dàng hơn nếu bạn thay đổi trong file cusstom.css duy nhất bởi vì file custom.css được load cuối cùng và sẽ ghi đè thuộc tính của các thẻ được chỉ định trong các file css khác.
Cách 2: xây dựng và triển khai theme như một ứng dụng độc lập
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 dùng Tomcat server ). Các bước tiên hành như sau:
- Tạo thư mục C:\my-training-theme, thư mục này để chứa theme.
- Copy nội dung của ..\webapps\ROOT\html\themes\classic vào C:\my-training- theme.
- Tạo thư mục C:\my-training-theme\WEB-INF
- Copy 3 file web .xml, liferay-look-and-feel.xml, liferay-plugin-package.xml từ thư mục ..\servers\tomcat\webapps\liferay-jedi-theme (jedi-theme là theme mặc định của liferay) vào thư mục C:\my-training-theme\WEB-INF và sửa nội dung các file như sau:
+ liferay-look-and-feel.xml :
<look-and-feel> <compatibility>
<version>4.4.2+</version> </compatibility>
<theme id="my-training" name="My Training"> <settings>
<setting key="css-template-id" value="CSS-TEMPLATE"></setting> <setting key="footer-article-id" value="4280"></setting>
</settings> </theme>
</ look-and-feel>
+ liferay-plugin-package.xml:
<plugin-package>
<name>My Training Theme</name>
<module-id>liferay/my-training-theme/5.1.2/war</module-id> <types>
<type>theme</type> </types>
<tags></tags>
<short-description>This is the Liferay light theme.</short- description>
<long-description></long-description>
<change-log>Adapted to the latest version of Liferay.</change-log> <page-url>http://www.liferay.com/web/guest/downloads</page-url> <author>Liferay, Inc.</author> <licenses> <license osi-approved="true">MIT</license> </licenses> <liferay-versions> <liferay-version>5.1.2+</liferay-version> </liferay-versions> </plugin-package>
+ web.xml : với file này chỉ cần sửa : thẻ <display-name>
<display-name>my-training-theme</display-name>
- Sau đó sử dụng command promt di chuyển đến thư mục C:\my-training-theme bằng lệnh sau : cd C:\my-training-theme. Tiếp đó gõ lệnh jar –cvf my-training-
theme.war * . Lệnh này sẽ tạo ra file my-training-theme.war. Đây là file đóng gói của ứng dụng theme.
- Copy file này vào ..\servers\tomcat\webapps. Khởi động tomcat và login vào Liferay -> Manager Pages -> Look and Feel để thấy kết quả.
- Thay đổi các thành phần như css, template, image … sau đó thực hiện đóng gói lại để nhận được kết quả.
Hình 14. Thiết lập giao diện trang tin
8.2. Xây dựng và triển khai khung trang (layout template)
Layout template miêu tả cách các cột và các hàng sắp xếp để hiển thị portlet. Cấu trúc của layout template như sau:
Bằng cách lấy một layout template làm mẫu sau đó sửa đổi các tệp tin 2_1_columns.tpl, 2_1_columns.wap.tpl, liferay-layout-template-ext.xml sao cho phù hợp với nhu cầu sử dụng, viê ̣c xây dựng layout template là rất dễ dàng.
9. Viê ̣t hóa Liferay
Vào thư mục ext -impl/src/content/, tìm đến tệp tin Language _vi.properties, Language_vi.properties.native và chuyển đổi các từ sang tiếng Viê ̣t tương ứng . Sau đó sử du ̣ng công cu ̣ Ant để deploy các file vừa thay đổi .
Chương 4 - Xây dựng cổng giao tiếp điê ̣n tử cho cơ quan nhà nước
1. Giới thiê ̣u hê ̣ thống
Trong luâ ̣n văn này , ta sẽ thực hiê ̣n thiết kế và xây dựng cổng giao tiếp điê ̣n tử cho cơ quan nhà nước như các bộ, tỉnh/thành,... trên nền tảng Liferay Portal.
1.1. Mục tiêu
1.1.1. Mục tiêu chung
Xây dựng cổng thông tin điện tử cho cơ quan bộ, tỉnh/thành với một nền tảng hiện đại và dễ mở rộng.
Làm cơ sở để phát triển thành sản phẩm áp dụng cho các dự án.
1.1.2. Mục tiêu cụ thể
Xây dựng cổng giao tiếp điện tử thay thế website truyền thống.
Xây dựng cổng là một địa điểm quy tụ các thành tố thông tin trong hệ thống thông tin của bộ hoặc tỉnh/thành nhằm phổ biến, quảng bá thông tin qua mạng internet về chủ trương, chính sách, tra cứu, hướng dẫn, qui hoạch phát triển, thông tin pháp luật, thông tin giới thiệu văn hoá và các hoạt động KT-XH, ...
Cung cấp cơ chế tích hợp để liên kết cổng thông tin điện tử này với các trang thông tin điện tử của chính phủ và các bộ, ngành, tỉnh, thành phố khác.
Cung cấp quy trình quản trị và xuất bản nội dung chuyên nghiệp.
Cung cấp ứng dụng hỏi đáp trực tuyến nhằm phục vụ nhu cầu trao đổi thông tin giữa cơ quan chức năng và các đối tượng người dân, các tổ chức và doanh nghiệp.
Cung cấp dịch vụ hành chính công như thủ tục hành chính, văn bản pháp quy, dịch vụ đăng ký kinh doanh trực tuyến với cơ chế “một cửa”.
Cung cấp các công cụ tiện ích (như liên kết website, thăm dò dư luận, danh bạ điện thoại, diễn đàn,…) nhằm hỗ trợ các hoạt động trao đổi, xử lý thông tin hàng ngày.
1.2. Nhóm đối tượng người sử dụng
Người dùng bên trong các cơ quan nhà nước của bộ, tỉnh/thành: - Lãnh đạo
- Ban biên tập cổng TTĐT - Bộ phận quản trị cổng TTĐT
Người dùng bên ngoài cơ quan nhà nước của bộ hoặc tỉnh/thành: - Người dùng thông tin
- Người dùng dịch vụ
- Các cơ quan tổ chức, doanh nghiệp
Người dùng bên ngoài Việt Nam
1.3. Phạm vi hệ thống
Xây dựng phần mềm khung được phát triển trên nền tảng phần mềm mã nguồn mở Liferay.
Phát triển các ứng dụng, dịch vụ chạy trên cổng sau.
- Các ứng dụng, dịch vụ: Quản trị và xuất bản nội dung, hỏi đáp trực tuyến,... - Các dịch vụ công trực tuyến: Đăng ký kinh doanh, văn bản pháp quy, thủ
tục hành chính,...
- Các ứng dụng tiện ích: Liên kết website, thăm dò dư luâ ̣n , công cụ quản lý và xuất bản website trực tuyến, …
1.4. Yêu cầu hê ̣ thống
cổng giao tiếp điện tử đảm bảo các tiêu chí như sau:
Hệ thống xây dựng trên nền web, kiến trúc hợp logic, giao diện thân thiện với người dùng.
Đáp ứng đầy đủ các tiêu chuẩn công nghê ̣ và chuẩn trao đổi dữ liê ̣u , các tiêu chuẩn về tính năng và kỹ thuật của cổng thông tin điê ̣n tử nêu trong công văn số 1654/BTTTT-ƯDCNTT, ban hành ngày 27/05/2008 của bộ Thông tin và Truyền thông.
Công nghệ tiên tiến: Hệ thống được thiết kế với công nghệ tiên tiến trên thế giới trong lĩnh vực công nghệ thông tin, viễn thông, đồng thời phù hợp với tình hình phát triển và ứng dụng tại Việt Nam.
Tính mở: Hệ thống được thiết kế và xây dựng trên nguyên tắc mở, nghĩa là có khả năng đáp ứng được các nhu cầu gia tăng sử dụng trong tương lai. Việc nâng cấp phần mềm, thêm các dịch vụ, ứng dụng trong tương lai sẽ được thực hiện dễ dàng ở các điểm mấu chốt mà không làm ảnh hưởng đến hệ thống hiện tại
cũng như các ứng dụng, dịch vụ đang khai thác. Viê ̣c đầu tư mở rô ̣ng phải mang tính kế thừa.
Tính sẵn sàng cao: Hệ thống thông tin không chỉ được thiết kế để phục vụ cho nhu cầu trước mắt mà nó còn dự báo và đáp ứng các nhu cầu mới, ngày càng tăng trong thời gian ít nhất 5 -10 năm.
Tính linh hoa ̣t: Hệ thống được xây dựng đảm bảo dễ dàng chuyển đổi chức năng, thêm bớt từng bộ phận nhỏ để thỏa mãn nhu cầu đa dạng của từng đối tượng phục vụ.
Độ ổn định: Hệ thống phải đảm bảo khả năng hoạt động liên tục , có giải pháp và sao lưu, đảm bảo khả năng khôi phục nhanh và thay thế nóng, có giải pháp về đường truyền dự phòng trong trường hợp kết nối với các hệ thống khác và internet.
Độ tin cậy: Cấu trúc hệ thống phải đảm bảo hiệu suất khai thác dịch vụ, ứng dụng tối đa, đồng thời hạn chế các điểm gây lỗi tiềm tàng.
An toàn và bảo mật: Trong các hệ thống hạ tầng truyền thông và công nghệ thông tin hiện đại, việc kết nối với các hệ thống khác là đương nhiên, trong đó có khả năng kết nối với mạng internet để tận dụng các lợi thế về công nghệ và chi phí của mạng này. Vì vậy, vấn đề an toàn và bảo mật phải được đảm bảo tối đa, trong khi vẫn phải cho phép người sử dụng khai thác hệ thống một cách hiệu quả.
Hiệu năng: Hiệu năng là thước đo hàng đầu để đánh giá sự thành công của việc thiết kế, xây dựng hạ tầng truyền thông và công nghệ thông tin. Hệ thống sẽ được thiết kế và xây dựng để tối ưu hóa các nhu cầu khai thác, ứng dụng, cho phép phân phối và sử dụng tài nguyên hợp lý.
Bảo vệ đầu tư lâu dài: Lựa chọn công nghệ tiên tiến và thiết kế phù hợp để tạo điều kiện vận hành, bảo trì lâu dài cũng như dễ dàng mở rô ̣ng hệ thống.
1.5. Giải pháp công nghệ
Hê ̣ thống phát triển trên nền tảng Liferay portal với các công nghê ̣ tiên tiến , công cụ lập trình mạnh , tâ ̣n du ̣ng được tất cả các thế ma ̣nh của Liferay , đáp ứng tốt các yêu cầu hê ̣ thống đã nêu trên.
1.6. Môi trường triển khai
Với nền tảng công nghệ Liferay, cổng giao tiếp điện tử có thể triển khai trên nhiều môi trường khác nhau bằng sự kết hợp giữa hệ điều hành, application server và database. Sự linh hoạt này cho phép cổng giao tiếp điện tử có được phương án triển