GVKun编程网logo

DEDECMS开启SSL及支持多站点后缩略图错误变成域名重复绝对地址的取消办法

17

针对DEDECMS开启SSL及支持多站点后缩略图错误变成域名重复绝对地址的取消办法这个问题,本篇文章进行了详细的解答,同时本文还将给你拓展DedeCMSV5.6缩略图不加水印的处理办法、DedeCMS

针对DEDECMS开启SSL及支持多站点后缩略图错误变成域名重复绝对地址的取消办法这个问题,本篇文章进行了详细的解答,同时本文还将给你拓展DedeCMS V5.6缩略图不加水印的处理办法、DedeCMS 上传缩略图启用水印的办法、DedeCms 栏目增加缩略图功能的办法、dedecms上传文章的图片显示绝对地址等相关知识,希望可以帮助到你。

本文目录一览:

DEDECMS开启SSL及支持多站点后缩略图错误变成域名重复绝对地址的取消办法

DEDECMS开启SSL及支持多站点后缩略图错误变成域名重复绝对地址的取消办法

 

DEDECMS如果我们需要将不同目录绑定不同二级域名或者不同域名作为多站点使用,就需要开启系统设置里面的多站点支持功能,这样整站的附件图片,都会被自动加上主站的域名,比如原来新闻中的/upload/allimg/1709/234214324.JPG这样形式的相对路径就会被自动替换成https://www.bnxb.com/upload/allimg/1709/234214324.JPG这种形式的**路径。

但是我们在使用中也发现目前版本的DEDE(5.7 SP2)存在一个BUG问题,开启后,因为新闻中发布的图片都变成**地址,因此缩略图被自动提取后,也变成了**地址,但是在列表页或者首页引用缩略图的时候,DEDE系统因为你开启了多站点支持因此又会在原来缩略图的外面再多套一个你的域名,就会使缩略图变成类似

所以后面发布的新闻,缩略图就会全部无法显示。虽然我们可以用系统里面的批量维护-数据库内容替换 功能来将缩略图中的域名全部去掉,但是每次发布新闻都要操作一次很麻烦,这里提供一个暂时的解决方案

修改DEDE/INC/inc_archives_functions.php

/** * 取*个图片为缩略图 * * @access public * @param string $body 文档内容 * @return string */ function GetDDImgFromBody(&$body) { $litpic = ''; preg_match_all("/(src)=["|'| ]{0,}([^>]*.(gif|jpg|bmp|png))/isU",$body,$img_array); $img_array = array_unique($img_array[2]); if(count($img_array)>0) { $picname = preg_replace("/["|'| ]{1,}/", '', $img_array[0]); if(preg_match("#_lit.#", $picname)) $litpic = $picname; else $litpic = GetDDImage('ddfirst', $picname,1); } return $litpic; }  


 

修改为

查看模板 打印代码帮助 /** * 取*个图片为缩略图 * * @access public * @param string $body 文档内容 * @return string */ function GetDDImgFromBody(&$body) { global $cfg_basehost; $litpic = ''; preg_match_all("/(src)=["|'| ]{0,}([^>]*.(gif|jpg|bmp|png))/isU",$body,$img_array); $img_array = array_unique($img_array[2]); if(count($img_array)>0) { $picname = preg_replace("/["|'| ]{1,}/", '', $img_array[0]); if(preg_match("#_lit.#", $picname)) $litpic = $picname; else $litpic = GetDDImage('ddfirst', $picname,1); } $litpic = str_replace($cfg_basehost,"",$litpic); return $litpic; }  

意思是只要缩略图中出现你网站的域名就自动去除。问题解决

其实就是增加了两行代码,

global $cfg_basehost;

$litpic = str_replace($cfg_basehost,"",$litpic); 本文章网址:http://www.ppssdd.com/code/6675.html。转载请保留出处,谢谢合作!

DedeCMS V5.6缩略图不加水印的处理办法

DedeCMS V5.6缩略图不加水印的处理办法

 

众所周知,DedeCMS后台“图片水印设置”里的“添加水印的图片大小控制”选项根本不起作用,导致缩略图也被加上水印,效果很难看,现在告诉你DedeCMS V5.6缩略图不加水印的办法技巧!

修改DedeCMS程序里的dede/inc/inc_archives_functi*****.php 文件 (dede为后台默认路径) 
查找到: 
//获取一个远程图片 
function GetRemoteImage($url,$uid=0) 

这个函数里面有一句: 
@WaterImg($rndtrueName, 'down'); 
修改成: 
//@WaterImg($rndtrueName, 'down'); 
再查找: 
//获得新闻body里的外部资源 
function GetCurContent($body) 

global $cfg_multi_site,$cfg_basehost,$cfg_basedir,$cfg_image_dir; 

修改成: 
//获得新闻body里的外部资源 

function GetCurContent($body) { global $cfg_multi_site,$cfg_basehost,$cfg_basedir,$cfg_image_dir,$autolitpic,$litpic; $autolitpic = (empty($autolitpic) ? '' : $autolitpic);  


然后在这同一个函数里面查找到: 

$value = trim($value); $rndFileName = $imgPath.'/'.$milliSecondN.'-'.$key.$itype; $fileurl = $imgUrl.'/'.$milliSecondN.'-'.$key.$itype; $rs = $htd->SaveToBin($rndFileName);  



在其下面添加: 
//自动获取缩略图 

if($autolitpic==1 && $litpic=='') { $litpic = GetDDImgFromBody($body); }  



*后一步: 
查找到: 
//处理HTML文本 
//删除非站外部链接接、自动摘要、自动获取缩略图 

function AnalyseHtmlBody($body,&$description,&$litpic,&$keywords,$dtype='') { global $autolitpic,$remote,$dellink,$autokey,$cfg_basehost,$cfg_auot_description,$id,$title,$cfg_soft_lang; $autolitpic = (empty($autolitpic) ? '' : $autolitpic); $body = stripslashes($body); //远程图片本地化 if($remote==1) { $body = GetCurContent($body); } //删除非站内部链接接 if($dellink==1) { $basehost = "".$_SERVER['HTTP_HOST']; $body = str_replace($cfg_basehost,'#basehost#',$body); $body = str_replace($basehost,'#2basehost2#',$body); $body = preg_replace("/(]*)>)|(<\/a>)/isU","",$body); $body = str_replace('#basehost#',$cfg_basehost,$body); $body = str_replace('#2basehost2#',$basehost,$body); } //自动摘要 if($description=='' && $cfg_auot_description>0) { $description = cn_substr(html2text($body),$cfg_auot_description); $description = trim(preg_replace('/ /','',$description)); $description = addslashes($description); }  


在这个下面的: 
//自动获取缩略图 

if($autolitpic==1 && $litpic=='') { $litpic = GetDDImgFromBody($body); }  



修改成: 

//自动获取缩略图 

//if($autolitpic==1 && $litpic=='') //{ //$litpic = GetDDImgFromBody($body); //}  


好了大功告成!

本文章网址:http://www.ppssdd.com/code/7516.html。转载请保留出处,谢谢合作!

DedeCMS 上传缩略图启用水印的办法

DedeCMS 上传缩略图启用水印的办法

 

打开include\FCKeditor\editor\dia日志\dede_image.php ,第117行,原文:

以下为引用的内容: if (in_array($imgfile_type,$cfg_photo_typenames)) { WaterImg($fullfilename,'up'); }  

  修改为:

以下为引用的内容: if ($needwatermark=="1" && in_array($imgfile_type,$cfg_photo_typenames)) //修改 by nic { WaterImg($fullfilename,'up'); WaterImg($full_litfilename,'up'); // add by nic }  

本文章网址:http://www.ppssdd.com/code/6101.html。转载请保留出处,谢谢合作!

DedeCms 栏目增加缩略图功能的办法

DedeCms 栏目增加缩略图功能的办法

 

此功能添加涉及到以下文件:

  dede/cata日志_add.php

  dede/cata日志_edit.php

  dede/templets/cata日志_add.htm

  dede/templets/cata日志_edit.htm

  include/taglib/channel.lib.php

  此升级修改办法,在V5.7,V5.7sp1 测试通过,其他版本未测试,原理基本相同,请大家自行测试是否可行。

  首先给 栏目表(`dede_arctype`)增加一个字段typeimg

alter table `dede_arctype` add `typeimg` varchar(200) NOT NULL default ;

  修改cata日志_add.php文件

  打开dede/cata日志_add.php

  查找$queryTemplate = “insert into `dede_arctype`

  将

(reid,topid,sortrank,typename,typedir,

  替换为:

(reid,topid,sortrank,typename,typedir,typeimg,

  将

(‘~reid~’,'~topid~’,'~rank~’,'~typename~’,'~typedir~’,

  替换为:

(‘~reid~’,'~topid~’,'~rank~’,'~typename~’,'~typedir~’,'~typeimg~’,

  查找$in_query = “INSERT INTO `dede_arctype`

  将

(reid,topid,sortrank,typename,typedir,

  替换为:

(reid,topid,sortrank,typename,typedir,typeimg,

  将

(‘$reid’,'$topid’,'$sortrank’,'$typename’,'$typedir’,

  替换为:

(‘$reid’,'$topid’,'$sortrank’,'$typename’,'$typedir’,'$typeimg’,

  保存cata日志_add.php

  下面修改cata日志_edit.php文件

  打开dede/cata日志_edit.php

  查找$upquery = “Update `dede_arctype` set

  在 typedir=’$typedir’, 其下面增加一行:

`typeimg`=’$typeimg’,

  保存cata日志_edit.php

  开始修改栏目添加源码文件

  打开dede/templets/cata日志_add.htm

  在*上面找到这个段

<title>栏目管理</title> <link href=http://www.dede58.com/a/dedejq/”css/base.css” rel=”stylesheet” type=”text/css”>

  替换为:

<title>栏目管理</title> <link href=http://www.dede58.com/a/dedejq/”css/base.css” rel=”stylesheet” type=”text/css”> <script language=”javascript” src=http://www.dede58.com/a/dedejq/”../include/js/dedeajax2.js”></script> <script language=’javascript’ src=http://www.dede58.com/a/dedejq/”js/main.js”></script> <script type=”text/javascript” src=http://www.dede58.com/a/dedejq/”js/calendar/calendar.js”></script>

  列表命名规则:

<tr> <td height="26">列表命名规则:</td> <td> <input name="namerule2" type="text" id="namerule2" value="{typedir}/list_{tid}_{page}.html"/> <img src=http://www.dede58.com/a/dedejq/"images/help.gif" alt="帮助" width="16" height="16" border="0"onClick="ShowHide('helpvar3')"/></td> </tr>

  在标签下面增加一行:

<!--增加栏目缩略图--> <tr> <td width="90">栏目图片:</td> <td width="560"> <table width="100%" border="0" cellspacing="1" cellpadding="1"> <tr> <td height="30"> <input name="typeimg" type="text" id="typeimg"/> <input type="button" value="本地上传"/> <iframe name='uplitpicfra' id='uplitpicfra' src=''></iframe> <span><input name="litpic" type="file" id="litpic" onChange="SeePicNew(this, 'divpicview', 'uplitpicfra', 165, 'archives_add.php');" size="1"/></span> <input type="button" name="Submit2" value="选择图片"onClick="SelectImage('form1.typeimg','small');"/> <input type="button" name="Submit2" value="裁剪"onClick="imageCut('typeimg');"/> <input type='checkbox'name='ddisremote' value='1' id='ddisremote'/>远程<br />(栏目源码里用{dede:field.typeimg /}调用 </td> </tr> </table> </td> <td width="150" align="center"> <div id='divpicview'></div> </td> </tr> <!--增加栏目缩略图-->

  保存cata日志_add.htm

  开始修改栏目编辑源码文件

  打开dede/templets/cata日志_edit.htm

#p#分页标题#e#

  在*上面找到这个段

<title>栏目管理</title> <link href=http://www.dede58.com/a/dedejq/”css/base.css” rel=”stylesheet” type=”text/css”>

  替换为:

<title>栏目管理</title> <link href=http://www.dede58.com/a/dedejq/”css/base.css” rel=”stylesheet” type=”text/css”> <script language=”javascript” src=http://www.dede58.com/a/dedejq/”../include/js/dedeajax2.js”></script> <script language=”javascript” src=http://www.dede58.com/a/dedejq/”js/main.js”></script> <script type=”text/javascript” src=http://www.dede58.com/a/dedejq/”js/calendar/calendar.js”></script>

  查找

<tr> <td height="26">列表命名规则:</td> <td> <input name="namerule2" type="text" id="namerule2" value=http://www.dede58.com/a/dedejq/"<?php echo $myrow['namerule2']?>" size="40"/> <img src=http://www.dede58.com/a/dedejq/"images/help.gif" alt="帮助" width="16" height="16" border="0"onClick="ShowHide('helpvar3')"/></td> </tr>

  在其下面增加一行:

<!--增加栏目缩略图--> <tr> <td width="90" height="81">栏目图片:</td></td> <td width="500"> <input name="typeimg" type="text" id="typeimg"value=http://www.dede58.com/a/dedejq/"<?php echo $myrow['typeimg']?>"><input type="button" name="Submit" value="浏览..."onClick="SelectImage('form1.typeimg','');"> <input type="button" name="Submit2" value="裁剪"onClick="imageCut('typeimg');"/> <input type='checkbox'name='ddisremote' value='1'> 远程<br />(栏目源码里用{dede:field.typeimg /}调用) </td> <td align="center"> <img src=http://www.dede58.com/a/dedejq/"<?php if($myrow['typeimg']!="") echo $myrow['typeimg']; else echo "images/pview.gif";?>" width="150" height="100" id="picview" name="picview"> </td> </tr> <!--增加栏目缩略图-->

  保存cata日志_edit.htm

  至此已经修改完成!

  栏目图片的添加或修改图片时在 (栏目管理>高级选项)里面就会自动出现栏目图片添加的选择,点击选择图片,弹出窗口内选择浏览上传就OK

  注意:前台栏目标签调用的时候,还需要改一个文件,才能实现栏目图片显示,否则只能通过sql语句才能显示图片。

  打开:include/taglib/channel.lib.php

  找到

if($type=='top') { $sql = "Select id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath,description From `dede_arctype` where reid=0 And ishidden<>1 order by sortrank asc limit 0,$row"; } else if($type=="son") { //if($_sys_globals['typeid']>0) $typeid = $_sys_globals['typeid']; if($typeid==0) { return ''; } $sql = "Select id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath,description From `dede_arctype` where reid='$typeid' And ishidden<>1 order by sortrank asc limit 0,$row"; } else if($type=="self") { if($reid==0) { return ''; } $sql = "Select id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath,description From `dede_arctype` where reid='$reid' And ishidden<>1 order by sortrank asc limit 0,$row"; }

  替换成下面的:

if($type=='top') { $sql = "Select id,typename,typeimg,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath,description From `dede_arctype` where reid=0 And ishidden<>1 order by sortrank asc limit 0,$row"; } else if($type=="son") { //if($_sys_globals['typeid']>0) $typeid = $_sys_globals['typeid']; if($typeid==0) { return ''; } $sql = "Select id,typename,typeimg,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath,description From `dede_arctype` where reid='$typeid' And ishidden<>1 order by sortrank asc limit 0,$row"; } else if($type=="self") { if($reid==0) { return ''; } $sql = "Select id,typename,typeimg,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath,description From `dede_arctype` where reid='$reid' And ishidden<>1 order by sortrank asc limit 0,$row"; }

  调用办法:

<img src=http://www.dede58.com/a/dedejq/”[field:typeimg /]” />

 如果想同时在新闻内容详细页调用栏目图片打开,修改\include\arc.archives.class.php

  查找

if($this->ChannelUnit->ChannelInfos['issystem']!=-1) #p#分页标题#e#

  将

$query = “Select arc.*,tp.reid,tp.typedir,ch.addtable from `dede_archives` arc left join dede_arctype tp on tp.id=arc.typeid left join dede_channeltype as ch on arc.channel = ch.id where arc.id=’$aid’ “; $this->Fields = $this->dsql->GetOne($query);

  替换为: 

$query = “Select arc.*,tp.reid,tp.typedir,tp.typeimg,ch.addtable from `dede_archives` arc left join dede_arctype tp on tp.id=arc.typeid left join dede_channeltype as ch on arc.channel = ch.id where arc.id=’$aid’ “; $this->Fields = $this->dsql->GetOne($query);

  保存文件即可。

本文章网址:http://www.ppssdd.com/code/14543.html。转载请保留出处,谢谢合作!

dedecms上传文章的图片显示绝对地址

dedecms上传文章的图片显示绝对地址

如果调用m时,有时会造成文章中的图片不显示,因此我们需要将文章中的图片地址改为绝对地址。

修改include文件夹下extend.func.PHP文件,代码如下:

function replaceurl($newurl)
{
$newurl=str_replace('src="/uploads/allimg/','src="https://www.360muye.cn/uploads/allimg/',$newurl);
return $newurl;
}

之前文章内容的调用标签为:{dede:field.body/},需要修改为:{dede:field.body function='replaceurl(@me)'/}

通过上面的函数即可实现替换文章内容中图片的相对地址,显示为图片的绝对路径。转载请注明:鹏程木业网

今天关于DEDECMS开启SSL及支持多站点后缩略图错误变成域名重复绝对地址的取消办法的介绍到此结束,谢谢您的阅读,有关DedeCMS V5.6缩略图不加水印的处理办法、DedeCMS 上传缩略图启用水印的办法、DedeCms 栏目增加缩略图功能的办法、dedecms上传文章的图片显示绝对地址等更多相关知识的信息可以在本站进行查询。

本文标签: