(5.7sp1版測試通過)織夢DedeCMS網站內容模型普通文章調用自定義圖片字段的方法:
方法一:我們首先需要創建一個自定義函數,
找到:/include/extend.func.php ,在< ?php 后加入以下代碼:
01 |
function GetOneImgUrl($img,$ftype=1){ |
03 |
$dtp = new DedeTagParse(); |
04 |
$dtp->LoadSource($img); |
05 |
if (is_array($dtp->CTags)){ |
06 |
foreach($dtp->CTags as $ctag){ |
07 |
if ($ctag->GetName()== 'img' ){ |
08 |
$width = $ctag->GetAtt( 'width' ); |
09 |
$height = $ctag->GetAtt( 'height' ); |
10 |
$imgurl = trim($ctag->GetInnerText()); |
17 |
$img .= '<img src="' .$imgurl. '" width="' .$width. '" height="' .$height. '" />' ; |
|
保存就可
調用實例:
1 |
{dede:arclist addfields= 'pro_img1,pro_img2' channelid= '1' } |
2 |
<img src= "[field:pro_img1 function='GetOneImgUrl(@me,1)'/]" width= "100" height= "100" /> |
3 |
<a href= "[field:pro_img2 function='GetOneImgUrl(@me,1)'/]" ><img src= "[field:pro_img2function='GetOneImgUrl(@me,1)'/]" width= "100" height= "100" /></a> |
|
channelid='1'說明一下是頻道前面的id數字
'pro_img1,pro_img2' 這些是圖片字段替換成你的就可
方法二:
利用正則表達式來
1 |
{dede:arclist addfields= 'pro_img1' channelid= '1' } |
2 |
<img src="[field:pro_img1 runphp= 'yes' ] |
3 |
$ndtp = new DedeTagParse(); |
4 |
$ndtp->LoadSource(@me); |
5 |
$ntag = $ndtp->GetTag( "img" ); |
6 |
@me = trim($ntag->GetInnerText()); |
7 |
[/field:pro_img1] " width=" 100 " height=" 100" /> |
|
缺點只能保存一個 優點不用去改動源核心文件
channelid和typeid區別
channelid 頻道調用 是在內容模型里管理,頻道名稱的前面也有一個id,這個ID用 channelid調用。
這個調用需要頻道里面有子欄目才可以的。
而typeid 就是純粹的欄目調用 可以調用里面的文章
這個就是 channelid頻道和typeid欄目標簽調用的區別。