完美解决dedecms内容页列表页调用自定义图片地址

,织梦dedecms调用自定义图片的时候在内容页或列表页输出的格式如下:,<li>,<a href='/uploads/140420/1-140420164Z2914.jpg' target='_blank'>, <img src='/uploads/140420/1-140420164Z2914.jpg' width='253' border='0'/>,</a>,<br />,<a href='/uploads/140420/1-140420164Z2914.jpg' target='_blank'></a>,</li>,        这很难满足我们的实际需要,比如做一个幻灯片的时候会调用图集的图片,而不用默认的dedecms的图集模版,所以自己动手吧,网上查阅了很多这方面的资料,最后总结如下:,       在设置自定义字段为图片的时候一定要选“图片(仅网址)”,这样输出的格式就是,{dede:imgtext='' width='270' height='129'}/uploads/101017/1-10101H21F54P.gif{/dede:img} ,       如果自定义字段名为:name,内容页前台这样调用:,<img src="{dede:field.name}"/>,       输出的是,<img src="{dede:img text=''width='270' height='129'}/uploads/101017/1-10101H21F54P.gif{/dede:img}"/>,      其实是输出的时候没有相关的php函数,找到/include/extend.func. php,     在最下面复制以下代码(?>前面),function GetOneImgUrl($img,$ftype=1){  ,    if($img <> ''){  ,        $dtp = new DedeTagParse();  ,        $dtp->LoadSource($img);  ,        if(is_array($dtp->CTags)){  ,            foreach($dtp->CTags as $ctag){,                if($ctag->GetName()=='img'){  ,                    $width = $ctag->GetAtt('width');  ,                    $height = $ctag->GetAtt('height');  ,                    $imgurl = trim($ctag->GetInnerText());  ,                    $img = '';  ,                    if($imgurl != ''){  ,                        if($ftype==1){  ,                            $img .= $imgurl;  ,                        }  ,                        else{  ,                            $img .= '<img src="'.$imgurl.'" width="'.$width.'" height="'.$height.'" />';  ,                        }  ,                    }  ,                }  ,            }  ,        }  ,        $dtp->Clear();  ,        return $img;      ,    }  ,}  ,保存即可。,      前台内容页格式为:, <img alt="{dede:field.title/}" src="{dede:field.name function='GetOneImgUrl(@me,1)'/}">,       看得懂的站长容易理解,@me,0   代表只输出路径,@me,0    代表连宽、高一起输出,       同样的列表页或首页用相应的标签套进去就行了。, 
返回顶部
跳到底部

Copyright 2011-2024 南京追名网络科技有限公司 苏ICP备2023031119号-6 乌徒帮 All Rights Reserved Powered by Z-BlogPHP Theme By open开发

请先 登录 再评论,若不是会员请先 注册