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

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

Đ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

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

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 LUẬN VĂN THẠC SĨ KỸ THUẬT NGƯỜI HƯỚNG DẪN KHOA HỌC: PSG TS Đặng Văn Chuyết Hà Nội - 2016 Xây dựng hệ thống CMS dựa tảng Zend Framework Lời nói đầu Ngày bùng nổ ngành Cơng Nghệ Thơng Tin, tin học hố phát triển mạnh nhanh chóng, trở thành ngành khoa học mũi nhọn người tổ chức kinh tế, hành chính, đồn thể xí nghiệp cơng ty Việc áp dụng thành tựu ngành Công Nghệ Thông Tin vào lĩnh vực đời sống người ngày phát triển chiều sâu lẫn chiều rộng, làm giảm nhiều khó khăn, đồng thời nâng cao chất lượng hiệu cơng việc, hệ thống với kiến trúc hợp lý đóng vai trị khơng nhỏ thành cơng dự án Trong thời gian tìm hiểu vừa qua, em nhận thấy đề tài Xây dựng hệ thống CMS đề tài hay, nhiều người làm quan tâm, có tính thực tế, ứng dụng cao Việc phát triển hệ thống dựa tảng Zend Framework 2.0 giúp cho việc xây dựng, thực triển khai hệ thống đạt hiệu tốt Đó lý để em chọn đề tài Trong báo cáo em trình bày nội dung sau: Chương 1: Tổng quan hệ thống CMS Chương 2: Xây dựng hệ thống CMS Chương 3: Thiết kế giao diện chương trình Đinh Việt Bảo - 13BCNTT2 Xây dựng hệ thống CMS dựa tảng Zend Framework Mục lục CHƯƠNG I TỔNG QUAN VỀ HỆ THỐNG CMS Khái niệm Lịch sử phát triển Cấu trúc chức CMS Xây dựng hệ thống CMS Giới thiệu Zend Framework 5.1 Mơ hình MVC 5.2 Tổng quan Zend Framework 11 5.3 Các lớp phổ biến 13 5.4 Mô hình MVC Zend Framework 14 CHƯƠNG II XÂY DỰNG HỆ THỐNG CMS 18 Yêu cầu nghiệp vụ 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 viết 22 1.10 Quản lý tag viết 22 1.11 Quản lý viết 22 1.12 Quản lý comment .25 1.13 Quản lý like 27 Mơ hình tình 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 Biểu đồ 55 Đinh Việt Bảo - 13BCNTT2 Xây dựng hệ thống CMS dựa tảng Zend Framework 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 Thiết kế sở liệu 65 4.1 Mơ hình quan hệ 65 4.2 Danh sách bảng 67 CHƯƠNG III THIẾT KẾ GIAO DIỆN CHƯƠNG TRÌNH .74 Thiết kế trang Back-End 74 1.1 Trang đăng nhập .74 1.2 Trang danh sách viết 76 1.3 Trang thêm viết 78 1.4 Trang chi tiết viết 84 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 viết 90 KẾT LUẬN 92 TÀI LIỆU THAM KHẢO 93 Đinh Việt Bảo - 13BCNTT2 Xây dựng hệ thống CMS dựa tảng Zend Framework CHƯƠNG I TỔNG QUAN VỀ HỆ THỐNG CMS Khái niệm CMS viết tắt Content Management System nghĩa hệ thống quản trị nội dung Là phần mềm để tổ chức tạo môi trường cộng tác thuận lợi nhằm mục đích xây dựng hệ thống tài liệu nội dung khác cách thống CMS áp dụng vào chương trình quản lý nội dung Website, dùng cho trang web cá nhân hay tổ chức CMS cung cấp cơng cụ trực quan, đơn giản thân thiện để người dùng phổ không cần biết nhiều CNTT sử dụng để quản lý nội dung, hoạt động Website cách dễ dàng Lịch sử phát triển Trong giai đoạn đầu phát triển Internet, việc xuất viết cần phải sửa mã nguồn trang Web tĩnh dạng HTML Cách thức để phát triể n, vâ ̣n hành trang HTML đơn thuầ n giố ng viê ̣c của người in sách Viế t nô ̣i dung chỉ là phầ n công viê ̣c, sau đó người ta phải cầ n tới giấ y và các máy in để in trang sách, cuố i cùng là đóng các trang sách la ̣i thành cuố n sách Với cách thức làm việc làm cho người dùng mệt mỏi tốn nhiều thời gian, nế u người dùng muố n có thêm bài viế t mới, người dùng phải ta ̣o link tới bài viế t, phải viế t trang HTML hoàn chỉnh theo giao diê ̣n của Website, với Website có khối lượng viết lớn cách làm việc khơng thể thực được, đó, hệ quản trị nội dung CMS đời CMS xem bước tiến dài lịch sử phát triển Internet Nó làm thay đổi cách quản lý tiếp cận thông tin người dùng, mà điều quan trọng người dùng khơng cần phải biết HTML để đưa báo lên web Trước kia, ta cần tìm thơng tin đó, việc sử dụng cách thức tìm thơng tin báo giấy, thơng tin sổ sách vất vả Do đó, CMS sử dụng mà có q nhiều thơng tin cần xử lý, giúp ta tối ưu cơng sức chi phí, đồng Đinh Việt Bảo - 13BCNTT2 Xây dựng hệ thống CMS dựa tảng Zend Framework thời đem lại hiệu cao nhiều Tuy nhiên người quản trị cần phải biên tập xếp nội dung cách phù hợp tìm kiếm thơng tin cách dễ dàng Có thể nói CMS xu hướng chung tất Website ngày Blog dạng CMS, Wiki dạng CMS… CMS tương lai tích hợp vào hệ thống ERP doanh nghiệp Các liệu doanh nghiệp xuất trực tiếp lên Website mà không cần phải tốn nhiều cơng sức Ví dụ nhà máy, họ vừa sản xuất sản phẩm, sản phẩm xuất trang Web thương mại điện tử nhà máy đó, thơng tin sản phẩm lấy từ liệu phịng kỹ thuật, giá lấy từ phịng kinh doanh, phương thức khuyến lại truy cập trực tiếp từ phòng marketing Các báo cáo thuế doanh nghiệp xuất gửi trực tiếp phòng thuế… Một hệ thống CMS hệ thống quản lý thứ, bời tất content Cái hay hệ thống tổ chức quản lý content phi cấu trúc quản lý nhiều loại thông tin Các CMS thường đươ ̣c viế t ngôn ngữ lâ ̣p trin ̀ h kịch đó, quan trọng thiếu Cơ sơ liệu Hiê ̣n nay, CMS phổ biết viết ngơn ngữ lập trình PHP và Cơ sở liệu MySQL Các loại CMS phổ biến gồm có:  W-CMS (Web CMS): Được sử dụng cho trang tin tức, blog Hỗ trợ điều khiển 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ăn  E-CMS (Enterprise CMS): Được sử dụng cho doanh nghiệp để nắm bắt, quản lý, lưu trữ, bảo quản cung cấp nội dung tài liệu liên quan  T-CMS (Transactional CMS): Hỗ trợ việc quản lý giao dịch thương mại điện tử  P-CMS (Publications CMS): Hỗ trợ việc quản lý loại ấn phẩm trực tuyến (sổ tay, sách, trợ giúp, tham khảo ) Đinh Việt Bảo - 13BCNTT2 Xây dựng hệ thống CMS dựa tảng Zend Framework  L-CMS/LCMS (Learning CMS): Hỗ trợ việc quản lý đào tạo dựa Web  BCMS (Billing CMS): Hỗ trợ việc quản lý Thu chi dựa Web Cấu trúc chức CMS Hệ thống quản lý nội dung CMS chủ yếu sử dụng để quản lý, xuất văn dựa tài liệu viết, tài liệu dạng văn thơng tin Một CMS thường có chức 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 nội dung Đằng sau tiện lợi mà người dùng CMS sử dụng khơng thể khơng nhắc đến phức tạp, khó khăn người phát triển hệ thống xây dựng CMS CMS phát triển đa dạng, chiń h vì mu ̣c đić h sử du ̣ng của người dùng, tổ chức khác nhau, nên cũng có rấ t nhiề u các CMS khác để phù hợp cho mục đí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 loa ̣i bỏ, rút go ̣n để phù hơ ̣p với mu ̣c đích sử du ̣ng Nhưng CMS tối thiểu cần phải đáp ứng nhu cầu đây:  Tiń h liên tu ̣c của thông tin  Khả quản lý người dùng  Khả quản lý truy câ ̣p  Khả quản lý mở rô ̣ng chức  Khả bảo mâ ̣t và báo lỗi Đinh Việt Bảo - 13BCNTT2 Xây dựng hệ thống CMS dựa tảng Zend Framework Xây dựng hệ thống CMS Sự phát triển Internet ngày giúp Website không khái niệm mơ hồ xa lạ với người sử dụng máy tính Người dùng máy tính hồn tồn tạo dựng cho riêng Website vài cú bấm chuột dựa hệ thống mã nguồn mở để hoạt động theo nhu cầu cá nhân, cao dành cho tổ chức Trong thời đại Công nghệ thông tin phát triển bùng nổ nay, việc sử dụng hệ thống CMS để xây dựng Website nhu cầu thiết yếu cho cá nhân, công ty vừa nhỏ nước Trên giới có hệ thống CMS phổ biến như: Joomla, Wordpress, Drupal, eZ Publish, OpenCMS, Magento , CMS có ưu nhược điểm riêng, cụ thể sau: Wordpress:  Ưu điểm: - Cài đặt cấu hình dễ dàng - Hầu hết plugin miễn phí - Hỗ trợ SEO tốt - Kho giao diện có sẵn đa dạng phong phú cung cấp WordPress  Nhược điểm: - Khi Website có lượng truy cập lớn, việc sử dụng trường thông tin mở rộng viết làm cho hệ thống chạy chậm chạp tốn nhiều tài nguyên - Chưa đáp ứng yêu cầu mở rộng tương tác nhóm thành viên quản trị Joomla  Ưu điểm: - Cài đặt cấu hình dễ dàng - Thư viện ứng dụng (extensions) lớn  Nhược điểm: Đinh Việt Bảo - 13BCNTT2 Xây dựng hệ thống CMS dựa tảng Zend Framework - Mã nguồn Joomla tương đối lớn dẫn tới tốn nhiều tài nguyên hệ thống trình sử dụng - Số lượng ứng dụng (extensions) nhiều số lại vướng phải lỗi bảo mật - Không chạy tốt máy chủ Windows (IIS) - Không hỗ trợ SEO tốt Drupal  Ưu điểm: - Tính Multiple giúp người dùng có nhiều Website với lần cài đặt - Thích hợp để xây dựng Website lớn, số lượng người truy cập nhiều  Nhược điểm: - Giao diện chưa thân thiện - Nhiều chức 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 CMS phổ biến hệ thống CMS lớn, có nhiều chức năng, nhiều ứng dụng mở rộng (plugin extension) khiến người dùng gặp khó khăn quản trị Chính hệ thống CMS vừa nhỏ có chức 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 đời, đáp ứng đủ cho Website cung cấp nội dung, thông tin Một hệ thống CMS bao gồm nhiều chức Do đó, đề tài em sâu vào phân tích cụ thể khâu quản lý viết nghĩa tập trung vào phần quản lý nội dung chưa thể phân tích chức 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, 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 Đinh Việt Bảo - 13BCNTT2 Xây dựng hệ thống CMS dựa tảng Zend Framework viết, quản lý tag viết, quản lý viết, quản lý comment, quản lý like” hướng phát triển em Về mặt phân tích thiết kế hệ thống: kết thu đề tài từ mơ hình phân tích thiết kế hệ thống, sở liệu Về mặt lập trình: sở nghiên cứu áp dụng Zend Studio để viết ứng dụng dựa tảng Zend Framework, hoàn thành nội dung chủ yếu sau:  Hiểu vận dụng thành công lớp Zend Framework để xây dựng thành công chức cần thiết hệ thống CMS  Đảm bảo hệ thống vận hành theo cấu trúc ứng dụng Zend Framework (theo mô hình MVC)  Tối ưu hóa lớp, sử dụng lớp Zend Framework thay cho cách viết thẻ HTML  Đảm bảo độc lập chức năng, dễ dàng phát triển nâng cấp hệ thống  Trang giao diện người dùng phải chuẩn SEO để tối ưu tìm kiếm Giới thiệu Zend Framework 5.1 Mơ hình MVC MVC (Model-View-Controller) mẫu kiến trúc phần mềm Khi sử cách, mẫu MVC giúp cho người phát triển phần mềm cô lập nguyên tắc nghiệp vụ giao diện người dùng cách rõ ràng 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ì phần nghiệp vụ giao diện liên quan đến Đinh Việt Bảo - 13BCNTT2 Xây dựng hệ thống CMS dựa tảng Zend Framework return $this->redirect()->toRoute('admin/default', array( 'controller' => 'login' )); // Ghi lại nhật ký hoạt động $this->writeLogInfo($this->translate('Thêm viết: Xem.')); // BEGIN KIỂM TRA $user = $this->getCurrentUserLogin(); $request = $this->getRequest(); if ($request->isPost()) { // BEGIN CẤU HÌNH KIỂM TRA DỮ LIỆU NHẬP VÀO $inputFilter = new InputFilter(); $inputFilter->add(array( 'name' => 'status', 'required' => $isPublish, 'validators' => array( array( 'name' => 'NotEmpty', 'options' => array( 'messages' => array( \Zend\Validator\NotEmpty::IS_EMPTY => $this>translate('Bạn phải chọn Trạng thái!') ) ) ) ) )); $inputFilter->add(array( 'name' => 'title', 'required' => true, 'filters' => array( array('name' => 'StripTags'), array('name' => 'StringTrim') ), 'validators' => array( array( 'name' => 'NotEmpty', 'break_chain_on_failure' => true, 'options' => array( 'messages' => array( \Zend\Validator\NotEmpty::IS_EMPTY => $this>translate('Bạn phải nhập Tiêu đề!') ) ) ) ) )); $inputFilter->add(array( 'name' => 'publishon', 'required' => true, Đinh Việt Bảo - 13BCNTT2 79 Xây dựng hệ thống CMS dựa tảng Zend Framework 'filters' => array( array('name' => 'StripTags'), array('name' => 'StringTrim') ), 'validators' => array( array( 'name' => 'NotEmpty', 'break_chain_on_failure' => true, 'options' => array( 'messages' => array( \Zend\Validator\NotEmpty::IS_EMPTY => $this>translate('Bạn phải nhập Thời gian xuất bản!') ) ) ), array( 'name' => 'Date', 'break_chain_on_failure' => true, 'options'=>array( 'format' => 'd/m/Y H:i:s', 'messages' => array( 'dateFalseFormat' => $this->translate('Thời gian xuất phải nhập theo định dạng: Ngày/Tháng/Năm Giờ:Phút:Giây!'), 'dateInvalidDate' => $this->translate('Thời gian xuất không hợp lệ!') ) ) ) ) )); $inputFilter->add(array( 'name' => 'lead', 'required' => true, 'filters' => array( array('name' => 'StripTags'), array('name' => 'StringTrim') ), 'validators' => array( array( 'name' => 'NotEmpty', 'break_chain_on_failure' => true, 'options' => array( 'messages' => array( \Zend\Validator\NotEmpty::IS_EMPTY => $this>translate('Bạn phải nhập Trích dẫn!') ) ) ) ) )); $inputFilter->add(array( 'name' => 'content', 'required' => true, 'validators' => array( array( 'name' => 'NotEmpty', Đinh Việt Bảo - 13BCNTT2 80 Xây dựng hệ thống CMS dựa tảng Zend Framework 'break_chain_on_failure' => true, 'options' => array( 'messages' => array( \Zend\Validator\NotEmpty::IS_EMPTY => $this>translate('Bạn phải nhập Nội dung!') ) ) ) ) )); if (!$post['image-delete']) $inputFilter->add( array( 'name' => 'image', 'required' => false, 'validators' => array( array( 'name' => 'Zend\Validator\File\Size', 'break_chain_on_failure' => true, 'options' => array( 'min' => $config['admin']['file_upload_image_size_min'], 'max' => $config['admin']['file_upload_image_size_max'], 'messages' => array( \Zend\Validator\File\Size::TOO_BIG => $this->translate('File tải lên phải có dung lượng nhỏ %max%!'), \Zend\Validator\File\Size::TOO_SMALL => $this->translate('File tải lên phải có dung lượng lớn %min%!'), \Zend\Validator\File\Size::NOT_FOUND => $this->translate('File không tồn tại!') ) ) ), array( 'name' => 'Zend\Validator\File\Extension', 'break_chain_on_failure' => true, 'options' => array( 'extension' => $config['admin']['file_upload_image_type'], 'messages' => array( \Zend\Validator\File\Extension::FALSE_EXTENSION => sprintf($this>translate('File tải lên phải định dạng: %s!'), implode(', ', $config['admin']['file_upload_image_type'])), \Zend\Validator\File\Extension::NOT_FOUND => $this->translate('File không tồn tại!') ) ) ) ) ) ); $inputFilter->add(array( 'name' => 'categoryid', 'required' => false Đinh Việt Bảo - 13BCNTT2 81 Xây dựng hệ thống CMS dựa tảng Zend Framework )); $inputFilter->add(array( 'name' => 'articletypeid', 'required' => false )); $inputFilter->add(array( 'name' => 'send', 'required' => false )); $form->setInputFilter($inputFilter); $form->setData($post); // BEGIN CẤU HÌNH KIỂM TRA DỮ LIỆU NHẬP VÀO if ($form->isValid()) // Nếu liệu nhập vào hợp lệ { // BEGIN LƯU DỮ LIỆU VÀO CSDL $obj->versionid = 1; $publishOn = explode(' ', $post['publishon']); $publishOnDate = explode('/', $publishOn[0]); $obj->publishon = $publishOnDate[2] '-' $publishOnDate[1] '-' $publishOnDate[0] ' ' $publishOn[1]; $obj->status = $obj->status ? $obj->status : 1; $obj->progress = $post['send'] ? $post['send'] : $group->level ? $group->level : $this->getGroupMaxLevel(); $obj->createdon = date('Y-m-d H:i:s'); $obj->createdby = $user->id; $articleCategories = isset($post['categoryid']) ? $post['categoryid'] : array(); // Save data try { // Save file upload if (!$post['image-delete']) { if ($obj->image['name']) { $pathUploadFile = $this->getPathUploadFile(); $fileUpload = new Http(); $fileUpload->setDestination(PUBLIC_PATH $pathUploadFile); $fileUpload->receive($obj->image['name']); $obj->image = $pathUploadFile $obj>image['name']; } } // Update database $this->getTable()->insert($obj, $articleCategories); // Add flashmessage success $this->flashMessenger() ->setNamespace('article-index-success') Đinh Việt Bảo - 13BCNTT2 82 Xây dựng hệ thống CMS dựa tảng Zend Framework ->addMessage($this->translate('Lưu thành công!')); // Write log: info $this->writeLogInfo(sprintf($this->translate('Thêm viết Lưu lại Id = %d.'), $obj->id)); // Redirect to index page $this->redirect()->toRoute('admin/default', array( 'controller' => $this->getCurrentController() ) ); } catch (\Exception $e) { // Add flassmessage error $this->flashMessenger() ->setNamespace('article-add-error') ->addMessage($this->translate('Có lỗi xảy Không thể lưu liệu!')); // Write log: error $this->writeLogError(sprintf($this->translate('Thêm viết Lưu lại Lỗi: %s'), $e->getMessage())); // Reload page $this->redirect()->toRoute('admin/default', array( 'controller' => $this->getCurrentController(), 'action' => $this->getCurrentAction() )); } // END LƯU DỮ LIỆU VÀO CSDL } } Đinh Việt Bảo - 13BCNTT2 83 Xây dựng hệ thống CMS dựa tảng Zend Framework 1.4 Trang chi tiết viết Dành cho nhóm người dùng Phóng viên / Biên tập viên, Trưởng ban, Thư ký tòa soạn, Tổng biên tập sử dụng để xem chi tiết viết Hình 4.4 Giao diện trang chi tiết viết Đinh Việt Bảo - 13BCNTT2 84 Xây dựng hệ thống CMS dựa tảng Zend Framework Mã nguồn: // Kiểm tra đăng nhập if (!$this->checkUserLogin()) return $this->redirect()->toRoute('admin/default', array( 'controller' => 'login' )); // BEGIN LẤY DỮ LIỆU BÀI VIẾT TỪ CSDL $id = (int) $this->params()->fromQuery('id'); if (!$id) { // Redirect to add action return $this->redirect()->toRoute('admin/default', array( 'controller' => $this->getCurrentController(), 'action' => 'add' )); } $obj = $this->getTable()->select($id); if (!$obj) { // Redirect to add action return $this->redirect()->toRoute('admin/default', array( 'controller' => $this->getCurrentController(), 'action' => 'add' )); } // END LẤY DỮ LIỆU BÀI VIẾT TỪ CSDL // Ghi lại nhật kỳ hoạt động $this->writeLogInfo(sprintf($this->translate('Xem chi tiết viết Id = %d.'), $id)); // BEGIN KIỂM TRA QUYỀN HẠN BÀI VIẾT $user = $this->getCurrentUserLogin(); $table = $this->getServiceLocator()->get('Admin\Model\GroupTable'); $group = $table->select($user->groupid); if ($group->level < $obj->progress && $group->level) die($this->translate('Bạn khơng có quyền xem viết này')); // END KIỂM TRA QUYỀN HẠN BÀI VIẾT Đinh Việt Bảo - 13BCNTT2 85 Xây dựng hệ thống CMS dựa tảng Zend Framework Thiết kế trang Front-End 2.1 Trang chủ Dành cho bạn đọc truy cập để đọc viết, trang chủ bao gồm viết theo chuyên mục khơng theo chun mục Hình 4.5 Giao diện trang chủ Đinh Việt Bảo - 13BCNTT2 86 Xây dựng hệ thống CMS dựa tảng Zend Framework Mã nguồn: // BEGIN LẤY DỮ LIỆU TIN TOP TRONG CSDL $tableArticle = $this->getServiceLocator()>get('Application\Model\ArticleTable'); $top3a = $tableArticle->search(array(), 1, 3); for ($i = 0; $i < count($top3a); $i++) $top3a[$i]['url'] = '/' $this>convertToHtmlLink($top3a[$i]['title']) '-' '.html'; $top3b = $tableArticle->search(array(), 2, 3); for ($i = 0; $i < count($top3b); $i++) $top3b[$i]['url'] = '/' $this>convertToHtmlLink($top3b[$i]['title']) '-' '.html'; $top6a = $tableArticle->search(array(), 2, 6); for ($i = 0; $i < count($top6a); $i++) $top6a[$i]['url'] = '/' $this>convertToHtmlLink($top6a[$i]['title']) '-' '.html'; $top6b = $tableArticle->search(array(), 3, 6); for ($i = 0; $i < count($top6b); $i++) $top6b[$i]['url'] = '/' $this>convertToHtmlLink($top6b[$i]['title']) '-' '.html'; // END LẤY DỮ LIỆU TIN TOP TRONG CSDL $top3a[$i]['id'] $top3b[$i]['id'] $top6a[$i]['id'] $top6b[$i]['id'] // BEGIN LẤY DỮ LIỆU TIN THEO CHUYÊN MỤC TRONG CSDL $tableCategory = $this->getServiceLocator()>get('Application\Model\CategoryTable'); $list = $tableCategory->selectByParentId(1); $count = 0; $mainArticles = array(); foreach ($list as $item) { if ($count == 5) break; $articles = $tableArticle->search(array($item->id), 1, 3); for ($i = 0; $i < count($articles); $i++) $articles[$i]['url'] = '/' $this>convertToHtmlLink($articles[$i]['title']) '-' $articles[$i]['id'] '.html'; $mainArticles[] = array( 'categoryname' => $item->name, 'categoryurl' => '/' $item->alias '/', 'articles' => $articles ); $count++; } // END LẤY DỮ LIỆU TIN THEO CHUYÊN MỤC TRONG CSDL Đinh Việt Bảo - 13BCNTT2 87 Xây dựng hệ thống CMS dựa tảng Zend Framework 2.2 Trang chuyên mục Dành cho bạn đọc truy cập để đọc viết, trang chủ bao gồm viết theo chuyên mục Hình 4.6 Giao diện trang chuyên mục Đinh Việt Bảo - 13BCNTT2 88 Xây dựng hệ thống CMS dựa tảng Zend Framework Mã nguồn: // BEGIN LẤY THÔNG TIN CHUYÊN MỤC TRÊN URL $cateUrl = $this->getEvent()->getRouteMatch()->getParam('cat_alias'); $page = (int) $this->getEvent()->getRouteMatch()->getParam('page', 1); $categoriesAlias = explode('/', $cateUrl); for ($i = 0; $i < count($categoriesAlias); $i++) if ($categoriesAlias[$i] == '') unset($categoriesAlias[$i]); $depth = count($categoriesAlias); if ($depth > 2) { $this->getResponse()->setStatusCode(404); return; } $catAlias = $categoriesAlias[count($categoriesAlias) - 1]; $tableCategory = $this->getServiceLocator()>get('Application\Model\CategoryTable'); $category = $tableCategory->selectByAlias($catAlias); if (!$category) { $this->getResponse()->setStatusCode(404); return; } // END LẤY THÔNG TIN CHUYÊN MỤC TRÊN URL // BEGIN LẤY DỮ LIỆU BÀI VIẾT TRONG CSDL $pageSize = 10; $tableArticle = $this->getServiceLocator()>get('Application\Model\ArticleTable'); $list = $tableArticle->search(array($category->id), $page, $pageSize); for ($i = 0; $i < count($list); $i++) $list[$i]['url'] = '/' $this>convertToHtmlLink($list[$i]['title']) '-' $list[$i]['id'] '.html'; $listCount = $tableArticle->searchCount(array($category->id)); // END LẤY DỮ LIỆU BÀI VIẾT TRONG CSDL Đinh Việt Bảo - 13BCNTT2 89 Xây dựng hệ thống CMS dựa tảng Zend Framework 2.3 Trang chi tiết viết Dành cho bạn đọc truy cập để đọc nội dung chi tiết viết Hình 4.7 Giao diện trang chi tiết viết Đinh Việt Bảo - 13BCNTT2 90 Xây dựng hệ thống CMS dựa tảng Zend Framework Mã nguồn: // BEGIN LẤY ID BÀI VIẾT TRÊN URL $id = $this->getEvent()->getRouteMatch()->getParam('article_id'); $alias = $this->getEvent()->getRouteMatch()->getParam('article_alias'); // END LẤY ID BÀI VIẾT TRÊN URL // BEGIN LẤY DỮ LIỆU BÀI VIẾT TRONG CSDL $table = $this->getServiceLocator()>get('Application\Model\ArticleTable'); $obj = $table->selectPublish($id); if (!$obj) { $this->getResponse()->setStatusCode(404); return; } if ($this->convertToHtmlLink($obj->title) != $alias) $this->redirect()->toUrl('/' $this->convertToHtmlLink($obj>title) '-' $obj->id '.html')->setStatusCode(301); // END LẤY DỮ LIỆU BÀI VIẾT TRONG CSDL Đinh Việt Bảo - 13BCNTT2 91 Xây dựng hệ thống CMS dựa tảng Zend Framework KẾT LUẬN Đánh giá mặt hạn chế hướng phát triển chương trình: Đó em chưa phân tích xây dựng chức cao cấp hệ thống CMS 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 ” Trang giao diện người dùng chưa có tính đột phá, bố cục xếp chưa thật hợp lý để bạn đọc có trải nghiệm tốt Hướng em phát triển chương trình lên tầm cao hơn, bổ sung thêm chức cao cấp để hệ thống phù hợp cho hệ thống lớn Nhận xét: Sau làm xong luận văn em đọc, học làm việc sau:  Về mặt nghiệp vụ, em nghiên cứu hiểu mơ hình xuất viết hệ thống CMS theo chuẩn đặt Bộ thông tin truyền thơng Biết khó khăn thuận lợi luồng xử lý xuất viết sử dụng mơ hình  Về mặt công nghệ, em nghiên cứu hiểu tảng Zend Framework 2, từ xây dựng nên hệ thống CMS dựa tảng Và điều quan trọng qua trình làm đồ án em nhận thấy thân học hỏi nhiều điều mẻ mặt nhận thức lẫn kinh nghiệm Từ ngày chọn đề tài, em phải phân vân dự Sau hướng dẫn tận tình thầy Đặng Văn Chuyết, em định chọn đề tài "Xây dựng hệ thống CMS dựa tảng Zend Framework" phù hợp với em Bước đầu em chưa biết phải đâu, phải làm nào, phải làm Sau em tìm hiểu thông qua Internet, tài liệu tham khảo, người thân, bạn bè, quan trọng nhờ hướng dẫn tận tình thầy Đặng Văn Chuyết, vấn đề khó khăn vướng mắc em giải nhờ thầy Thầy dạy em kiến thức mà thầy cịn dạy em cách sống người, kinh nghiệm làm việc thực tế Tất điều chắn em Với kết nghiên cứu em hy vọng hoàn thiện dần chức cao cấp hệ thống CMS thời gian tới Đinh Việt Bảo - 13BCNTT2 92 Xây dựng hệ thống CMS dựa tảng Zend Framework TÀI LIỆU THAM KHẢO [1] Xây dựng hệ thống quản lý sử dụng phòng học tảng Zend Framework Lưu Trường Hải Lân [2] Giáo trình nhập mơn UML, Nhà xuất Lao Động Xã Hội [3] Các nguồn thông tin từ Internet:  https://framework.zend.com  https://wikipedia.org  http://zend.vn Đinh Việt Bảo - 13BCNTT2 93 ... trị hệ thống Xóa menu Sửa menu Quản lý hệ thống Đinh Việt Bảo - 13BCNTT2 29 Xây dựng hệ thống CMS dựa tảng Zend Framework Xem logging Cấu hình hệ thống Thống kê bình luận Quản trị hệ thống Thống... quan hệ thống CMS Chương 2: Xây dựng hệ thống CMS Chương 3: Thiết kế giao diện chương trình Đinh Việt Bảo - 13BCNTT2 Xây dựng hệ thống CMS dựa tảng Zend Framework Mục lục CHƯƠNG I TỔNG QUAN VỀ HỆ... hệ thống (các action phát triển tảng Zend Framework 2.0 dựa theo chuẩn mơ hình MVC) Việc nhằm đáp ứng ứng yêu cầu tính mở hệ thống Đinh Việt Bảo - 13BCNTT2 19 Xây dựng hệ thống CMS dựa tảng Zend

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

Mục lục

  • CHƯƠNG ITỔNG QUAN VỀ HỆ THỐNG CMS

  • CHƯƠNG IIXÂY DỰNG HỆ THỐNG CMS

  • CHƯƠNG IIITHIẾT KẾ GIAO DIỆN CHƯƠNG TRÌNH

  • TÀI LIỆU THAM KHẢO

Tài liệu cùng người dùng

Tài liệu liên quan