muban大师 发表于 2020-4-14 11:19:40

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

织梦dedecms调用自定义图片的时候在内容页或列表页输出的格式如下:
        [*,
       
       
/uploads/140420/1-140420164Z2914.jpg

       
       

       
       
                这很难满足我们的实际需要,比如做一个幻灯片的时候会调用图集的图片,而不用默认的dedecms的图集模版,所以自己动手吧,网上查阅了很多这方面的资料,最后总结如下:
             在设置自定义字段为图片的时候一定要选“图片(仅网址)”,这样输出的格式就是
        {dede:imgtext='' width='270' height='129'}/uploads/101017/1-10101H21F54P.gif{/dede:img}
             如果自定义字段名为:name,内容页前台这样调用:
       


             输出的是
       


              其实是输出的时候没有相关的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 .= '

';
                                }
                            }
                      }
                    }
                }
                $dtp->Clear();
                return $img;      
          }
        }
        保存即可。
              前台内容页格式为:
       


             看得懂的站长容易理解,@me,0   代表只输出路径,@me,0    代表连宽、高一起输出
             同样的列表页或首页用相应的标签套进去就行了。
页: [1]
查看完整版本: 完美解决dedecms内容页列表页调用自定义图片地址