1. Trang chủ
  2. » Luận Văn - Báo Cáo

nghiên cứu hệ thống quản lý hội thảo myreview

73 278 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 73
Dung lượng 2,7 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Tóm tắt Trong bài báo cáo luận văn này, em trình bày việc tiếp cận hệ thống quản lý hội thảo Myreview, cài đặt, triển khai trên server trong bài em sẽ cài trên Ubuntu, việt hóa hệ thống

Trang 1

TRƯỜNG ĐẠI HỌC CẦN THƠ KHOA CÔNG NGHỆ THÔNG TIN & TRUYỀN THÔNG

LUẬN VĂN TỐT NGHIỆP ĐẠI HỌCNGÀNH MẠNG MÁY TÍNH VÀ TRUYỀN THÔNG

Cần Thơ, 05/2015

Trang 2

BỘ GIÁO DỤC VÀ ĐÀO TẠO

TRƯỜNG ĐẠI HỌC CẦN THƠ KHOA CÔNG NGHỆ THÔNG TIN & TRUYỀN THÔNG

BỘ MÔN MẠNG MÁY TÍNH VÀ TRUYỀN THÔNG

LUẬN VĂN TỐT NGHIỆP ĐẠI HỌCNGÀNH MẠNG MÁY TÍNH VÀ TRUYỀN THÔNG

Cần Thơ, 05/2015

Trang 3

NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN

Trang 4

NHẬN XÉT CỦA HỘI ĐỒNG PHẢN BIỆN

Trang 5

LỜI CẢM ƠN

Em xin gửi lời cảm ơn chân thành đến quý thầy/cô khoa CNTT đã cho em cơ hội thực hiện bài nghiên cứu này và thầy Đỗ Thanh Nghị đã giúp đỡ , hỗ trợ cho em rất nhiều trong quá trình nghiên cứu và triển khai hệ thống này

Qua bài nghiên cứu này, em đã tự tìm hiểu thêm về một lĩnh vực mới là Zend Framework, các tổ chức và hoạt động của Zend Framework; hiểu biết thêm về php template giúp cho việc trình bày và hỗ trợ đa ngôn ngữ dễ dàng hơn Bài nghiên cứu này làm việc trên môi trường Unix nên em có cơ hội tìm hiểu một

số vấn đề liên quan đến LAMP - Web server trên Linux, tìm hiểu được các tiện ích mà Linux hỗ trợ, từ đó em đã vận dụng tốt vào bài nghiên cứu này Đó

là về phần hiểu biết thêm về cấu trúc của một hệ thống, còn về tổ chức quản lý hội thảo Myreview, đã cho em biết thêm về các chức năng quản lý mà trước giờ hệ thống quản lý truyền thống phải tốn khá nhiều thời gian, từ đó mà em

có thể xây dựng, triển khai, hoàn thiện cũng như nâng cấp đổi mới để phù hợp với nhu cầu trong tương lai

Trang 6

MỤC LỤC

LỜI CẢM ƠN 5

MỤC LỤC 6

DANH MỤC HÌNH 8

Tóm tắt 9

Abstract 9

GIỚI THIỆU 10

I Đặt vấn đề 10

a) Qui trình tổ chức hội thảo truyền thống 10

b) Lý do chọn đề tài 10

c) Tóm tắt lịch sử giải quyết 10

d) Mục tiêu nghiên cứu 11

e) Đối tượng và phạm vi 11

f) Nội dung nghiên cứu và những đóng góp 12

g) Tổng quan quyển luận văn 13

CHƯƠNG 1 – MÔ TẢ BÀI TOÁN 14

1.1 Khái quát về đề tài nghiên cứu Myreview 14

1.2 Phân tích vấn đề trong hệ thống và chọn lựa giải pháp 15

CHƯƠNG 2 – THIẾT KẾ VÀ CÀI ĐẶT 18

2.1 Cài đặt môi trường triển khai hệ thống Myreview 18

2.1.1 Cấu hình Apache 18

2.1.2 Cấu hình PHP: 19

2.1.3 Thiết lập Host ảo 19

2.1.4 Tìm hiểu về Zend 20

2.2 Tổng thể của hệ thống quản lý Myreview 21

2.2.1 Cấu trúc cây thư mục 21

2.2.2 Kết nối CSDL 23

2.2.3 Cấu trúc cơ sở dữ liệu của Myreview 24

2.2.4 Xây dựng lớp View kế thừa từ Zend_View 30

2.3 Tiến hành thực hiện giải pháp 31

2.3.1 Thiết lập mail server 31

2.3.2 Kiểm tra tình trạng gửi mail hay tin nhắn 34

2.3.3 Tiện ích soạn thảo 34

2.3.4 Điều chỉnh giai đoạn nộp bài 35

2.3.5 Điều chỉnh giai đoạn phân công 42

2.3.6 Điều chỉnh giai đoạn lựa chọn 42

2.3.7 Đa ngôn ngữ cho hệ thống 43

a Sửa đổi văn bản 44

b Nhập xuất bản dịch 45

CHƯƠNG 3 – CHẠY THỬ HỆ THỐNG VÀ ĐÁNH GIÁ 49

3.1 Postfix (mail server) 49

3.2 CKEditor 49

3.3 Đếm từ 50

3.4 Mail xác nhận thành công theo đa ngôn ngữ 51

Trang 7

3.5 Gửi mail khi có tác giả upload tập tin bài báo đầy đủ lên hệ thống 52

3.6 Hiển thị đánh giá đúng và phù hợp ngôn ngữ 52

KẾT LUẬN 54

PHỤ LỤC 1 57

PHỤ LỤC 2 58

PHỤ LỤC 3 59

HƯỚNG DẪN SỬ DỤNG 59

I TRANG CHỦ - ĐĂNG KÝ – ĐĂNG NHẬP 59

a Tổng quan trang chủ của trang web quản lý bài báo 59

b Đăng ký vào hệ thống 60

c Đăng nhập 60

II CHUẨN BỊ HỘI THẢO 61

a Thiết lập hình thức cấu hình cho hội nghị 61

b Tạo chủ đề nghiên cứu 63

c Tạo người dùng 64

d Gửi lời mời đến người nhận xét 65

e Tạo cấu trúc cho bài tóm tắt 66

f Tạo tiêu chí đánh giá bài báo 66

III TRANG CHỦ CỦA HỘI THẢO 67

IV QUÁ TRÌNH CỦA MỘT HỘI THẢO 69

a Nộp bài báo 69

b Phân công bài báo 70

c Nhận xét 71

d Giai đoạn lựa chọn bài báo 73

Trang 8

DANH MỤC HÌNH

Trang

Hình 2.1 Cây thư mục của Myreview 21

Hình 3.1 Giao diện CKEditor trên hệ thống 49

Hình 3.2 Kết quả nhận được từ mail người nhận 49

Hình 3.3 Giao diện nộp bài với ngôn ngữ tiếng Việt 50

Hình 3.4 Giao diện nộp bài với ngôn ngữ tiếng Anh 50

Hình 3.5 Thông báo thành công với hai ngôn ngữ 50

Hình 3.6 Thư nhận được tại hộp thư của chủ tịch 51

Hình 3.7 Giao diện bảng điểm đánh giá của từng bài báo .52

Hình 4.1 - Trang chủ hệ thống quản lý bài báo 58

Hình 4.2 – Đơn đăng ký 59

Hình 4.3 – Đăng nhập 60

Hình 4.4 Form cấu hình 61

Hình 4.5 Tạo chủ đề .62

Hình 4.6 Form tạo người dùng 63

Hình 4.7 Danh sách người dùng 63

Hình 4.8 Mẫu thư mời người nhận xét 64

Hình 4.9 Giao diện quản lý cấu trúc bài tóm tắt .65

Hình 4.10 Giao diện của trang chủ hội thảo .65

Hình 4.11 Giao diện của trang chủ hội thảo .66

Hình 4.12 Trang chủ sau khi đăng nhập thành công .67

Hình 4.13 Mẫu sửa thông tin cá nhân 67

Hình 4.14 Giao diện nộp bài tóm tắt 68

Hình 4.15 Giao diện chính của tác giả 68

Hình 4.16 Giao diện gán bài báo bằng tay 70

Hình 4.17 Giao diện người nhận xét 70

Hình 4.18 Giao diện tình trạng bài báo 72

Trang 9

Tóm tắt

Trong bài báo cáo luận văn này, em trình bày việc tiếp cận hệ thống quản lý hội thảo Myreview, cài đặt, triển khai trên server (trong bài em sẽ cài trên Ubuntu), việt hóa hệ thống và hiệu chỉnh những lỗi của hệ thống cho hoàn thiện và phù hợp với yêu cầu, yêu cầu ở đây là hệ thống phải thuận lợi trong việc nộp bài báo với nhiều ngôn ngữ, gửi mail sau khi người dùng nộp bài thành công, phân công, đánh giá và lựa chọn bài báo ổn định, hiển thị điểm đánh giá chính xác và giao diện hỗ trợ đa ngôn ngữ Đây là một phần mềm quản lý hội thảo trên nền web (mã nguồn mở) và

đã áp dụng ở nhiều cuộc hội thảo khác nhau trên thế giới vì chức năng của nó hổ trợ tốt việc quản lý này Đầu tiên, em sẽ trình bày cách cài đặt hệ thống, cơ sở dữ liệu của hệ thống, cấu trúc hệ thống, cũng như cách vận hành của Myreview Sau đó, em tiến hành cài đặt mail server (dùng tiện ích Postfix của Ubuntu) hỗ trợ cho các vấn

đề về gửi mail của hệ thống, việt hóa (cũng như đa ngôn ngữ cho hệ thống) bằng cách thay đổi các mã nguồn tĩnh trước kia của hệ thống thành mã nguồn động được tham chiếu từ cơ sở dữ liệu, hiệu chỉnh lỗi còn gặp phải trong hệ thống cũng như bổ sung một số mã nguồn giúp hệ thống đặt yêu cầu đặt ra

Abstract

In my thesis, I will present about approaching Myreview , a management conference system, how to install, to build on web server (i will install it on Ubuntu server), translate into Vietnamese for this system and modify some error of system perfectly and approciate for the request which has to submit the paper with multi-language; send mail after a user‟s sucess submits a paper; paper assignment, review and selection stably, display review mark exactly and website has a good multi-language support Myreview is a management conference software on the web (open source, is build based on Zend framework), is used in many different conferences on the world because its functions support very well these management that need to have in a conference First of all, I will show how to install Mryeveiw system, the database of system, structure system and its operation After that, present how to set up mail server (use Postfix utility of Ubuntu) that will be used in the mail sending, translate into Vietnamese for system ( or make completely the multi-language function of system) by change static code to dynamic code which is referenced from the database of system, edit and add some code to match the request

Trang 10

GIỚI THIỆU

I Đặt vấn đề

a) Qui trình tổ chức hội thảo truyền thống

- Khi có quyết định tổ chức hội thảo, ban tổ chức đưa ra thông báo trên các bảng thông báo hay trên các website chung của tổ chức

- Tác giả muốn tham gia gửi bài viết, sẽ gửi thư đính kèm bài viết đến cho ban tổ chức

- Ban tổ chức sẽ lập danh sách những người có khả năng trở thành người nhận xét, rùi gửi đến họ Khi nhận được bài viết ban tổ chức tiến hành gửi thư đính kèm bài viết cho người phản biện để tiến hành đánh giá, cùng với mẫu đánh giá để có bài đánh giá theo quy tắc thống nhất

- Đánh giá xong, người phản biện gửi lại kết quả đánh giá cho ban tổ chức, cho biết đó là bài đánh giá cho bài viết nào

- Dựa vào kết quả đánh giá từ các email, ban tổ chức phải lựa chọn rồi đưa

ra chương trình hội thảo

b) Lý do chọn đề tài

Ngày nay, việc ứng dụng công nghệ để hỗ trợ tổ chức các cuộc hội thảo khoa học ở nước ta và kể cả thế giới là khá phổ biến Tuy nhiên để liệt kê một ứng dụng hoàn thiện được tất cả chức năng gửi bài, đánh giá và cập nhật bài báo thì vẫn chưa xây dựng được Đa phần hội thảo vẫn còn tổ chức theo kiểu truyền thống, tức là mọi thứ đều thông qua email Điều này dễ làm thất lạc bài cũng nhưng là các phần đánh giá cũng không thể nào kiểm soát

Để tránh mất thời gian cho hội đồng chủ tịch cũng như hội đồng phản biện, thì cần phải có một hệ thống quản lý hội thảo trực tuyến trên web, theo sự đề xuất của thầy Đỗ Thanh Nghị, em chọn hệ thống quản lý của Myreview, hệ thống dựa trên giao thức “easychair” – dùng để tổ chức hội thảo tầm cỡ quốc tế - giúp quản lý thông tin về bài báo, điểm đánh giá trên cơ sở dữ liệu máy tính; nộp bài báo, bài đánh giá có sự xác nhận ngay sau đó qua email; hổ trợ đa ngôn ngữ trên hệ thống

c) Tóm tắt lịch sử giải quyết

Với nhu cầu như hiện nay, việc nghiên cứu để xây dựng một hệ thống website hội thảo đáp ứng tất cả các chức năng trên là rất cần thiết Sự ra đời

Trang 11

của hệ thống quản lý hội thảo Myreview là một bước phát triển mới cho lĩnh vực tổ chức hội thảo, đem đến cho ban tổ chức nhiều sự thuận tiện trong quá trình thực hiện nhiệm vụ của mình, góp phần xây dựng thành công cho các chương trình hội thảo Các chức năng của Myreview rất tốt nhưng có một số vấn đề còn sót lại khiến cho hệ thống còn mắc vài mâu thuẩn không phù hợp với yêu cầu đặt ra trước kia, chẳng hạn như Myreview có đề ra chức năng đa ngôn ngữ cho hệ thống, tuy nhiên toàn bộ hệ thống không hề đáp ứng theo yêu cầu này và còn một số vấn đề mà Myreview giải quyết mà không phù hợp với yêu cầu được đặt ra ở trên

d) Mục tiêu nghiên cứu

Nghiên cứu hệ thống Myreview để rồi nắm vững yêu cầu cần có của một

hệ thống, kiến trúc và cách vận hành của Myreview, mô hình mà Myreview đang sử dụng Sau đó phân tích và nghiên cứu về các vấn đề mà Myreview giải quyết, tìm ra sự đúng đắn của cách giải quyết ấy nếu có lỗi thì sửa đổi, việt hóa hệ thống có thể tiến tới việc hiển thị ngôn ngữ tùy thuộc vào sự lựa chọn của người dùng, đảm bảo chức năng gửi thông báo và tin nhắn được thực hiện tốt

e) Đối tượng và phạm vi

Đề tài sẽ xoay quanh hệ thống quản lý hội thảo Myreview, rồi sau khi đã nắm vững cách vận hành và kiến trúc của Myreview thông qua việc cài đặt Myreview Để xây dựng một web server cho hệ thống tốt nhất, ta cần phải xây dựng trong môi trường Unix, em chọn hệ điều hành phổ biến nhất là Ubuntu

để cài đặt Myreview Web server trong môi trường Unix có tên gọi tắt là LAMP LAMP (Linux, Apache, MySQL và Php ) hiện nay là một được sử dụng nhiều trong việc phát triển web, vì nó có tính an toàn cao, không quan tâm đến vấn đề bản quyền, các phần mềm dễ dàng cài đặt Tuy rằng, tiện ích sendmail đã có sẵn trong Linux, nhưng để chọn được một tiện ích vừa nhanh,

dễ cấu hình và bảo mật cao, nên chọn Postfix làm mail service cho Myreview Sau khi đọc bản Manual của Myreview, nhận thấy rằng hệ thống được triển khai trên nền Zend Framework Cần phải biết rõ Zend Framework là gì thì mới

có thể tiếp cận hệ thống này, tuy nhiên hiện nay Zend Framework có rất nhiều phiên bản (1.x, 2.x, gần đây nhất là 3.x) Cần phải biết rõ Myreview đang sử dụng phiên bản Zend nào để biết rõ hơn, vì mỗi bản sẽ có những thay đổi khác nhau và việc xác định có 2 cách:

- dùng câu lệnh trong file php: echo Zend_Version ::getLatest();

- dùng câu lệnh cmd : zf show version (nếu có sử dụng zend_tool)

Trang 12

Myreview đang sử dụng thư viện của Zend 1.x, là một phiên bản đã được nhiều người biết từ rất lâu, có thể vì thế mà Myreview mới cài đặt để giúp cho nhiều người dùng muốn tiếp cận Myreview có thể dễ dàng hiểu được

Ngôn ngữ PHP (PHP: Hypertext Preprocessor): Myreview dùng ngôn ngữ

PHP để tạo ứng dụng hội thảo này, nó yêu cầu PHP phải từ 5.x trở lên PHP là ngôn ngữ lập trình theo kịch bản, là ngôn ngữ tốt nhất, dễ nhất để viết ứng dụng Web tĩnh, có thể dễ dàng nhúng vào trang HTML vì thế mà nó là ngôn ngữ lập trình cho ứng dụng web phổ biến nhất (Wiki, 2015)

Môi trường chạy ứng dụng Myreview là Ubuntu 12.04 Vì Ubuntu quản lý hệ thống tập tin thư mục theo phân quyền người sở hữu và nhóm người sở hữu rất chắc chắn, cần phải nắm vững kiến thức về Ubuntu mới có thể tiếp cận đúng đắn hệ thống ta đang cần nghiên cứu và hiệu chỉnh, Myreview

Hệ quản trị cơ sở dữ liệu(CSDL) MySQL( SQL là chữ viết tắt của Structured Query Language): là nơi lưu trữ dữ liệu của ứng dụng Hiện nay có rất nhiều

hệ quản trị CSDL phổ biến như Microsoft SQL Server, MySQL, Oracle,… nhưng MySQL là hệ quản trị được các nhà lập trình ưa chọn để phát triển ứng dụng Vì MySQL là cơ sở dữ liệu tốc độ cao, ổn định và dễ sử dụng, có tính khả chuyển, hoạt động trên nhiều hệ điều hành cung cấp một hệ thống lớn các hàm tiện ích rất mạnh (Wiki, 2015)

Chương trình máy chủ Apache HTTP (Hyper Text Transfer Protocol): là chương trình dành cho máy chủ (server) đối thoại với máy khách (client) qua giao thức HTTP Tất nhiên, cũng sẽ có rất nhiều máy chủ Web hiện nay nhưng

để có thể chọn lựa phù hợp ứng hỗ trợ thì phù thuộc vào ngôn ngữ lập trình ta

sử dụng cho hệ thống Ví dụ: IIS của Microsoft dành cho *.asp, *.aspx ; Apache dành cho *.php ; Sun Java System Web Server của SUN dành cho

*.jsp

Dùng quản lý CSDL bằng giao diện phpMyAdmin: đây là công cụ mã nguồn

mở viết bằng PHP, nó dùng để quản lý CSDL MySQL thông qua trình duyệt Web

f) Nội dung nghiên cứu và những đóng góp

- Cài đặt webserver Apache lên Ubuntu, thiết lập cấu hình cho phù hợp với yêu cầu đặt ra của Myreview

- Cài đặt , cấu hình PHP 5.2.x trở lên, tương thích yêu cầu của Myreview

- Tìm hiểu cơ sở dữ liệu (CSDL) của myreview trước khi nhập vào CSDL

Trang 13

- Thiết lập Host ảo cho phù hợp với Zend framework cũng như hệ thống Myreview

- Tiến hành cài đặt Myreview trên Ubuntu, chạy các chức năng cần nghiên cứu bằng cách tiến hành thực hiện tuần tự của một hội thảo thực sự Để phát hiện các vấn đề Myreview giải quyết như thế nào và cần sửa đổi gì?

- Sau khi tìm thấy được lỗi và định hình các vấn đề cần phải giải quyết trong hệ thống này, trước tiên cần tìm hiểu kiến trúc cây thư mục Myreview dựa trên kiến thức về Zend framework

- Bắt đầu chỉnh sửa lỗi trong giai đoạn của hội thảo với Myreview, kiểm tra theo từng giai đoạn của hội thảo để không bỏ sót chức năng quan trọng nào Thêm một số chức năng cũng như tiện ích để hệ thống tiện lợi hơn cho hội đồng cũng như người sử dụng

- Thay đổi mã nguồn tĩnh thành mã nguồn động thêm chiếu từ CSDL để linh hoạt trong vấn đề hiển thị ngôn ngữ Đóng góp phần việt hóa cho hệ thống

- Kiểm thử lần cuối để xác định là hệ thống đã hoàn toàn phù hợp với yêu cầu đặt ra

g) Tổng quan quyển luận văn

Bố cục quyển luận văn gồm 3 phần:

Phần giới thiệu (bên trên): là phần nói khái quát về yêu cầu cần đạt được trong

đề tài nghiên cứu này, nêu ra yêu cầu cần đạt sau cùng và các phạm vi đối tượng mà đề tài cần quan tâm

Phần nội dung: gồm có 3 chương, nội dung là trình bày một cách chi tiết về nội dung nghiên cứu, các giải quyết và kết quả đạt được sau khi giải quyết Chương 1: Mô tả bài toán

Chương 2: Thiết kế và cài đặt giải pháp

Chương 3: Kiểm thử và đánh giá

Phần kết luận: tóm tắt lại hệ thống quản lý Myreview, yêu cầu nào đạt ra được giải quyết, sau cùng nếu hướng phát triển tiếp theo cho hệ thống

Phụ lục: các mô hình CSDL, mô hình hoạt động của mail server, hướng dẫn sử dụng (theo trình tự của một hội thảo)

Trang 14

CHƯƠNG 1 – MÔ TẢ BÀI TOÁN

1.1 Khái quát về đề tài nghiên cứu Myreview

Myreview là phần mềm quản lý hội thảo, được xây dựng và quản lý dựa trên nền web Ban đầu nó được sử dụng để quản lý hội nghị ACM về thông tin địa lý (ACM-GIS) Hệ thống này đang được sử dụng rộng rãi và được tích hợp thêm nhiều tính năng vào hệ thống

Bài báo cáo này sử dụng tài liệu hướng dẫn phiên bản 2 của myreview Phiên bản này cung cấp đầy đủ các danh sách về mặt chức năng Thêm vào đó, nó dựa trên kiến trúc tổ chức tốt và công cụ tiên tiến, Zend Framwork, nó làm cho

sự phát triển và đánh giá của hệ thống trở nên dễ dàng và đáng tin cậy hơn Các chức năng của hệ thống cũng có một số phần giống như một hội thảo truyền thống như:

- Quản lý người dùng:

Người dùng có thể tự đăng ký vào hệ thống hoặc được người chủ tịch thêm vào từ “Giao diện quản lý người dùng” Mời người nhận xét bằng cách gửi mail mời, có đường link dẫn chấp nhận hay từ chối

- Nộp bài báo:

Tác giả có thể nộp một bài báo tóm tắt cùng với danh sách các tác giả, các chủ đề chính của bài báo và câu trả lời cho câu hỏi được xác định bởi hội đồng chủ tịch Sau khi nộp bài thành công, mail sẽ được gửi cho tác giả

- Phân công bài báo cho người nhận xét:

Người quản trị có thể phân công bài báo cho người nhận xét một cách thủ công Phân công xong, sẽ gửi mail cho tất cả người nhận xét thông báo vào nhận xét

-Đánh giá/nhận xét:

Người nhận xét có thể nối kết đến hệ thống email đang được sử dụng của

họ như là đăng nhập và mật khẩu Họ có thể tải những bài báo mà họ được phân công, trình cho hệ thống bài nhận xét của mình và sửa đổi nó tại bất

cứ lúc nào

-Lựa chọn bài báo:

Trang 15

Dựa trên các đánh giá, người quản trị đưa ra quyết định là chấp nhận hay từ chối bài báo Một email sẽ được gửi đến cho tác giả về tình trạng bài báo của mình cùng với đánh giá của người nhận xét

- Trình bày không phụ thuộc/liên quan vào ứng dụng:

Myreview sử dụng các biểu mẫu PHP(PHP template), vì thế mà sự trình bày thì nó không phụ thuộc vào ứng dụng bên trong Chẳng hạn như, có thể cài đặt tự do những thiết kế đồ họa của bạn và gán phần chức năng của Myreview rất dễ dàng, hay tất cả các mail gửi cho nhiều người có thể sửa

đổi mà không hề liên quan đến mã PHP đã được viết trong ứng dụng

Hệ thống có thể được tải về từ: http://myreview.sourceforge.net

Hệ thống dựa trên giấy phép GPL, là bản quyền của Philippe Rigaux

1.2 Phân tích vấn đề trong hệ thống và chọn lựa giải pháp

Phân tích các vấn đề mà hệ thống giải quyết chưa đáp ứng được yêu cầu của một hội thảo mà đã đặt ra ở bên trên Khiến cho hệ thống còn gặp lỗi và không hoàn thiện Phần trình bày sẽ đi theo từ công cụ cho đến nội dung của

hệ thống, nội dung sẽ được nêu tuần tự theo hoạt động của một hội thảo

Cấu hình và cài đặt môi trường webserver phù hợp với Myreview

Với phiên bản này của Myreview, thì cài đặt webserver cũng cần phải chú ý

về phiên bản Đối với Apache và MySql thì không có vấn đề gì, nhưng đối với PHP, không chỉ trên 5.x trở lên mà nó còn phải nhỏ hơn 5.3, vì các hàm kết nối CSDL cũ của Myreview vẫn còn giữ, do nâng cấp từ phiên bản 1 Nếu cài đặt Php quá lớn sẽ khiến cho hệ thống gặp lỗi Tuy nhiên, với môi trường Ubuntu 12.04 thì khi cài đặt nó sẽ cài đặt PHP phù hợp

Tiện ích mail của hệ thống

Hệ thống sử dụng rất nhiều tiện ích mail để thông báo cũng như là nhắn tin Ở đây, hệ thống gửi mail bằng hàm mail() của PHP, vì gần đây các dịch vụ mail hiện đang kiểm soát chứng thực nghiêm ngặt để tránh tình trạng boom mail, nên nếu chỉ dùng hàm mail() này sẽ không thể thực hiện được, trong đề tài nghiên cứu này sẽ sử dụng tiện ích postfix (dùng trên môi trường unix)

Tại sao lại chọn postfix để chứng thực gửi mail?

Postfix là chương trình mã nguồn mở và miễn phí (free and open-source)

dùng để gửi thư điện tử (Mail Transfer Agent – MTA) được tạo ra ban đầu tại IBM với mục tiêu là thay thế chương trình gửi mail phổ biến(Linux)

Trang 16

là Sendmail Postfix được phát triển dựa trên mục tiêu là nhanh, dễ quản lý và bảo mật

Việc gửi mail hay tin nhắn

Khi mail được gửi đi, Myreview không có xét trường hợp mail bị lỗi, cứ như thế mà thông báo “Mail đã thành công”, trong khi chưa có mail nào được gửi Lúc này cần phải sửa đổi trong phần code của Model Mail

Tiện ích soạn thảo

Để dễ dàng cho việc định dạng, hệ thống sẽ bổ sung thêm tiện ích Jquery tên

“CKEditor”, công cụ soạn thảo với nhiều lựa chọn tùy chỉnh cho văn bản

Giai đoạn nộp bài

- Trong giao diện nộp bài tóm tắt của tác giả, có quy định số từ được nộp tối

đa, vì thế khi tác giả soạn thảo hoặc thiết lập nội dung thì hệ thống có hỗ trợ đếm từ Tuy nhiên, việc đếm từ của Myreview nêu ra chỉ đúng với tiếng Anh hay nói đúng hơn là mã nguồn đếm từ của Myreview sẽ sai khi

có dấu, ngoài ra khi có kí tự đặc biệt cũng không thể nộp thành công bài báo Để có thể đếm từ tiếng Việt có dấu chính xác, ta sẽ cắt chuỗi văn bản

đó theo vào trong một mảng, cắt bởi dấu khoảng trắng “ ” Đếm số phần tử trong mảng thì sẽ biết được số từ trong văn bản

- Sau khi nộp bài xong, mail sẽ được gửi đến tác giả Nội dung mail không những thông báo cho người tác giả biết là đã thành công, mà còn phải cho biết thông tin về hạn chót nộp, đường dẫn xem chi tiết

Thông tin hạn chót cần phải hiển thị đúng với ngôn ngữ mà người dùng đang truy cập vào hệ thống Để làm được điều này, ta sẽ dùng đến hàm Zend_Date và Zend_Locale để hiển thị đúng thứ ngày tháng theo quy định của một quốc gia

- Upload bài đầy đủ, mặc dù có nói trong phần hướng dẫn tay, nhưng Myreview không có hỗ trợ chức năng này Em đã thêm hàm uploadAction vào AuthorController, nhằm mục đích báo cho chủ tịch biết là ai đã upload bài báo gì lên hệ thống Ngoài ra, có trường hợp khi người dùng không chưa đưa tên tập tin cần upload lên và ấn upload, hệ thống vẫn hiện thông báo là đã upload thành công, như vậy là bất hợp lý, vậy khi nhấp upload, hệ thống sẽ thông báo là không thành công, ngăn không cho thực hiện tiếp tục

Trang 17

- Gần đến giai đoạn nộp bài, chủ tịch sẽ gửi mail nhắc đến các tác giả chưa nộp bài, nhằm mục đích thông báo cho tác giả nếu như họ quên hay bận Nhưng mail nhắc nhở này cũng xác định cho các tác giả sau này không khiếu nại vì khi hết hạn, đóng không cho nộp bài, cùng lúc đó, sẽ xóa các thông tin của những bài không nộp

Giai đoạn phân công

- Đến thời gian hạn chót nộp bài, hệ thống cho phép chủ tịch vào form cấu hình để đóng giai đoạn mà không làm gì khác Nhưng lúc này, để giảm bớt lượng bài trong CSDL khi có một số bài không nộp đúng hẹn và không có yêu cầu dời hẹn, tạo ra một chức năng vừa đóng nộp bài, vừa xóa có bài chưa nộp bài đầy đủ

Giai đoạn đánh giá

- Bổ sung chức năng gửi mail cho những người đánh giá có liên quan đến một bài báo nào đó Mục đích có thể là thông báo những thông tin đặc biệt liên quan về bài báo đó hay là khi có bài báo này trước đó có đụng độ về điểm đánh giá, chủ tịch sẽ gửi mail cho những người này về việc thảo luận

của hội đồng chủ tịch khi để có quyết định

Hệ thống đa ngôn ngữ

- Có một số đoạn hệ thống có khả năng chuyển đổi ngôn ngữ khi người dùng chọn ngôn ngữ nào đó Tuy nhiên ở những phần khác của hệ thống lại không có, đặc biệt là trong giao diện của chủ tịch, các mã nguồn đều bị

cố định bằng văn bản tĩnh tiếng Anh Tất cả sẽ được chuyển đổi về văn bản động, được tham chiếu từ CSDL

- Bổ sung bản dịch việt hóa vào hệ thống

Trang 18

CHƯƠNG 2 – THIẾT KẾ VÀ CÀI ĐẶT

2.1 Cài đặt môi trường triển khai hệ thống Myreview

2.1.1 Cấu hình Apache

.htaccess là tập tin được dùng để thay đổi cấu hình trên webserver mà không cần phải vào chính tập tin cấu hình gốc (httpd.conf) để cấu hình Tập tin này thường được đặt bên trong các thư mục nơi muốn cấu hình theo mong muốn Mục đích là thay đổi tên đường dẫn thân thiện với người dùng và tương thích với yêu cầu của Zend Framework; cấm tất cả mọi IP vào thư mục

Để htaccess có thể chạy tốt cần phải thực hiện hai việc sau:

sudo /etc/init.d/apache2 restart

Phân tích mã code trong tập tin htaccess trong thư mục gốc:

Mở chế độ mod_rewrite, tạo ra điều kiện xét khi rewrite URL, sau cùng là viết URL đó lại như thế nào? Đây là nội dung được dùng phổ biến với tất cả các website

Ngoài ra, cần phải quan trọng người dùng khi chạy hệ thống trên Ubuntu, vì Ubuntu có cơ chế người dùng rất chặt chẽ Tuy rằng, chúng ta qui định project của hệ thống là của admin user Ubuntu, thì khi dùng trên chính server thì người dùng sẽ là admin Nhưng thực tế, chúng ta đang dùng Apache web server để duyệt web, lúc này chúng ta đang là người dùng có tên www-data, đây là người dùng mặc định của Apache Để có thể có đủ và đúng quyền Ta

sẽ đặt nhóm www-data là nhóm chủ sở hữu của myreview và thêm user admin

Trang 19

Ubuntu vào nhóm này Từ đây, chúng ta mới có thể upload file mà không bị lỗi do quyền gây ra

2.1.2 Cấu hình PHP:

- Tham số file_uploads phải được bật on, thì tác giả mới có thể upload

tập tin lên server

- Kiểm tra giá trị upload_tmp_dir (thiết lập kích thước tối đa là 2MB)

và upload_max_filesize

- Lưu ý rằng tùy chọn magic_quotes_gpc không ảnh hưởng đến hành vi của MYREVIEW Vì vậy, magic_quotes_gpc có thể on hay off đều không khác biệt (giá trị off sẽ hiệu quả hơn)

2.1.3 Thiết lập Host ảo

Tạo ra một máy chủ ảo cho trang web và tài liệu trong thư mục www Điều này đảm bảo rằng các tập tin được lưu trữ trong thư mục web root và các truy cập độc hại không thể truy cập bất cứ điều gì ngoài các tập tin là một URL

- Copy tập tin tên “default” (là tập tin virtual host có sẳn của apache2) trong thư mục sites-available Thành tập tin tên “mysite” cũng trong thư mục này

- Vào tập tin “mysite”, chỉnh lại các tham số:

o DocumentRoot: đường dẫn gốc của hệ thống

o Directory: là đường dẫn đến hệ thống

Tập tin “myfile” có nội dung giống như sau:

Trang 20

Từ đây Virtual Host sẽ thực hiện cùng với Zend Framework, viết lại URL để Zend có thể hiểu được và trỏ đúng đến vị trí ta cần truy cập

2.1.4 Tìm hiểu về Zend

Đề tài nghiên cứu dựa trên ứng dụng mã nguồn mở myreview_v2.01.00 Đặc biệt trong thư mục library, cần phải đảm bảo là có đủ có thư viện Zend và Zmax, kèm theo là thư mục chứa có hàm chức năng được sử dụng trong Myreview

- Hiện nay Zend được coi là nền tảng cơ bản và đầy đủ, nhưng lại phức tạp Được hổ trợ rất nhiều từ công ty Zend, có thể xem hướng dẫn sử dụng của họ trên trang chủ Nó là một phần mềm mã nguồn mở, viết hướng đối tượng, xây dựng trên mô hình MVC, sử dụng PHP 5.2.3 trở lên Trước khi nghiên cứu về hệ thống Myreview, em đã có đọc qua một

số tài liệu để học cơ bản về Zend 1.x, em thấy được tính khả dụng của nó rất cao, nó hỗ trợ rất nhiều trong các công việc mà trước ta phải viết code nguồn rất vất vả: lọc, phân trang, truy vấn CSDL theo nhiều cách khác nhau tùy vào mục đích sử dụng ngoài ra nó mở rộng rất nhiều chức năng:

hổ trợ phân quyền cho từng Action thông qua việc xác thực người dùng,(*) URL tiêu chuẩn (url gốc/controller/action, còn với nhiều module thì url gốc/module/controller/action),… Do thời gian hạn chế nên

em chỉ tìm hiểu cơ bản về Zend 1.x rồi vận dụng để hiểu code nguồn của Myreview

Trang 21

- Mô hình MVC là mô hình gồm Model – view – Controller, là mô hình phổ biến được dùng để tổ chức cấu trúc của một website động, thao tác CSDL

o Model : Cung cấp tập hợp các lớp được sử dụng cho việc truy xuất

dữ liệu Lớp phục vụ: Zend_DB, Zend_DB_Table

o View: Định nghĩa các thông tin hiển thị phía người dụng sau khi được xử lý và trả về từ controller Lớp phục vụ: Zend_View

o Controller: Kiểm soát dữ liệu vào ra Xuất thông tin ra tầng View khi được thực thi Lớp phục vụ: Zend_Controller

- Khi người dùng gửi một request từ browser thì nơi đầu tiên tiếp nhận request đó đầu tiên là controller Controller sẽ tiếp nhận request, phân tích request, sau đó sẽ phân luồng request để gọi đến Model và View Tùy vào request, mà controller sẽ xác định đưa dữ liệu đến model hay không và sau đó kết quả sẽ trả về view

2.2 Tổng thể của hệ thống quản lý Myreview

Kiến trúc của hệ thống dựa trên nền Zend Framework 1.x (phiên bản cụ thể là 1.10.8), nó là một trong những framework phổ biến hiện nay của PHP,

nó có hỗ trợ rất nhiều tiện ích giúp người phát triển dễ dàng xây dựng ứng dụng web của mình trở nên đa dạng về chức năng hơn Zend Framework xây dựng theo mô hình Model-View-Controller (MVC), một mô hình khá phổ biến khi xây dựng ứng dụng web

2.2.1 Cấu trúc cây thư mục

Hình 2.1 Cây thư mục của Myreview

Cây thư mục của Myreview tuân theo qui tắc phân cấp cơ bản của Zend Framework gồm có các thư mục chuẩn:

Trang 22

- Library : dùng để chứa thư mục chính của Zend Framework (Zend), các thư mục mở rộng do người phát triển tự bổ sung (Myreview tạo thư viện Zmax và thư mục chứa các hàm chức năng)

- www: thư mục chính gồm có index.php, các thư mục css, js, images

- Application: thư mục ứng dụng chính chứa các mã lệnh ứng dụng ( controllers, views, models) Tuân thủ theo mô hình MVC

- Config: thư mục chứa các tập tin cấu hình ini cho hệ thống gồm cơ sở

dữ liệu, các tham số cần thiết của hệ thống

Ngoài ra, còn có các thư mục bổ sung thêm:

- Doc: là chứa tài liệu hướng dẫn của Myreview

- Install: chứa các tập tin cơ sở dữ liệu sql

- Themes: chứa các layout có sẵn

- Files: là nơi chứa các tập tin người dùng tải lên

Cấu trúc cây thư mục của Myreview vẫn đi theo cấu trúc bình thường của Zend Tuy nhiên cách phân chia module có phần khác Đối với Zend, trong trường đa module, trong thư mục application sẽ chia ra từng thư mục cho mỗi module, trong mỗi module thì có thư mục con controllers,views, models

Đối với Myreview thì các chút khác, ở đây có hai module chính là admin

và default; module “admin”, Myreview đưa vào thư mục tên “admin; còn

“default”, không tạo thư mục riêng mà tạo hai thư mục controllers và views thuộc module “default” ngang cấp với admin Và vì models sử dụng chung cho cả hai module “admin” và “default” nên nó được Myreview bên ngoài Tuy nhiên việc sắp xếp này cũng không ảnh hưởng gì mà chỉ giúp cho người phát triển hiểu được module của hệ thống Thực tế, việc khi một người khi nhấn URL lên thanh địa chỉ, Zend framework sẽ lấy theo thứ tự như sau:

http://Base_url/module/controller/action

Đây là cấu trúc URL mà Zend quy định

Trang 23

2.2.2 Kết nối CSDL

Chạy hệ thống bằng cách gõ tên ServerName trên thanh địa chỉ của trình duyệt Web Có thể sẽ gặp lỗi sai tên truy cập vào CSDL Trong PHP cơ bản,

để có thể kết nối vào CSDL MySQL, ta dùng hàm như:

Còn với Zend thì ta kết nối CSDL thông qua tập ini, trước tiên trong tập tin index.php đầu tiên khi chạy chương trình Hệ thống sẽ khởi động hàm init() của lớp BootStrap trong thư viện Zmax (là thư viện mở rộng người lập trình thiết lập) Trong hàm init() này nó thiết lập rất nhiều biến ở đây:

- Hàm setupRegistry() : tạo ra đối tượng Zend_Register, nó khá giống với Session, nhưng Registry lưu giữ biến lâu hơn Session

- Hàm setupConfig(): dùng để lấy môi trường phát triển (trong config/default/enviroment.ini), sau đó nạp hết giá trị trong các tập tin trong thư mục config/default vào một biến($config), với điều kiện là các tham số đó ở trong môi trường đã được thiết lập

- Hàm setupDb(): là hàm kết nối với CSDL dựa vào các tham số trong database.ini hay là giá trị của các phần tử mảng của một biến đã được lưu vào chương trình Có thể do sự an toàn mà ta cấu hình đến hai lần, lần đầu thì ghi bên ngoài tập tin config.ini, khi vòng chạy ở tập tin Bootstrap nó sẽ được định nghĩa lại hay không?

Trang 24

Trong hàm setupDb(), khi nó xác định là ứng dụng có sử dụng database, thì nó sẽ tìm xem đó là loại CSDL nào Code trên ta thấy, nó chia ra làm 2 trường hợp:

- Couch DB – “là một phiên bản khác của NoSQL Cũng lưu trữ dữ liệu dạng JSON và dùng Javascript như các câu truy vấn để lấy dữ liệu.Apache CouchDB được tạo ra vào năm 2005 bởi IBM Lotus Notes

Họ đã dùng nó cho việc lưu trữ hệ thống dữ liệu lớn bởi tính năng động của nó”

- Khác là gồm các loại CSDL thông thường

Vì sử dụng hệ quản trị CSDL MySQL nên hệ thống dẫn mảng

$config→db đến một lớp Db_Adapter trong thư việc mở rộng Zmax Ở lớp này, nó sẽ lấy giá trị của các tham số trong tập tin database.ini (nội dung ở bên dưới) để kết nối vào CSDL Trong Zend Framework có rất nhiều cách để kết nối vào CSDL, ở đây dùng phương thức factory() của Zend_Db, kèm theo đó

là getConnection() Ngoài ra, trong các biến liên quan đến version v1, sử dụng cách thức truy cập mysql_connect() của PHP, điều gặp khó khăn khi cài đặt PHP 5.5 trở lên

Các thông số cấu hình được thiết lập trong thư mục config, để có thể bảo mật mật khẩu truy cập hệ thống, có thể vận dụng quyền nhóm sở hữu để ngăn không cho đọc(không có quyền đọc và viết) các tập tin trong thư mục này

2.2.3 Cấu trúc cơ sở dữ liệu của Myreview

Cơ sở dữ liệu của Myreview rất đồ sộ, tuy nhiên có một số bảng và cột của Myreview không dùng tới khiến nó trở nên thừa thãi gây ra nặng cho hệ thống, có thể loại bỏ một số bảng không cần thiết Ngoài ra, có một số bảng tuy là lấy id từ các bảng khác nhưng nó không dùng tham chiếu đến id đó, làm mất tính quan hệ giữa một số bảng Để hệ thống có thể hoàn thiện cả về CSDL, cần phải thiết lập các mối quan hệ lại cho các bảng CSDL cho Myreview

author

Column Type Null

id_paper int(11) No id_user int(11) No position int(11) No

Trang 25

contact varchar(1) Yes

Bảng thông tin tác giả abstract

id_paper int(11) No id_section int(11) No content longtext Yes

Bảng nội dung bài tóm tắt abstractsection

section_name varchar(50) No position int(11) No field_height int(11) No mandatory char(1) Yes

Bảng mô tả cấu trúc của bài tóm tắt và bảng thông tin bài tóm tắt

criteria

label varchar(30) No explanations text Yes weight int(11) No

Bảng tiêu chí cho bài báo paper

title varchar(255) No

Trang 26

emailContact varchar(60) No

nb_authors_in_form int(11) Yes

isUploaded char(1) Yes format varchar(10) Yes

submission_date int(11) Yes inCurrentSelection char(1) No

Bảng thông tin tình trạngvề bài báo nộp papertopic

Column Type Null

id_paper int(11) No id_topic int(11) No

Bảng chủ đề của bài báo researchtopic

Trang 27

Column Type Null

label varchar(100) No

Bảng chủ đề nghiên cứu review

reviewerExpertise int(11) Yes

fname_ext_reviewer varchar(60) Yes lname_ext_reviewer varchar(60) Yes submission_date int(11) Yes last_revision_date int(11) Yes

Bảng thông tin bài nhận xét của bài báo reviewmark

Column Type Null

idPaper int(11) No id_user int(11) No idCriteria int(11) No mark int(11) No

Bảng điểm từng tiêu chí cho các bài báo session

Trang 28

idSession varchar(40) No id_user int(11) No tempsLimite decimal(10,0) No roles varchar(10) No

Bảng thông tin cho mỗi phiên khi có người đăng nhập showslot

Column Type Null

id int(11) No slot varchar(28) Yes

slot

Column Type Null

id int(11) No slot_date date No begin time Yes end time Yes

Bảng thông tin cho các khe của hội nghị upload

Column Type Null

id_paper int(11) No id_file int(11) No file_size int(11) No upload_date datetime No

Bảng thông tin bài báo đã tải lên user

Trang 29

last_name varchar(30) No first_name varchar(30) No

password varchar(60) No address varchar(256) Yes

affiliation varchar(100) Yes

Bảng chủ đề ưu thích của người dùng zmax_lang

lang varchar(10) No name varchar(255) No

Bảng ngôn ngữ được sử dụng trong hệ thống zmax_namespace

namespace varchar(10) No

Trang 30

Bảng chứa các chuỗi text được chèn vào tập tin XHTML

Mô hình dữ liệu mức quan niệm (CDM) ở phần phụ lục (*)

2.2.4 Xây dựng lớp View kế thừa từ Zend_View

Vì trong các tập tin view được xây dựng với mục đích dựa trên PHP mẫu

là một chức năng bổ sung thêm vào hệ thống mà Zend_View thì không có hỗ

trợ cấu trúc này, nên cần phải xây dựng một lớp View khác (đặt tên là Phplib)

kế thừa từ Zend_View Ở lớp này, có các hàm dùng để nhận dạng các mã lệnh

template mà người phát triển đưa ra trên các tập tin view Chẳng hạn như:

Dạng {form.abstract_submission_form} là dạng lấy dữ liệu từ bảng

zmax_text Với form là tên namespace, abstract_submission_form là mã code

Lúc này hệ thống sẽ dựa trên 2 thành phần trên kèm theo ngôn ngữ mà người

dùng chọn để xuất ra dữ liệu phù hợp in ra ngoài

Dạng {Paper→title} là lấy dữ liệu từ 1 bảng đặc biệt, ở đây là bảng Paper

Paper là tên bảng muốn lấy, title là trường Ở đây cần có xác định id của

paper thì phần hiển thị mới đúng

Dạng <!—BEGIN SECTION >: là dạng xác định khu vực hiển thị cho vòng

Trang 31

Nhờ có việc thiết lập thư viện Phplib, mà ta cần thể từ đây triển khai phần hổ trợ đa ngôn ngữ và có thể tự xây dựng hàm đóng góp trong thư việc này trong vấn đề về hiển thị mang nhiều bảng khác nhau, còn nếu như muốn điều chỉnh

hiển thị trong một bảng thì sửa đổi các lớp trong thư mục Model

2.3 Tiến hành thực hiện giải pháp

2.3.1 Thiết lập mail server

Như đã phân tích ở chương 1, hệ thống quản lý của Myreview dùng hàm mail() của Php, hàm này được dùng cho tất cả các hoạt động từ gửi mail đến tin nhắn Với yêu cầu, bảo mật cao, đáp ứng nhu cầu chứng thực của gmail server, trong đề tài này em dùng tiện ích postfix làm mail client của hệ thống

Các bước thiết lập postfix:

1 Cài đặt postfix, thiết lập các thông số trong khi cấu hình:

- Đầu tiên, ta sẽ thiết lập cấu hình loại mail tổng quát cho postfix, có

rất nhiều lựa chọn, trong hệ thống này ta sẽ chọn Internet Site

- Tiếp đến là Tên mail hệ thống (System Mail Name) là tên domain mail server của hệ thống Ở đây, do là nghiên cứu nên em thiết lập là gmail.com

- Tiếp theo là nó sẽ hỏi về SMTP Relay Host Khi để trống (mặc định), Postfix sẽ phân phát mail qua mạng Internet Nhưng có vài trường hợp xảy ra là mail server thật bị sự cố, hay ngắt điện thì lúc này việc gửi mail sẽ bị lỗi hoặc là mail bị đánh dấu là “spam” Để tránh tình trạng này, ta cần phải cấu hình Postfix phân phát mail qua relayhost.Ở bài nghiên cứu này, em chọn relayhost phân phát thông qua smtp.gmail.com

- Các phần cài đặt còn lại (giới hạn hộp thư, recipient_delimiter, inet_protocols) để mặc định

2 Vào tập tin cấu hình chính tên main.cf để chỉnh sửa lại giống với nội dung bên dưới:

- Sửa lại các thông số sau với nội dung:

Trang 32

Ý nghĩa của các thông số quan trong:

myhostname: tên máy tính (không quan trọng)

mydestination: danh sách các tên miền được phân phát thông qua

một nơi phân phát mail cục bộ của postfix (local_transport)

Inet_interfaces: phải là loopback-only

- Sau đó thêm một vài dòng sau vào main.cf:

Ý nghĩa của các thông số quan trọng:

relayhost: máy chủ SMTP, mail chuyển ra internet thông qua

relayhost Tham số này, để được gán bằng smtp.gmail.com trong phần cấu hình bằng giao diện, ta chỉ cần thêm cổng 587 vào như trên

smtp_sasl_password_maps : là tùy chọn của máy Postfix SMTP

tìm một mục username:password trên một hostname hay miền từ xa Nếu không tìm thấy thì nó không chứng thực host từ xa đó nữa

smtp_use_tls: sử dụng TLS smtp_tls_CAfile : đường dẫn chưa tập tin chứa chứng chỉ CA của

CA gốc của máy tính

Trang 33

3 Sau hoàn thành, ta sẽ tạo ra một tập tin sasl_passwd để nhập email

và mật khẩu (lấy email của nhà quản trị) để chứng thực gửi mail

- Nhập vào tập tin này với nội dung:

- Mã hóa tập tin sals_passwd ngay sau đó bằng câu lệnh:

- Rồi xóa đi tập sasl_passwd chính để đảm bảo an toàn

- Tạo tập tin cacert.pem, copy từ:

/etc/ssl/certs/Equifax_Secure_CA.pem

- Sau đó kết thúc bằng việc, reload lại dịch vụ postfix và apache2

4 Tiếp theo là việc test mail, bằng cách vào hệ thống gửi thử mail, hoặc đơn giản là tạo một tập tin php đơn giản để gửi mail thử Tất cả nhật

ký gửi mail sẽ được lưu trong /var/log/mail.log, nếu có lỗi thì vào đây

để xem chi tiết

5 Lỗi về vấn đề mail thì xem ở mail.log, nhưng có một số vấn đề về server hay hệ thống của postfix thì postfix lại gửi mail thông báo cho mail root (mặc định root@gmail.com là system mail name mà lúc cài đặt postfix ta đã đặt) Để cấu hình Postfix, gửi những mail đó đến một email cụ thể của bạn (email của Admin), thêm dòng sau vào tập tin main.cf:

Tạo tập tin virtual trong postfix, có nội dung:

Lúc này, ta sẽ định tuyến lại các mail hệ thống đến email của bạn (vd:

myreview.tk@gmail.com)

Sau đó chạy lệnh:

Tuy rằng, Myreview có xác định người gửi bên trong ứng dụng nhưng khi gọi hàm mail() của php, thì tự động php sẽ vào php.ini tìm vào dùng email và password được thiết lập thông qua đường dẫn của postfix để xác thực, đồng thời dùng email xác thực đó là người gửi mail

Mô hình hoạt động mail của postfix (phụ lục 2)

postmap sasl_passwd

[smtp.gmail.com]:587 địa chỉ email đầy đủ:mật khẩu

virtual_alias_maps = hash :/etc/postfix/virtual

root@gmail.com <địa chỉ email muốn nhận thông báo>

sudo postmap /etc/postfix/virtual

Trang 34

2.3.2 Kiểm tra tình trạng gửi mail hay tin nhắn

Khi một mail hay tin nhắn được gửi, có thể sẽ gặp trục trặc trong vấn đề đường truyền hay một số cấu hình bên trong hệ thống Cần phải

có một thông báo là tin nhắn có được gửi hay không để người dùng, đặc biệt là chủ tịch hội thảo, vì gửi mail được dùng chủ yếu bởi người dùng này Còn tác giả cũng như người đánh giá, cũng sẽ nhận thông báo mail xác nhận thành công bị lỗi, tuy nhiên sẽ có một tin nhắn xác nhận trên trang web là đã gửi thành công

Mail hay tin nhắn đều phải thông sendAction(), đây là một action quản lý toàn bộ việc gửi mail trong MailController

Đoạn code trên, là trường hợp gửi mail cho một người nào đó của Myreview Kết quả là khi mail lỗi nó vẫn báo là gửi mail thành công Trước tiên cần vào hàm mail gửi mail chính dùng mail() của php, bên trong lớp Mail của thư mục Model để thêm phải trả về của việc gửi mail

Tiếp tục vào hàm send() của lớp Mail này, thêm các câu lệnh trả về cho việc thực hiện sendmail() Lúc này, khi dùng gọi hàm send() của Mail từ sendAction(), nó sẽ trả về kết quả là true khi mail gửi thành công và false khi mail bị lỗi

2.3.3 Tiện ích soạn thảo

Là một thư viện Jquery có sẵn trên mạng, là công cụ soạn thảo với các tùy chọn đơn giản của MS Word như: canh lề, in đậm, in nghiêng, gạch dưới, màu chữ, màu nền, icon,… Giúp cho nội dung tin nhắn trở nên thân thiện với người dùng

Trang 35

Tuy nhiên, ở môi trường hệ thống quản lý hội thảo, thì việc cần có những tùy chọn này giúp nội dung tin nhắn có thể đánh dấu phần quan trọng, chứ không chỉ là một nội dung tin nhắn một màu bình thường Giúp người nhận có thể xác định nội dung chính ở đâu Và việc canh lề sẳn, sẽ làm cho nội dung dễ nhìn hơn Việc này rất có lợi cho người chủ tịch không có kiến thức chuyên môn vào web

Download thư viện ckeditor :

Đưa thư viện vào thư mục js trong thư mục gốc của hệ thống Chèn đoạn code script vào đầu tập tin form_mail trong template view của mail Đây tập tin mẫu sẽ được hiện khi ta dùng freemailAction()

Sau đó, chèn đoạn code gọi CKEditor vào bất kì đâu trong form_mail, ở p

lbar có thể thêm lựa chọn khác ngoài những lựa chọn bên dưới

2.3.4 Điều chỉnh giai đoạn nộp bài

Đếm từ

Khi tác giả gõ nội dung vào phần textarea thì javascript(js) sẽ bắt đầu đếm số từ để tác giả biết số lượng từ có hợp lệ hay không Tuy nhiên,

Trang 36

phần đếm từ để kiểm tra số từ người dùng nhập vào ở mã nguồn hệ thống của Myreview không thể đếm chính xác văn bản tiếng Việt

Xét tập tin js, ghép số thứ tự từng phần trong cấu trúc tóm tắt vào thành một chuỗi để nó xác định được id chính xác của từng textarea (tiêu đề không đếm số từ), xác định xong thì nó sẽ tách chữ bởi „ ‟, sau đó đếm

từ Tuy nhiên, để phù hợp với yêu cầu đa ngôn ngữ có thể thay đổi phần hiển thị đếm từ đúng với ngôn ngữ mà ngừoi dùng chọn

Trong đó, {list_abstract_ids} là biến chứa chuỗi id của các đoạn textarea, cách nhau bởi dấu “;”

Khi nhập vào textarea thì hàm sumWords() được gọi, có kèm tham số là chuỗi {zmax.word}, được lấy từ CSDL dựa theo ngôn ngữ, nếu như lúc này người dùng chọn ngôn ngữ tiếng việt thì „{zmax.word}‟= „từ‟ Ở đây, để hổ trợ tiếng có số ít, số nhiều, thêm tham số {zmax.words}

Ngày đăng: 12/01/2016, 19:11

HÌNH ẢNH LIÊN QUAN

Hình 2.1 Cây thƣ mục của Myreview  Cây thƣ mục của Myreview tuân theo qui tắc phân cấp cơ bản của Zend  Framework gồm có các thƣ mục chuẩn: - nghiên cứu hệ thống quản lý hội thảo myreview
Hình 2.1 Cây thƣ mục của Myreview Cây thƣ mục của Myreview tuân theo qui tắc phân cấp cơ bản của Zend Framework gồm có các thƣ mục chuẩn: (Trang 21)
Bảng thông tin cho bài báo nộp  paperstatus - nghiên cứu hệ thống quản lý hội thảo myreview
Bảng th ông tin cho bài báo nộp paperstatus (Trang 26)
Bảng chủ đề nghiên cứu  review - nghiên cứu hệ thống quản lý hội thảo myreview
Bảng ch ủ đề nghiên cứu review (Trang 27)
Bảng thông tin cho mỗi phiên khi có người đăng nhập  showslot - nghiên cứu hệ thống quản lý hội thảo myreview
Bảng th ông tin cho mỗi phiên khi có người đăng nhập showslot (Trang 28)
Bảng thông tin người dùng - nghiên cứu hệ thống quản lý hội thảo myreview
Bảng th ông tin người dùng (Trang 29)
Hình 2.5 - Các tác vụ liên quan đến bố trí của trang cấu hình - nghiên cứu hệ thống quản lý hội thảo myreview
Hình 2.5 Các tác vụ liên quan đến bố trí của trang cấu hình (Trang 45)
Hình 3.3 – giao diện nộp bài với ngôn ngữ tiếng Việt - nghiên cứu hệ thống quản lý hội thảo myreview
Hình 3.3 – giao diện nộp bài với ngôn ngữ tiếng Việt (Trang 51)
Hình 3.7 – Giao diện bảng điểm đánh giá của từng bài báo. - nghiên cứu hệ thống quản lý hội thảo myreview
Hình 3.7 – Giao diện bảng điểm đánh giá của từng bài báo (Trang 53)
Hình 4.2 – Đơn đăng ký - nghiên cứu hệ thống quản lý hội thảo myreview
Hình 4.2 – Đơn đăng ký (Trang 60)
Hình 4.4 Form cấu hình   Với một số thông tin quan trọng: - nghiên cứu hệ thống quản lý hội thảo myreview
Hình 4.4 Form cấu hình Với một số thông tin quan trọng: (Trang 62)
Hình 4.7  Danh sách người dùng - nghiên cứu hệ thống quản lý hội thảo myreview
Hình 4.7 Danh sách người dùng (Trang 64)
Hình 4.6 Form tạo người dùng - nghiên cứu hệ thống quản lý hội thảo myreview
Hình 4.6 Form tạo người dùng (Trang 64)
Hình 4.10 – Giao diện tạo tiêu chí đánh giá - nghiên cứu hệ thống quản lý hội thảo myreview
Hình 4.10 – Giao diện tạo tiêu chí đánh giá (Trang 66)
Hình 4.12 Trang chủ sau khi đăng nhập thành công - nghiên cứu hệ thống quản lý hội thảo myreview
Hình 4.12 Trang chủ sau khi đăng nhập thành công (Trang 68)
Hình 4.14 – Giao diện nộp bài tóm tắt - nghiên cứu hệ thống quản lý hội thảo myreview
Hình 4.14 – Giao diện nộp bài tóm tắt (Trang 69)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w