DedeCMS 5.1 版缩略图修改补充


勾选 “提取第一张图片为缩略图” 实际是将第一张图当作缩略图 并没有生成带"_lit"的小图

修改文件:\dede\action\article_add_action.php
先看原代码

复制代码
代码如下:

//自动获取缩略图
if($autolitpic==1 && $litpic==''){
$litpic = GetDDImgFromBody($body);
}

大概意思应该就是“缩略图=获取图像从主题内容”
也就是上面说的实际是第一张原图 这就是问题所在
参考了4.X里提取缩略图代码,更改为:

复制代码
代码如下:

//自动获取缩略图-改
if($autolitpic==1 && $litpic==''){
$cfg_medias_dir = str_replace('/','\/',$cfg_medias_dir);
$picname = preg_replace("/.+?".$cfg_medias_dir."(.*)( |\"|').*$/isU",$cfg_medias_dir."$1",$body);
if(eregi("\.(jpg|gif|png)$",$picname)){
if(ereg("_lit\.",$picname)) $litpic = $picname;
else $litpic = GetDDImage('ddfirst',$picname,0);
}
}

同理\dede\action\article_eidt_action.php更改为:


复制代码
代码如下:

//自动获取缩略图-改
if($autolitpic==1 && empty($litpic)){
$cfg_medias_dir = str_replace('/','\/',$cfg_medias_dir);
$picname = preg_replace("/.+?".$cfg_medias_dir."(.*)( |\"|').*$/isU",$cfg_medias_dir."$1",$body);
if(eregi("\.(jpg|gif|png)$",$picname)){
if(ereg("_lit\.",$picname)) $litpic = $picname;
else $litpic = GetDDImage('ddfirst',$picname,0);
}
}

然后将这两个文件 复制覆盖到\dede\下。
OK!这样就能打到勾选“提取第一张...”生成缩略图的目的了。
缩略图变形 参考[Dedecms生成漂亮整齐的缩略图]
需修改文件:\include\inc_photograph.php

找到:($ni,$im,0,0,0,0,$ftoW,$ftoH,$srcW,$srcH); 共三处。
改为:($ni,$im,0,0,$src_X,$src_Y,$ftoW,$ftoH,$srcW,$srcH);

修改了缩图函数,就能在原图中截取居中的、最大面积的符合自定义缩略图长宽比列的一部分生成缩略图。



相关阅读:
事件处理器作为浏览器对象的属性
Mysql源码学习笔记 偷窥线程
PHP自动选择 连接本地还是远程数据库
PHP把汉字转为unicode的通用函数
安全配置和维护Apache WEB Server
功能说明:利用script来处理文本文件。
SQL Server常用管理命令小结
phpcms2008下的自定义url规则教程
HTML 超级链接详细讲解
dedecms中显示数字验证码的修改方法
ACCESS的参数化查询
js tr控制下面的tbody隐藏和显示
Fedora下解决apache配置出错
设计稿进行页面制作的流程和注意事项
快速导航

Copyright © 2016 phpStudy |