个人工具
名字空间
变换
操作

CMSware模版常用函数-AutoMini

来自站长百科
2010年6月7日 (一) 08:59Ahbaybface (讨论 | 贡献)的版本
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
跳转到: 导航, 搜索

导航:返回上一页

一、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”可以限制外部链接使用,也可以在这里指定图片缓存目录


参考来源

留言