1. Trang chủ
  2. » Giáo Dục - Đào Tạo

ĐỀ TÀI : TÌM HIỂU WORDPRESS ỨNG DỤNG XÂY DỰNG HỆ THỐNG QUẢN LÝ PHIÊN BẢN CHO VIỆC PHÁT TRIỂN PLUGIN

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

Cấu trúc

  • CHƯƠNG I: TỔNG QUAN VỀ ĐỀ TÀI

    • I.1 Đặt vấn đề

  • Cùng với việc phát triển cộng đồng mã nguồn mở càng ngày chúng ta càng có nhiều nền tảng mã nguồn mở mạnh mẽ, đáng tin cậy hơn để sử dụng phát triển website. Một trong những nền tảng đó là wordpress. Wordpress là một hệ thống phát xuất bản blog được viết bằng ngôn ngữ lập trình PHP và sử dụng MySQL làm cơ sở dữ liệu. Wordpress với tính năng phong phú, dung lượng nhỏ, tốc độ cao, đặc biệt dễ tùy biến giao diện ở mức tối đa và có khả năng mở rộng với các plugins nên ngoài chức năng blog nó còn được dùng như là một CMS để xây dựng website.

  • Đây là mã nguồn mở hoàn toàn miễn phí, nếu muốn sởhữu một blog của riêng mình thì Wordpress hẵn sẽ là lựa chọn tối ưu nhất cho bạn. Yêu cầu của một blog cá nhân là khá đơn giản và Wordpress hầu như đã hỗ trợ sẵn tất cả và ta chỉ việc chỉnh sữa một vài chi tiết là có thể dụng được ngay.

  • Đối với những yêu cầu cơ bản của một Web blog là post bài, và cho người đọc comment vào bài đó nếu muốn. Ngoài những chi tiết chính kể trên để cho người dùng bình thường cũng có thể sử dụng được, bạn có thể thay đổi hoặc bổ sung một số chức năng cho Wordpress. Phần này chỉ dành cho các lập trình viên có am hiểu về lập trình, đó là phát triển các Plugin bổ sung vào cho Wordpress và tạo ra các Theme mới cho Wordpress.

  • Hiện nay việc phát triển các Plugin và Theme cho Wordpress là công việc rất thường xuyên của các lập trình viên đi về mảng lập trình PHP về mã nguồn mở. Wordpress là mã nguồn mở, vì vậy bạn có thể thay đổi nội dung của phần “lõi” của nó, nhưng thật sự không nên làm như vậy. Nếu muốn bổ sung phần nào cho Wordpress thì nên viết thêm những Plugin mới cho nó thay vì thay đổi cấu trúc của phần “lõi”.

    • I.2 Lý do chọn đề tài

  • Tuy nhiên, sau một thời gian sử dụng wordpress, tôi nhận thấy nó vẫn còn có những điểm chưa thật sự tốt sau:

  • - Hệ thống quản lý plugin cho phép chỉnh sửa trực tiếp mã nguồn trên nền web nhưng có hạn chế là bộ soạn thảo của nó quá đơn giản, gây khó khăn cho người phát triển.

  • - Hệ thống quản lý giao diện không có khả năng tạo và chỉnh sửa giao diện trực tiếp trên nền web, đó là thiếu sót với những người phát triển từ xa không có điều kiện truy cập trực tiếp vào máy chủ web.

  • Đề tài nghiên cứu, phát triển wordpress để xây dựng website được thực hiện với mục đích khắc phục các nhược điểm trên của wordpress đồng thời bổ sung tính năng của hệ thống quản lý phiên bản nhằm tăng cường khả năng làm việc nhóm, giảm thiểu rủi ro trong quá trình phát triển.

    • I.3 Công cụ và môi trường phát triển

  • Hệ quản trị cơ sởdữ liệu MySql.

  • IDE Eclipse, công cụ viết mã PHP, Javascript, CSS…

  • MySql Workbench, công cụ quản trị, thiết kế cơ sởdữ liệu

  • Ngôn ngữ lập trình PHP 5

  • CHƯƠNG II: CƠ SỞ LÝ THUYẾT

    • II.1 Wordpress và các chức năng

      • II.1.1 Giới thiệu về Wordpress

  • WordPress là phần mềm mã nguồn mở được cung cấp miễn phí, sử dụng ngôn ngữ lập trình PHP và hệ cơ sở dữ liệu MySQL. Do đó, nó thích hợp cho ai muốn đặt blog trên chính website sử dụng tên miền của riêng mình. Tuy nhiên, nếu không có tên miền riêng và chịu được một vài hình ảnh quảng cáo đôi khi xuất hiện, bạn vẫn có thể dùng chung với nhà cung cấp Automattic Production tại địa chỉ http://wordpress.com tương tự các nhà cung cấp khác.

  • Dịch vụ của Automattic Production đưa ra hơn 50 giao diện mẫu chất lượng cao. Tuy vậy, để tùy biến giao diện bạn phải bỏ ra 15 USD mỗi năm để chỉnh sửa CSS. WordPress không cho phép bạn thêm vào các đoạn mã JavaScript hay RSS bên ngoài (đồng nghĩa với việc bạn không thể đặt bất cứ biển quảng cáo lên blog của mình), nhưng nó cung cấp cho bạn một số ứng dụng nhỏ (widget) để lựa chọn và sử dụng bằng cách rê và thả. Phần soạn thảo làm việc khá tốt khi kết hợp giữa chế độ soạn thảo toàn diện (WYSIWYG) và mã HTML.

  • WordPress là một blogging platform có mã nguồn mở, một hệ thống quản trị nội dung dành cho cá nhân sử dụng ngôn ngữ lập trình PHP và hệ quản trị CSDL MySQL.

  • WordPress có từ khoảng năm 2004, tiền thân của nó b2/cafelog. Tuy nhiên đến khoảng tháng 2.2005, với phiên bản 1.5 thì WordPress mới được nhiều người biết đến bởi sự ưu việt và nổi bật trong chức năng của nó.

  • Phiên bản hiện tại, WordPress 2.5 (ra mắt ngày 29.3.2008 ) thật sự gây được dấu ấn nơi người dùng, nổi trội nhất là Dashboard đã được re-design hoàn toàn, cực kỳ trực quan và thân thiện.

    • II.1.2 Các tính năng chính của Wordpress

  • Có thể điểm qua một số chức năng của WordPress:

  • Hệ thống Template riêng biệt với HTML/CSS. Cho phép người dùng chỉnh sửa, tùy biến giao diện của blog mình ở một mức độ khá thoáng.

  • Hỗ trợ các tính năng kèm thêm plugin/widget. Plugin dùng cho WordPress.org, Widget dùng cho WordPress.com

  • Hỗ trợ tag. Quá quen thuộc với người dùng blog Yahoo! 360.

  • Hỗ chợ tạo chuyên mục. Cho phép một bài viết nằm ở nhiều chuyên mục khác nhau. Kết hợp với tag, đây thật sự là một chức năng đáng giá.

  • Hỗ trợ Trackback/Pingback. Đây là một tính năng còn tương đối mới mẻ với những ai đã quen dùng Yahoo! 360. Đây là những phương thức cho phép tác giả nhận được những thông báo khi một ai đó link đến một trong những entry của họ.

  • Hỗ trợ link dạng SEO. Ví dụ http://vuphuong87.wordpress.com/2008/04/16/yahoo-360-chia-tay-nguoi-dung-viet-nam/. Tính năng này tăng cường độ thân thiện với người xem và cả máy tìm kiếm như Google, Yahoo…

  • Trình soạn thảo tuyệt vời: nhanh và nhẹ. Đổi từ chế WYSIWYG sang HTML Code một cách hoàn hảo chứ không bị thay đổi cấu trúc như Yahoo! 360.

    • II.1.3 Ứng dụng Wordpress xây dựng Website

  • Những module của Dashboard có thể được cấu hình, có thể điều chỉnh trong trong Dashboard để thay đổi cách mà các module hiển thị ra bên ngoài.

    • II.1.4 Wordpress Plugin

    • II.2 Hệ thống quản lý phiên bản

      • II.2.1 Hệ thống quản lý phiên bản là gì

  • Trong kỹ nghệ phần mềm, một hệ thống quản lý phiên bản (còn viết là VCS theo từ tiếng Anh version control system) là một hệ thống lưu giữ các phiên bản của mã nguồn của sản phẩm phần mềm, giúp các lập trình viên có thể dễ dàng lấy lại phiên bản mong muốn.

  • Hệ thống này có thể được sử dụng bởi một nhóm các lập trình viên, mỗi thành viên trong nhóm thường không được phép thay đổi mã nguồn của các thành viên khác, mà chỉ có thể xem. VCS cho phép người quản trị phân chia các tập tin cho từng thành viên tương ứng. Nó cũng cho phép các thành viên chia sẻ một số tập tin cho nhau trong khi phát triển. Các thành viên có thể phát hiện lỗi và sửa lỗi thuận tiện trong VCS. Trưởng nhóm phải có nhiệm vụ cập nhật lại nội dung của các tập tin đó. VCS giúp cho công việc này được thực hiện một cách tự động.

  • Khi các thành viên hiệu chỉnh mã của cùng một tập tin tại cùng một thời điểm, để tránh sửa đổi xung đột, họ sẽ phải so sánh xem có gì khác biệt giữa các sửa đổi của các thành viên hay không. VCS giúp cho việc này được thực hiện tự động.

    • II.2.2 Quản lý mã nguồn bằng subversion

    • II.2.3 Sử dụng phần mềm subversion dựa trên TortoiseSVN client

  • Các chức năng mà các bạn cần quan tâm nhất là chức năng Commit – để đưa các dữ liệu của các bạn lên thư mục dự án (chú ý là mỗi lần các bạn đưa lên thì sẽ là một phiên bản (revision) của dự án nên các bạn chỉ nên đưa lên server một khi đã hoàn thành cơ bản chạy được một tính năng nào đó không có lỗi để tránh trường hợp có người khác update về chạy bị lỗi ở phần của các bạn mà chương trình không chịu chạy, như vậy rất nguy hiểm). Và tính năng thứ 2, là update, để cập nhập tài nguyên của dự án, phần mềm sử tự so sánh mã nguồn từ server và của các bạn và tìm ra chỗ nào khác sẽ tự động nối (merge) vào mã nguồn của các bạn đảm bảo không bị lỗi). Các bạn mỗi khi commit khuyến khích nên update xong rồi hãy update để tránh tình trạng bị lỗi.

    • II.3 Giới thiệu một số công nghệ sử dụng trong đề tài

      • II.3.1 Kiến trúc mô hình Client - Server

  • Interner xoay quanh mô hình Client – Server. Tại máy địa phương cài đặt những phần mềm như (Internet Explore, Firefox, Safari, Chrome…) gọi là client và tương tác với những phần mềm khác như (Web Server, Mail Server, Database Server) được đặt ở một máy tính ở xa gọi là Server.

  • Trình duyệt (Browser) tương tác với Server dựa vào giao thức, giao thức giúp trao đổi dữ liệu một cách chính xác từ yêu cầu (request) của client và server trả lại (response) dữ liệu chính xác cho client. Một số giao thức thông dụng như:

  • Mô hình Client – Server sử dụng giao thức phi trạng thái (connection-less protocol), nghĩa là sau bất kỳ tương tác nào giữa Client và Server thì kết nối giữa chúng sẽ bị mất đi.

    • II.3.2 AJAX (Asynchronous JavaScript and XML)

  • Khác với kiểu tương tác bình thường giữa Client và Server, ứng với một yêu cầu từ Client thì Server trả về dữ liệu. AJAX là kỹ thuật lấy thông tin bất đồng bộ với máy chủ Web dựa vào đối tượng XMLHttpRequest (Mặc dù, việc trao đổi này có thể được thực hiện với nhiều định dạng như HTML, văn bản thường, JSON và thậm chí EBML, nhưng XML là ngôn ngữ thường được sử dụng).

  • JavaScript Object Notation (thường được viết tắt là JSON, đọc gần giống như "dây thừng") là một kiểu dữ liệu trong JavaScript. Kiểu dữ liệu này bao gồm chủ yếu là text. Về cấu trúc, nó mô tả một vật thể bằng cách gói những vật thể con trong vật thể lớn hơn trong dấu ngoặc nhọn ( { } ). JSON là một kiểu dữ liệu trung gian, chủ yếu được dùng để vận chuyển thông tin giữa các thành phần của một chương trình.

  • Trong hệ thống quản lý phiên bản cho Wordpress , tôi sử dụng JSON để lấy dữ liệu bất đồng bộ từ Server.

    • II.3.3 Giới thiệu opensource CodeMirror

  • CodeMirror là một thư việ Javascript có thể dùng để tạo một giao diện Editor , nó có thể nhận dạng từ khóa của một số ngôn ngữ như XML/HTML, PHP, CSS, Phython… Ứng với một ngôn ngữ được viết, mã của nó sẽ được tô màu, và Editor sẽ tùy chọn ngôn ngữ.

  • CHƯƠNG III: ĐẶC TẢ CHỨC NĂNG HỆ THỐNG

    • III.1 Khảo sát hiện trạng

  • Một hệ thống quản lý phiên bản cần quản lý, nội dung, sự thay đổi nội dung, ngày thay đổi nội dung, phiên bản ứng với nội dung. Sau đây là phần mô tả theo quy trình viết mã lệnh của một lập trình viên.

  • Lập trình viên muốn viết 1 Plugin mới cho Wordpress, Plugin đó có thể có nhiều file khác nhau (file_name), các file đó có thể thuộc nhiều phần mở rộng khác nhau (file_type), ở hệ thống quản lý phiên bản này chỉ quản lý 2 loại :

  • Công việc tiếp theo là quản lý ngày đầu tiên viết Plugin (file_created) ứng với phiên bản đầu tiên (content_revision = 1). Sau khi phát triển lần đầu tiên Plugin ấy, nếu cảm thấy vẫn chưa hài lòng về kết quả đạt được thì lập trình viên có thể thay đổi cho hợp lý (file_modified) và lưu lại thì tăng content_revision lên một đơn vị.

  • Sau nhiều lần thay đổi, nếu muốn lấy lại phiên bản nào đó thì chỉ cần cung cấp ngày đã viết phiên bản đó và revision tương ứng.

    • III.2 Yêu cầu chức năng

    • III.3 Use Case Diagram

    • III.4 Mô hình hóa yêu cầu người sử dụng

    • III.5 Danh sách các lớp đối tượng

  • CHƯƠNG IV: THIẾT KẾ CƠ SỞ DỮ LIỆU VÀ CÁC CHỨC NĂNG

    • IV.1 Thiết kế cơ sở dữ liệu

  • Hệ thống quản lý phiên bản cho Wordpress được xây dựng để quản lý mã nguồn. Công việc lưu, sữa, xóa, thêm mới và một số tác vụ cơ bản khác được lưu trữ trực tiếp vào cơ sởdữ liệu.

  • Để quản lý nội dung của file, bao gồm:

  • Bảng wp_file lưu trữ hầu hết các thông tin cơ bản của file, sau đây là một số mô tả về bảng wp_file.

  • Để quản lý phiên bản: hệ thống quản lý một số chức năng sau đây:

  • Đánh số thứ tự của phiên bản đó để lúc cần có thể khôi phục lại dữ liệu dựa vào số thứ tự của phiên bản.

  • Đánh dấu việc nội dung của một file nào đó có được hiển thị ra bên ngoài hay không. Một file sau khi bị chỉnh sữa và lưu lại thì lập tức số thứ tự phiên bản (revision) của nó tăng lên, nội dung củ của nó không bị xóa đi mà bị đánh dấu là disabled. Một file không bị xóa thật sự mà nó chỉ bị đánh dấu là không được hiển thị ra bên ngoài.

  • Để lấy lại một phiên bản nào đó (revesion) thì dựa vào số thứ tự phiên bản. Để hiển thị thì chỉ cần đánh dấu cho phiên bản đó là published và đánh dấu phiên bản hiện tại là disabled.

  • Bảng wp_file_content: lưu trữ các thông tin chính về việc quản lý phiên bản, cho phép phiên bản đó có được hiển thị ra bên ngoài hay không, sau đây là một số mô tả của bảng wp_file_content.

    • IV.2 Xây dựng các tính năng khác

      • IV.2.1 Xây dựng lớp tương tác với cơ sởdữ liệu DataLayer

  • Lớp DataLayer thực hiện tất cả các thao tác thêm, sữa, xóa dữ liệu, và đây là lớp cơ sởđể các lớp khác thừa kế. Sau đây là mô tả chi tiết của lớp này.

  • Một số thuộc tính của DataLayer

  • Một số phương thức của DataLayer

    • IV.2.2 Xây dựng lớp File với những tác vụ thêm, sữa, xóa

  • Lớp File được thừa kế từ lớp DataLayer, nhằm lưu trữ những thông tin khi lập trình viên tác động thực sự vào một file nào đó. Sau đây là mô tả chi tiết về lớp này.

  • Một số phương thức

    • IV.2.3 Các tác vụ cơ bản của hệ thống

  • Hệ thống quản lý phiên bản được xây dựng để quản lý mã nguồn bằng cách cập nhật liên tục nội dung giữa Client và Server, bất cứ một thay đổi nào phía Client đều được đồng bộ với Server thông qua những cuộc gọi AJAX.

  • CHƯƠNG V: XÂY DỰNG VÀ TRIỂN KHAI HỆ THỐNG

    • V.I Giao diện Web Editor xây dựng để phát triển Plugin (dựa vào mã nguồn mỡ CodeMirror)

    • V.2 Demo hệ thống

      • V.2.1 Nhận diện phiên bản hiện tại

      • V.2.2 Thay đổi nội dung một file nào đó, chỉ số revision tự động tăng lên

      • V.2.3 Đồng bộ dữ liệu từ ổ cứng và cơ sởdữ liệu

      • V.2.4 Khôi phục lại nội dung cho file

      • V.2.5 Khôi phục dữ liệu thành công

  • CHƯƠNG VI: KẾT LUẬN

    • VI.1 Đánh giá nội dung đề tài

    • VI.2 Hướng phát triển

Nội dung

ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA CÔNG NGHỆ THÔNG TIN Tel (84-511) 736 949, Fax (84-511) 842 771 Website: itf.ud.edu.vn, E-mail: cntt@edu.ud.vn LUẬN VĂN TỐT NGHIỆP KỸ SƯ NGÀNH CÔNG NGHỆ THÔNG TIN MÃ NGÀNH : 05115 ĐỀ TÀI : TÌM HIỂU WORDPRESS ỨNG DỤNG XÂY DỰNG HỆ THỐNG QUẢN LÝ PHIÊN BẢN CHO VIỆC PHÁT TRIỂN PLUGIN Mã số : 06T3 - 017 Ngày bảo vệ : 15/06/20011 SINH VIÊN : NGÔ QUỐC KHÁNH LỚP : 06T3 CBHD : ThS VÕ ĐỨC HOÀNG ĐÀ NẴNG, 05/20011 LỜI CẢM ƠN Tôi xin chân thành cảm ơn thầy cô giáo khoa Công Nghệ Thông Tin tồn thể thầy trường Đại Học Bách Khoa Đà Nẵng truyền đạt cho kiến thức quý giá suốt năm học vừa qua Xin chân thành cảm ơn thầy: Võ Đức Hoàng tận tình bảo giúp đỡ cho tơi hồn thành luận văn Cuối xin cảm ơn bạn khoa công nghệ thông tin, người giúp đỡ, chia kiến thức, kinh nghiệm, tài liệu…trong suốt trình nghiên cứu thực đề tài LỜI CAM ĐOAN Tôi xin cam đoan : Những nội dung báo cáo thực hướng dẫn trực tiếp thầy Võ Đức Hoàng Mọi tham khảo dùng báo cáo trích dẫn rõ ràng tên tác giả, tên cơng trình, thời gian, địa điểm cơng bố Mọi chép không hợp lệ, vi phạm quy chế đào tạo, hay gian trá, xin chịu hồn tồn trách nhiệm Sinh viên Ngơ Quốc Khánh NHẬN XÉT CỦA CÁN BỘ HƯỚNG DẪN Đà Nẵng ngày … tháng … năm 2011 Cán hướng dẫn ThS Võ Đức Hoàng NHẬN XÉT CỦA CÁN BỘ PHẢN BIỆN Đà Nẵng, ngày … tháng … năm 2011 Cán phản biện MỤC LỤC CHƯƠNG I: TỔNG QUAN VỀ ĐỀ TÀI I.1 Đặt vấn đề I.2 Lý chọn đề tài 10 I.3 Công cụ môi trường phát triển 11 CHƯƠNG II: CƠ SỞ LÝ THUYẾT .11 II.1 Wordpress chức .11 II.1.1 Giới thiệu Wordpress .11 II.1.2 Các tính Wordpress .12 II.1.3 Ứng dụng Wordpress xây dựng Website 13 II.1.4 Wordpress Plugin 16 II.2 Hệ thống quản lý phiên 17 II.2.1 Hệ thống quản lý phiên 17 II.2.2 Quản lý mã nguồn subversion .17 II.2.3 Sử dụng phần mềm subversion dựa TortoiseSVN client 18 II.3 Giới thiệu số công nghệ sử dụng đề tài 34 II.3.1 Kiến trúc mơ hình Client - Server .34 II.3.2 AJAX (Asynchronous JavaScript and XML) 35 II.3.3 Giới thiệu opensource CodeMirror 36 CHƯƠNG III: ĐẶC TẢ CHỨC NĂNG HỆ THỐNG 37 III.1 Khảo sát trạng 37 III.2 Yêu cầu chức .37 III.3 Use Case Diagram .38 III.4 Mơ hình hóa u cầu người sử dụng 38 III.5 Danh sách lớp đối tượng .40 CHƯƠNG IV: THIẾT KẾ CƠ SỞ DỮ LIỆU VÀ CÁC CHỨC NĂNG 41 IV.1 Thiết kế sởdữ liệu 41 IV.2 Xây dựng tính khác .43 IV.2.1 Xây dựng lớp tương tác với sởdữ liệu DataLayer 43 IV.2.2 Xây dựng lớp File với tác vụ thêm, sữa, xóa 46 IV.2.3 Các tác vụ hệ thống 46 CHƯƠNG V: XÂY DỰNG VÀ TRIỂN KHAI HỆ THỐNG .50 V.I Giao diện Web Editor xây dựng để phát triển Plugin (dựa vào mã nguồn mỡ CodeMirror) .50 V.2 Demo hệ thống 50 V.2.1 Nhận diện phiên 50 V.2.2 Thay đổi nội dung file đó, số revision tự động tăng lên 51 V.2.3 Đồng liệu từ ổ cứng sởdữ liệu 52 V.2.4 Khôi phục lại nội dung cho file 54 V.2.5 Khôi phục liệu thành công 54 CHƯƠNG VI: KẾT LUẬN 56 VI.1 Đánh giá nội dung đề tài 56 VI.2 Hướng phát triển .56 DANH MỤC CÁC HÌNH Hình 1: Đăng ký tài khoản .14 Hình 2: Giao diện Dashboard 15 Hình 3: Đưa project vào SVN server 20 Hình 4: Điền thơng tin 20 Hình 5: Lấy project từ SVN server 21 Hình 6: Kiểm tra nguồn để checkout .22 Hình 7: Lấy thơng tin project từ SVN server 22 Hình 8: Biểu tượng mã nguồn khơng bị thay đổi 23 Hình 9: Biểu tượng mã nguồn bị thay đổi 23 Hình 10: Kiểm tra xem mã nguồn bị thay đổi 24 Hình 11: File bị thay đổi 25 Hình 12: Tìm xem thử chức bị thay đổi 25 Hình 13: Những thông tin bị thay đổi lên 26 Hình 14: Tạo thêm phiên 27 Hình 15: File cần tạo revision 28 Hình 16: Hồn thành tạo revision 29 Hình 17: Thêm File vào dự án 30 Hình 18: Chọn File muốn thêm vào dự án 31 Hình 19: Hồn thành việc thêm File 31 Hình 20: Tạo revision để hoàn tất việc thêm File 32 Hình 21: Lấy lại revision cũ .33 Hình 22: Tìm phiên muốn cập nhật 33 Hình 23: Chọn phiên ứng ý để cập nhật 34 Hình 24: Phiên chọn mang số 11 35 Hình 25: Hồn tất việc khơi phục phiên 11 35 Hình 26: Kiến trúc Client - Server, với cơng nghệ ngơn ngữ phía Server 36 Hình 27: Mơ hình quan hệ bảng hệ thống quản lý phiên 44 Hình 28: Thêm thư mục thư mục gốc .48 Hình 29: Cung cấp tên file upload file 48 Hình 30: Tạo thư mục 49 Hình 31: Nhập tên thư mục 49 Hình 32: Thay đổi tên file 50 Hình 33: Web Editor cho Wordpress .51 Hình 34: Hệ thống quản lý phiên 52 Hình 35: Thay đổi nội dung file, revision tự động tăng lên 53 Hình 36: Đồng database đĩa cứng 54 Hình 37: Khơi phục lại revision 55 Hình 38: Khơi phục lại phiên thứ 56 CHƯƠNG I: TỔNG QUAN VỀ ĐỀ TÀI I.1 Đặt vấn đề Cùng với việc phát triển cộng đồng mã nguồn mở ngày có nhiều tảng mã nguồn mở mạnh mẽ, đáng tin cậy để sử dụng phát triển website Một tảng wordpress Wordpress hệ thống phát xuất blog viết ngơn ngữ lập trình PHP sử dụng MySQL làm sở liệu Wordpress với tính phong phú, dung lượng nhỏ, tốc độ cao, đặc biệt dễ tùy biến giao diện mức tối đa có khả mở rộng với plugins nên ngồi chức blog dùng CMS để xây dựng website Đây mã nguồn mở hồn tồn miễn phí, muốn sởhữu blog riêng Wordpress hẵn lựa chọn tối ưu cho bạn Yêu cầu blog cá nhân đơn giản Wordpress hỗ trợ sẵn tất ta việc chỉnh sữa vài chi tiết dụng Đối với yêu cầu Web blog post bài, cho người đọc comment vào muốn Ngồi chi tiết kể người dùng bình thường sử dụng được, bạn thay đổi bổ sung số chức cho Wordpress Phần dành cho lập trình viên có am hiểu lập trình, phát triển Plugin bổ sung vào cho Wordpress tạo Theme cho Wordpress Hiện việc phát triển Plugin Theme cho Wordpress công việc thường xuyên lập trình viên mảng lập trình PHP mã nguồn mở Wordpress mã nguồn mở, bạn thay đổi nội dung phần “lõi” nó, thật không nên làm Nếu muốn bổ sung phần cho Wordpress nên viết thêm Plugin cho thay thay đổi cấu trúc phần “lõi” I.2 Lý chọn đề tài Tuy nhiên, sau thời gian sử dụng wordpress, tơi nhận thấy có điểm chưa thật tốt sau: - Hệ thống quản lý plugin cho phép chỉnh sửa trực tiếp mã nguồn web có hạn chế soạn thảo đơn giản, gây khó khăn cho người phát triển - Hệ thống quản lý giao diện khơng có khả tạo chỉnh sửa giao diện trực tiếp web, thiếu sót với người phát triển từ xa khơng có điều kiện truy cập trực tiếp vào máy chủ web Đề tài nghiên cứu, phát triển wordpress để xây dựng website thực với mục đích khắc phục nhược điểm wordpress đồng thời bổ sung tính hệ thống quản lý phiên nhằm tăng cường khả làm việc nhóm, giảm thiểu rủi ro trình phát triển file_permission int quyền file Để quản lý phiên bản: hệ thống quản lý số chức sau đây: Đánh số thứ tự phiên để lúc cần khơi phục lại liệu dựa vào số thứ tự phiên Đánh dấu việc nội dung file có hiển thị bên ngồi hay khơng Một file sau bị chỉnh sữa lưu lại số thứ tự phiên (revision) tăng lên, nội dung củ khơng bị xóa mà bị đánh dấu disabled Một file khơng bị xóa thật mà bị đánh dấu khơng hiển thị bên Để lấy lại phiên (revesion) dựa vào số thứ tự phiên Để hiển thị cần đánh dấu cho phiên published đánh dấu phiên disabled Bảng wp_file_content: lưu trữ thông tin việc quản lý phiên bản, cho phép phiên có hiển thị bên ngồi hay không, sau số mô tả bảng wp_file_content Tên trường Kiểu trả Mô tả id int auto_increment, primary key content_revision int phiên ứng với file content_status varchar(20) quy định việc hiển thị content_created datetime ngày tạo file content_text text nội dung ứng với phiên file_id int foreign key Hình 27: Mơ hình quan hệ bảng hệ thống quản lý phiên IV.2 Xây dựng tính khác IV.2.1 Xây dựng lớp tương tác với sởdữ liệu DataLayer Lớp DataLayer thực tất thao tác thêm, sữa, xóa liệu, lớp sởđể lớp khác thừa kế Sau mô tả chi tiết lớp Một số thuộc tính DataLayer Thuộc tính Kiểu trả Mơ tả $table String Trả tên bảng thao tác $where Array Trả mệnh đề WHERE câu lệnh sql $fields Array Trả tên trường câu lệnh sql $values Array Trả giá trị trường câu lệnh sql $order Array Trả mệnh đề ORDER câu lệnh sql $page_size $page Int Một số phương thức DataLayer Phương thức Kiểu trả DataLayer add_where Mô tả Phương thức khởi tạo Void Gán vào thuộc tính $where chuỗi mệnh đề WHERE câu lệnh sql add_field Void Gán vào thuộc tính $fields trường cần thao tác add_field_value Void Gán vào thuộc tính $fields tương ứng với giá trị $value build_where String Trả chuỗi mệnh đề WHERE câu lệnh sql build_fields String Trả vể chuỗi trường cần thao tác build_order String Trả chuỗi mệnh đề WHERE câu lệnh sql build_update String Trả chuỗi mệnh đề UPDATE câu lệnh sql build_insert String Trả chuỗi mệnh đề INSERT câu lệnh sql get_select_query String Trả câu lệnh SELECT do_open String Mở kết nối đến Database do_delete String Trả câu câu truy vấn DELETE do_update String Trả câu truy vấn UPDATE do_insert String Trả câu truy vấn INSERT IV.2.2 Xây dựng lớp File với tác vụ thêm, sữa, xóa Lớp File thừa kế từ lớp DataLayer, nhằm lưu trữ thơng tin lập trình viên tác động thực vào file Sau mơ tả chi tiết lớp Một số phương thức Phương thức Kiểu trả Mô tả File() get_dir($path) Phương thức khởi tạo Array Trả thư mục Database ứng với $path get_file($path) Array Trả tên file ứng với $path get_item($id) Array Trả mẫu tin tương ứng với $id mkdir($name, $parentId) Array Tạo thư mục ứng với tên thư mục cha ls($dirId, $type, $sort) Array Liệt kê tất thư mục cha $dirId rename($srcId, $newname)Array Đổi tên thưc mục move($srcId, $descDirId) Array Di chuyển thư mục đến thư mục khác IV.2.3 Các tác vụ hệ thống Hệ thống quản lý phiên xây dựng để quản lý mã nguồn cách cập nhật liên tục nội dung Client Server, thay đổi phía Client đồng với Server thông qua gọi AJAX  Tạo thêm thư mục (mk.php) Cung cấp tên đường dẫn thư mục tên file, upload lên từ file sẵn có Hình 28: Thêm thư mục thư mục gốc Hình 29: Cung cấp tên file upload file  Tạo thư mục Cung cấp tên thư mục tên thư mục Hình 30: Tạo thư mục  Thay đổi tên file Hình 31: Nhập tên thư mục Hình 32: Thay đổi tên file CHƯƠNG V: XÂY DỰNG VÀ TRIỂN KHAI HỆ THỐNG V.I Giao diện Web Editor xây dựng để phát triển Plugin (d ựa vào mã nguồn mỡ CodeMirror) Hình 33: Web Editor cho Wordpress V.2 Demo hệ thống V.2.1 Nhận diện phiên Hình 34: Hệ thống quản lý phiên V.2.2 Thay đổi nội dung file đó, số revision tự động tăng lên Hình 35: Thay đổi nội dung file, revision tự động tăng lên V.2.3 Đồng liệu từ ổ cứng sởdữ liệu  Muốn cập nhật thực nội dung từ database đĩa phải đồng database đĩa cứng Thì nội dung file thực thay đổi Hình 36: Đồng database đĩa cứng V.2.4 Khôi phục lại nội dung cho file Hình 37: Khơi phục lại revision V.2.5 Khơi phục liệu thành cơng Hình 38: Khơi phục lại phiên thứ CHƯƠNG VI: KẾT LUẬN VI.1 Đánh giá nội dung đề tài Hệ thống quản lý phiên cho Wordpress giải số vấn đề sau  Xây dựng Web Editor đơn giản cho việc phát triển Plugin, việc phát triển thực trực tiếp mạng, lập trình viên có tài khoản mật Admin Nội dung Plugin cập nhật tự động nhờ chức Synchronous Quản lý phiên cho file Plugin, nội dung file không bị hồn tồn Delete, mà bị đánh dấu Disable VI.2 Hướng phát triển Tuy thực số thao tác việc quản lý phiên bản, hệ thống chưa thực hồn thiện, nhiều thiếu sót, cần phát triển tiếp tục  Web Editor cần có thêm chức Auto Complete (thư việ CodeMirror phiên thứ hỗ trợ tính này)  Việc quản lý phiên cho toàn thư mục chưa xây dựng  Thao tác xóa file, muốn khôi phục lài cần viết thêm chức khơi phục, phiên chưa viết module Phiên chi tảng, ý tưởng để phát triển thành phiên hồn thiện hơn, ứng dụng thực TÀI LIỆU THAM KHẢO [1] Professional Wordpress Design and Development [2] Wordpress for Dummies [3]. Wordpress Plugin Development [4]. Javascript and CSS Development with jQuery [5].http//:www.w3schools.com [6] Và số tài liệu khác

Ngày đăng: 17/03/2019, 14:40

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

TÀI LIỆU LIÊN QUAN

w