在DedeCMS的文章列表頁中,我們有時會給某些重要的文章加上屬性,以此來突出文章或集中調用這類屬性的文章,比如我們需要調用5個加了屬性“推薦”的文章列表,代碼如下:
<ul class="d4">
{dede:arclist flag='c' titlelen=42 row=6}
<li><a href="[field:arcurl/]">[field:title/]</a></li>
{/dede:arclist}
</ul>
|
文章編輯的時候,勾選“推薦[c]”屬性即可:

但是有的時候,僅僅調用一類屬性的文章并不是我們想要的,如果我們想要在文章列表中把一些加了屬性的文章突出來,并在文章標題后面加上對應的屬性文字或圖標,上面這個方法就不適用了。
織夢58今天就來說說如何在DedeCMS文章列表根據屬性輸出相應圖標或屬性文字。
第一種方法:道理很簡單,我們需要在文章列表調用標簽中加上一段判斷代碼,來判斷當前文章的屬性并輸出響應的文字,代碼如下:
[field:flag runphp='yes']
$a=explode(',','@me');
if($a[0]=='c'){
@me='<span class="badge pull-right" style="background-color:#00F03D">推薦</span>';
}else if($a[0]=='h'){
@me='<span class="badge pull-right" style="background-color:#8080FF">頭條</span>';
}else if($a[0]=='a'){
@me='<span class="badge pull-right" style="background-color:#FF8040">熱門</span>';
}else{
@me='';
}
[/field:flag]
|
以上代碼就用于判斷文章的屬性,并根據屬性來輸出對應的樣式,添加到對應的列表標簽中為:
<ul class="d4">
{dede:arclist titlelen=42 row=6}
<li><a href="[field:arcurl/]">[field:title/][field:flag runphp='yes']
$a=explode(',','@me');
if($a[0]=='c'){
@me='<span class="badge pull-right" style="background-color:#00F03D">推薦</span>';
}else if($a[0]=='h'){
@me='<span class="badge pull-right" style="background-color:#8080FF">頭條</span>';
}else if($a[0]=='a'){
@me='<span class="badge pull-right" style="background-color:#FF8040">熱門</span>';
}else{
@me='';
}
[/field:flag]</a>
</li>
{/dede:arclist}
</ul>
|
效果如下圖所示:

第二種方法:同樣也是判斷,不過語法不同,如下:
[field:flag runphp='yes']
if(stristr(@me,"c")) @me = "[^_^推薦]";
else if(stristr(@me,"a")) @me = "[^_^熱門]";
else if(stristr(@me,"h")) @me = "[^_^頭條]";
else @me = '';
[/field:flag]
|
在文章列表標簽中調用方法為:
<ul class="d4">
{dede:arclist flag='c' titlelen=42 row=6}
<li><a href="[field:arcurl/]">[field:title/]</a>
[field:flag runphp='yes']
if(stristr(@me,"c")) @me = "[^_^推薦]";
else if(stristr(@me,"a")) @me = "[^_^熱門]";
else if(stristr(@me,"h")) @me = "[^_^頭條]";
else @me = '';
[/field:flag]
</li>
{/dede:arclist}
</ul>
|
效果如下圖所示:

以上兩種方法都可以實現文章列表輸出時根據屬性輸出相應圖標或屬性文字,大家根據自己的情況選取。

















