帝国CMS实现直接保存远程图片做为标题图片

熟悉帝国cms的站长都知道,标题图片需要手工上传,转载文章时还需要先另存为,再上传,比较费力。这里cms大学介绍一个简单办法,可以直接将远程图片网址用于标题图,会自动保存在本地,这样就免除了手工保存的麻烦。

第一部、添加处理函数

我们将以下函数代码插入到 /e/class/userfun.php 文件内,注意要写在php结束符前边。

折叠PHP 代码
  1. function f_picurl($mid,$f,$isadd,$isq,$value,$cs){  
  2.     global $empire,$dbtbpre,$public_r;  
  3.     if($value){  
  4.         return $value;  
  5.     }  
  6.     $picurl=$_POST['picurl'];  
  7.     $classid=(int)$_POST['classid'];  
  8.     if(emptyempty($picurl)||!$classid){  
  9.         return $value;  
  10.     }  
  11.     $r=DoTranUrl($picurl,$classid);  
  12.     if(emptyempty($r['tran'])){  
  13.         return $value;  
  14.     }  
  15.     $r['filesize']=(int)$r['filesize'];  
  16.     $filepass=(int)$_POST['filepass'];  
  17.     $username='picurl';  
  18.     $sql=eInsertFileTable($r['filename'],$r['filesize'],$r['filepath'],$username,$classid,$r['filename'],1,$filepass,$filepass,$public_r['fpath'],0,$modtype,$fstb);  
  19.     return $r['url'];  
  20. }  

第二步、修改 titlepic 字段

在“后台增加信息处理函数”输入框填上 f_picurl,注意一定要按照要求填写,如下图所示:

QQ图片20160206194332.jpg

然后修改“输入表单替换html代码”成以下代码:

折叠XML/HTML 代码
  1. 手动上传:<input name="titlepic" type="text" id="titlepic" value="<?=$ecmsfirstpost==1?"":ehtmlspecialchars(stripSlashes($r[titlepic]))?>" size="45">  
  2. <a onclick="window.open('ecmseditor/FileMain.php?type=1&classid=<?=$classid?>&infoid=<?=$id?>&filepass=<?=$filepass?>&sinfo=1&doing=1&field=titlepic<?=$ecms_hashur[ehref]?>','','width=700,height=550,scrollbars=yes');" title="选择已上传的图片"><img src="../data/images/changeimg.gif" border="0" align="absbottom"></a>  
  3. <br>  
  4. 远程下载:<input name="picurl" type="text" id="picurl" size="45">  

最终效果:

 cb20e6114fcd8a4ceddeda4a2f916aa7.jpg

 

cms大学,为帝国cms用户提供动力
Copyright © 2016 CmsDX.com All Rights Reserved.