第1篇默认第1张图作缩略图

织梦文章编辑器内


· 若有手动上传缩略图,缩略图就是原图,url和图片名如下格式:


20133559_0Xtb.jpg



·没手动上传缩略图,默认系统会提取文章第1张图为缩略图,且如下图红框默认是选中的:


20133559_xNDc.jpg


此时,缩略图和原图(文章第1张图)保存在同一文件夹下,但缩略图图片名多出了一个 _lp (如下图),也就是

20133559_XDji.jpg


也就是,此时缩略图原图即为文章第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 表示默认不勾选!


××××××××××××××××××××××××××××××××××××××××××××××××××××××××××







转载于:https://my.oschina.net/zhumofeng/blog/403832

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个基本的jQuery轮播图示例,包括一个大图和五张缩略图: HTML代码: ```html <div class="slider-wrapper"> <div class="slider"> <div class="slide"><img src="image1.jpg"></div> <div class="slide"><img src="image2.jpg"></div> <div class="slide"><img src="image3.jpg"></div> <div class="slide"><img src="image4.jpg"></div> <div class="slide"><img src="image5.jpg"></div> <div class="slide"><img src="image6.jpg"></div> <div class="slide"><img src="image7.jpg"></div> <div class="slide"><img src="image8.jpg"></div> </div> <div class="thumbnail-wrapper"> <div class="thumbnail"><img src="image1.jpg"></div> <div class="thumbnail"><img src="image2.jpg"></div> <div class="thumbnail"><img src="image3.jpg"></div> <div class="thumbnail"><img src="image4.jpg"></div> <div class="thumbnail"><img src="image5.jpg"></div> </div> </div> ``` CSS代码: ```css .slider-wrapper { position: relative; width: 800px; height: 500px; } .slider { position: absolute; top: 0; left: 0; width: 800px; height: 500px; } .slide { position: absolute; top: 0; left: 0; width: 800px; height: 500px; display: none; } .slide:first-child { display: block; } .thumbnail-wrapper { position: absolute; bottom: 0; left: 0; width: 800px; height: 100px; background-color: #ccc; } .thumbnail { float: left; width: 20%; height: 100px; cursor: pointer; } .thumbnail img { display: block; max-width: 100%; max-height: 100%; margin: 0 auto; } ``` jQuery代码: ```javascript $(document).ready(function() { var slider = $(".slider"); var slides = slider.find(".slide"); var thumbnails = $(".thumbnail-wrapper").find(".thumbnail"); var currentSlide = 0; var autoPlay = true; var autoPlayInterval = 5000; function showSlide(index) { if (index >= slides.length) { index = 0; } else if (index < 0) { index = slides.length - 1; } slides.hide(); slides.eq(index).fadeIn(); thumbnails.removeClass("active"); thumbnails.eq(index).addClass("active"); currentSlide = index; } function autoPlaySlides() { if (autoPlay) { showSlide(currentSlide + 1); } } thumbnails.click(function() { var index = $(this).index(); showSlide(index); autoPlay = false; }); $(".prev-btn").click(function() { showSlide(currentSlide - 1); autoPlay = false; }); $(".next-btn").click(function() { showSlide(currentSlide + 1); autoPlay = false; }); setInterval(autoPlaySlides, autoPlayInterval); }); ``` 说明: 1. HTML代码中,轮播图的大图和缩略图都放在一个包装器(`slider-wrapper`)中,大图使用`slider`类,缩略图使用`thumbnail-wrapper`类。 2. CSS代码中,大图和缩略图都使用绝对定位进行布局,大图中每个图片都使用`slide`类,其中第一张图片默认显示,缩略图中每个图片都使用`thumbnail`类,使用`float`进行布局。 3. jQuery代码中,使用`showSlide`函数显示指定的图片,该函数接受一个参数,即要显示的图片的索引,如果索引超出了图片的范围,会自动循环。 4. 缩略图的点击事件会调用`showSlide`函数,并将`autoPlay`变量设置为`false`,停止自动播放。 5. 上一张和下一张按钮的点击事件同样会调用`showSlide`函数,并将`autoPlay`变量设置为`false`,停止自动播放。 6. 使用`setInterval`函数每隔一段时间自动播放轮播图,调用`autoPlaySlides`函数,该函数会判断`autoPlay`变量是否为`true`,如果是则自动播放下一张图片
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值