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

Xây dựng hệ thống CMS dựa trên nền tảng zend framework

94 55 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 94
Dung lượng 2,9 MB

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

Nội dung

Xây dựng hệ thống CMS dựa trên nền tảng zend framework Xây dựng hệ thống CMS dựa trên nền tảng zend framework Xây dựng hệ thống CMS dựa trên nền tảng zend framework luận văn tốt nghiệp,luận văn thạc sĩ, luận văn cao học, luận văn đại học, luận án tiến sĩ, đồ án tốt nghiệp luận văn tốt nghiệp,luận văn thạc sĩ, luận văn cao học, luận văn đại học, luận án tiến sĩ, đồ án tốt nghiệp

Trang 1

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI

-

Đinh Việt Bảo

XÂY DỰNG HỆ THỐNG CMS DỰA TRÊN NỀN TẢNG ZEND FRAMEWORK

Chuyên ngành: Công nghệ thông tin

Trang 2

Đinh Việt Bảo - 13BCNTT2 1

Lời nói đầu

Ngày nay sự bùng nổ của ngành Công Nghệ Thông Tin, tin học hoá phát triển rất mạnh và nhanh chóng, nó đã trở thành một trong những ngành khoa học mũi nhọn của con người trong các tổ chức kinh tế, hành chính, đoàn thể trong các xí nghiệp và công ty

Việc áp dụng những thành tựu của ngành Công Nghệ Thông Tin vào mọi lĩnh vực của đời sống con người cũng ngày càng phát triển cả về chiều sâu lẫn chiều rộng,

nó đã làm giảm được rất nhiều khó khăn, đồng thời cũng nâng cao chất lượng và hiệu quả của công việc, vì vậy một hệ thống với kiến trúc hợp lý đóng vai trò không nhỏ trong sự thành công của dự án

Trong thời gian tìm hiểu vừa qua, em nhận thấy rằng đề tài Xây dựng hệ thống

CMS là một đề tài hay, được rất nhiều người làm và quan tâm, có tính thực tế, ứng

dụng cao Việc phát triển hệ thống này dựa trên nền tảng Zend Framework 2.0 sẽ giúp

cho việc xây dựng, thực hiện và triển khai hệ thống đạt hiệu quả tốt nhất Đó chính là

Trang 3

Đinh Việt Bảo - 13BCNTT2 2

Mục lục

CHƯƠNG I TỔNG QUAN VỀ HỆ THỐNG CMS 4

1 Khái niệm 4

2 Lịch sử phát triển 4

3 Cấu trúc và chức năng của CMS 6

4 Xây dựng hệ thống CMS 7

5 Giới thiệu Zend Framework 9

5.1 Mô hình MVC 9

5.2 Tổng quan về Zend Framework 11

5.3 Các lớp phổ biến 13

5.4 Mô hình MVC trong Zend Framework 14

CHƯƠNG II XÂY DỰNG HỆ THỐNG CMS 18

1 Yêu cầu nghiệp vụ của hệ thống 18

1.1 Quản lý tài khoản cá nhân 18

1.2 Quản lý nhóm người dùng 18

1.3 Quản lý người dùng 19

1.4 Quản lý controler 19

1.5 Quản lý action 19

1.6 Quản lý menu 20

1.7 Quản lý hệ thống 20

1.8 Quản lý chuyên mục 21

1.9 Quản lý loại bài viết 22

1.10 Quản lý tag bài viết 22

1.11 Quản lý bài viết 22

1.12 Quản lý comment 25

1.13 Quản lý like 27

2 Mô hình tình huống người dùng 27

2.1 Quản trị hệ thống 27

2.2 Phóng viên / Cộng tác viên 37

2.3 Trưởng ban 41

2.4 Thư ký tòa soạn 45

2.5 Tổng biên tập 49

2.6 Quản trị phản hồi 53

2.7 Bạn đọc 55

3 Biểu đồ tuần tự 55

Trang 4

Đinh Việt Bảo - 13BCNTT2 3

3.1 Phóng viên / Cộng tác viên 55

3.2 Trưởng ban 59

3.3 Thư ký tòa soạn 61

3.4 Tổng biên tập 63

4 Thiết kế cơ sở dữ liệu 65

4.1 Mô hình quan hệ 65

4.2 Danh sách các bảng 67

CHƯƠNG III THIẾT KẾ GIAO DIỆN CHƯƠNG TRÌNH 74

1 Thiết kế trang Back-End 74

1.1 Trang đăng nhập 74

1.2 Trang danh sách bài viết 76

1.3 Trang thêm bài viết 78

1.4 Trang chi tiết bài viết 84

2 Thiết kế trang Front-End 86

2.1 Trang chủ 86

2.2 Trang chuyên mục 88

2.3 Trang chi tiết bài viết 90

KẾT LUẬN 92

TÀI LIỆU THAM KHẢO 93

Trang 5

Đinh Việt Bảo - 13BCNTT2 4

CHƯƠNG I TỔNG QUAN VỀ HỆ THỐNG CMS

1 Khái niệm

CMS viết tắt của Content Management System nghĩa là hệ thống quản trị nội dung Là phần mềm để tổ chức và tạo môi trường cộng tác thuận lợi nhằm mục đích xây dựng một hệ thống tài liệu và các nội dung khác nhau một cách thống nhất CMS

đã được áp dụng vào các chương trình quản lý nội dung Website, nó được dùng cho các trang web của một cá nhân hay tổ chức nào đó

CMS cung cấp những công cụ trực quan, đơn giản và thân thiện để người dùng phổ không cần biết nhiều về CNTT cũng có thể sử dụng để quản lý nội dung, các hoạt động của Website một cách dễ dàng

2 Lịch sử phát triển

Trong giai đoạn đầu phát triển của Internet, việc xuất bản một bài viết đều cần

như vậy sẽ làm cho người dùng mệt mỏi và tốn rất nhiều thời gian, nếu người dùng

viết lớn thì cách làm việc như vậy sẽ không thể thực hiện được, do đó, hệ quản trị nội dung CMS ra đời

CMS được xem như bước tiến dài trong lịch sử phát triển Internet Nó đã làm thay đổi cách quản lý và tiếp cận thông tin của người dùng, mà điều quan trọng là người dùng không cần phải biết về HTML để có thể đưa bài báo đó lên web Trước kia, khi ta cần tìm một thông tin nào đó, việc sử dụng những cách thức như tìm thông tin trên báo giấy, thông tin sổ sách sẽ rất vất vả Do đó, CMS được sử dụng khi mà

có quá nhiều thông tin cần xử lý, nó giúp ta tối ưu cả về công sức và chi phí, đồng

Trang 6

Đinh Việt Bảo - 13BCNTT2 5

thời đem lại hiệu quả cao hơn rất nhiều Tuy nhiên người quản trị cần phải biên tập

và sắp xếp nội dung một cách phù hợp nhất mới có thể tìm kiếm thông tin một cách

dễ dàng

Có thể nói CMS là xu hướng chung của tất cả các Website ngày nay Blog là một dạng CMS, Wiki là một dạng CMS… CMS trong tương lai sẽ được tích hợp vào các hệ thống ERP của doanh nghiệp Các dữ liệu của doanh nghiệp sẽ được xuất bản trực tiếp lên Website mà không cần phải tốn nhiều công sức Ví dụ một nhà máy, họ vừa sản xuất ra một sản phẩm, sản phẩm này lập tức xuất hiện trên trang Web về thương mại điện tử của nhà máy đó, thông tin về sản phẩm sẽ được lấy từ dữ liệu của phòng kỹ thuật, giá cả thì lấy từ phòng kinh doanh, các phương thức khuyến mãi lại được truy cập trực tiếp từ phòng marketing Các báo cáo thuế của doanh nghiệp sẽ được xuất bản và gửi trực tiếp về phòng thuế… Một hệ thống CMS là một hệ thống quản lý mọi thứ, bời vì tất cả đều là content Cái hay của một hệ thống là làm sao tổ chức và quản lý được những content phi cấu trúc và quản lý được nhiều loại thông tin

 W-CMS (Web CMS): Được sử dụng cho các trang tin tức, blog Hỗ trợ điều khiển và chỉnh sửa, biên tập nội dung Nội dung bao gồm tập tin điện tử, hình ảnh, video, file âm thanh, tài liệu điện tử và văn bản

 E-CMS (Enterprise CMS): Được sử dụng cho các doanh nghiệp để nắm bắt, quản lý, lưu trữ, bảo quản và cung cấp nội dung và các tài liệu liên quan

 T-CMS (Transactional CMS): Hỗ trợ việc quản lý các giao dịch thương mại điện tử

 P-CMS (Publications CMS): Hỗ trợ việc quản lý các loại ấn phẩm trực tuyến (sổ tay, sách, trợ giúp, tham khảo )

Trang 7

Đinh Việt Bảo - 13BCNTT2 6

 L-CMS/LCMS (Learning CMS): Hỗ trợ việc quản lý đào tạo dựa trên nền Web

 BCMS (Billing CMS): Hỗ trợ việc quản lý Thu chi dựa trên nền Web

3 Cấu trúc và chức năng của CMS

Hệ thống quản lý nội dung CMS chủ yếu được sử dụng để quản lý, xuất bản các văn bản dựa trên các tài liệu như bài viết, tài liệu dạng văn bản và thông tin Một CMS thường có các chức năng cơ bản sau:

 Tạo lập nội dung

 Lưu trữ nội dung

 Chỉnh sửa nội dung

 Truyền tải nội dung

 Chia sẻ nội dung

 Tìm kiếm nội dung

 Phân quyền người dùng và nội dung

Đằng sau sự tiện lợi mà người dùng CMS sử dụng thì không thể không nhắc đến sự phức tạp, khó khăn của người phát triển hệ thống khi xây dựng CMS CMS

đích riêng Trên thực tế, tùy vào từng dự án, mô ̣t hoă ̣c mô ̣t vài thành phần có thể được

đáp ứng được các nhu cầu dưới đây:

 Tính liên tục của thông tin

 Khả năng quản lý người dùng

 Khả năng quản lý truy câ ̣p

 Khả năng quản lý mở rô ̣ng chức năng

 Khả năng bảo mâ ̣t và báo lỗi

Trang 8

Đinh Việt Bảo - 13BCNTT2 7

4 Xây dựng hệ thống CMS

Sự phát triển của Internet ngày nay giúp Website không còn là khái niệm quá

mơ hồ và xa lạ với người sử dụng máy tính Người dùng máy tính hoàn toàn có thể tạo dựng cho riêng mình một Website chỉ bằng vài cú bấm chuột dựa trên những hệ thống mã nguồn mở để hoạt động theo nhu cầu cá nhân, hoặc cao hơn nữa là dành cho một tổ chức Trong thời đại Công nghệ thông tin đang phát triển bùng nổ như hiện nay, việc sử dụng hệ thống CMS để xây dựng Website là một nhu cầu thiết yếu cho những cá nhân, công ty vừa và nhỏ trong và ngoài nước

Trên thế giới hiện đã có những hệ thống CMS phổ biến như: Joomla, Wordpress, Drupal, eZ Publish, OpenCMS, Magento , tuy vậy những CMS này đều có ưu và nhược điểm riêng, cụ thể như sau:

- Chưa đáp ứng các yêu cầu mở rộng như sự tương tác giữa các nhóm thành viên quản trị

Trang 9

Đinh Việt Bảo - 13BCNTT2 8

- Mã nguồn của Joomla tương đối lớn dẫn tới tốn nhiều tài nguyên

- Giao diện chưa thân thiện

- Nhiều chức năng có độ phức tạp lớn, đòi hỏi người dùng phải có kiến thức CNTT

Có thể thấy những CMS phổ biến trên đều là những hệ thống CMS lớn, có quá nhiều chức năng, quá nhiều ứng dụng mở rộng (plugin hoặc extension) khiến người dùng có thể gặp khó khăn khi quản trị Chính vì vậy hệ thống CMS vừa và nhỏ có những chức năng cần thiết có sẵn mà không cần phải cài ứng dụng mở rộng, giao diện thân thiện, dễ sử dụng cần được ra đời, đáp ứng đủ cho một Website cung cấp nội dung, thông tin

Một hệ thống CMS bao gồm khá nhiều chức năng Do đó, trong đề tài này em chỉ đi sâu vào phân tích cụ thể các khâu về quản lý bài viết nghĩa là chỉ tập trung vào phần quản lý nội dung chứ chưa thể phân tích về các chức năng khác như: “quản lý tên miền, quản lý ngôn ngữ, quản lý giao diện, quản lý nhuận bút, lấy tin tự động ” Tóm lại, những chức năng: “quản lý nhóm người dùng, quản lý người dùng, quản lý controler, quản lý action, quản lý menu, quản lý chuyên mục, quản lý loại bài

Trang 10

Đinh Việt Bảo - 13BCNTT2 9

viết, quản lý tag bài viết, quản lý bài viết, quản lý comment, quản lý like” sẽ là hướng phát triển của em

Về mặt phân tích và thiết kế hệ thống: kết quả thu được của đề tài từ các mô hình phân tích thiết kế hệ thống, cơ sở dữ liệu

Về mặt lập trình: trên cơ sở nghiên cứu và áp dụng Zend Studio để viết ứng dụng dựa trên nền tảng Zend Framework, hoàn thành các nội dung chủ yếu sau:

 Hiểu và vận dụng thành công các lớp Zend Framework để xây dựng thành công các chức năng cơ bản và cần thiết của một hệ thống CMS

 Đảm bảo hệ thống vận hành theo đúng cấu trúc của một ứng dụng Zend Framework (theo mô hình MVC)

 Tối ưu hóa các lớp, sử dụng các lớp Zend Framework thay cho cách viết thẻ HTML

 Đảm bảo sự độc lập của các chức năng, dễ dàng phát triển và nâng cấp

hệ thống

 Trang giao diện người dùng phải đúng chuẩn SEO để tối ưu tìm kiếm

5 Giới thiệu Zend Framework

5.1 Mô hình MVC

MVC (Model-View-Controller) là mẫu kiến trúc phần mềm Khi sử đúng cách, mẫu MVC giúp cho người phát triển phần mềm cô lập các nguyên tắc nghiệp vụ và giao diện người dùng một cách rõ ràng hơn Phần mềm phát triển theo mẫu MVC tạo nhiều thuận lợi cho việc bảo trì vì các phần nghiệp vụ và giao diện ít liên quan đến nhau

Trang 11

Đinh Việt Bảo - 13BCNTT2 10

Hình 2.1 Mô hình MVC

 Model (Tầng dữ liệu): Là một đối tượng hoặc một tập hợp các đối tượng

biểu diễn cho phần dữ liệu của chương trình Nó được giao nhiệm vụ cung cấp dữ liệu cho cơ sở dữ liệu và lưu dữ liệu vào các kho chứa dữ liệu Tất cả các nghiệp vụ logic được thực thi ở Model Dữ liệu vào từ người dùng sẽ thông qua View đến Controller và được kiểm tra ở Model trước khi lưu vào cơ sở dữ liệu Việc truy xuất, xác nhận, và lưu dữ liệu

là một phần của Model

 View (Tầng giao diện): Là phần giao diện với người dùng, bao gồm việc

hiện dữ liệu ra màn hình, cung cấp các menu, nút bấm, hộp đối thoại, chọn lựa , để người dùng có thể thêm, xóa, sửa, tìm kiếm và làm các thao tác khác đối với dữ liệu trong hệ thống Thông thường, các thông tin cần hiển thị được lấy từ thành phần Model

 Controller (Tầng điều khiển): Là phần điều khiển của ứng dụng, điều

hướng các nhiệm vụ (task) đến đúng phương thức (method) có chức năng

xử lý nhiệm vụ đó Nó chịu trách nhiệm xử lý các tác động về mặt giao

Trang 12

Đinh Việt Bảo - 13BCNTT2 11

diện, các thao tác đối với Model, và cuối cùng là chọn một View thích hợp để hiển thị ra màn hình

Hình 2.2 Sơ đồ hoạt động của mô hình MVC

Ưu điểm và nhược điểm của MVC

 Ưu điểm: Thể hiện tính chuyên nghiệp trong lập trình, phân tích thiết kế

Do được chia thành các thành phần độc lập nên giúp phát triển ứng dụng nhanh, đơn giản, dễ nâng cấp, bảo trì

 Nhược điểm: Đối với dự án nhỏ việc áp dụng mô hình MC gây cồng

kềnh, tốn thời gian trong quá trình phát triển Tốn thời gian trung chuyển

dữ liệu của các thành phần

5.2 Tổng quan về Zend Framework

Zend Framework là một tập hợp các lớp, các thư viện lập trình viết bằng PHP nhằm cung cấp một giao diện lập trình chuẩn cho các nhà phát triển ứng dụng Ngoài

ra, Zend Framework cũng có nhiều tính năng thú vị như các công cụ mã hóa code, một editor có thể kéo & thả dễ dàng sử dụng với sự hỗ trợ cho các công nghệ Front-End (HTML, CSS, JavaScript), debugging trực tuyến nhanh, các công cụ PHP Unit Testing, và một Database Wizard giúp kết nối cơ sở dữ liệu Zend Framework được

Trang 13

Đinh Việt Bảo - 13BCNTT2 12

tạo ra với các phương pháp Agile tạo điều kiện để cung cấp các ứng dụng chất lượng cao

Zend Framework là một PHP Framework mạnh mẽ và ổn định được đóng gói với rất nhiều cấu hình tùy chọn vì thế nó rất tuyệt vời để sử dụng cho những dự án phức tạp Zend có các đối tác như IBM, Microsoft, Google và Adobe Trong phiên bản lớn phát hành sắp tới, Zend Framework 3 sẽ được tối ưu hóa cho PHP 7, nhưng vẫn sẽ hỗ trợ PHP 5.5 trở đi

Phiên bản hiện tại, Zend Framework 2 mà em sử dụng trong đề tài này là một Framework mã nguồn mở để phát triển các ứng dụng Web và các dịch vụ sử dụng được viết dựa trên ngôn ngữ lập trình phiên bản PHP 5.3 hoặc cao hơn

Zend Framework 2 sử dụng mô hình kiến trúc MVC và hoàn toàn viết theo kiểu hướng đối tượng Do được viết trên ngôn ngữ lập trình phiên bản PHP 5.3 hoặc cao hơn nên Framework này hỗ trợ Namespace, Late Static Binding, hàm Lambda và Closure

5.2.1 Lý do chọn Zend Framework

Hiện nay có rất nhiều loại PHP Framework như: Laravel, Symfony, CodeIgniter, Yii Hầu hết các PHP Framework đều có các điểm yếu và thế mạnh khác nhau, ví dụ Zend Framework đã được phổ biến từ phiên bản 1.3 và có đầy đủ các tính năng mạnh mẽ, cộng thêm một cộng đồng phát triển rộng lớn Theo thống kê trên trang chủ Zend Framework, tính đến thời điểm hiện tại, phiên bản Zend Framework 2 đã có tới 15 triệu lượt tải về Ngược lại, Laravel, Symfony, CodeIgniter, Yii lại là 1 loại PHP Framework khác, ra đời muộn hơn so với Zend Framework,

do đó những PHP Framework này ít cộng đồng phát triển hỗ trợ hơn Zend Framework, nhưng nó vẫn có người lựa chọn vì tính thân thiện với người dùng và dễ

Trang 14

Đinh Việt Bảo - 13BCNTT2 13

(Business Analysis) rất chuẩn và khi cần mở rộng có thể dùng thể dùng tính chất thừa kế của OOP Nói chung là chúng ta không phải chỉnh sửa core của Zend Framework

 Hầu như các phiên bản mới của Zend Framework ko có nhiều thay đổi trong core nên ta có thể dễ dàng update

 Zend Framework tích hợp được gần như tất cả các thư viện PHP và các CMS khác để sử dụng Ví dụ: Smarty, Pear, FCKEditer, Drupal

 Cách viết của Zend Framework rất thân thiện và đơn giản Tích hợp những công nghệ mới nhất của lập trình web như: JSON, Search, Syndication, Web Services

 Zend Framework được sử dụng trong các dự án lớn và có kế hoạch phát triển dài lâu

Nhược điểm:

 Mất nhiều thời gian để tìm hiểu về thư viện đồ sộ của Zend Framework

 Một số lớp chưa ổn định, có sự thay đổi, gây khó khăn cho người sử dụng khi cập nhật các phiên bản

5.3 Các lớp phổ biến

 Zend_Config: giúp chúng ta cấu hình ứng dụng, ví dụ như: cấu hình thông tin

kết nối cơ sở dữ liệu, cấu hình tên miền, email

 Zend_Acl: giúp chúng ta phân quyền cho ứng dụng chi tiết trên từng action,

controller và module

 Zend_Auth: sử dụng để xác thực tài khoản của người dùng khi đăng nhập vào

hệ thống

 Zend_Crypt: sử dụng để mã hóa một chuỗi, thường dùng cho các trường hợp

mã hóa mật khẩu để lưu vào trong cơ sở dữ liệu

 Zend_Db: dựa trên đối tuợng PDO (PHP Data Objects), cung cấp các thức kết

nối đến các loại cơ sở dữ liệu (MySQL, SQL Server, Couchbase )

 Zend_Controller: giúp lấy các Request từ phía Client và thực thi nó bằng các

Action

Trang 15

Đinh Việt Bảo - 13BCNTT2 14

 Zend_View: chính là tầng View trong mô hình MVC, giúp chúng ta hiển thị

những kết quả trong xử lý từ Controller và Models ra bên ngoài

 Zend_Router: cấu hình url của ứng dụng

 Zend_Paginator: giúp phân trang dữ liệu khi hệ thống có số lượng bản ghi

lớn

 Zend_Cache: giúp cho các ứng dụng Web tăng tốc độ tải dữ liệu, giúp cho hệ

thống không phải sử dụng CPU hoặc truy xuất vào cơ sở dữ liệu quá nhiều

 Zend_Currency: dùng để xử lý, hiển thị định dạng liên quan đến tiền tệ

 Zend_Date: xử lý tất cả các vấn đề liên quan thời gian

 Zend_Mail: hỗ trợ sử dụng các giao thức gửi, nhận email

 Zend_Feed: xử lý với Rss và Atom feeds

 Zend_File: cung cấp, hỗ trợ mở rộng việc Upload và Download của các tập

tin Nó gắn liền với kiểm tra các chức năng của tập tin

 Zend_Form: đơn giản hóa việc tạo form và xử lý các ứng dụng trên Website

 Zend_Filters: lọc dữ liệu trước khi thực hiện một quá trình xử lý nào đó

 Zend_Validate: dùng để kiểm tra dữ liệu nhập vào có phù hợp với yêu cầu

hay không

 Zend_Pdf: sử dụng để tạo và xử lý các file PDF, lớp này thường được dùng

cho các chức năng liên quan đến báo cáo

 Zend_Search: là một lớp cung cấp cho chúng ta các phương thức search trên

nội dung của các tập tin lưu trữ thông tin

 Zend_Translate: là giải pháp cho các ứng dụng đa ngôn ngữ

5.4 Mô hình MVC trong Zend Framework

Zend Framework 2 được xây dựng theo mô hình MVC, do đó nó tuân thủ chặt chẽ những nguyên tắc mà mô hình MVC mang lại

Model: cung cấp tập hợp các lớp được trừu tượng hóa sử dụng cho việc truy

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

Trang 16

Đinh Việt Bảo - 13BCNTT2 15

View: định nghĩa các thông tin hiển thị phía người dụng sau khi được xử lý và

JSON, XML )

Hình 2.3 Mô hình MVC trong Zend Framework

Cấu trúc thư mục của ứng dụng Zend Framework 2:

Để hỗ trợ các lập trình viên có thể dễ dàng tiếp cận - xây dựng nhanh chóng các ứng dụng Web, nhà phát triển Zend Framework cho ra đời bộ khung gọi là ZendSkeletonApplication Nó được xây dựng theo mô hình MVC mà thư viện Zend Framework 2 cung cấp và là nơi chứa toàn bộ thư viện Zend Framework 2, các modules mở rộng, các tập tin cấu hình để khởi tạo một ứng dụng

Những thư mục và tập tin quan trọng có trong bộ dự án mẫu (khung)

Trang 17

Đinh Việt Bảo - 13BCNTT2 16

public

vendor

 config: là nơi chứa những cấu hình của toàn bộ ứng dụng đang xây dựng;

nó bao gồm tập tin cấu hình application.config.php nơi khai báo các module sẽ được sử dụng, các thiết lập cấu hình cho toàn bộ ứng dụng…

và một thư mục autoload là những tập tin cấu hình tự động được load vào ứng dụng có đuôi mở rộng (*.local.php hoặc *.global.php) Những tập tin cấu hình có đuôi mở rộng là (*.local.php) sẽ bị bỏ qua khi commit dự

án lên Git, nên những thông tin nhạy cảm như tài khoản kết nối cơ sở dữ liệu cũng thường được đặt vào trong các tập tin này

 data: thư mục chứa những dữ liệu được cached từ database, hoặc cache

những toàn bộ cấu hình của ứng dụng

 module: nơi chứa những module mở rộng, mỗi lập trình viên đều có thể

xây dựng những module mới dành riêng cho ứng dụng của mình, và cũng

có thể đặt những module mở rộng đã được phát triển từ địa chỉ: http://modules.zendframework.com/ nhằm giúp xây dựng ứng dụng một cách nhanh chóng và hiệu quả nhất

 public: là nơi những tập tin như css, js, font, hình ảnh để hỗ trợ cho

việc hiển thị Website trên trình duyệt, nó chứa những tài nguyên công khai và dễ dàng truy nhập

 vendor: nơi chứa bộ thư viện Zend Framework 2 và những module mở

rộng khác Có thể đặt module mở rộng ở cả trong 2 thư mực module hoặc vendor

ZendSkeletonApplication cung cấp một module mẫu là Application, đây là module với các thành phần cơ bản nhất của Zend Framework Trong module này bao gồm các thư mục và file sau:

 config: là thư mục chứa tập tin cấu hình của module: module.config.php

Các tập tin cấu hình của tất cả các module được khởi động chạy trong

Trang 18

Đinh Việt Bảo - 13BCNTT2 17

ứng dụng sẽ được ghép thành một cấu hình chung để sử dụng trong quá trình khởi tạo và chạy ứng dụng

 language : là thư mục chứa các tập tin ngôn ngữ, khi ứng dụng cần dùng

cho nhiều người dùng ở các quốc gia khác nhau, sử dụng ngôn ngữ khác nhau… Đây là một phần không thể thiếu khi phát triển một dự án hỗ trợ

đa ngôn ngữ

 src: là nơi chứa mã nguồn phát triển của module Lập trình viên có thể

viết các lớp xử lý Controller, Model, View, Form… và sử dụng chúng ở bất cứ đâu trong module hoặc trong các module khác

 view: là nơi chứa phần hiển thị tương ứng với các controller - action,

những mã html được viết trong các tập tin (*.phtml) tương ứng với từng action Nó còn gồm những trang thông báo lỗi 404 hoặc exception để hỗ trợ lập trình viên có thể kiểm soát và sửa lỗi

 Module.php: là một tập tin không thể thiếu trong mỗi module, nó là một

lớp cùng tên dành riêng cho từng module Khi ứng dụng bước tới giai đoạn load các module, Module.php của từng module sẽ được khởi tạo và

nó giúp trả về các cấu hình cài đặt để sử dụng khi ứng dụng chạy

Trang 19

Đinh Việt Bảo - 13BCNTT2 18

CHƯƠNG II XÂY DỰNG HỆ THỐNG CMS

1 Yêu cầu nghiệp vụ của hệ thống

1.1 Quản lý tài khoản cá nhân

1.1.1 Thông tin cá nhân

Chức năng cho phép người quản trị cập nhật thông tin cá nhân như: họ tên, mail, ảnh đại diện tương ứng với tài khoản mà họ đang đăng nhập hệ thống CMS 1.1.2 Thay đổi mật khẩu

e-Chức năng cho phép người quản trị cập nhật mật khẩu của tài khoản mà họ đang đăng nhập hệ thống CMS

Chức năng cho phép người quản trị xem được danh sách nhóm người dùng đã

có trong hệ thống, sau đó người quản trị có thể xem chi tiết thông tin của từng nhóm hiển thị ở danh sách nhóm hoặc cập nhật thông tin nhóm: thêm người dùng vào nhóm, phân quyền cho nhóm

Chức năng còn cho phép người quản trị tìm kiếm nhóm người dùng theo một hoặc nhiều ký tự xuất hiện trong tên nhóm Sau khi tìm kiếm xong hệ thống sẽ hiển thị danh sách nhóm người dùng để người quản trị có thể xem hoặc cập nhật thông tin của một nhóm bất kỳ

Trang 20

Đinh Việt Bảo - 13BCNTT2 19

Chức năng còn cho phép người quản trị tìm kiếm người dùng đã có trong hệ thống theo tiêu chí: một hoặc nhiều ký tự xuất hiện trong thông tin người dùng Sau khi tìm kiếm, hệ thống sẽ hiển thị kết quả là danh sách người dùng, người quản trị sẽ chọn từng người dùng bất kỳ để cập nhật thông tin người dùng đó nếu muốn

1.4 Quản lý controler

1.4.1 Thêm controller

Chức năng cho phép người quản trị thêm các controller mới vào hệ thống (các controller này được phát triển trên nền tảng Zend Framework 2.0 dựa theo chuẩn mô hình MVC) Việc này nhằm đáp ứng ứng yêu cầu về tính mở của hệ thống

1.4.2 Danh sách controller

Chức năng cho phép người quản trị xem danh sách controller đã có trong hệ thống, người quản trị có thể chọn một controller từ danh sách và cập nhật thông tin của các controller đó

Chức năng còn cho phép người quản trị tìm kiếm các controller theo bất cứ ký

tự xuất hiện trong controller, sau khi tìm kiếm xong, hệ thống sẽ hiển thị danh sách controller để người quản trị có thể cập nhật thông tin của một controller bất kỳ nếu muốn

1.5 Quản lý action

1.5.1 Thêm action

Chức năng cho phép người quản trị thêm các action mới vào hệ thống (các action này được phát triển trên nền tảng Zend Framework 2.0 dựa theo chuẩn mô hình MVC) Việc này nhằm đáp ứng ứng yêu cầu về tính mở của hệ thống

Trang 21

Đinh Việt Bảo - 13BCNTT2 20

1.5.2 Danh sách action

Chức năng cho phép người quản trị xem danh sách action đã có trong hệ thống, người quản trị có thể chọn một action từ danh sách và cập nhật thông tin của các action đó

Chức năng còn cho phép người quản trị tìm kiếm các action theo bất cứ ký tự xuất hiện trong action, sau khi tìm kiếm xong, hệ thống sẽ hiển thị danh sách action

để người quản trị có thể cập nhật thông tin của một action bất kỳ nếu muốn

Chức năng còn cho phép người quản trị tìm kiếm menu đã có trong hệ thống theo tiêu chí: một hoặc nhiều ký tự xuất hiện trong thông tin menu Sau khi tìm kiếm,

hệ thống sẽ hiển thị kết quả là danh sách menu, người quản trị sẽ chọn từng menu bất

kỳ để cập nhật thông tin menu đó nếu muốn

1.7 Quản lý hệ thống

1.7.1 Cấu hình hệ thống

Chức năng cho phép người quản trị cập nhật các thông tin cấu hình để sử dụng giá trị của tham số cấu hình đó trong toàn hệ thống với các mục đích khác nhau

Trang 22

Đinh Việt Bảo - 13BCNTT2 21

- Info: Các log dạng thông báo

- Error: Các log thông báo lỗi

- System: Các thao tác của người dùng đã thực hiện trong hệ thống

Chức năng còn cho phép người quản trị tìm kiếm chuyên mục đã có trong hệ thống theo tiêu chí: một hoặc nhiều ký tự xuất hiện trong thông tin chuyên mục Sau khi tìm kiếm, hệ thống sẽ hiển thị kết quả là danh sách chuyên mục, người quản trị sẽ chọn từng chuyên mục bất kỳ để cập nhật thông tin chuyên mục đó nếu muốn

Trang 23

Đinh Việt Bảo - 13BCNTT2 22

1.9 Quản lý loại bài viết

1.9.1 Thêm loại bài viết

Chức năng cho phép người quản trị thêm loại bài viết

1.9.2 Danh sách loại bài viết

Chức năng cho phép người quản trị xem danh sách loại bài viết đã có trong hệ thống Người quản trị có thể chọn bất kỳ loại bài viết nào từ danh sách để cập nhật các thông tin của loại bài viết đó

Chức năng còn cho phép người quản trị tìm kiếm loại bài viết đã có trong hệ thống theo tiêu chí: một hoặc nhiều ký tự xuất hiện trong thông tin loại bài viết Sau khi tìm kiếm, hệ thống sẽ hiển thị kết quả là danh sách loại bài viết, người quản trị sẽ chọn từng loại bài viết bất kỳ để cập nhật thông tin loại bài viết đó nếu muốn

1.10 Quản lý tag bài viết

1.10.1 Thêm tag bài viết

Chức năng cho phép người quản trị thêm tag bài viết

1.10.2 Danh sách tag bài viết

Chức năng cho phép người quản trị xem danh sách tag bài viết đã có trong hệ thống Người quản trị có thể chọn bất kỳ tag bài viết nào từ danh sách để cập nhật các thông tin của tag bài viết đó

Chức năng còn cho phép người quản trị tìm kiếm tag bài viết đã có trong hệ thống theo tiêu chí: một hoặc nhiều ký tự xuất hiện trong thông tin tag bài viết Sau khi tìm kiếm, hệ thống sẽ hiển thị kết quả là danh sách tag bài viết, người quản trị sẽ chọn từng tag bài viết bất kỳ để cập nhật thông tin tag bài viết đó nếu muốn

1.11 Quản lý bài viết

Chức năng cho phép các phóng viên, cộng tác viên, trưởng ban, thư ký toà soạn và tổng biên tập có thể đưa bài viết, biên tập và xuất bản bài viết đúng quy trình chung của các tòa soạn báo diện tử theo quy định và phê duyệt từ Bộ thông tin

và truyền thông

Trang 24

Đinh Việt Bảo - 13BCNTT2 23

Quy trình nghiệp vụ xuất bản bài viết

False

False

False

Hình 3.1 Quy trình nghiệp vụ xuất bản bài viết

Ngoài ra chức năng cho phép cách tìm các bài viết trong hệ thống theo các tiêu chí sau:

- Theo ký tự xuất hiện trong tiêu đề, trích dẫn hoặc nội dung

- Theo trạng thái bài viết

- Theo chuyên mục của bài viết

- Thao tag bài viết

- Theo ngày xuất bản: từ ngày đến ngày

Trang 25

Đinh Việt Bảo - 13BCNTT2 24

Kết quả tìm kiếm sẽ hiển thị danh sách tìm kiếm gồm các thông tin: số thứ tự, trạng thái, ngày xuất bản, tiêu đề, tác giả

1.11.1 Thêm bài viết

Chức năng cho phép người quản trị cập nhật bài viết, các thông tin liên quan đến bài viết gồm:

(a) Thông tin chung

(b) Nội dung bài viết

(c) Thông tin xuất bản:

- Ngày giờ xuất bản: Mặc định là ngày giờ hiện tại trong hệ thống, nếu là ngày giờ lớn hơn ngày giờ hiện tại thì hệ thống sẽ xuất bản bài viết vào ngày giờ đó

- Ghi chú: Là nội dung ghi chú về thao tác của người quản trị với bài viết (Hạ xuống, trả về trình bày soát lỗi, trả về biên tập )

- Chuyên mục: Là chuyên mục mà bài viết sẽ xuất bản vào đó, hệ thống cho phép bài viết xuất bản đồng thời vào nhiều chuyên mục

1.11.2 Danh sách bài viết cá nhân

- Danh sách bài viết của tôi: Chức năng cho phép người quản trị xem các bài viết mà mình đã đưa lên hệ thống

- Danh sách bài viết lưu tạm: Cho phép người quản trị xem các bài viết của mình

đã đưa lên hệ thống ở trạng thái lưu tạm

- Danh sách bài viết chờ biên tập: Cho phép người quản trị xem các bài viết của mình đã đưa lên hệ thống để chờ biên tập

- Danh sách bài viết chờ soát lỗi: Cho phép người quản trị xem các bài viết của mình đã đưa lên hệ thống để chờ soát lỗi

- Danh sách bài viết chờ xuất bản: Cho phép người quản trị xem các bài viết của mình đã đưa lên hệ thống để chờ xuất bản

- Danh sách bài viết đã xuất bản: Cho phép người quản trị xem các bài viết của mình đã đưa lên hệ thống và đã xuất bản

- Danh sách bài viết bị trả lại: Cho phép người quản trị xem các bài viết của mình đã đưa lên hệ thống và bị trả lại

Trang 26

Đinh Việt Bảo - 13BCNTT2 25

- Danh sách bài viết bị hạ xuống: Cho phép người quản trị xem các bài viết của mình đã đưa lên hệ thống và đã xuất bản nhưng bị hạ xuống

1.11.3 Danh sách bài viết chờ xử lý

- Danh sách bài viết chờ biên tập: Chức năng cho phép người quản trị có quyền biên tập bài viết sẽ vào xem được danh sách bài viết đang chờ biên tập và biên tập lại nội dung Người có quyền biên tập sẽ trả bài viết về cho phóng viên nếu bài viết không đáp ứng được yêu cầu

- Danh sách bài viết chờ soát lỗi: Chức năng cho phép người quản trị có quyền soát lỗi bài viết vào xem được danh sách bài viết đang chờ soát lỗi để sửa lỗi

- Danh sách bài viết chờ xuất bản: Chức năng cho phép người quản trị có quyền xuất bản bài viết vào xem được danh sách bài viết đang chờ xuất bản để xuất bản Người có quyền xuất bản có quyền hạ những bài viết đã xuất bản, không cho phép hiển thị trên Front-End của Website

1.11.4 Danh sách bài viết đã xuất bản

Chức năng cho phép người quản trị có quyền xuất bản bài viết sẽ vào xem được danh sách bài viết đang đã xuất bản

1.11.5 Danh sách bài viết bị hạ xuống

Chức năng cho phép người quản trị có quyền xuất bản bài viết vào xem được danh sách bài viết đang bị hạ xuống

1.11.6 Danh sách tất cả bài viết

Chức năng cho phép người quản trị có quyền xem toàn bộ các bài viết trong hệ thống

1.11.7 Biên tập chuyên mục

Chức năng cho phép người quản trị biên tập bài viết đã xuất bản có trong hệ thống Người quản trị có thể sắp xếp thứ tự bài viết đã xuất bản trong các chuyên mục

1.12 Quản lý comment

Chức năng cho phép người quản trị xem danh sách comment về bài viết gửi lên

hệ thống (phần gửi thông tin comment về bài viết được bạn đọc thực hiện ở phía

Trang 27

Đinh Việt Bảo - 13BCNTT2 26

Front End) Người quản trị có thể cập nhật thông tin từng comment: sửa, xóa, xuất bản, hạ xuống, từ chối nếu người quản trị có các quyền tương ứng

Chức năng còn cho phép người quản trị tìm kiếm comment đã có trong hệ thống theo tiêu chí: một hoặc nhiều ký tự xuất hiện trong thông tin comment, trạng thái, thời gian gửi Sau khi tìm kiếm, hệ thống sẽ hiển thị kết quả là danh sách comment, người quản trị sẽ chọn từng comment bất kỳ để cập nhật thông tin comment đó nếu muốn

1.12.1 Danh sách comment chờ xử lý

Chức năng cho phép người quản trị có thể xem danh sách comment chờ xử lý

về bài viết gửi lên hệ thống Người quản trị có thể cập nhật thông tin từng comment: sửa, xóa, xuất bản, hạ xuống, từ chối nếu người quản trị có các quyền tương ứng 1.12.2 Danh sách comment đã xuất bản

Chức năng cho phép người quản trị có thể xem danh sách comment đã xuất bản

về bài viết gửi lên hệ thống Người quản trị có thể cập nhật thông tin từng comment: sửa, xóa, xuất bản, hạ xuống, từ chối nếu người quản trị có các quyền tương ứng 1.12.3 Danh sách comment bị hạ xuống

Chức năng cho phép người quản trị có thể xem danh sách comment bị hạ xuống

về bài viết gửi lên hệ thống Người quản trị có thể cập nhật thông tin từng comment: sửa, xóa, xuất bản, hạ xuống, từ chối nếu người quản trị có các quyền tương ứng 1.12.4 Danh sách comment bị hạ xuống

Chức năng cho phép người quản trị có thể xem danh sách comment bị từ chối

về bài viết gửi lên hệ thống Người quản trị có thể cập nhật thông tin từng comment: sửa, xóa, xuất bản, hạ xuống, từ chối nếu người quản trị có các quyền tương ứng 1.12.5 Danh sách comment theo bài viết

Chức năng cho phép người quản trị có thể xem danh sách comment về bài viết gửi lên hệ thống theo danh sách bài viết trong hệ thống Tại mỗi bài viết, người quản trị có thể thấy được chi tiết số lượng comment chờ xử lý, đã xuất bản, bị hạ xuống, bị

từ chối Sau đó người quản trị có thể cập nhật thông tin từng comment: sửa, xóa, xuất bản, hạ xuống, từ chối nếu người quản trị có các quyền tương ứng

Trang 28

Đinh Việt Bảo - 13BCNTT2 27

1.13 Quản lý like

1.13.1 Danh sách tất cả like

Chức năng cho phép người quản trị xem danh sách like bài viết gửi lên hệ thống (phần gửi thông tin like về bài viết được bạn đọc thực hiện ở phía Front End) Người quản trị có thể xem thông tin hoặc xóa từng like

Chức năng còn cho phép người quản trị tìm kiếm like đã có trong hệ thống theo tiêu chí: thời gian gửi Sau khi tìm kiếm, hệ thống sẽ hiển thị kết quả là danh sách like, người quản trị sẽ chọn từng like bất kỳ để xem thông tin hoặc xóa like đó nếu muốn

1.13.2 Danh sách like theo bài viết

Chức năng cho phép người quản trị có thể xem danh sách like bài viết gửi lên

hệ thống theo danh sách bài viết trong hệ thống Sau đó người quản trị có thể xem thông tin hoặc xóa like

2 Mô hình tình huống người dùng

Thêm nhóm người dùng

Sửa

nhóm người dùng

Phân quyền hệ thống

<<extend>>

<<extend>>

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

Trang 29

Đinh Việt Bảo - 13BCNTT2 28

người dùng

Xem chi tiết

người dùng

Thêm người dùng

Trang 30

Đinh Việt Bảo - 13BCNTT2 29

Trang 31

Đinh Việt Bảo - 13BCNTT2 30

thích

Thống kê bình luận

Xem chi tiết

chuyên mục

Thêm chuyên mục

<<extend>>

Quản lý loại bài viết

Trang 32

Đinh Việt Bảo - 13BCNTT2 31

loại bài viết

Xem chi tiết loại

Quản lý tag bài viết

tag bài viết

Xem chi tiết tag

Trang 33

Đinh Việt Bảo - 13BCNTT2 32

Quản trị hệ thống Xem danh sách

<<extend>>

Phân rã use case: Thêm bài viết

Thêm bài viết

Trả về thư ký tòa soạn

Trả về phóng viên / biên tập viên

Trang 34

Đinh Việt Bảo - 13BCNTT2 33

Xem danh sách bài viết

Trang 35

Đinh Việt Bảo - 13BCNTT2 34

Quản lý phiên bản bài viết

So sánh phiên bản

Xem chi tiết phiên bản

Trả về thư ký tòa soạn

Trả về phóng viên / biên tập viên

Trang 36

Đinh Việt Bảo - 13BCNTT2 35

Xóa bài viết

Trả về thư ký tòa soạn

Trả về phóng viên / biên tập viên

Trang 37

Đinh Việt Bảo - 13BCNTT2 36

Xem danh sách comment <<extend>> Xuất bản

Hạ xuống

<<extend>>

Từ chối <<extend>>

Tìm kiếm comment

<<include>

Phân rã use case: Sửa comment

Sửa comment <<extend>> Xuất bản

Hạ xuống

<<extend>>

Từ chối <<extend>>

Phân rã use case: Xem chi tiết comment

Xem chi tiết comment <<extend>> Xuất bản

Hạ xuống

<<extend>>

Từ chối <<extend>>

Sửa comment

<<extend>>

Xóa comment

<<extend>>

Trang 38

Đinh Việt Bảo - 13BCNTT2 37

tag bài viết

Xem chi tiết tag

Trang 39

Đinh Việt Bảo - 13BCNTT2 38

Phân rã use case: Thêm bài viết

Thêm bài viết

Gửi trưởng ban

Trang 40

Đinh Việt Bảo - 13BCNTT2 39

Xem danh sách bài viết

Ngày đăng: 13/02/2021, 09:22

TỪ KHÓA LIÊN QUAN

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