第10章項目實戰——內容管理系統《PHP網站開發實例教程(第3版)》學習目標/Target
熟悉內容管理系統的頁面效果,能夠說出內容管理系統的主要功能。
掌握內容管理系統后臺功能的實現,能夠根據實現步驟實現后臺的相關功能。
掌握內容管理系統前臺功能的實現,能夠根據實現步驟實現前臺的相關功能。章節概述/可以開發各種不同類型的項目,內容管理系統(tem,CMS)就是一種比較典型的項目。常見的門戶、新聞、博客、文章等類型的網站都可以利用CMS進行搭建。CMS用于對信息進行分類管理,將信息有序、及時地呈現在用戶面前,滿足人們發布信息、獲取信息的需求,保證信息的共享更加快捷和方便。本章將講解如何基于自定義框架開發內容管理系統。目錄/.110.2項目展示內容管理系統的功能實現項目展示10.1
先定一個小目標!熟悉內容管理系統的頁面效果,能夠說出內容管理系統的主要功能。10.1項目展示內容管理系統的前臺首頁:10.1項目展示內容管理系統的后臺登錄頁面:10.1項目展示內容管理系統的后臺首頁:10.1項目展示內容管理系統的功能實現10.2
先定一個小目標!掌握后臺功能的實現,能夠根據步驟實現功能。10.2.1后臺功能實現后臺功能后臺用戶登錄頁面搭建驗證碼10.2.1后臺功能實現欄目管理文章管理1.后臺用戶登錄后臺用戶登錄通常是系統的管理員登錄,登錄后對系統進行維護。后臺用戶登錄功能的實現步驟:10.2.1后臺功能實現登錄MySQL,在myframe數據庫中創建用戶表,向表中插入一條數據。1在C:\web\www\myframe下創建app\Http\\admin目錄,實現后臺功能。2創建處理登錄相關業務,與登錄相關的方法如下。index()方法:顯示登錄頁面,提示用戶輸入用戶名、密碼和驗證碼。login()方法:接收登錄表單,返回登錄成功或登錄失敗的提示。logout()方法:退出登錄。captcha()方法:顯示驗證碼。3后臺用戶登錄功能的實現步驟:10.2.1后臺功能實現創建myframe\.php文件,在App.php的run()方法中捕獲,在myframe\.php編寫success()方法和error()方法,實現Ajax交互。
4創建app\User.php模型文件,在login()方法中驗證用戶名和密碼。5用戶登錄成功后,通過Session來記住登錄狀態,并在下次請求中判斷用戶是否登錄。6在logout()方法中清除用戶的Session信息,實現退出登錄。72.驗證碼考慮到網站上線后可能會遭受攻擊,為了保護后臺登錄功能的安全,需要增加一個驗證碼功能,用戶登錄時顯示一張驗證碼圖片,要求用戶輸入圖片中的字符,只有驗證碼輸入正確,后臺才會處理用戶的登錄請求。驗證碼功能的實現步驟如下:10.2.1后臺功能實現在myframe\Captcha.php中創建驗證碼類,create()方法自動生成驗證碼字符,show()方法生成驗證碼圖像。1在控制器中使用驗證碼類,生成驗證碼圖像。2判斷用戶輸入的驗證碼是否正確,驗證碼驗證成功后,該驗證碼會立即過期,不允許被重復驗證。33.頁面搭建用戶登錄成功以后,就會進入后臺首頁。后臺頁面結構主要分為3部分,分別是頂部、菜單和內容區域。后臺頁面:10.2.1后臺功能實現頂部菜單內容區域后臺頁面搭建的實現步驟:10.2.1后臺功能實現創建\views\admin\layout.html文件實現后臺頁面布局。
1在Request.php文件中添加isAjax()方法,用于判斷當前請求是否為Ajax請求,在中調用isAjax()方法,判斷如果不是Ajax請求就返回布局視圖。2在layout.html的菜單位置添加“首頁”“欄目管理”“文章管理”菜單項。3修改的index()方法,顯示后臺首頁對應的admin/index模板,將系統環境、MySQL版本、文件上傳限制、腳本執行時限以及服務器時間等信息輸出到頁面中。44.欄目管理欄目用于對內容進行分類,如生活類、咨訊類、編程類等,用戶可以更高效地找到需要的信息。欄目管理的功能主要包括欄目的查詢、添加、修改和刪除。欄目管理的實現步驟:10.2.1后臺功能實現創建欄目表,字段為id、name(欄目名稱)和sort(排序),添加測試數據。1創建欄目表對應的模型文件app\.php,在該文件中完成對欄目表的操作。2創建app\Http\\Admin\.php,創建index()方法讀取欄目列表。3在中編寫edit()方法,實現修改欄目。
4在中編寫delete()方法,實現刪除欄目。55.文章管理文章管理功能需要支持上傳文件。用戶可以上傳封面圖,由于文章記錄會越來越多,需要提供分頁查詢,方便用戶瀏覽。文章管理的實現步驟:10.2.1后臺功能實現創建文章表,字段為文章id、所屬欄目id、文章標題、作者名、封面圖路徑、發布狀態、閱讀量、文章內容以及創建時間,向文章表中添加測試數據。1創建文章表對應的模型文件app\Article.php,在該文件中完成對文章表的操作。2創建app\Http\\Admin\.php,創建index()方法,讀取文章列表。3創建myframe\Page.php,實現分頁查詢,生成分頁的導航鏈接。4文章管理的實現步驟:10.2.1后臺功能實現在中創建edit()方法,顯示添加或修改文章頁面,引入在線編輯器Ueditor,添加save()方法保存修改后的文章。5在myframe\Request.php中創建hasFile()方法,判斷當前文章是否有文件上傳,創建file()方法獲取文件信息,創建myframe\Upload.php文件實現文件上傳。6在中創建delete()方法,根據文章id刪除指定文章。7文章的欄目id依賴欄目表的記錄,當刪除欄目時,該欄目下原有的文章的所屬分類就會出現問題,修改,將被刪除的欄目下的所有文章的欄目id設為0,表示未選擇欄目。8
*請認真填寫需求信息,我們會在24小時內與您取得聯系。