校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 網站建設 > 建站知識 > 織夢添加文章生成靜態網頁概述

織夢添加文章生成靜態網頁概述

POST TIME:2020-04-11 21:40

當我們在后臺添加文章或其它文檔時,點擊“保存”后,根據前臺模板(在templets/default里面的模板)生成了靜態網頁。今天就簡述一下織夢系統,實現這一過程一的大體步驟,因為,牽涉的文件太多,先概述一下,以后,會對每個功能進行分析學習。

本教程以文章模型為例子,以下是文章型的相關信息:

模型id 是 1;

模型對應的模板:封面模板index_arcticle.htm,列表頁模板list_arcticle.htm,內容頁模板arcticle_arcticle.htm

使用的模板引擎是:dedetag.class.php

后臺添加文章的模板文件是:article_add.htm,對應的處理文件是article_add.php。

分析開始。

當在后臺添加數據,點擊“保存”后,程序會把我們填寫的,例如標題,標簽,作者,來源,文章內容等數據一同傳給article_add.php文件,這個文件除了接收這些數據,還接收到了這篇即將要生成的靜態網頁的欄目id和模型id。其它的數據我們就不多說,這二個id,最重要的,這二項是從哪里來的,實際是當我們打開后臺對應的欄目,這二個id就已經從對應的數據庫表中查詢出來了。

然后,通過這二個id,生成這篇文章的id,即織夢的叫法是文檔id。

生成文檔id函數:$arcID = GetIndexKey($arcrank,$typeid,$sortrank,$channelid,$senddate,$adminid);從這個函數的參數我們就看出,包括了上面提到的欄目id和頻道模型id。生成的這個文檔id,非常重要,因為下面用于生成html網頁的函數,就以這個文檔id為參數。
這個函數在文件include/helpers/archive.helper.php里面大約150行。

生成html函數:$artUrl = MakeArt($arcID,true,true,$isremote);請看里面的參數$arcID正是上面生成的文檔id,這一點要清楚。
這個函數在文件dede/inc/inc_archives_functions.php里面大約394行。

函數MakeArt()是我們今天分析的對象,找到這個文件,我們發現它引入了文檔類arc.archives.class.php,然后,實例化一個對象,并把$aid作為參數,注意,這個參數就是上面提到的生成的$arcID,代碼如下:$arc = newArchives($aid);雖然,就這么一句話,但是對象$arc確做了很多事,這全是因為構造函數的原因,當實例時,啟動了這個構造函數。

打開文件arc.archives.class.php文件,我們看到構造函數首頁根據傳過來的id,從數據庫微表中查詢出模型id和欄目id,這個欄目id和模型id跟上面提到的欄目id和模型id是一樣的,為什么呢?因為,這個文檔id正是根據這個二個id生成的,只不過存儲在了這個微表#@_arctiny里面吧了。

接下來,在這個構造函數里面又實例化了一個對象$this->ChannelUnit,代碼是$this->ChannelUnit = new ChannelUnit($arr['channel'], $aid);在實例化時,這二個參數一個是是剛才從微表查詢出來的模型id,一個是文檔id,我們再打開頻道模型單元類文件channelunit.class.php,里面又一個構造函數,我們再在這個函數里分析,請注意,現在我們已經到了channelunit.class.php這里面了。

這里面的構造函數通過模型id,查詢數據庫表#@_channeltype里面的所有字段,然后,又實例化了一個對象,代碼是$dtp = new DedeTagParse();我們再打開這個類對應的靜態模板引擎文件dedetag.class.php文件。這里面又一個構造函數,幸運的是這個構造函數里面沒有再引入其它類文件了。

返回channelunit.class.php里面接著看代碼,實例化對象$dtp后,設置了名子空間,把剛才從數據庫表#@_channeltype查出來的字段fieldset值,作為參數,載入模板中,然后,對這個標簽進行分析,請注意fieldset的值,正是我們后臺在添加字段,在字段配置里面看到的值,類似的如下圖所示。

通過這個構造函數,程序就把附加表字段的值,裝進二維數組$this->ChannelFields里面了,以備后面使用。到此,這個構造函數結束。

再加到上一層調用實例化,即回到文件arc.archives.class.php里面,接著下面的代碼,又把類TypeLink進行實例化,這個類文件在文件include/typelink.class.php里面,當實例化$this->TypeLink = new TypeLink($arr['typeid']);時,參數是通過生成的文檔id查詢出來的欄目id。這個構造函數是通過這個欄目id,把我們網站后臺對應的模板提取出來,放入$this->TypeInfos數組里面,此構造函數到此結果,從上面可以看見,構造函數在初始化時很有用處。

再回到arc.archives.php里面,接著看下面的代碼,判斷當前模型是不是單表模型,若不是則通過一個聯合查詢,把字段信息查詢出來放到$this->Fields,若是單表模型則全部置初始化,代碼如下:

再向下的代碼,就是對特殊的字段數據處理了。這個構造函數到此結束,再加到上一個實例化處,即文件inc_archives_function.php里。

然后,調用函數MakeHtml($isremote),我們再回到文件arc.archives.class.php里面,找到這個函數,大約在351行,上面的初始化,全為這個生成靜態函數服務的。

在這個函數中先載入模板,這里的模板是后臺欄目對應的模板,然后,通過函數ParAddTable()解析附加表的內容,在這個函數里面,有一個字段值處理函數MakeField($k, $row[$k], $ctag),這個是處理include/taglib/channel/里

面的標簽源碼的,例如圖片集里面的imgurls字段值,軟件模型里面的softlinks,這個函數是專門處理字段值有多個標簽的這些,還有其它的特殊的字段值的,也是加載channel文件夾里面的標簽的一個函數。

要注意的是:軟件模型時面的有一個特殊的類型是softlinks,這是織夢系統固有的,用戶加不上的。大家可以看一下軟件模型添加字段配置里面的這個介紹。

處理標簽源碼include/taglib里面的標簽用的函數是:MakeOneTag($this->dtp, $this, 'N'),通過這個函數,就可以把標簽源碼全部加載進來,對模板進行解析。

接下來就是通過ParseTempletsFirst()對模板進行解析,生成靜態網頁,因為是,概述,所以,下面的代碼,不用多分析,請自己研究一下。

織夢生成html的過程大同小異,其它模板用到的函數等全跟這個一樣,只不過里面的一些具體內容,處理稍微不大一樣,但用到的功能其它一樣,只要精通一個,其它,自然就會了,這個教程是比較淺的作了一個分析,如果要分析每個代碼,那得用好長時間,后面的教程,將對這每個功能,進行具體分析。


收縮
  • 微信客服
  • 微信二維碼
  • 電話咨詢

  • 400-1100-266
校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃
激情成人综合网| 欧美日韩精品三区| 欧美性生活影院| 久久夜色精品一区| 视频一区在线视频| 99riav久久精品riav| 欧美一二三四区在线| 一级特黄大欧美久久久| 成人午夜激情视频| 精品黑人一区二区三区久久| 亚洲国产裸拍裸体视频在线观看乱了 | 久国产精品韩国三级视频| 中文字幕一区二区三区不卡在线| 日韩一区二区电影在线| 欧美视频一区二区三区四区| 高清不卡在线观看| 欧洲一区在线电影| 国产成人在线电影| 韩国三级中文字幕hd久久精品| 五月激情综合婷婷| 亚洲小说欧美激情另类| 国产精品成人一区二区艾草| 久久久久国产精品人| 欧美一区二区久久| 欧美高清激情brazzers| 亚洲品质自拍视频| 色综合天天做天天爱| 中文字幕在线不卡一区| 成人av电影在线观看| 国产精品素人视频| 成人av电影在线播放| 国产日韩欧美不卡在线| 国产精品综合av一区二区国产馆| 欧美大度的电影原声| 精品无人码麻豆乱码1区2区 | 日本欧美一区二区三区乱码| 欧美日韩免费在线视频| 午夜一区二区三区在线观看| 欧美日韩高清在线| 男女性色大片免费观看一区二区| 日韩一区二区在线播放| 久久99久久99| 久久精品人人做| 国产成人免费视频一区| 国产精品久久夜| 色婷婷久久久综合中文字幕| 亚洲一卡二卡三卡四卡无卡久久| 欧美日韩不卡视频| 激情小说欧美图片| 国产精品久久久一区麻豆最新章节| 大美女一区二区三区| 综合在线观看色| 欧美性欧美巨大黑白大战| 天天亚洲美女在线视频| 日韩手机在线导航| 国产成人综合亚洲网站| 亚洲人成网站色在线观看| 欧美三区免费完整视频在线观看| 日本不卡一区二区| 日本一区二区不卡视频| 欧美性大战久久久| 国精产品一区一区三区mba桃花 | 亚洲欧美激情小说另类| 国产精品久久久久久户外露出| 亚洲欧美日韩国产成人精品影院 | 精品电影一区二区三区| 国产日韩精品一区| 一区二区三区四区激情 | 99国产精品久久久久久久久久| 色婷婷av一区二区| 欧美一级日韩免费不卡| 国产日韩精品视频一区| 玉米视频成人免费看| 视频一区在线视频| 成人一区二区三区中文字幕| 91国在线观看| 欧美成人艳星乳罩| 欧美精品一二三四| 日本不卡的三区四区五区| 国产精品色噜噜| 日韩亚洲欧美中文三级| 91天堂素人约啪| 国产精品资源网站| 另类人妖一区二区av| 亚洲精品成人悠悠色影视| 欧美精品一区二区三区蜜臀| 欧美日韩一级片在线观看| 成人蜜臀av电影| 黄色小说综合网站| 首页国产丝袜综合| 伊人色综合久久天天人手人婷| 国产亚洲精品aa| 欧美变态口味重另类| 欧美午夜精品免费| av不卡在线播放| 成人综合激情网| 国产一区二区三区免费观看| 日本午夜精品视频在线观看 | 中文字幕久久午夜不卡| 日韩精品自拍偷拍| 欧美一区二区三区视频免费播放| 91天堂素人约啪| 成人av免费在线| 风间由美一区二区三区在线观看| 麻豆91在线观看| 蜜臀av在线播放一区二区三区| 亚洲综合成人在线视频| 亚洲日本在线天堂| 亚洲女人****多毛耸耸8| 国产精品福利在线播放| 欧美国产禁国产网站cc| 久久精品欧美一区二区三区麻豆 | 99精品国产99久久久久久白柏 | 在线综合视频播放| 一区二区在线看| 成人动漫一区二区在线| 久久久www成人免费无遮挡大片| 日本欧美在线观看| 欧美肥妇bbw| 亚洲国产精品久久人人爱蜜臀| 99久久精品一区二区| 国产欧美1区2区3区| 狠狠狠色丁香婷婷综合久久五月| 6080yy午夜一二三区久久| 亚洲国产成人va在线观看天堂| 99vv1com这只有精品| 中文字幕视频一区| 99精品1区2区| 亚洲视频一区二区在线| 91在线看国产| 综合婷婷亚洲小说| 91影院在线观看| 亚洲精品免费电影| 久久久久久久网| 久久久噜噜噜久久人人看| 国产精品的网站| 亚洲国产乱码最新视频| 久久国产剧场电影| 成人app网站| 91国模大尺度私拍在线视频| 91精品国产福利在线观看| 久久综合久久综合亚洲| 国产精品国产三级国产a| 亚洲一级二级在线| 国产一区二区三区免费播放| 91亚洲精华国产精华精华液| 4438x成人网最大色成网站| 国产午夜精品一区二区| 一区二区三区毛片| 国产一区视频网站| 91九色02白丝porn| 精品粉嫩aⅴ一区二区三区四区| 国产精品国产三级国产a| 日韩精品五月天| 成人av网站免费观看| 欧美日韩和欧美的一区二区| 久久久国际精品| 五月天丁香久久| 成人国产在线观看| 日韩视频免费观看高清完整版| 中日韩免费视频中文字幕| 亚洲图片有声小说| 粉嫩aⅴ一区二区三区四区五区| 欧美性猛交一区二区三区精品| 国产亚洲一区二区三区| 天堂影院一区二区| 91污片在线观看| 久久精品人人做| 蜜臀av一区二区| 在线观看av一区二区| 中文字幕国产一区| 免费看欧美美女黄的网站| 在线一区二区三区四区五区| 久久九九国产精品| 久久99精品网久久| 在线播放中文字幕一区| 精品国产sm最大网站| 91丨porny丨首页| 麻豆久久一区二区| 亚洲欧洲av一区二区三区久久| 国产精品成人免费精品自在线观看| 在线观看www91| 国产激情精品久久久第一区二区| 亚洲精品国产品国语在线app| 欧美sm美女调教| 91原创在线视频| 国精产品一区一区三区mba桃花 | 天天av天天翘天天综合网色鬼国产| 久久久久久久网| 欧美日韩成人一区| 99国产精品一区| 久久精品国产亚洲5555| 亚洲精品国产成人久久av盗摄 | 欧美美女黄视频| 99视频一区二区| 国产精品一区二区视频| 欧美肥妇bbw| 亚洲视频综合在线| 在线看国产一区| 亚洲丶国产丶欧美一区二区三区|