在织梦系统中,经常用到dedecms自定义的函数方法,针对电脑端和手机端网页的缩略图的调用,显示不同的图片,使用str_replace函数改变图片路径。
因为有这样一个需求,调用文章的缩略图,需要自定义一个替换图片字符的函数,在模板文件调用自定义函数,实现自己想要的图片地址链接。在织梦系统有自定义函数方法,
常用版本
打开 /include/common.func.php在最后面加入如下代码:
function firstpic($str_pic)
{
$str_sub=str_replace("-lp","","$str_pic"); //删除缩略图中的"-lp"。
return $str_sub;
}
标签中调用:
[field:litpic function=firstpic('@me')/]
直接调用:
{dede:field name='litpic' function="firstpic(@me)"/}
改进版
如果自己上传缩略图的话,貌似第二种就用不了了,这时候就要再用另一种方法:
打开 /include/helpers/archive.helper.php 在最后面加入如下代码:
if(!function_exists('GetImgs'))
{
function GetImgs($aid)
{
global $dsql;
$query = "select body FROM `dede_addonarticle` where aid='$aid'";
$dsql->Execute('body',$query);
$row = $dsql->GetArray('body');
preg_match('//i',$row['plot'],$str);
$GImgs = $str[2];
return $GImgs;
}
}
调用代码:
[field:id function=GetImgs(@me)/]
织梦调用多个缩略图
DEDECMS列表页面调用缩略图,可以用系统自带的脚本调用第一张图片,也可以通过修改或者自定义织梦函数,来随机调用多张自备缩略图里的一张。
缩略图随机调用代码:
1、默认调用缩略图的代码
[field:array runphp='yes']@me = (empty(@me['litpic']) ? "" : "<a href='{@me['arcurl']}' class='preview'><img src='{@me['litpic']}'/></a>"); [/field:array]
2、替换成如下的代码:
<a href="[field:arcurl/]" title="[field:title/]" target="_blank"><script language="JavaScript" src="http://images.cnblogs.com/road.js"></script></a>
3、把JS文件和准备好的随机缩略图片,上传到网站的images目录里。
var m=20;
var n=Math.floor(Math.random()*m+1)
document.write ("<img src='http://www.dedecms8.com/images/nt"+n+".jpg' border=0 width=148 height=118 />");
注意:最好准备20张以上的固定缩略图尺寸的图片,多准备图片,显示出来的图片不会太多重复,版面比较好看。
- 我的微信
- 这是我的微信扫一扫
- 我的微信公众号
- 我的微信公众号扫一扫