CMSware模版常用函数-AutoMini
导航:返回上一页
一、AutoMini
根据定义的缩略图尺寸自动生成缩略图并返回缩图地址,支持绝对路径与相对路径缩图;绝对路径缩图时返回的缩略图的地址是绝对地址,相对路径缩图时返回的缩略图的地址是相对路径。(该功能需要您的php支持GD扩展,并且缩图时需要占用系统大量的内存资源,建议将php内存限制设置为50MB左右)
- 标准语法:
AutoMini('源图地址', '缩略图尺寸', 内容信息数组, '缩略图品质', '是否自动裁图', 'URL前缀')
内容信息数组不加单引号,其余项目都要加单引号
- 参数说明:
- 源图地址: 一般是一个变量,如$Photo
- 缩略图尺寸:使用“长度*宽度”这样的格式,如“160*120”代表长160像素,宽120 像素。如果源图尺寸与定义的缩略图尺寸相符,则不生成缩略图。
- 内容信息数组:包括源图地址变量的数组。如果源图地址在loop循环里,就写loop循环里的变量,如$var;如果源图地址是内容页变量,那么就用$Publish
- 缩略图品质:默认为75,可设范围0~100.品质越高图片越大、生成缩略图时消耗资源越多,因而推荐使用默认值,设置太高意义不大
- 是否自动裁图:为空时使用默认'1',1为是,0为否
- URL前缀:默认为空,用于源图地址为相对地址的图片缩图时定位图片,最终生成的缩略图的地址还是相对路径.
- 使用举例:
绝对路径缩图:PSN设置为 :http://www.abc.com/img ,就是PSN中的路径设置包含URL如 http://www.abc.com 时
[@AutoMini($Photo,'120*100',$Publish,'90','1')]
代码说明:此时的源图地址是“$Photo”,希望生成长120像素,宽100像素,“$Photo”是一个内容页变量因而这里的内容信息数组为 “$Publish”,缩图品质是90,自动裁图。注意,这里的$Photo不加单引号。
相对路径缩图:PSN设置为 :/img ,就是PSN中的路径设置为相对路径,无 http://www.abc.com 这类URL时,参数必须指定一个URL前缀,不然生成缩图时会出错的。简单说明就是:AutoMini里的URL前缀+PSN里设置的路径,为图片的完整路径。代码如下:
[@AutoMini('$a',"100*200",$var,'','','http://www.sohu.com/photo/')]
代码说明:此时的源图地址是“$a”,希望生成长100像素,宽200像素的缩图,“$a”是一个loop循环中的变量因而这里的内容信息数组为 “$var”,缩图品质没有指定则系统自动直接使用默认值75,自动裁图没有指定则系统自动直接使用默认值1,URL前缀为 “http://www.sohu.com/photo/”
- 在列表页应用缩图的例子
<CMS action="LIST" return="List" NodeID="6" Num="3" where="c.Photo != ''" /> <loop name="List" var="var" key="key" > <td align="center" height="90"> <a href="[$var.URL]" target="_blank" title="[$var.Title]"> <img src="[@AutoMini($var.Photo,'120*100',$var)]" border="0" > <!--#CW# 如果您的php不支持gd,将着重色部分改为“[$var.Photo] width="120" height="100"”即可;如果您使用的是他人提供的模版比如我们的默认模版,请批量 查找所有模版文件中的"AutoMini"部分做类似替换 #CW#--> </a> <br> <a href="[$var.URL]" target="_blank" title="[$var.Title]">[@CsubStr($var.Title,0,10)]</a> </td> </loop>
- 在内容页应用缩图的例子
<table width="100%" border="0" cellspacing="0" cellpadding="6" background="/../images/point.gif"> <tr> <td height="10" colspan="3"> </td> </tr> <tr> <td align="CENTER" colspan="3"> <font size="3" color="#0D6DC3"><b> [$Title] </b></font> </td> </tr> <tr> <td width="118">[@date('Y-m-d H:i:s', $PublishDate)]</td> <td align="CENTER" width="288">作者: [$Author] </td> <td width="145" align="right" class="sfont"> <p> 责任编辑: [$Editor] </p> </td> </tr> </table> <table width="560" border="0" cellspacing="0" cellpadding="0"> <tr> <td valign="top" class="article"> <br> [$Content] </td> <img src="[@AutoMini($Photo,'120*100',$Publish,'90','1')]"> <!--#CW# 内容页自动缩图时内容信息数组请设置为“$Publish”,不加单引号 #CW#--> <!--#CW# 如果您的php不支持gd,将着重色部分改为“[$Photo] width="120" height="100"”即可;如果您使用的是他人提供的模版比如我们的默认模版,请批量查找 所有模版文件中的"AutoMini"部分做类似替换 #CW#--> </tr> </table>
二、AutoMini2
/** * 图像自动缩略函数 * * 自动判断来源图片的尺寸,按照传递的参赛生成缩略图(如果传入图片与定义尺寸相同,则不做缩略) * <img src="[@AutoMini($var.Photo, '120*100', $var)]" border="0" width="120" height="100"> * @param string $srcFile 来源图片的地址,可以是本地路径,也可以是http:// * @param string $pixel 输出图片的尺寸,160*120 * @param string $List 包含IndexID的数组 * @param string $cache 缩略图是否缓存 * @param string $miniMode 缩略模式 1-自动伸缩填充$pixel大小, 2-如果源图尺寸小于$pixel,则不自动伸缩填充 * @return string 生成的缩略图Url地址 * @access public */function AutoMini2($srcFile, $pixel, $List, $cache = true, $miniMode='1')
三、图片自动缩略器
语法示例:
<img src="[$PUBLISH_URL]automini.php?src=[@urlencode($var.PhotoURL)]&pixel=80*60&cache=1&cacheTime=600">
- 以下是可用GET参数(大小写敏感,在URL中写时用&分开):
- src : 待处理图片源地址,传给src的参数为URL,最好使用urlencode函数进行编码
- pixel : 缩略大小 默认为120*100
- cache : 是否缓存缩略图片,默认为不cache ,cache=0
- cacheTime: 缓存时间(秒) cache=1时候使用,cacheTime=3600 ,默认为1000秒
- cacheKey: 缓存序列号,cache=1时候使用,用于决定缓存目录的路径
- miniMode : 缩略模式 1-自动伸缩填充$pixel大小, 2-如果源图尺寸小于$pixel,则不自动伸缩填充, 默认为1
- miniType : 缩略图格式(gif,jpg,png) 默认为jpg
- quality : 如果缩略图格式为jpg, 输出质量(1-100),默认为75
通过配置/publish/automini.config.php中的“$ALLOW_HOSTS”可以限制外部链接使用,也可以在这里指定图片缓存目录