中文字幕在线观看,亚洲а∨天堂久久精品9966,亚洲成a人片在线观看你懂的,亚洲av成人片无码网站,亚洲国产精品无码久久久五月天

織夢(mèng)CMS幾種常見的需求及字段的判斷輸出實(shí)例?

2018-11-07    來源:愛站科技

容器云強(qiáng)勢(shì)上線!快速搭建集群,上萬Linux鏡像隨意使用

我們?cè)谑褂?span style="color:#002FD9">織夢(mèng)CMS制作網(wǎng)站時(shí),對(duì)于某個(gè)字段,無論是默認(rèn)字段還是自定義字段,偶爾會(huì)使用一些判斷語句來實(shí)現(xiàn)我們的需求。下邊列出了織夢(mèng)CMS幾種常見的需求及字段的判斷輸出實(shí)例

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

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

?

第二種:DedeCMS判斷簡(jiǎn)略標(biāo)題為空時(shí)則顯示完整標(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]

?

第三種:對(duì)某一個(gè)字段多重判斷

?

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

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

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

需要在模板里做一個(gè)小判斷,如果文章的價(jià)格為0時(shí)直接輸出其下載地址,否則直接輸出購買鏈接,那么這個(gè)時(shí)候肯定是需要運(yùn)行runphp='yes'這個(gè)功能了,下面我們來看下代碼: 經(jīng)過搜索發(fā)現(xiàn)兩個(gè)方法基本上可以實(shí)現(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 = '
  • 下載:'.@me['baidupwd'].'
  • '; else @me = '
    '; {/dede:field}

    ?

    上述多處需要注意符號(hào),單引號(hào),雙引號(hào)。

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

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


    代碼不長(zhǎng),比較好理解,因?yàn)檫@里我們只是要對(duì)文章里的'flag'屬性做判斷,所以如果使用[field:array]雖然也能達(dá)到效果,但是會(huì)取出很多多余的內(nèi)容難免影響效率,而直接使用[field:flag]既簡(jiǎn)潔又方便,其中"@me = 'h'"是判斷文章是否屬于頭條,聰明的童鞋看到這里一定會(huì)衍生出很多種判斷了,因?yàn)閒lag的值除了'h'外還可以是"頭條[h]推薦[c]幻燈[f]特薦[a]滾動(dòng)[s]加粗[b]圖片[p]跳轉(zhuǎn)[j]"。 另外說一下'@me',剛接觸Dedecms模版的童鞋可能對(duì)這個(gè)@me使用起來比較暈,不要緊。Dedecms里面雖然可以執(zhí)行php語句,但是不支持用'echo'進(jìn)行輸出,所以'@me'最簡(jiǎn)單的一個(gè)功能就是代替'echo'進(jìn)行輸出。比如本段代碼中的"@me='這篇文章是頭條推薦';",如果用php寫法就應(yīng)該是"echo '這篇文章是頭條推薦';"這樣看是否直觀明白了呢。但是'@me'更高級(jí)的是它是配合在[field:xxx]等標(biāo)簽中使用的,'@me'不僅負(fù)責(zé)輸出,其本身也會(huì)保存著上層標(biāo)簽查詢數(shù)據(jù)庫后所得的內(nèi)容,比如本段代碼'@me'保存的就是取出的文章信息里'flag'的值,因此"@me = 'h'"這個(gè)判斷才成立。 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) 
    			

    有了上一個(gè)代碼的基礎(chǔ),理解這個(gè)就不難了,這里不再贅述了。發(fā)這兩個(gè)熱身主要是為了來個(gè)有點(diǎn)點(diǎn)難度的,那就是本文最開始貼圖里顯示的,對(duì){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="
  • ".@me['title']."
  • "; }else{ $now = time(); $oneday = 3600 * 24; if(($now - @me['senddate']) ".@me['title'].""; }else{ @me="
  • ".@me['title']."
  • "; } } [/field:array] {/dede:arclist}


    代碼雖然長(zhǎng)點(diǎn),但是有前兩段代碼的基礎(chǔ)看懂這個(gè)還是沒什么難度的,代碼中包涵的html內(nèi)容不影響整個(gè)功能,僅是用來是布局相對(duì)美觀使用,閱讀程序代碼時(shí)可以忽略掉。這里就可以體現(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, templeturl
    stime(pubdate 的"0000-00-00"格式)

    以上就是織夢(mèng)CMS幾種常見的需求及字段的判斷輸出實(shí)例,想必都已有了一定的了解,更多關(guān)于織夢(mèng)CMS的內(nèi)容請(qǐng)繼續(xù)關(guān)注西部數(shù)碼技術(shù)頻道。

    ?

    ?

    標(biāo)簽: b2c 代碼 數(shù)據(jù)庫 搜索 西部數(shù)碼 制作網(wǎng)站

    版權(quán)申明:本站文章部分自網(wǎng)絡(luò),如有侵權(quán),請(qǐng)聯(lián)系:west999com@outlook.com
    特別注意:本站所有轉(zhuǎn)載文章言論不代表本站觀點(diǎn)!
    本站所提供的圖片等素材,版權(quán)歸原作者所有,如需使用,請(qǐng)與原作者聯(lián)系。

    上一篇:如何讓PC網(wǎng)站在手機(jī)打開時(shí)縮小全屏顯示

    下一篇:織夢(mèng)dedecms導(dǎo)航菜單的詳細(xì)教程