亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        PHPCMS萬能字段的設(shè)計與開發(fā)

        2022-03-23 01:35:40段尊敬
        關(guān)鍵詞:表單字段萬能

        ◆段尊敬

        PHPCMS萬能字段的設(shè)計與開發(fā)

        ◆段尊敬

        (山東輕工職業(yè)學院 山東 255300)

        萬能字段在PHPCMS模型表單設(shè)計中表現(xiàn)出強大的靈活性和可擴展性,但是設(shè)計比較復(fù)雜且缺少官方指南。本文由淺入深詳細講述了萬能字段的設(shè)計方法,重點說明了其參數(shù)表單內(nèi)容中HTML組件、JavaScript的編寫和自定義函數(shù),依據(jù)本文的設(shè)計思路,開發(fā)者能夠設(shè)計出符合各類用戶需求的組合型Web表單“輸入域”,從而拓展模型表單的輸入功能。

        PHPCMS;Web表單;萬能字段;自定義函數(shù)

        PHPCMS是一款基于PHP的開源網(wǎng)站管理軟件(簡稱CMS),它采用模塊化設(shè)計,含有文章展示、文件下載、圖片展示、視頻播放等常用功能,它既可以設(shè)計政府、企事業(yè)單位網(wǎng)站,也可以設(shè)計視頻、音樂和書籍等展示網(wǎng)站,具有功能強大、方便易用的特點。

        PHPCMS通過自定義模型、自定義標簽和自定義字段表現(xiàn)出強大的靈活性和可擴展性。在自定義字段中,以萬能字段最為靈活,它允許開發(fā)者自定義PHP函數(shù),并將多個HTML組件和JavaScript代碼邏輯耦合,形成組合型Web表單“輸入域”(例如多級聯(lián)動下拉框),由于萬能字段設(shè)計復(fù)雜且沒有官方指南,本文將詳細闡述其設(shè)計和使用方法。

        假定一個教師管理系統(tǒng)要求上傳學院所有教師的個人信息,每篇教師信息包括姓名、所屬院系、個人簡介等屬性,待填寫的教師信息頁面稱為教師信息表單。首先在后臺的“模型管理”添加一個Teacher模型,在模型中為教師各個屬性添加自定義字段,下面以“所屬院系”為例講述萬能字段的設(shè)計和使用。

        1 單行文本類型字段

        PHPCMS預(yù)定義了可用的自定義字段類型,例如:選項、單行文本、多行文本、編輯器等,如圖1所示。

        最簡易的方法是將“所屬院系”設(shè)置為單行文本類型,當編輯信息表單的時候,管理員手動輸入“所屬院系”的文本值,這樣設(shè)計存在以下問題:

        (1)輸入易出錯:手動輸入文本費時費力,出錯的可能性很大。

        (2)數(shù)據(jù)不一致:如果某院系名稱發(fā)生了變更,管理員不可能同時知曉,有的輸入新名稱,有的輸入舊名稱,這就造成數(shù)據(jù)不一致。

        為了解決上述兩個問題,可以將“所屬院系”設(shè)計成靜態(tài)萬能字段,所謂靜態(tài)是指僅含有HTML和JS代碼,不含有PHP動態(tài)腳本。

        2 設(shè)計靜態(tài)萬能字段

        假設(shè)學校僅有信息工程系、電子工程系、藝術(shù)設(shè)計系等三個院系,教師只能屬于其中一個,顯然應(yīng)將萬能字段設(shè)計為SELECT組件,每個院系名稱作為OPTION選項,管理員選擇了某個OPTION,它的value就作為SELECT的值保存到數(shù)據(jù)庫中。

        2.1 參數(shù)設(shè)置

        在Teacher模型中定義一個萬能字段,字段名為zy_teacher_dep,如圖2所示。

        2.2 參數(shù)說明

        (1)相關(guān)參數(shù)表單:可以包含HTML組件、JS代碼和自定義函數(shù),圖中僅包含三個院系的SELECT組件。

        (2)字段類型:選擇“字符VARCHAR”,表示保存到數(shù)據(jù)庫的數(shù)據(jù)類型為VARCHAR。

        (3)作為基本信息:選擇“是”,表示本字段在文章編輯頁面的左側(cè)顯示。

        (4)作為萬能字段的附屬字段:選擇“否”。

        圖2 參數(shù)設(shè)置

        2.3 注意事項

        (1)創(chuàng)建數(shù)據(jù)保存字段:在表單上創(chuàng)建萬能字段時,PHPCMS會在模型數(shù)據(jù)表teacher_data中創(chuàng)建一個同名字段,用于保存用戶提交的字段值。

        (2)“字符長度取值范圍”最小值設(shè)為3:目的是讓管理員必須選擇院系,如果沒有選擇,默認項“無”的value長度小于3,表單無法提交。

        (3)參數(shù)表單中INPUT組件的name必須和字段名一致:本例中SELECT組件的name必須是"info[zy_teacher_dep]",否則PHPCMS無法將字段值保存到表teacher_data的zy_teacher_dep字段中。

        (4)附屬字段含義:如果本字段是作為其他萬能字段的一部分,那么應(yīng)將“作為萬能字段的附屬字段”設(shè)為“是”。本例中的zy_teacher_dep字段不屬于其他萬能字段。

        2.4 運行結(jié)果

        設(shè)置完畢后,后臺編輯文章就可以使用zy_teacher_dep字段了,如圖3所示。

        圖3 運行結(jié)果

        保存教師信息后,查看Teacher模型的teacher_data表,會發(fā)現(xiàn)多了一個VARCHAR類型的zy_teacher_dep字段,它是PHPCMS依據(jù)自定義字段名稱建立的,用于保存zy_teacher_dep字段的值。

        3 設(shè)計動態(tài)PHPCMS萬能字段

        3.1 待解決的問題

        上述萬能字段構(gòu)造了一個SELECT組件,所有管理員都使用這個組件選擇院系,解決了數(shù)據(jù)不同步的問題,但是存在以下問題:

        (1)僅使用了靜態(tài)HTML代碼,沒有使用PHP動態(tài)腳本,無法鏈接數(shù)據(jù)庫。

        (2)所選院系能夠保存進數(shù)據(jù)庫,但是打開文章修改的時候,無法顯示已選院系。

        3.2 改進思路

        一般說來,學校的院系數(shù)據(jù)保存在基礎(chǔ)數(shù)據(jù)庫中,如果院系名稱發(fā)生變更,由運維人員及時修改,其他應(yīng)用程序只要從基礎(chǔ)數(shù)據(jù)庫讀取即可,這是解決數(shù)據(jù)同步的最好方案,PHPCMS萬能字段可以調(diào)用自定義函數(shù)實現(xiàn)數(shù)據(jù)庫遠程讀寫。

        自定義函數(shù)的格式規(guī)定:{FUNC(函數(shù)名~~參數(shù))},函數(shù)代碼寫在extention.func.php文件中;參數(shù)表示傳遞給自定義函數(shù)的變量,通常寫成{FIELD_VALUE},它表示萬能字段在數(shù)據(jù)表同名字段中的存儲值(如果有的話),PHPCMS在調(diào)用自定義函數(shù)的時候會自動讀取;函數(shù)名和參數(shù)之間用~~分隔。

        注意:自定義函數(shù)一定要先在extention.func.php中定義好才能在萬能字段表單中使用,否則會出錯。

        3.3 設(shè)計自定義函數(shù)

        zy_college字段表單內(nèi)容改為:

        此函數(shù)讀取了院系數(shù)據(jù)組成多個

        3.4 運行機制簡介

        管理員在后臺添加文章時,將執(zhí)行modulescontentcontent.php中的add方法,它調(diào)用$content_form類的get方法讀取表單中每個字段的已保存值。對萬能字段而言,則是執(zhí)行omnipotent目錄下form.inc.php的omnipotent方法,此方法讀取數(shù)據(jù)庫中萬能字段的值,作為參數(shù)傳入并調(diào)用my_dep_for_video_model自定義函數(shù),返回動態(tài)生成的SELECT組件,最后在教師信息表單上呈現(xiàn)出來。

        4 設(shè)計組合型萬能字段

        為了闡述組合型萬能字段,先拓展教師管理系統(tǒng)的表單功能,假定在教師管理系統(tǒng)中,管理員為每名教師推薦一名學生作為技能大賽培養(yǎng)對象,推薦時先選定某個班級,再選定此班級里的某名學生。這就要求設(shè)計一個萬能字段包括兩個SELECT組件,第一個組件包含可選的班級列表,第二個組件包含被選擇班級的學生列表,這個萬能字段實際上是個二級聯(lián)動下拉列表,從功能上看是個“輸入域”。

        4.1 字段設(shè)計

        (1)添加萬能字段class_name表示可選的班級,作為萬能字段的附屬字段設(shè)為“是”。

        (2)添加萬能字段students_in_class表示可選的姓名,作為萬能字段的附屬字段設(shè)為“是”。

        (3)添加萬能字段good_student,它是前面兩個萬能字段的邏輯組合,作為萬能字段的附屬字段設(shè)為“否”。

        (4)students_in_class表單內(nèi)容:

        (5)good_student表單內(nèi)容:{class_name}的{students_in_class}同學

        (6)class_name表單內(nèi)容:

        4.2 運行說明

        class_name字段的表單最后一行調(diào)用了自定義函數(shù)my_get_class,它和my_dep_for_video_model函數(shù)功能類似,不同的是此SELECT組件含有onchange方法,參數(shù)是管理員選中的OPTION選項的value,如下:

        當后臺打開教師信息表單的時候,class_name字段先調(diào)用my_get_class方法,它讀取基礎(chǔ)數(shù)據(jù)庫中的可選班級,生成一個包含可選班級的SELECT組件顯示在表單上。當管理員選擇班級的時候,將執(zhí)行onchange方法中的ajax語句,調(diào)用自定義的xxx.php頁面,此頁面接收被選中的班級value,在數(shù)據(jù)庫中檢索這個班級的所有學生姓名并返回一個name=info[students_in_class]的SELECT組件,如果返回成功,將這個SELECT組件呈現(xiàn)在id為stu_this_class的div中供管理員選擇,圖4是運行結(jié)果。

        圖4 運行結(jié)果

        class_name和students_in_class既是萬能字段,又是good_student的附屬字段,good_student用于在表單上顯示這兩個字段的邏輯組合。打開Teacher模型的teacher_data表,會發(fā)現(xiàn)表中一共創(chuàng)建了3個新字段:class_name、students_in_class、good_student,當提交教師信息表單后,前兩個字段分別保存被推薦學生的班級名稱和學生姓名,good_student字段其實沒有用處。

        5 結(jié)束語

        至此,組合型萬能字段設(shè)計結(jié)束,從功能上看,萬能字段就是PHP、JavaScript和多個HTML的Input元素構(gòu)建的邏輯輸入域,能夠在表單上呈現(xiàn)個性化、符合用戶需求的HTML輸入功能并實現(xiàn)數(shù)據(jù)的讀寫,其靈活性僅受限于開發(fā)者對PHP、JavaScript和HTML的應(yīng)用水平。根據(jù)本文的設(shè)計思路,可以設(shè)計出更加復(fù)雜靈活的萬能字段,足以滿足絕大多數(shù)用戶的需求。

        猜你喜歡
        表單字段萬能
        圖書館中文圖書編目外包數(shù)據(jù)質(zhì)量控制分析
        電子表單系統(tǒng)應(yīng)用分析
        華東科技(2021年9期)2021-09-23 02:15:24
        萬能衣
        我有一雙萬能的手
        學生天地(2018年9期)2018-09-06 13:11:18
        淺談網(wǎng)頁制作中表單的教學
        未來的萬能草
        小布老虎(2016年10期)2016-12-01 05:46:45
        萬能收納筒
        CNMARC304字段和314字段責任附注方式解析
        無正題名文獻著錄方法評述
        關(guān)于CNMARC的3--字段改革的必要性與可行性研究
        国产精品日韩中文字幕| 中国凸偷窥xxxx自由视频妇科 | 日韩在线视频不卡一区二区三区| 国产亚洲精品综合99久久| 丝袜av乱码字幕三级人妻| 国产卡一卡二卡3卡4乱码| 日韩吃奶摸下aa片免费观看| 天堂sv在线最新版在线| 亚洲V在线激情| 久久视频在线视频精品| 性感熟妇被我玩弄到高潮| 风韵丰满熟妇啪啪区99杏| 欧美私人情侣网站| 国产精品人妻一区夜夜爱 | 国产激情久久久久久熟女老人| 国产午夜精品av一区二区三| 久久精品国产亚洲av久按摩| 国产在线第一区二区三区| 亚洲精品无amm毛片| 亚洲av电影天堂男人的天堂| 亚洲黄色一级毛片| www.尤物视频.com| 亚洲中文字幕乱码在线观看| 国内精品久久久久影院优| 米奇777四色精品人人爽| 狠狠色综合播放一区二区| 亚洲精品综合一区二区| 国产夫妻自拍视频在线播放| 丰满少妇a级毛片野外| 国产又色又爽又刺激视频| 日本高清在线一区二区三区| 丝袜美腿高清在线观看| 小辣椒福利视频导航| 免费看久久妇女高潮a| 无码一区久久久久久久绯色AV| 人妻熟女中文字幕av| 国产精品毛片无遮挡高清| 水蜜桃无码视频在线观看| 国内精品伊人久久久久av| 亚洲一区二区不卡日韩| 国产网站一区二区三区|