做網站,我們是認真的!

網站適配電腦+手機端,僅1280元,送2000M阿里云服務器,送com域名+免費備案
網站前端采用靜態系統顯示,后端動態管理,我們承諾網站包收錄,完成網站之后把源碼給客戶!

觀點

互聯網+時代,說建站,談運營與網絡營銷

織夢dedecms后臺添加頂級欄目詳解

時間:2020-12-21

我們寫上欄目及欄目一些參數后,點擊保存,為什么他會自動加到前臺的欄目上面,當我們在點擊保存時,織夢又對程序做了什么?我們詳細分析這些后,對于我們以后織夢dedecms 二次開發很幫助。

 用到的知識:1.<form></form>表單知識;2.數據庫查詢語言select,insert,update,delete等;3.php知識;4.mysql數據庫知識;5.html,css,js,jquery等。

 織夢dedecms 收集數據都是用表單form來收集,然后,把收集的數據通過表單,傳給對應的php文件,再通過這個php文件里面的insert into數據庫語言,插入到數據庫存在起來。

添加頂級欄目對應的php程序文件和模板文件分別是/dede/catalog_add.php和/dede/catalog_add.htm。

  以下是當我們點擊保存按扭后程序在后臺做的一系列操作。

織夢dedecms后臺添加頂級欄目詳解

  下面詳細分析源碼。

  下圖是點擊“添加頂級欄目”后看到的界面,

  織夢dedecms后臺添加頂級欄目詳解

  這個界面對應的模板文件是catalog_add.htm,模板文件位置在根目錄dede(如果你的后臺名沒有改的話),我們打開這個模板文件,找到<form></form>表單,你會發現,這個表單就是上面的圖里面的內容,包括“高級選項”和“欄目內容”里面的內容。

  這里對數據收集作一個小小的總結,織夢對數據收集都是用form表單進行的,都是通過表單對應的php傳到數據庫保存的,不僅在織夢里面,在其它cms系統或程序中都是用表單進行收集,再能過php把數據插入到數據庫里面,我們最熟悉的百度,谷哥等搜索引擎都用的是form表單,當我們把關鍵詞輸入到搜索框內后,點擊查詢,這個過程,跟我們添加欄目過程類似,只不過這里是從數據里面把東西查詢出來,而添加欄目則只是把數據插入到數據庫里面。所以,表單很重要,這里就對html表單作了解。

  form表單格式:<form action=""><input type="submit" value="發送"><input type="reset" value="重置"></form>
  這是最簡單的格式,在表單中action是必須的,后面的按扭可以是文字,也是以是圖片,如<input name="imageField" type="image" src="images/button_ok.gif"/>;如果我們是上傳附件的表單,那么,在<form action="" enctype="multipart/form-data">里面enctype="multipart/form-data"是必須的,它的作用是設置表單的MIME編碼。以后,我們會詳細講解表單知識,如果您是新手,最好先學習一下html教程。

  現在讓我們看一下,在收集到用戶提交的數據后,catalog_add.php文件是如何處理這些數據的呢?在這個文件中,首先引入二個文件,然后,對catalog_add.htm模板里面的表單收集到的數據進行初始化,接下來決斷一下,是“添加頂級欄目”還是“批量添加頂級欄目”,實際上catalog_add.htm應對的是“添加頂級欄目”,而catalog_add_quick.htm對應的則是“批量添加頂級欄目”。

  在這個function action_save()函數后,有一個判斷else if($dopost=='save'),這句話很重要,直接決定了你的操作是“添加頂級欄目”,這個判斷與catalog_add.htm模板里面表單里面的<input type="hidden" name="dopost" value="save" />這句對應,正是這個把文件catalog_add.php和catalog_add.htm聯系起來,實現數據插入數據庫里面。

  在這個function action_save()函數里面,那句insert into是最重要的一句,就是插入數據庫功能。

  現在我們對模板文件再簡單分析一下,這個模板里面在頭部引入一個js函數
function checkSubmit()
{
   if(document.form1.typename.value==""){
          alert("欄目名稱不能為空!");
          document.form1.typename.focus();
          return false;
     }
     return true;
}

  它的作用就是當我們沒的或忘記寫“欄目名稱”,點擊提交,會有一個提示框,顯示“欄目名稱不能為空”,就是用的這個函數,這個特效是在表單<form name="form1" action="catalog_add.php" method="post" onSubmit="return checkSubmit();">里面的onSubmit="return checkSubmit()"腳本來觸發checkSubmit()這個js函數。
0
首頁
案例
關于
聯系
凯时平台