国产亚洲欧美人成在线,免费视频爱爱太爽了无码,日本免费一区二区三区高清视频 ,国产真实伦对白精彩视频

歡迎您光臨深圳塔燈網(wǎng)絡(luò)科技有限公司!
電話圖標(biāo) 余先生:13699882642

織夢CMS常用的幾種字段判斷輸出實例

發(fā)表日期:2017-11 文章編輯:小燈 瀏覽次數(shù):2076

我們在使用織夢CMS制作網(wǎng)站時,對于某個字段,無論是默認(rèn)字段還是自定義字段,偶爾會使用一些判斷語句來實現(xiàn)我們的需求。下邊列出了幾種常見的需求。以及字段的判斷輸出實例。

第一種:織夢自定義字段,如果沒有值的時候要顯示指定的默認(rèn)內(nèi)容,

{dede:field name='ziduan' runphp='yes'}if(@me=='') { @me = '' ;}else { @me = "<div class='red'><a href='/.@me'>此處是自定義的內(nèi)容</a></div>"; }{/dede:field}

第二種:DedeCMS判斷簡略標(biāo)題為空時則顯示完整標(biāo)題

方法1,適用于內(nèi)容頁

{dede:field name='array' runphp='yes'}if (@me['shorttitle']=='')@me=@me['title']; else@me=@me['shorttitle'];{/dede:field}

方法2,適用于列表頁

[field:array runphp='yes']if (@me['shorttitle']=='') @me=@me['title'];else @me=@me['shorttitle'];[/field:array]

第三種:對某一個字段多重判斷

[field:array runphp='yes']if(@me['risklevel']=="HR")@me="HR.png";else if(@me['risklevel']=="D")@me="D.png";else if(@me['risklevel']=="AA")@me="AA.png";[/field:array]


以上意思就是說如果查詢得到的風(fēng)險等級字段的取值是HR,那么將輸出HR.png, 如果查詢得到的風(fēng)險等級字段的取值是D,那么將輸出D.png,如果查詢得到的風(fēng)險等級字段的取值是AA,那么將輸出AA.png, 這里的HR.png,只是一個字符串,代表圖片文件所在的位置,你可以設(shè)置成任意的圖片路徑,上面的代碼是一種分支條件輸出語句,@me代表的就是輸出變量,剛進(jìn)入標(biāo)簽field:array時,@me代表數(shù)據(jù)庫的一條記錄,其數(shù)據(jù)類型是數(shù)組,我們根據(jù)其中risklevle的取值來判斷,從而將@me設(shè)置成不同的值,當(dāng)退出標(biāo)簽field:array時,@me的值就會被顯示在原位置。

以上分享結(jié)束,如有疑問可以在下邊加群留言跟進(jìn),織夢58小編會第一時間回復(fù)。

第四種:判斷過程中需要調(diào)用別的字段。

需要在模板里做一個小判斷,如果文章的價格為0時直接輸出其下載地址,否則直接輸出購買鏈接,那么這個時候肯定是需要運行runphp='yes'這個功能了,下面我們來看下代碼: 經(jīng)過搜索發(fā)現(xiàn)兩個方法基本上可以實現(xiàn) 1、首先把需要調(diào)用其它字段的值放在公共變量里,然后再直接調(diào)用公共變量的值,看代碼

{dede:php}$GLOBALS['title']=$arc->Fields['title']{/dede:php}{dede:php}$GLOBALS['baidupan']=$arc->Fields['baidupan']{/dede:php}{dede:field.price runphp="yes"}if(@me="0")@me = "下載地址:".$GLOBALS['baidupan'];else@me = "商品(".$GLOBALS['title'].")購買鏈接為:XXX";{/dede:field.xxxx}

2、直接使用name='array'將其它字段的值賦值到數(shù)組里,然后使用,看代碼

{dede:field name='array' runphp='yes'}if(@me['price']=='0' )@me = '<li><a class="demo" href="'.@me['baidupan'].'" target="_blank">下載:'.@me['baidupwd'].'</a></li>';else@me = '<div id="pdBuy" class="PDB2C_moban_warp" dataP="'.@me['title'].'" dataR="'.@me['price'].'"><img src="/uploads/allimg/170702/155R26021-0.gif"></div>';{/dede:field}

上述多處需要注意符號,單引號,雙引號。

第五種 案例-標(biāo)題列表判斷是否為當(dāng)日新發(fā)布以及是否為頭條推薦等原創(chuàng)代碼

看到圖片就應(yīng)該很熟悉了,日常做Dedecms模版的時候,首頁肯定會有這樣或那樣的文章標(biāo)題列表,用{dede:arclist}調(diào)用列表出來是件很easy的事情這里就不過多敘述了,不太熟悉的童鞋可以去參考Dedecms官方文檔。這里我主要想說的是有點時候我們想在這個文章標(biāo)題列表上做點小文章,比如取出的標(biāo)題是當(dāng)天發(fā)布的內(nèi)容,則在標(biāo)題后面加上new圖標(biāo);又比如頭條推薦的文章標(biāo)題后面加上上圖里的top圖標(biāo)等等,而單純透過{dede:arclist}里面的'flag'屬性是無法單獨判斷的,這就需要我們單獨做點什么了。既然需要判斷,自然而然的會令我們想到用'if',在Dedecms里面如果使用'if'判斷的內(nèi)容還跟文章有關(guān),那不得不提的就是[field:array]這個東西很強大啊,基本上你想要的東西都在這里面,下面來看代碼,先來兩個熱熱身: 1、循環(huán)判斷{dede:arclist}取出的標(biāo)題是否為頭條

{dede:arclist row=4 orderby=pubdate typeid=2}[field:flag runphp='yes']if(@me == 'h'){@me='這篇文章是頭條推薦';}else{@me='這篇文章不是頭條推薦';}[/field:flag]{/dede:arclist}

代碼不長,比較好理解,因為這里我們只是要對文章里的'flag'屬性做判斷,所以如果使用[field:array]雖然也能達(dá)到效果,但是會取出很多多余的內(nèi)容難免影響效率,而直接使用[field:flag]既簡潔又方便,其中"@me = 'h'"是判斷文章是否屬于頭條,聰明的童鞋看到這里一定會衍生出很多種判斷了,因為flag的值除了'h'外還可以是"頭條[h]推薦[c]幻燈[f]特薦[a]滾動[s]加粗[b]圖片[p]跳轉(zhuǎn)[j]"。 另外說一下'@me',剛接觸Dedecms模版的童鞋可能對這個@me使用起來比較暈,不要緊。Dedecms里面雖然可以執(zhí)行php語句,但是不支持用'echo'進(jìn)行輸出,所以'@me'最簡單的一個功能就是代替'echo'進(jìn)行輸出。比如本段代碼中的"@me='這篇文章是頭條推薦';",如果用php寫法就應(yīng)該是"echo '這篇文章是頭條推薦';"這樣看是否直觀明白了呢。但是'@me'更高級的是它是配合在[field:xxx]等標(biāo)簽中使用的,'@me'不僅負(fù)責(zé)輸出,其本身也會保存著上層標(biāo)簽查詢數(shù)據(jù)庫后所得的內(nèi)容,比如本段代碼'@me'保存的就是取出的文章信息里'flag'的值,因此"@me = 'h'"這個判斷才成立。 2、循環(huán)判斷{dede:arclist}取出的標(biāo)題是否為當(dāng)天發(fā)布
{dede:arclist row=4 orderby=pubdate typeid=2}[field:senddate runphp='yes']$now = time();$oneday = 3600 * 24;if(($now - @me) < $oneday){@me='這篇文章是今天新發(fā)布的';}else{@me='這篇文章不是今天新發(fā)布的';}[/field:senddate]{/dede:arclist}
有了上一個代碼的基礎(chǔ),理解這個就不難了,這里不再贅述了。發(fā)這兩個熱身主要是為了來個有點點難度的,那就是本文最開始貼圖里顯示的,對{dede:arclist}取出的文章標(biāo)題做判斷,如果是頭條推薦則在標(biāo)題后面顯示top圖標(biāo),如果是當(dāng)天新發(fā)布的則在標(biāo)題后面顯示new圖標(biāo),二者都不屬于的則只顯示文章標(biāo)題,見代碼:
{dede:arclist row=4 orderby=pubdate typeid=2 titlelen='54'}[field:array runphp='yes']if(@me['flag'] == 'h'){@me="<li class='list '><a href='".@me['arcurl']."' title=' ".@me['title']."' target='_self'> ".@me['title']."</a><img class='listtop' src='".@me['templeturl']."/demo/images/top.gif' /></li>";}else{$now = time();$oneday = 3600 * 24;if(($now - @me['senddate']) < $oneday ){@me="<li class='list '><a href='".@me['arcurl']."' title=' ".@me['title']."' target='_self'> ".@me['title']."</a><img class='listtop' src='".@me['templeturl']."/demo/images/news.gif' /></li>";}else{@me="<li class='list '><a href='".@me['arcurl']."' title=' ".@me['title']."' target='_self'> ".@me['title']."</a></li>";}}[/field:array]{/dede:arclist}

代碼雖然長點,但是有前兩段代碼的基礎(chǔ)看懂這個還是沒什么難度的,代碼中包涵的html內(nèi)容不影響整個功能,僅是用來是布局相對美觀使用,閱讀程序代碼時可以忽略掉。這里就可以體現(xiàn)出[field:array]的好處了,之前我們用[field:flag]也好,用[field:senddate]也好,都只是單一的判斷,如果想做多條件判斷,那就非[field:array]莫屬了,這里取出之后的'@me'不僅包涵了'flag'和'senddate'信息,還包含有其他底層字段很多信息,下面所列出的都有:
ID(同id),typeid,sortrank,flag,ismake,channel,arcrank,click,money,title,shorttitle,color,writer,source,litpic(同picname),pubdate,senddate,mid, lastpost,scores,goodpost,badpost,notpost,description(同infos)filename, image, imglink, fulltitle,textlink, typelink,plusurl, memberurl, templeturlstime(pubdate 的"0000-00-00"格式)



本頁內(nèi)容由塔燈網(wǎng)絡(luò)科技有限公司通過網(wǎng)絡(luò)收集編輯所得,所有資料僅供用戶參考了本站不擁有所有權(quán),如您認(rèn)為本網(wǎng)頁中由涉嫌抄襲的內(nèi)容,請及時與我們聯(lián)系,并提供相關(guān)證據(jù),工作人員會在5工作日內(nèi)聯(lián)系您,一經(jīng)查實,本站立刻刪除侵權(quán)內(nèi)容。本文鏈接:http://m.jstctz.cn/11241.html
相關(guān)cms文章
 八年  行業(yè)經(jīng)驗

多一份參考,總有益處

聯(lián)系深圳網(wǎng)站公司塔燈網(wǎng)絡(luò),免費獲得網(wǎng)站建設(shè)方案及報價

咨詢相關(guān)問題或預(yù)約面談,可以通過以下方式與我們聯(lián)系

業(yè)務(wù)熱線:余經(jīng)理:13699882642

Copyright ? 2013-2018 Tadeng NetWork Technology Co., LTD. All Rights Reserved.