织梦文章编辑器内
· 若有手动上传缩略图,缩略图就是原图,url和图片名如下格式:
· 若没手动上传缩略图,默认系统会提取文章第1张图为缩略图,且如下图红框默认是选中的:
此时,缩略图和原图(文章第1张图)保存在同一文件夹下,但缩略图图片名多出了一个 _lp (如下图),也就是
也就是,此时缩略图原图即为文章第1张图
缩略图原图:/uploads/150327/1-15032G1543N27.jpg
缩 略 图:/uploads/150327/1-15032G1543N27-lp.jpg
参数 | 描述 |
---|---|
find | 必须参数。要被替换的值 |
replace | 必须参数。替换 find值 的值(即用什么值来替换find) |
string | 必须参数。被搜索的字符串, |
count | 可选。一个变量,对替换数进行计数。 |
str_replace()对大小写敏感,如要对被替换的字符串默认大小写不敏感,则使用str_ireplace() 。
方法1:
第1步:
在 include/extend.func.php 里面写一个替换的函数:
function FocusUseFirstImg($str_pic) //幻灯片调用专用
{
$str_sub=str_replace( "-lp", "" , "$str_pic" ); // 把缩略图中的 -lp 替换成空(即删掉),就是第一张图的地址了。
return $str_sub;
}
第2步:
在模板里循环调用:
[field:litpic function=FocusUseFirstImg('@me ')/]
或
{dede:field name='litpic' function="FocusUseFirstImg(@me)"/}
其中,@me就是指缩略图litpic
方法2:
直接在模板里循环调用
{dede:php}
echo str_replace( "-lp", "" , "[field:litpic/]" );
{/dede:php}
方法2有局限性,如果{dede:php}是在{dede:arclist}等标签内,那就用不了!
××××××××××××××××××××××××××××××××××××××××××××××××××××××××××
引申2: 如何在模板页调用时将尺寸很小的缩略图换成原图(即文章第1张图),
即” 1-15032G1543N27-lp.jpg ” 变成 ” 1-15032G1543N27.jpg ” ?
注:在没有手工上传缩略图时,系统是默认提取文章第1张图的,此时缩略图原图即为文章第1张图。
这种情况适合于首页幻灯片,是避免幻灯片图片不模糊(保持原图)的好方法!!!
只要将缩略图片名中的 -lp 删掉(即替换成空),就是缩略图原图了,就OK了。
如果是php,可利用 php的 str_replace()或 str_ireplace() 函数。
函数格式(以str_replace()为例):
str_replace(find,replace,string,count)
整句话表示,查找字符串string中的find,把find替换成replace。
××××××××××××××××××××××××××××××××××××××××××××××××××××××××××
引申1:那么,问题来了, 如果不手动上传缩略图,如何让编辑器不默认提取文章第1张图作为缩略图?
打开 /dede/templets/article_add.htm
找到如下代码:
<input name="remote" type="checkbox" class="np" id="remote" value="1"<?php if($cfg_rm_remote=='Y') echo ' checked="1" '; ?> />
下载远程图片和资源
<input name="dellink" type="checkbox" class="np" id="dellink" value="1"<?php if($cfg_arc_dellink=='Y') echo ' checked="1" '; ?> />
删除非站内链接 <a href="javascript:OpenMyWin('article_allowurl_edit.php');">[设置]</a>
<input name="autolitpic" type="checkbox" class="np" id="autolitpic" value="1"<?php if($cfg_arc_autopic=='Y') echo ' checked="1" '; ?> />
提取第一个图片为缩略图
<input type='checkbox' name='needwatermark' value='1' class='np' <?php if($photo_markup=='1') echo "checked"; ?> />
图片是否加水印
红色就是我们要修改的部分,Y 表示如果不手动上传缩略图则默认勾选文章第1张图为缩略图,N 表示默认不勾选!
××××××××××××××××××××××××××××××××××××××××××××××××××××××××××