php对话框制作,织梦系统“提示窗口对话框类”详解,oxwindow.class.php、catalog_do.php...
如果對(duì)織夢(mèng)系統(tǒng)做過二次開發(fā)或?qū)W深入研究過的話,一定會(huì)知道在我們做織夢(mèng)二次開發(fā)時(shí),一般會(huì)把php文件以及對(duì)應(yīng)的模板文件起的名字,除了擴(kuò)展名外,其它都一樣,這是織夢(mèng)文件起名的一個(gè)特點(diǎn)。例如,index_body.php文件,一般對(duì)應(yīng)的模板文件是index_body.htm,文件album_add.php對(duì)應(yīng)的模板文件是album_add.htm等等,一般都是這樣的,織夢(mèng)里面很少是不對(duì)應(yīng)的,這是織夢(mèng)一個(gè)特點(diǎn),也是我們?cè)趯W(xué)習(xí)織夢(mèng)系統(tǒng)時(shí),查找模板文件的一個(gè)方法。
我們舉一個(gè)例子:當(dāng)我們添加文檔的時(shí)候,會(huì)打開如下圖所示表單。
我們?cè)跒g覽器看到這的這個(gè)表單,實(shí)際上是一個(gè)模板文件也就是html代碼,如果是php代碼是肯定不會(huì)在瀏覽器看到的,因?yàn)?#xff0c;php程序是運(yùn)行在服務(wù)器上面的,知道這個(gè)原理我們就可以推測(cè),這個(gè)表單一定是一個(gè)html代碼并且嵌套了標(biāo)簽的模板文件,當(dāng)我們提交之后,會(huì)被提交到對(duì)應(yīng)的php文件進(jìn)行處理。
由此,我們推斷這個(gè)php文件一定引入了模板文件,而這個(gè)模板文件經(jīng)過編譯后,顯示在我們的瀏覽器上面。根據(jù)上面我們講到過的織夢(mèng)命名規(guī)則,我們只要找到對(duì)應(yīng)的php文件,一定會(huì)找到對(duì)應(yīng)的模板文件。我們知道這個(gè)發(fā)布文檔的php程序文件是article_add.php,那么,他對(duì)應(yīng)的模板文件是一定是article_add.htm,一定也沒有錯(cuò),正是這個(gè)文件。
通過上例我們發(fā)現(xiàn)如果一個(gè)對(duì)話框,在瀏覽器顯示,一般都是php和htm模板文件配合使用,在織夢(mèng)里面是這樣的,當(dāng)然,還有一種情況就是只用js和php文件,但是,js里面也必定有html代碼。
但是織夢(mèng)里面有一種特殊的對(duì)話框,叫“提示窗口對(duì)話框”,這個(gè)對(duì)應(yīng)框跟上面的表單一樣又完全不一樣,這個(gè)說的一樣是,這個(gè)對(duì)話框也調(diào)用了模板文件/templets/plus/win_templet.htm,從這點(diǎn)來說是一樣的,在織夢(mèng)里面只要顯示在瀏覽器上面的內(nèi)容,都會(huì)有對(duì)應(yīng)的模板文件。
但是又不一樣,這個(gè)對(duì)話框是織夢(mèng)通過一個(gè)類,進(jìn)行動(dòng)態(tài)加載的對(duì)話框內(nèi)容的。這里說的動(dòng)態(tài)加載內(nèi)容,指的是不像上面模板文件是寫好的,固定不變的,而是通過我們自己定義顯示的內(nèi)容,這樣的最大好處是我們可以自由定義對(duì)話框,包括對(duì)話框的,顏色,按扭等各種選項(xiàng)。
這就是織夢(mèng)的系統(tǒng)提供給我們的“提示窗口對(duì)話框類”,本教程會(huì)對(duì)這個(gè)類通過一個(gè)實(shí)例,來詳細(xì)分析這個(gè)類,在以后開織夢(mèng)二次開發(fā)時(shí),如果想使用這種對(duì)話框可以自己定義特別方便。
其實(shí),在織夢(mèng)后臺(tái)里面有很多地方都用到這個(gè)“提示窗口對(duì)話框”,例如,移動(dòng)欄目,如下圖所示。
還有刪除欄目對(duì)話框,如下圖所示。
這二個(gè)都是應(yīng)用到“提示窗口對(duì)話框類”了,當(dāng)然,在織夢(mèng)系統(tǒng)里面并不僅僅這二個(gè),還有很多,我們這里不一一列出。
今天,我們就以“移動(dòng)”欄目為例子,來講解“提示窗口對(duì)話框”是如何執(zhí)行的,等我們把這個(gè)學(xué)會(huì)了,其它,都不成問題,我們自己也就會(huì)寫出自己個(gè)性的對(duì)應(yīng)框了。
用到的程序文件:
“提示窗口對(duì)話框類”對(duì)應(yīng)的文件:http://www.dedebase.com/include/oxwindow.class.php
“移動(dòng)”欄目:http://www.dedebase.com/dede/catalog_do.php
工作原理:
通過在文件catalog_do.php里面自定義對(duì)話框內(nèi)容,然后,實(shí)例化oxwindow.class.php里面的類OxWindow。調(diào)用這個(gè)文件里面已經(jīng)定義好的table表格及其相應(yīng)的方法,然后,通過Display()方法顯示出來。
提示窗口對(duì)話框類里面的方法有:
1、開始創(chuàng)建窗口方法:
StartWin(),這個(gè)方法的功能是定義了表格的開始,即<table width='100%'border='0'cellpadding='3'cellspacing='1'bgcolor='#DADADA'>\r\n,并存放在變量$this->myWin里面。
2、初始化為含表單的頁面:Init($formaction="",?$checkScript="js/blank.js",?$formmethod="POST",?$formname="myform")
通過初始化,得到一個(gè)類似下面的字符串,并賦給$this->myWin。
3、增加隱藏域方法:
AddHidden($iname,$ivalue),這個(gè)方法是增加隱藏域,如本例子“移動(dòng)”欄目里面的,如下隱藏域。
上面這些隱藏域正是通過這個(gè)方法來實(shí)現(xiàn)的,定義好后的隱藏域賦給$this->myWin。
4、增加單列的標(biāo)題行:
AddTitle($title, $col="2"),通過這個(gè)方法我們可以得到,對(duì)話框里面的標(biāo)題,如下圖所示。
這個(gè)標(biāo)題對(duì)應(yīng)的html代碼為:
移動(dòng)目錄時(shí)不會(huì)刪除原來已創(chuàng)建的列表,移動(dòng)后需重新對(duì)欄目創(chuàng)建HTML。對(duì)應(yīng)的方法調(diào)用為是:$win->AddTitle("移動(dòng)目錄時(shí)不會(huì)刪除原來已創(chuàng)建的列表,移動(dòng)后需重新對(duì)欄目創(chuàng)建HTML。")
5、增加一個(gè)兩列的行:
AddItem($iname, $ivalue),通過這個(gè)方法我們可以得到一個(gè)一行兩列的表格內(nèi)容,例如,本例中,通過$win->AddItem('你選擇的欄目是:',"$typename($typeid)");
$win->AddItem('你希望移動(dòng)到那個(gè)欄目?',"\r\n移動(dòng)為頂級(jí)欄目\r\n$typeOptions\r\n");
$win->AddItem('注意事項(xiàng):','不允許從父級(jí)移動(dòng)到子級(jí)目錄,只允許子級(jí)到更高級(jí)或同級(jí)或不同父級(jí)的情況。');
通過上面三次對(duì)方法AddItem()的調(diào)用,得到如下對(duì)話框內(nèi)容。
你選擇的欄目是:Javascript/Ajax(4)你希望移動(dòng)到那個(gè)欄目?移動(dòng)為頂級(jí)欄目
網(wǎng)頁基礎(chǔ)
─Javascript/Ajax
─Dreamweaver
DIV&CSS
注意事項(xiàng):不允許從父級(jí)移動(dòng)到子級(jí)目錄,只允許子級(jí)到更高級(jí)或同級(jí)或不同父級(jí)的情況。對(duì)應(yīng)的如下圖所示對(duì)話框內(nèi)容。
6、增加一個(gè)單列的消息行:
AddMsgItem($ivalue,$height="100",$col="2")這個(gè)方法是增加一個(gè)類似下面的一個(gè)單列:
?$ivalue?這個(gè)方法在本例子中,沒有用到,我們就實(shí)驗(yàn)一下這個(gè)方法。
在文件catalog_do.php里面加上$win->AddMsgItem("這是測(cè)試用的一個(gè)方法",$height="100",$col="2");這一行代碼,移動(dòng)欄目顯示結(jié)果如下圖所示。
7、結(jié)束Window:CloseWin($isform=true),這個(gè)方法就是定義了一個(gè)表格的閉合,代碼極簡(jiǎn)單沒有什么好講的。
8、增加自定義JS腳本:SetCheckScript($scripts)這個(gè)功能我們一般用不到,因?yàn)?#xff0c;在初始化時(shí),我們就已經(jīng)定義了js文件了。
9、獲取窗口:GetWindow($wintype="save",$msg="",$isform=true),這個(gè)方法把上面的字符串變量$this->myWin和$this->myWinItem進(jìn)行了對(duì)接,也就是把表格表單內(nèi)容進(jìn)行組合,同時(shí)這個(gè)方法還提供了一段表格定義。而且還定義了按扭的類型。
這個(gè)按扭本沒有什么,但是,這種定義的方法確是值得我們學(xué)習(xí)的。例如本例子中,$win->GetWindow('ok')里面的“菜單類型”為ok,對(duì)應(yīng)對(duì)話框如下圖所示。
若我們把類型save,即$win->GetWindow('save'),將看到如下所示對(duì)話框。
窗口型按扭類型圖:
通過這個(gè)窗口函數(shù)的調(diào)用,返回了對(duì)接后的表格$this->myWin,以備下面的display()函數(shù)使用。
10、顯示頁面:Display($modfile=""),這個(gè)對(duì)話框之所以能夠顯示出來,就是這個(gè)函數(shù)作用的結(jié)果,可以說,以上9個(gè)方法全為這個(gè)函數(shù)作顯示準(zhǔn)備。
總結(jié)
以上是生活随笔為你收集整理的php对话框制作,织梦系统“提示窗口对话框类”详解,oxwindow.class.php、catalog_do.php...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 多媒体计算机软件系统课件,《多媒体计算机
- 下一篇: php表格好看样式,用html和css代