版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第10章項目實戰(zhàn)——內(nèi)容管理系統(tǒng)《PHP網(wǎng)站開發(fā)實例教程(第3版)》學(xué)習(xí)目標/Target
熟悉內(nèi)容管理系統(tǒng)的頁面效果,能夠說出內(nèi)容管理系統(tǒng)的主要功能。
掌握內(nèi)容管理系統(tǒng)后臺功能的實現(xiàn),能夠根據(jù)實現(xiàn)步驟實現(xiàn)后臺的相關(guān)功能。
掌握內(nèi)容管理系統(tǒng)前臺功能的實現(xiàn),能夠根據(jù)實現(xiàn)步驟實現(xiàn)前臺的相關(guān)功能。章節(jié)概述/SummaryPHP可以開發(fā)各種不同類型的項目,內(nèi)容管理系統(tǒng)(ContentManagementSystem,CMS)就是一種比較典型的項目。常見的門戶、新聞、博客、文章等類型的網(wǎng)站都可以利用CMS進行搭建。CMS用于對信息進行分類管理,將信息有序、及時地呈現(xiàn)在用戶面前,滿足人們發(fā)布信息、獲取信息的需求,保證信息的共享更加快捷和方便。本章將講解如何基于自定義框架開發(fā)內(nèi)容管理系統(tǒng)。目錄/Contents10.110.2項目展示內(nèi)容管理系統(tǒng)的功能實現(xiàn)項目展示10.1
先定一個小目標!熟悉內(nèi)容管理系統(tǒng)的頁面效果,能夠說出內(nèi)容管理系統(tǒng)的主要功能。10.1項目展示內(nèi)容管理系統(tǒng)的前臺首頁:10.1項目展示內(nèi)容管理系統(tǒng)的后臺登錄頁面:10.1項目展示內(nèi)容管理系統(tǒng)的后臺首頁:10.1項目展示內(nèi)容管理系統(tǒng)的功能實現(xiàn)10.2
先定一個小目標!掌握后臺功能的實現(xiàn),能夠根據(jù)步驟實現(xiàn)功能。10.2.1后臺功能實現(xiàn)后臺功能后臺用戶登錄頁面搭建驗證碼10.2.1后臺功能實現(xiàn)欄目管理文章管理1.后臺用戶登錄后臺用戶登錄通常是系統(tǒng)的管理員登錄,登錄后對系統(tǒng)進行維護。后臺用戶登錄功能的實現(xiàn)步驟:10.2.1后臺功能實現(xiàn)登錄MySQL,在myframe數(shù)據(jù)庫中創(chuàng)建用戶表,向表中插入一條數(shù)據(jù)。1在C:\web\www\myframe下創(chuàng)建app\Http\Controllers\admin目錄,實現(xiàn)后臺功能。2創(chuàng)建LoginController處理登錄相關(guān)業(yè)務(wù),與登錄相關(guān)的方法如下。index()方法:顯示登錄頁面,提示用戶輸入用戶名、密碼和驗證碼。login()方法:接收登錄表單,返回登錄成功或登錄失敗的提示。logout()方法:退出登錄。captcha()方法:顯示驗證碼。3后臺用戶登錄功能的實現(xiàn)步驟:10.2.1后臺功能實現(xiàn)創(chuàng)建myframe\HttpException.php文件,在App.php的run()方法中捕獲HttpException,在myframe\Controller.php編寫success()方法和error()方法,實現(xiàn)Ajax交互。4創(chuàng)建app\User.php模型文件,在login()方法中驗證用戶名和密碼。5用戶登錄成功后,通過Session來記住登錄狀態(tài),并在下次請求中判斷用戶是否登錄。6在logout()方法中清除用戶的Session信息,實現(xiàn)退出登錄。72.驗證碼考慮到網(wǎng)站上線后可能會遭受攻擊,為了保護后臺登錄功能的安全,需要增加一個驗證碼功能,用戶登錄時顯示一張驗證碼圖片,要求用戶輸入圖片中的字符,只有驗證碼輸入正確,后臺才會處理用戶的登錄請求。驗證碼功能的實現(xiàn)步驟如下:10.2.1后臺功能實現(xiàn)在myframe\Captcha.php中創(chuàng)建驗證碼類,create()方法自動生成驗證碼字符,show()方法生成驗證碼圖像。1在控制器中使用驗證碼類,生成驗證碼圖像。2判斷用戶輸入的驗證碼是否正確,驗證碼驗證成功后,該驗證碼會立即過期,不允許被重復(fù)驗證。33.頁面搭建用戶登錄成功以后,就會進入后臺首頁。后臺頁面結(jié)構(gòu)主要分為3部分,分別是頂部、菜單和內(nèi)容區(qū)域。后臺頁面:10.2.1后臺功能實現(xiàn)頂部菜單內(nèi)容區(qū)域后臺頁面搭建的實現(xiàn)步驟:10.2.1后臺功能實現(xiàn)創(chuàng)建resources\views\admin\layout.html文件實現(xiàn)后臺頁面布局。1在Request.php文件中添加isAjax()方法,用于判斷當(dāng)前請求是否為Ajax請求,在CommonController中調(diào)用isAjax()方法,判斷如果不是Ajax請求就返回布局視圖。2在layout.html的菜單位置添加“首頁”“欄目管理”“文章管理”菜單項。3修改IndexController的index()方法,顯示后臺首頁對應(yīng)的admin/index模板,將系統(tǒng)環(huán)境、MySQL版本、文件上傳限制、腳本執(zhí)行時限以及服務(wù)器時間等信息輸出到頁面中。44.欄目管理欄目用于對內(nèi)容進行分類,如生活類、咨訊類、編程類等,用戶可以更高效地找到需要的信息。欄目管理的功能主要包括欄目的查詢、添加、修改和刪除。欄目管理的實現(xiàn)步驟:10.2.1后臺功能實現(xiàn)創(chuàng)建欄目表cms_category,字段為id、name(欄目名稱)和sort(排序),添加測試數(shù)據(jù)。1創(chuàng)建欄目表對應(yīng)的模型文件app\Category.php,在該文件中完成對欄目表的操作。2創(chuàng)建app\Http\Controllers\Admin\CategoryController.php,創(chuàng)建index()方法讀取欄目列表。3在CategoryController中編寫edit()方法,實現(xiàn)修改欄目。4在CategoryController中編寫delete()方法,實現(xiàn)刪除欄目。55.文章管理文章管理功能需要支持上傳文件。用戶可以上傳封面圖,由于文章記錄會越來越多,需要提供分頁查詢,方便用戶瀏覽。文章管理的實現(xiàn)步驟:10.2.1后臺功能實現(xiàn)創(chuàng)建文章表cms_article,字段為文章id、所屬欄目id、文章標題、作者名、封面圖路徑、發(fā)布狀態(tài)、閱讀量、文章內(nèi)容以及創(chuàng)建時間,向文章表中添加測試數(shù)據(jù)。1創(chuàng)建文章表對應(yīng)的模型文件app\Article.php,在該文件中完成對文章表的操作。2創(chuàng)建app\Http\Controllers\Admin\ArticleController.php,創(chuàng)建index()方法,讀取文章列表。3創(chuàng)建myframe\Page.php,實現(xiàn)分頁查詢,生成分頁的導(dǎo)航鏈接。4文章管理的實現(xiàn)步驟:10.2.1后臺功能實現(xiàn)在ArticleController中創(chuàng)建edit()方法,顯示添加或修改文章頁面,引入在線編輯器Ueditor,添加save()方法保存修改后的文章。5在myframe\Request.php中創(chuàng)建hasFile()方法,判斷當(dāng)前文章是否有文件上傳,創(chuàng)建file()方法獲取文件信息,創(chuàng)建myframe\Upload.php文件實現(xiàn)文件上傳。6在ArticleController中創(chuàng)建delete()方法,根據(jù)文章id刪除指定文章。7文章的欄目id依賴欄目表的記錄,當(dāng)刪除欄目時,該欄目下原有的文章的所屬分類就會出現(xiàn)問題,修改CategoryController,將被刪除的欄目下的所有文章的欄目id設(shè)為0,表示未選擇欄目。8
先定一個小目標!掌握前臺功能的實現(xiàn),能夠根據(jù)步驟實現(xiàn)功能。10.2.2前臺功能實現(xiàn)前臺功能前臺首頁文章展示10.2.2前臺功能實現(xiàn)供外部訪客訪問,主要展示網(wǎng)站的內(nèi)容。展示文章的詳細信息。10.2.2前臺功能實現(xiàn)1.前臺首頁前臺首頁的頁面布局分為頂部、內(nèi)容區(qū)域和尾部3部分。頂部包含欄目導(dǎo)航,用戶單擊欄目導(dǎo)航鏈接可以切換當(dāng)前顯示的欄目。內(nèi)容區(qū)域包含內(nèi)容:輪播圖:輪播圖突出展示網(wǎng)站的熱點內(nèi)容,通過直接編寫HTML代碼實現(xiàn)輪播圖。文章列表:首頁顯示所有欄目的文章,如果在某個欄目下,顯示某個欄目的文章。側(cè)邊欄:位于文章列表的右側(cè),側(cè)邊欄中會顯示熱門標簽、最新文章和最熱文章3個模塊。其中,熱門標簽功能在后臺沒有開發(fā),直接編寫HTML代碼展示,最新文章和最熱文章需要查詢文章表獲取數(shù)據(jù)。10.2.2前臺功能實現(xiàn)前臺首頁功能的實現(xiàn)步驟:創(chuàng)建resources\views\layout.html實現(xiàn)前臺頁面的布局,創(chuàng)建index.html保存首頁的內(nèi)容區(qū)域。1實現(xiàn)首頁的頂部內(nèi)容,創(chuàng)建IndexController.php,通過index()方法顯示前臺首頁,編寫category()方法查詢欄目記錄。在layout.html輸出欄目列表,給選中的欄目添加選中樣式。2實現(xiàn)內(nèi)容區(qū)域輪播圖,在resources\views下創(chuàng)建sub目錄,將輪播圖代碼保存到slide.html中。3實現(xiàn)內(nèi)容區(qū)域的文章列表,修改IndexController的index()方法,讀取文章列表并實現(xiàn)分頁查詢,創(chuàng)建resources\views\sub\list.html文件,輸出文章列表。4實現(xiàn)內(nèi)容區(qū)域的側(cè)邊欄,在IndexController中創(chuàng)建sidebar(),其他頁面使用時直接調(diào)用,創(chuàng)建resources\views\sub\sidebar.html,輸出熱門標簽、熱門文章和最新文章,在index.html中引入側(cè)邊欄。510.2.2前臺功能實現(xiàn)2.文章展示用戶單擊某一篇文章后,會進入文章展示頁面,文章展示頁面會顯示文章的標題、內(nèi)容、作者、發(fā)表時間、閱讀量,并且為了方便用戶瀏覽,還會提供上一篇、下一篇切換的鏈接。文章展示頁面的實現(xiàn)步驟:在IndexController中編寫show()方法,該方法的參數(shù)id表示要展示的
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 員工和老板分紅合同范例
- 保安合同范例補充協(xié)議
- 外聘合同范例 英語
- 凍庫維修服務(wù)合同范例
- 保潔家政合同范例
- 客戶與花店合同范例
- 買墓地合同范例
- 建設(shè)工程施工合同范例漏項
- 儀表代理銷售合同范例
- 土地股權(quán)轉(zhuǎn)讓合同范例
- 復(fù)旦大學(xué)附屬腫瘤醫(yī)院病理科李大力,楊文濤
- 機械式停車設(shè)備安裝工藝
- AutoCAD 布局(圖紙空間)使用教程詳解
- 電化學(xué)原理知識點
- 龍泉街道文化產(chǎn)業(yè)及民族民俗文化發(fā)展工作匯報
- 壓力容器壁厚計算表
- Y-△降壓啟動控制線路ppt課件
- 急危重患者的手術(shù)護理.ppt
- 制作同軸電纜接頭的方法課件
- 完整版鋼箱梁安裝及疊合梁施工
- 造價咨詢歸檔清單
評論
0/150
提交評論