欧美阿v视频在线大全_亚洲欧美中文日韩V在线观看_www性欧美日韩欧美91_亚洲欧美日韩久久精品

主頁 > 網站建設 > 建站知識 > 織夢下載標簽分析

織夢下載標簽分析

POST TIME:2020-04-11 21:41

在“怎樣自定義織夢標簽初探”這篇文章中對織夢標簽,作了初次探索,現在就舉一個具體的例子,來學習一下織夢是標簽是如何寫的,這個例子比較綜合,與一般簡單的標簽有很大不同,而且,相當復雜,做好心理準備。今天給一個朋友開發一個在線下載并且在線支付功能的網站,所以,對這個作了一個系統的研究,就是標簽{dede:field name='softlinks'/}
雖然,感覺里面的還有些東西,現在不能理解,但是最后,還是開發完了,有很多東西看多了,寫多了雖然,不知道具體的是什么意思,但是知道會用。今天就把我的開發成果,作一個總結,也把通過這個例子,加深一下對織夢標簽的理解,相信以后,還會用到的。
因為是下載站,{dede:field name='softlinks'/}是里面最難,最核心,少了它一切都是空談,但也是最復雜的,我們分析這個標簽如何從數據庫調用出來的,在數據庫里面又是以什么樣的形式存在,又是如何插入到數據庫的。
我們倒著分析,即先分析,如何插入到數據庫的,當我們發布軟件的時候,如下圖所示。
我們要把從本地或手動指定軟件下載地址,作完這一工作后,我們點擊“確實”,此時,會通過soft_add.php把我們無論手工上傳的,還是手工指定的都以類似{dede:link} $softurl {/dede:link}這種形式,插入到數據庫表dede_addonsoft里面的字段softlinks里面了,我添加了一個,打開對應的表找到字段softlinks,這個字段的值,如下圖所示。
現在我們明白了,實際上標簽{dede:softlinks/}要調用的是上圖中的以{dede:link}開始以{/dede:link}結束的字符串,我們想一下,如果這樣直接調用的話,是不是調出來的就是一個標簽形式的字符串?是的,沒有錯,如果這樣我們調用了來的就不是下載地址了,而是多了二個大括號,例如:上圖中字段softlinks的值是:"{dede:link text='DedeCms3.1全新安裝程序'} http://www.dedebase.com/upimg/soft/dedesoft/dedecmsv3.1.rar {/dede:link}",我們應當調用的是中間的http://www.dedebase.com/upimg/soft/dedesoft/dedecmsv3.1.rar,所以,我們就要對softlinks這個字段值,進行處理。
處理方法,跟另一篇“怎樣自定義織夢標簽初探”這篇文章里的類似,但又有很大的不同。
在內容模板即article_soft.htm里面,用標簽{dede:field name='softlinks'/}來調用,這個標簽調出來的是生成的靜態頁面,(例如 類似www.dedebase.com/a/downloads/80.html)里面的代碼<a href='/plus/download.php?open=0&aid=80&cid=3'>進入下載地址列表</a>,標簽源碼是include/taglib/channel/softlinks.lib.php。
這個標簽源碼文件softlinks.lib.php的功能,就是在生成靜態網頁時,把標簽{dede:field name='softlinks'/}通過模板引擎,變成<a href='/plus/download.php?open=0&aid=80&cid=3'>進入下載地址列表</a>,他的作用就是這個作用,也就是這個標簽源碼功能到此為止。但是如果在后臺設置的鏈接方式是跳轉到另一個頁面下載,那么,還會生成類似/download.php?open=2&id={$refObj->ArcID}&uhash={$uhash}代碼,這個代碼是我們點擊“進入下載地址列表”后,顯示的代碼。
真正下載的功能其實是plus/download.php這個文件,標簽源碼只是把下載連接解析出來,并生成對應的鏈接方式,而要真正去處理下載的是download.php,我們打開這個文件,找到else if($open==2)這句代碼開始,前面幾行就是做初始化準備,例如判斷有沒有下載軟件資源等。
我們看下面的代碼。
上面的代碼是這個文件里面的核心代碼,他的功能就是從數據庫表里面,把字段softlinks的值即如下圖所示。
把上面的softlinks的字段值,即字符串,循環遍歷出下載地址,現在我們詳細分析一下這些代碼。
首先引入靜態模板引擎文件dedetag.class.php,這是必須的,然后,實例化,把softlinks字段值載入,具體載入做了什么,可以去研究一下LoadSource()這個方法。實際上它的作用就是把字段softlinks的值,變成數組標記CTags,我們打印一下這個數組CTags,如下所示。

Array
(
[0] => DedeTag Object
(
[IsReplace] =>
[TagName] => link
[InnerText] => http://www.dedebase.com/upimg/Server.zip
[StartPos] => 0
[EndPos] => 113
[CAttribute] => DedeAttribute Object
(
[Count] => 0
[Items] => Array
(
[text] => 服務器環境使用版
)

)

[TagValue] =>
[TagID] => 0
)

[1] => DedeTag Object
(
[IsReplace] =>
[TagName] => link
[InnerText] => http://www.dedebase.com/upimg/Debug.zip
[StartPos] => 115
[EndPos] => 229
[CAttribute] => DedeAttribute Object
(
[Count] => 0
[Items] => Array
(
[text] => 本地測試專業完整版
)

)

[TagValue] =>
[TagID] => 1
)

)

我們看到CTags是一個二維數組,數組里面是每個成員是一對象,對象里面又包括一個對象,這個對象里面又包括一個數組。通過foreach循環遍歷后,我們就可以通過$ctag->GetInnerText()取出里面對應的下載地址,例如上面的
http://www.dedebase.com/upimg/Server.zip
http://www.dedebase.com/upimg/Debug.zip
這二個就是通過$ctag->GetInnerText()取得的,這二個就是我們下載的真實的地址。
回過頭來看一下,下載標簽源碼softlinks.lib.php,它也通過跟download.php里面的幾步。
1.引入模板引擎dedetag.class.php,在include/taglib里面的文件無需引入,默認就包含了這個文件。
2.實例化對象:new DedeTagParse()
3.載入模板字符串,LoadSource($fvalue);這里面的$favlue類似,字段softlinks的值,或是含有標記的字符串。
4.循環遍歷標記數組CTag foreach($dtp->CTags as $ctag),然后,通過$ctag->GetInnerText()來得到標記之間的文本,即類似上面的http://www.dedebase.com/upimg/Debug.zip。
請注意,這與織夢其它標記,例如loop.lib.php有很大的不同,在loop等這樣的織夢標簽里面,是先把InnerText值載入到模板字符串,因為,這個值并不是像上面的下載一樣,從表中某個字段獲得的,而是標記之間的文本,這樣理解起來有點難,多看一下織夢這些標簽就能發現這點不同。
在softlinks.lib.php里面,通過$row['downtype']即鏈接顯示方式,分成二大部分代碼,一部分是直接顯示地址列表,另一部分是要求進入下載地址列表頁,然后,再判斷“附件下載方式”,最后,在內容頁生成下載鏈接頁。


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

  • 400-1100-266
欧美阿v视频在线大全_亚洲欧美中文日韩V在线观看_www性欧美日韩欧美91_亚洲欧美日韩久久精品
  • <rt id="w000q"><acronym id="w000q"></acronym></rt>
  • <abbr id="w000q"></abbr>
    <rt id="w000q"></rt>
    色哟哟国产精品| 亚洲欧美日韩国产综合| 蜜桃久久av一区| 性高潮免费视频| 欧美日韩一卡二卡三卡 | 蜜臀av一级做a爰片久久| 国产成人精品一区二区三区在线观看| 91久久国产综合| 国产精品毛片无遮挡高清| 激情久久久久久久久久久久久久久久| 国产精品亚洲无码| www精品美女久久久tv| 国内精品伊人久久久久影院对白| 37p粉嫩大胆色噜噜噜| 日韩精品一区二区三区视频 | 变态另类丨国产精品| 91精品国产乱| 日韩一区二区电影网| 亚洲国产sm捆绑调教视频| 稀缺小u女呦精品呦| 91麻豆精品国产91久久久使用方法 | 欧美日韩精品综合在线| 五月婷婷综合激情| 国产精品无码网站| 久久综合九色综合97婷婷| 国产一区二三区| 91麻豆制片厂| 国产精品白丝在线| 日本少妇一区二区三区| 91精品午夜视频| 激情另类小说区图片区视频区| 精品视频第一页| 亚洲视频一区二区免费在线观看 | 欧美激情综合五月色丁香| 成人av网站在线| 欧美中文字幕久久| 日本三级韩国三级欧美三级| 精品国产aaa| 成人欧美一区二区三区视频网页| 日本少妇激三级做爰在线| 日韩午夜av电影| 国产精一区二区三区| 色综合av在线| 三级久久三级久久| 日韩av网站在线播放| 亚洲美女一区二区三区| 醉酒壮男gay强迫野外xx| 亚洲国产精品二十页| 丰满饥渴老女人hd| 精品国精品自拍自在线| 播五月开心婷婷综合| 91精品国产综合久久久久久 | 亚洲欧洲色图综合| 男女一区二区三区| 日本一区二区三区视频视频| 久久久久99人妻一区二区三区| 欧美不卡在线视频| 不卡一区二区三区四区| 日韩欧美一区在线观看| 成人激情开心网| 日韩欧美亚洲另类制服综合在线 | 免费看91的网站| 亚洲视频在线观看一区| 性色av蜜臀av色欲av| 中文字幕在线观看不卡| 性欧美丰满熟妇xxxx性久久久| 国产精品久久影院| 欧美大片免费播放器| 国产精品成人网| 亚洲一级中文字幕| 亚洲激情欧美激情| 日韩黄色中文字幕| 亚洲成人777| 国内偷拍精品视频| 精品一区二区三区蜜桃| 欧美日本国产视频| 成人丝袜高跟foot| 欧美videos中文字幕| 九色91porny| 中文一区二区完整视频在线观看| 丝袜熟女一区二区三区| 国产精品久久国产精麻豆99网站 | 午夜精品免费在线| 五月婷婷一区二区| 韩日精品视频一区| 555www色欧美视频| 99视频精品免费视频| 国产亚洲欧美在线| 91av在线免费| 亚洲自拍偷拍综合| 色综合久久88色综合天天6| 精品一区二区三区香蕉蜜桃| 制服丝袜亚洲播放| 国产调教打屁股xxxx网站| 国产精品久久久久久一区二区三区| 日本黄色特级片| 婷婷久久综合九色国产成人| 91成人在线观看喷潮| 成人午夜精品一区二区三区| 久久亚区不卡日本| 亚洲中文字幕无码av| 亚洲国产综合在线| 日本韩国欧美在线| 国产69精品久久久久777| 26uuu亚洲| 亚洲熟妇无码av| 日韩av在线免费观看不卡| 欧美性大战久久久| 99在线精品视频| 亚洲婷婷综合色高清在线| 日韩福利小视频| 国产精品一区二区在线观看网站| 日韩女优视频免费观看| 亚洲少妇18p| 性久久久久久久久久久久| 欧美色图在线观看| 99久久99精品久久久久久| 中文字幕一区二区在线观看| 老司机深夜福利网站| 国产真实乱偷精品视频免| 精品精品国产高清a毛片牛牛 | 国产成人在线影院| 国产日韩精品一区| gv天堂gv无码男同在线观看| 国产一区美女在线| 国产欧美综合在线观看第十页| 99国产精品免费| 狠狠狠色丁香婷婷综合激情| 久久女同互慰一区二区三区| 亚洲黄色免费视频| 国产麻豆91精品| 国产精品视频免费看| 九九热视频在线免费观看| 国产成人免费网站| 国产精品成人网| 91福利在线导航| 中国男女全黄大片| 日韩在线播放一区二区| 欧美α欧美αv大片| 欧美激情久久久久久久| 国产精品一级黄| 国产精品久久久一区麻豆最新章节| 国产精品无码99re| 91一区二区在线| 亚洲成人免费观看| 日韩一区二区在线看| 成人在线手机视频| 成人高清在线视频| 亚洲一区在线观看视频| 欧美一区二区啪啪| 无码少妇一区二区| 成人精品一区二区三区四区| 樱桃国产成人精品视频| 欧美精品高清视频| 色欲AV无码精品一区二区久久 | 国产一区二区三区不卡在线观看| 中文字幕成人在线观看| 欧美在线观看禁18| 中文精品在线观看| 国产二区国产一区在线观看| 亚洲欧美欧美一区二区三区| 91超碰这里只有精品国产| 日本xxxxxxxxx18| 国产99久久久国产精品免费看| 亚洲欧美成aⅴ人在线观看| 8x8x8国产精品| 神马久久久久久久久久久| 成人av片在线观看| 午夜欧美电影在线观看| 亚洲精品一线二线三线| 欧美卡一卡二卡三| 欧美深性狂猛ⅹxxx深喉| 国产老妇另类xxxxx| 亚洲综合激情网| 久久免费偷拍视频| 日本韩国欧美在线| 久久av无码精品人妻系列试探| 成人午夜视频免费看| 日本最新不卡在线| 国产精品久久久久久福利一牛影视 | 97超碰在线免费观看| 丁香天五香天堂综合| 性久久久久久久久久久久| 国产亚洲1区2区3区| 欧美美女一区二区三区| 91社区视频在线观看| 精品无码av一区二区三区不卡| 韩国三级电影一区二区| 亚洲一区二区不卡免费| 国产日韩欧美高清在线| 51精品久久久久久久蜜臀| 国产黄a三级三级| 国产性生活毛片| 成人高清视频免费观看| 免费观看一级特黄欧美大片| 亚洲女与黑人做爰| 欧美激情一区二区三区在线| 欧美一区二区三区色| 91激情五月电影| 正在播放国产对白害羞|