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