<address id="r9vd9"><address id="r9vd9"><listing id="r9vd9"></listing></address></address>

      歡迎您光臨深圳塔燈網絡科技有限公司!
      電話圖標 余先生:13699882642

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

      發表日期:2017-11 文章編輯:小燈 瀏覽次數:2127

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

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

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

      第二種:DedeCMS判斷簡略標題為空時則顯示完整標題

      方法1,適用于內容頁

      {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]


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

      以上分享結束,如有疑問可以在下邊加群留言跟進,織夢58小編會第一時間回復。

      第四種:判斷過程中需要調用別的字段。

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

      {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'將其它字段的值賦值到數組里,然后使用,看代碼

      {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}

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

      第五種 案例-標題列表判斷是否為當日新發布以及是否為頭條推薦等原創代碼

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

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

      代碼雖然長點,但是有前兩段代碼的基礎看懂這個還是沒什么難度的,代碼中包涵的html內容不影響整個功能,僅是用來是布局相對美觀使用,閱讀程序代碼時可以忽略掉。這里就可以體現出[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"格式)



      本頁內容由塔燈網絡科技有限公司通過網絡收集編輯所得,所有資料僅供用戶參考了本站不擁有所有權,如您認為本網頁中由涉嫌抄襲的內容,請及時與我們聯系,并提供相關證據,工作人員會在5工作日內聯系您,一經查實,本站立刻刪除侵權內容。本文鏈接:http://www.webpost.com.cn/11241.html
      相關cms文章
       八年  行業經驗

      多一份參考,總有益處

      聯系深圳網站公司塔燈網絡,免費獲得網站建設方案及報價

      咨詢相關問題或預約面談,可以通過以下方式與我們聯系

      業務熱線:余經理:13699882642

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

      国产成人精品综合在线观看