




已閱讀5頁,還剩21頁未讀, 繼續(xù)免費閱讀
版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
全日制本科生畢業(yè)論文題 目: 基于Drupal框架的“重師青年”雜志管理系統(tǒng)開發(fā) 學 院: 計算機與信息科學學院 專業(yè)年級: 計算機科學與技術(師范)2012級 學生姓名: 學號: 指導教師: 職稱: 2016 年 5 月 6 日 基于Drupal框架的“重師青年”雜志管理系統(tǒng)開發(fā) 摘 要:本畢業(yè)設計是基于Drapul框架進行雜志管理系統(tǒng)的開發(fā)。該系統(tǒng)的主要功能包括發(fā)布文章、文章管理、人員管理、模板管理、外觀更改等。本系統(tǒng)的運行環(huán)境是Apache+MySql,其主體部分是后臺管理系統(tǒng),采用了Drupal、php等技術。同時也包含前臺頁面,采用html、Css、JavaScript、Bootstrap、Ajax等技術。此系統(tǒng)已經(jīng)開發(fā)成功,功能已達到設計要求,并可以正常運行。關鍵詞:Drapul;php;JavaScript;管理后臺全套設計加扣3012250582 Abstract:Based on the Drapal framework, this Graduation design develop a journal management system. The conditions of the system run are Apache and MySql, this systems dominant part is the background management system, using Drupal ,PHP and other technologies; also includes the front-end page, using HTML, Css, JavaScript, Bootstrap, Ajax and so on. Through the above technologies, the system achieves the main functions including publishing articles, article management, personnel management, template management and changing the appearance. This system has been developed, the function has reached the design requirements, and can run normally.Key words:Drapul; php; JavaScript; Management system 隨著網(wǎng)絡的迅速發(fā)展,網(wǎng)上瀏覽信息早已成為大學生的一種習慣,通過網(wǎng)上雜志管理系統(tǒng),雜志社管理員能及時將雜志社發(fā)布的活動、文章等信息更新到線上,使得用戶可以隨時查看信息,使得管理員管理更方便、快捷。1 技術與工具概述1.1 開發(fā)工具及技術本系統(tǒng)使用開發(fā)工具有phpstorm編輯器,phpstudy環(huán)境集成包,photoshop圖像處理軟件等;開發(fā)中主要使用技術包含drupal、php、mysql、html、javascript、css.下面是對主要開發(fā)工具以及開發(fā)環(huán)境和Drupal框架的簡要介紹。1.1.1 PhpstormPhpstorm:一款輕量級的編輯器,可在Windows,Mac OS X,Linux上運行,安裝簡單,支持zen編碼,相對DW而言,其優(yōu)勢在于可以跟蹤代碼。1.1.2 Phpstudy IDEphpstudy :phpstudy 集成了最新的Apache、PHP、MySQL、phpMyAdmin。phpstudy無須配置即可使用,是非常方便、好用的虛擬服務器。該程序不僅包括PHP調試環(huán)境,還包括開發(fā)工具以及開發(fā)手冊等。Phpstudy支持多種版本,可以隨意進行版本切換,也可以根據(jù)開發(fā)需求進行路由配置。1.1.3 DrupalDrupal是用來構建網(wǎng)站的,它是一個基于php語言編寫的CMF。它的特點有:可擴展性強、安全性高、高度模塊化、追求代碼簡潔、內(nèi)核精煉。Drupal的設計目標使得其既可在廉價web虛擬主機上運行,也可以適應高負載的分布式站點。所以可以選擇phpstudy IDE配合開發(fā)1。1.2 開發(fā)環(huán)境及搭建1.2.1 開發(fā)環(huán)境操作系統(tǒng):win7操作系統(tǒng)瀏覽器:谷歌瀏覽器編輯器:Phpstorm服務器:Apache (采用phpstudy 集成環(huán)境包)開發(fā)語言:PHP、Javascript、html、css數(shù)據(jù)庫:MYSQL1.2.2 開發(fā)環(huán)境搭建以下是對本系統(tǒng)開發(fā)環(huán)境的搭建說明,在開發(fā)時,一定要先完成Phpstudy 環(huán)境搭建后完成Drupal環(huán)境搭建,否則會導致環(huán)境搭建不成功。(1)Phpstorm開發(fā)環(huán)境搭建下載Phpstorm最新版,然后按提示安裝。安裝完成后,為方便后期開發(fā),打開整個項目,修改快捷鍵(File-setting-keymap)。Phpstorm的zen編碼快捷鍵是Tab。(2)Phpstudy 環(huán)境搭建下載Phpstudy最新版,然后按提示安裝,安裝時選擇安裝目錄為自己的站點運行目錄,然后啟動程序,左鍵單擊“php版本”(如圖1.1所示),選擇Apache+php版本并應用。開發(fā)過程中若需要更改hosts,左鍵單擊“其他選項菜單”,選擇“打開hosts”(如圖1.2所示),然后對hosts進行修改、保存。(注:修改完后一定要重啟phpstudy,否則修改無效。)圖1-1 php版本切換圖 圖1-2 hosts修改圖(3)數(shù)據(jù)庫環(huán)境搭建用Navicat或者phpstorm的mysql工具新建數(shù)據(jù)庫。注:記錄下數(shù)據(jù)庫名、用戶名、密碼,以便之后使用。(4)Drupal環(huán)境搭建下載drupal:打開drupal官網(wǎng),下載drupal核心包7.43版。下載得到的其實就是drupal的核心。目前,drupal8相對drupal7而言,功能模塊數(shù)量較少,且整體性能不足7穩(wěn)定,而drupal7.43修復了之前版本的重大bug,故下載7.43版2。解壓drupal:將drupal核心包解壓至站點運行目錄(d:/www)。下載語言包:打開/translate/languages/zh-hans頁面,下載相應的語言包(.po文件)。安裝語言包:將下載的語言包放至d:/www/drupal7.43/profiles/standard/translations 目錄下。初始化:在瀏覽器中打開http:/localhost/drupal-7.43/,此時瀏覽器會運行drupal的index.php。選擇“Standard”,然后點擊 Save and continue 執(zhí)行下一步。選擇語言:選擇簡體中文,點擊 Save and continue 執(zhí)行下一步。數(shù)據(jù)庫配置:按照提示填寫數(shù)據(jù)庫的配置信息,如數(shù)據(jù)庫名、數(shù)據(jù)庫用戶名以及數(shù)據(jù)庫用戶的密碼等,點擊下一步。安裝Drupal:此時系統(tǒng)執(zhí)行Drupal的安裝工作,并且系統(tǒng)自動導入翻譯,然后進入到Drupal站點配置頁面。Drupal站點設置:按照提示填寫相關站點信息,點擊Save and Continue,此時便完成了drupal的安裝。訪問站點:站點url為: http:/localhost/drupal-7.43/注:drupal環(huán)境搭建中第9步站點設置時設置的管理員賬戶擁有超級管理員權限。2 需求分析2.1 系統(tǒng)需求分析2.1.1 前臺頁面需求分析(1)前臺頁面應包含首頁,學習、考研、校園、畢業(yè)季、樂活列表頁,最近更新,加入我們。訪問前臺頁面無需注冊與登錄。(2)首頁展示網(wǎng)站logo、導航欄、首頁大圖、推薦文章。(3)學習、考研、校園、畢業(yè)季、樂活為該分類下的對應列表頁,點擊進入相應的詳情頁。(4)最近更新展示最近更新到網(wǎng)站的文章列表。(5)聯(lián)系我們簡要介紹雜志社。2.1.2 管理后臺需求分析(1)后臺包括內(nèi)容、結構、外觀、人員、模塊、配置等,后臺頁面均需登錄、且有權限控制。(2)內(nèi)容:點擊進入整個網(wǎng)站的全部內(nèi)容列表,列表中包含編輯、刪除按鈕,可以新增內(nèi)容。列表頁有權限控制。(3)結構:點擊彈層,顯示管理內(nèi)容類型,分類,區(qū)塊,菜單,點擊分別進入詳情頁,可進行增、刪、改、查操作。(4)外觀:點擊后進入主題列表頁,可在列表頁切換主題,點擊設置按鈕可以進入主題設置頁面,對站點外觀進行自定義設置。(5)人員:點擊進入人員列表頁,可以對系統(tǒng)注冊人員(即后臺管理人員)進行增、刪、改、查的操作,同時也可在這里對人員進行禁用(邏輯刪除)。(6)模塊:點擊進入模塊列表頁,點擊權限按鈕可以設置每個用戶登錄后查看模塊的權限,點擊配置按鈕可以修改模塊的顯示位置及顯示頁面。(7)配置:點擊進入配置列表頁,列表頁包含可選配置項。如文本格式、文件系統(tǒng),點擊分別進入設置頁面,在設置頁面可以對系統(tǒng)的基本配置進行修改。2.2 可行性分析在系統(tǒng)開發(fā)前,為降低資源和時間的浪費和損失,從以下幾點對本次畢業(yè)設計做了可行性分析3。2.2.1 技術的可行性本次系統(tǒng)開發(fā),技術重點為php,技術難點為Drupal框架的使用。Php難度不大,但Drupal初次接觸,難度稍大。為解決技術難點,參與了Drupal重慶分享會,也通過老師、同事獲取了更多的資料,并做了初步的使用實驗,基本掌握本次系統(tǒng)所需相關知識,所以,技術上可行。2.2.2 經(jīng)濟的可行性Drupal框架是開源的,開發(fā)中部分軟件由實習公司免費提供。部分學習資料自費購買,但價格均在能力范圍內(nèi),所以,經(jīng)濟上可行。2.2.3 時間的可行性此次畢業(yè)設計從2016年1月開始準備資料和學習,并且已擬定相關時間安排表(見開題報告),所以,時間上可行。3 系統(tǒng)整體設計3.1 系統(tǒng)流程設計(1)前臺用戶無需登錄即可查看前臺頁面內(nèi)容,前臺頁面無權限控制。(2)進入首頁后可以通過點擊首頁readmore打開文章(詳情頁),可以通過導航欄進入文章題目列表(列表頁),點擊列表可以打開文章。(3)后臺管理員登錄成功后進入后臺首頁,通過導航欄進入文章題目列表。(4)用戶只能從后臺注冊,前臺沒有注冊界面。(5)后臺管理員可對人員、外觀、模塊、內(nèi)容等進行管理,安裝Drupal時注冊的用戶具有超級權限,可以開發(fā)模塊4。如圖3-1是對系統(tǒng)功能進行簡要說明。圖3-1 系統(tǒng)功能流圖登錄成功登錄失敗區(qū)塊模板登錄管理員用戶表后臺首頁語言表節(jié)點表節(jié)點模塊配置模塊人員用戶結構節(jié)點模板外觀系統(tǒng)內(nèi)容節(jié)點表區(qū)塊模板菜單模塊節(jié)點詳情節(jié)點模板菜單模塊 數(shù)據(jù)庫節(jié)點表用戶首頁最近更新關于我們節(jié)點模板列表頁詳情頁導航導航3.2 數(shù)據(jù)庫的分析與設計3.2.1 數(shù)據(jù)庫的概念結構設計數(shù)據(jù)庫的概念結構設計采用實體聯(lián)系的模型設計方法。E-R模型法的組成元素有:實體、屬性、聯(lián)系,E-R模型用E-R圖表示,是提示用戶工作環(huán)境中所涉及的事物;屬性是對實體特性的描述。(1)實體(3)實體間關系(2)屬性圖3-2 圖標示例圖(1)內(nèi)容實體E-R圖示例圖3-3 內(nèi)容E-R圖創(chuàng)建者 正文 權重內(nèi)容類型內(nèi)容 狀態(tài) 標題創(chuàng)建日期所屬菜單菜單鏈接(2)用戶實體E-R圖示例用戶名 密碼 郵箱 角色 狀態(tài) 語言用戶圖3-4 用戶E-R圖(3)菜單實體E-R圖示例標題 權重 所屬模塊鏈接路徑子鏈接父菜單菜單圖3-5 菜單E-R圖(4)內(nèi)容類型實體E-R圖示例圖3-6 內(nèi)容類型E-R圖 版本 語言內(nèi)容類型 狀態(tài) 標題修改時間創(chuàng)建日期權限用戶(5)區(qū)塊實體E-R圖示例圖3-7 區(qū)塊E-R圖 標題顯示頁面 權重 狀態(tài)緩存模式啟用主題所屬模塊區(qū)塊(6)外觀實體E-R圖示例圖3-8 外觀E-R圖 站點圖標 主題站點名稱外觀(7)總體E-R圖圖3-9 總體E-R圖圖n內(nèi)容類型用戶區(qū)塊內(nèi)容創(chuàng)建屬于創(chuàng)建組成111n創(chuàng)建11nnn3.2.2 邏輯設計表3.1 系統(tǒng)數(shù)據(jù)庫表列表序號表文件名表名稱說明1node節(jié)點模塊表存儲節(jié)點節(jié)點基本信息2node_type節(jié)點版本表存儲了一個節(jié)點的類型信息3users用戶信息表存儲用戶數(shù)據(jù)4system系統(tǒng)信息表儲存系統(tǒng)信息5language語言信息表存儲系統(tǒng)中所有可用語言表6block區(qū)塊信息表存儲區(qū)塊設置、如區(qū)塊可見性,位置等7block_node_type區(qū)塊類型表儲存區(qū)塊類型信息8field_data_body內(nèi)容主體表存儲內(nèi)容主體信息9menu_links菜單鏈接表存儲菜單內(nèi)的單個鏈接10cache通用緩存表存儲緩存信息,包含第三方模塊的緩存信息表3.2 節(jié)點模塊表序號字段名類型長度默認值主鍵外鍵允許為空說明1nidint10是節(jié)點id2vidint10用戶名3uidint11是權限用戶4languagevarchar12是語言5titlevarchar255標題6createdint11創(chuàng)建時間戳7changedint11上次修改時間8promoteint11推薦到頁首9statusint11狀態(tài)10stickyint11是否置頂11tnidint10是節(jié)點類型id12translateint11是否翻譯備注:(1)uid:擁有權限的用戶id。 (2)sticky:0 不置頂,1 置頂。 (3)promote:0 不推薦,1 推薦。 (4)status:0 不啟用,1 啟用。 (5)translate:0 不翻譯,1 翻譯。表3.3 節(jié)點類型表序號字段名類型長度默認值主鍵外鍵允許為空說明1typeint10是類型id2nameint10類型名3descriptionmediumtext描述4createdint11創(chuàng)建時間戳表3.4 用戶信息表序號字段名類型長度默認值主鍵外鍵允許為空說明1uidint10是用戶id2namevarchar50用戶名3passvarchar32用戶密碼4mailchar64用戶郵箱5languagevarchar12默認語言6themevarchar255是默認主題7statustinyint40狀態(tài)8picturevarchar255頭像路徑9loginint11上次登錄時間戳表3.5 系統(tǒng)信息表序號字段名類型長度默認值主鍵外鍵允許為空說明1filenameint10是項目路徑2namevarchar50項目名3typevarchar255類型(如module)4ownervarchar255父級5statusint110狀態(tài)6weightint110權重7bootstrapint110是否加載bootstrap備注:(1)Filename:項目相對drupal的相對路徑。 (2)name:項目的名稱,如:node。 (3)satus:0 不啟用;1 啟用。 (4)bootstrap:0 不加載bootstrap模塊,1 加載bootstrap模塊。表3.6 語言信息表序號字段名類型長度默認值主鍵外鍵允許為空說明1languagevarchar12是機讀碼2namevarchar64語言名3directionint110讀寫方向4enabledint11是否啟用5weightint640權重6javascriptvarchar32Js翻譯文件位置備注:(1)direction:0 從左向右;1從右向左。 (2)enabled:0 不啟用;1 啟用。表3.7 區(qū)塊信息表序號字段名類型長度默認值主鍵外鍵允許為空說明1bidint11是區(qū)塊id2modulevarchar64用戶名3themevarchar64是主題4visibilitytinyint4顯示方法5titlevarchar225區(qū)塊標題6cachetinyint41緩存機制7statustinyint40狀態(tài)8weightint110權重備注:(1)visibility:0 除所列頁面外所有頁面,1 所列頁面顯示,2通過代碼控制 (2)cache:-1 不緩存,1 基于角色緩存,8 全局緩存區(qū)塊 (3)status:0 不啟用,1 啟用。表3.8 區(qū)塊類型表序號字段名類型長度默認值主鍵外鍵允許為空說明1midvarchar64是區(qū)塊id2modulevarchar32區(qū)塊名3typevarchar32區(qū)塊類型表3.9 內(nèi)容主體表序號字段名類型長度默認值主鍵外鍵允許為空說明1bundlevarchar128內(nèi)容類型2deletedtingyint40是否刪除3entity_idvarchar10是節(jié)點id4languagevarchar32是語言5body_valuelongtext0主體內(nèi)容6body_formatvarchar255主體編碼備注:(1)language:主體內(nèi)容使用語言。 (2)body_format:文本編碼格式(html/text)。 (3)deleted:0 不刪除,1 刪除(邏輯刪除)。表3.10 菜單鏈接表序號字段名類型長度默認值主鍵外鍵允許為空說明1mlidint10是菜單鏈接id2menu_namevarchar50菜單名3plidvarchar100父級鏈接id4link_titlevarchar255鏈接標題5modulevarchar255是模板6weightvarchar11權重備注:(1)plid:父級鏈接id。表3.11 緩存信息表序號字段名類型長度默認值主鍵外鍵允許為空說明1cidint10是主鍵id2datavarchar255緩存數(shù)據(jù)3expireint11時效4createdint11創(chuàng)建時間戳備注:(1)expire:時間戳格式,用于表示緩存時效,0表示永不過期。 (2)body_format:文本編碼格式(html/text)。3.2.3多表聯(lián)結關系圖圖3-10 多表關聯(lián)圖4 系統(tǒng)實現(xiàn)4.1 數(shù)據(jù)渲染流程當在瀏覽器輸入url后drupal就會調用index.php。但當打開index.php后會發(fā)現(xiàn)其中只有如下幾行代碼5:define(DRUPAL_ROOT, getcwd();require_once DRUPAL_ROOT . /includes/bootstrap.inc;/加載include文件夾中的函數(shù)等drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);menu_execute_active_handler();看完代碼發(fā)現(xiàn),drupal強大的功能就是基于以上四行代碼的,對index.php做一個代碼跟蹤后發(fā)現(xiàn)其渲染流程如下:(1)加載index.php,在此文件中調用drupal_bootstrap();以及menu_execute_active_handler();(2)drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL)函數(shù):從 bootstrap.inc中可以找到 DRUPAL_BOOTSTRAP_FULL的值為7,對drupal_bootstrap($phase)函數(shù)進行分析可得此處就是循環(huán)調用_drupal_bootstrap7次。什么意思呢?其實就是執(zhí)行以下函數(shù): _drupal_bootstrap_configuration();/初始化配置 _drupal_bootstrap_page_cache();/試圖緩存頁面 _drupal_bootstrap_database(); /初始化數(shù)據(jù)庫層 _drupal_bootstrap_page_header();/設置頁眉 drupal_session_initialize();/初始化session _drupal_language_initialize();/初始化頁面語言 _drupal_bootstrap_full();/完全加載Drupal。驗證和修正輸入數(shù)據(jù)綜上,drupal_bootstrap其實就是用來加載所有的系統(tǒng)必須包含的文件和模塊文件,并且運行模塊函數(shù) hook_init.這就使得我們可以自由調用模塊6。menu_execute_active_handler():它的作用就是通過url,來調用數(shù)據(jù)庫中的相關函數(shù),并且把頁面相關的inc文件加載進來。此文件中的menu_get_item()函數(shù)用來接收q的值,然后解析出對應的模塊,并調用相關函數(shù),加載頁面。4.2 功能模塊開發(fā)實例在drupal系統(tǒng)中,頁面是由多個模塊組合而成。Drupal強大的定制功能,使得開發(fā)者可以自由開發(fā)模塊,以滿足當前業(yè)務需求7。以下,以實現(xiàn)最近更新列表頁為模板,對開發(fā)區(qū)塊過程做示例展示。(1) 創(chuàng)建模塊目錄和文件,如圖4-1所示:圖4-1 目錄圖(2) 編寫模塊描述文件如圖4-2所示:圖4-2 描述文件圖(3) 編寫第一個鉤子如圖4-3所示:圖4-3 幫助鉤子圖(4) 聲明區(qū)塊如圖4-4所示:圖4-4 區(qū)塊聲明圖(5)從數(shù)據(jù)庫獲取數(shù)據(jù)如圖4-5所示:圖4-5 獲取數(shù)據(jù)圖(6)數(shù)據(jù)渲染如圖4-6,4-7所示:圖4-6 數(shù)據(jù)渲染圖1圖4-7 數(shù)據(jù)渲染圖2 (7) 測試、調試如圖4-8所示:圖4-8 測試使用圖(8) 運用至頁面,如圖4-9所示:圖4-9 頁面使用圖4.3 系統(tǒng)測試、調試前臺頁面,測試閱讀更多,列表頁、詳情頁的相關跳轉及樣式;對于后臺,重點測試登錄、區(qū)塊設置,站點信息更改等功能。對于頁面數(shù)據(jù)問題用t(“variable”)進行調試,對于頁面樣式的調試則修改對應的頁面css文件,對于一些特殊的元素則在*.tpl.php中修改對應的樣式即可8。5 系統(tǒng)部分頁面展示圖5-2 “樂活”前臺列表頁圖5-1 前臺首頁圖圖5-4 后臺首頁圖圖5-3 “樂活”后臺列表頁圖5-6 后臺內(nèi)容管理頁圖5-5
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 中藥新藥研發(fā)策略優(yōu)化:2025年現(xiàn)代化進程與市場潛力預測
- 寵物保健品市場細分需求研究:2025年寵物消費與產(chǎn)品創(chuàng)新深度報告
- 遠程醫(yī)療在偏遠地區(qū)醫(yī)療服務中的患者滿意度調查與分析報告
- 咸陽師范學院《舞蹈V》2023-2024學年第一學期期末試卷
- 數(shù)字化時代銀行零售業(yè)務營銷策略優(yōu)化報告
- 江西省吉安市遂州縣2025屆初三聯(lián)合調研考試(語文試題理)試題含解析
- 家具生產(chǎn)工藝與設計考題試題及答案
- 山東外事職業(yè)大學《立法學》2023-2024學年第二學期期末試卷
- 江西省彭澤縣市級名校2025年中考模擬考試試題數(shù)學試題試卷含解析
- 上海市徐匯區(qū)名校2024-2025學年下學期初三數(shù)學試題期末教學質量檢測試題含解析
- DB32-T 2665-2014機動車維修費用結算規(guī)范-(高清現(xiàn)行)
- 2022年新高考湖南化學高考真題(word版含答案)
- Product Monitoring產(chǎn)品監(jiān)視與測量程序(中英文)
- 壓力管道安全檢查表參考范本
- SB∕T 10170-2007 腐乳
- 外貿(mào)進出口流程圖
- 部編人教版小學五年級下冊語文文言文閱讀理解課后專項練習
- 皮膚管理--ppt課件
- 雙向氣動插板門使用說明書
- 水利水電工程畢業(yè)設計---水閘設計
- (完整版)2019年高考數(shù)學浙江卷(附答案)
評論
0/150
提交評論