CmsTop/模板常用函数
- str_cut
将给定的字符串截取一定的长度,中文一个字为 2 个长度。
函数原型:
/* * @param $string 待处理的字符串 * @param $length 要截取的长度,中文一个字为 2 个长度 * @param $dot 超出长度用什么字符替代,默认为 ... * @param $charset 要处理的字符串的编码,可选,默认为 utf-8 */ function str_cut($string, $length, $dot = '...', $charset = 'utf-8') {...}
常用方法: 截取文章标题 15 个中文字符,超出部分不显示
{str_cut($r[title], 30, )}
截取内容描述 50 个中文字符,超出部分用默认的 ... 代替
{str_cut(description($r[contentid]), 100)}
- description
获取指定内容的描述,如果有的话。
函数原型:
/** * @param $contentid 内容ID * @param $modelid 模型ID,可选 */ function description($contentid, $modelid = null) {...}
使用方法: 在内容列表中截取描述
{content size="2" orderby="`weight` DESC"} <p>{str_cut(description($r[contentid]), 100, '')}</p> {/content}
- thumb
截取图片为指定的的高宽,可指定是否返回绝对路径和默认图片。
需要注意的是,截取是按比例处理的,当要截取的比例和原图的比例不吻合时,会返回不超过指定高宽的最合适的大小,因此截取出来的图片大小并不总是指定的高宽。
如果原图不存在,且未指定默认图片,将返回 IMG_URL . 'images/nopic.gif'。
函数原型:
/* * @param $img 待处理的图片 * @param $width 要裁剪的宽度 * @param $height 要裁剪的高度 * @param $is_abs 是否返回绝对路径,默认返回绝对地址 * @param $default 当指定的图片不存在时返回的默认的图片 */ function thumb($img, $width, $height, $is_abs = 1, $default = null) {...}
常用方法: 截取内容的缩略图为 100 x 50 的大小
{thumb($r[thumb], 100, 50)}
将返回类似 http://cmstop.com/upload/2010/0611/1285555983557.jpg 的地址
截取内容的缩略图为 100 x 50 的大小,并返回相对地址
{thumb($r[thumb], 100, 50, 0)}
将返回类似 2010/0611/1285555983557.jpg 的地址
- table
读取指定表的内容,如果不指定主键值,则返回该表的所有内容;如果指定了主键值,则返回该条记录; 如果进一步指定了字段名称,则返回这条记录指定字段的值。
慎重使用诸如:table('content') 或 table('article') 的写法,不指定主键 ID 将返回该内容表的所有内容,除非你真的知道自己在做什么。
函数原型:
/** * @param $table 要读取的表名称,不需要前缀 * @param $id 主键的值(仅支持主键为单列的情况) * @param $field 指定要读取的列名 */ function table($table, $id = null, $field = null)
常用方法: 在 {content} 标签中读取栏目名称
{table('category', $r[catid], 'name')}
在 {content} 标签中读取文章内容
{table('article', $r[contentid], 'content')}
- channel
获得所有频道(顶级栏目)。
函数原型:
// 不接受参数 function channel() {...}
使用方法:
<ul> {loop channel() $catid $category} <li><a href="{$category[url]}">{$category[name]}</a></li> {/loop} </ul>
- subcategory
获得指定栏目的子栏目。
函数原型:
/** * @param $catid 指定栏目的栏目ID * @param $tree 是否要返回树形结构的数组 * @param $subcategory 初始化的数组,如果指定,返回的结果将和该数组合并 */ function subcategory($catid, $tree = false, & $subcategory = array()) {...}
使用方法: 获得栏目 ID 为 1 的所有子栏目的最新 10 条内容
{loop subcategory(1) $catid $category} <h3><a href="{$category[url]}">{$category[name]}</a></h3> <ul> {content catid="$catid" size="10" orderby="`published` DESC"} <li><a href="{$r[url]}"{if $r[color]} style="color:{$r[color]}"{/if}>{str_cut($r[title], 50, '')}</a></li> {/content} </ul> {/loop}
- text_format
实体化字符串中的HTML标签,将空格替换为 ,并将换行转换为 <br />。
函数原型:
/* * @param $string 待处理的字符串 */ function text_format($string) {...}
- config
返回 ./cmstop/config/ 目录里面指定的配置文件或配置项。
函数原型:
/** * @param $file 要读取的配置文件 * @param $key 要读取的配置项,不指定 $key 则返回一个数组 * @param $default 指定的配置项不存在时的默认值 */ function config($file, $key = null, $default = null) {...}
常用方法: 读取配置文件中的网站字符集,如果没有定义则使用 UTF-8
{config('config', 'charset', 'UTF-8')}
- setting
读取系统或各个扩展的配置。
函数原型:
/** * @param $app 要读取的扩展名称 * @param $var 要读取的配置名称,不指定则返回该扩展的所有配置 */ function setting($app, $var = null) {...}
常用方法: 读取发布评论是否审核
{setting('comment', 'ischeck')}
- url
根据当前设定的URL模式返回对应的链接。
URL 模式是在 ./cmstop/config/config.php 里面设置的,支持 standard, pathinfo, querystring, rewrite 四种模式,仅对前台有效。
函数原型:
/** * @param $aca 应用名称/控制名称/动作名称 * @param $params 附加参数 * @param $is_full 是否返回绝对链接 */ function url($aca, $params = null, $is_full = false) {...}
常用方法: 内容页中获取当前内容的评论链接
<a href="{APP_URL}{url('comment/comment/index', 'contentid=' . $contentid)}">查看评论</a>
- pages
根据指定参数返回分页 HTML。
函数原型:
/** * @param $total 内容的总数 * @param $page 当前分页 * @param $pagesize 每页分页大小 * @param $offset 偏移量 * @param $url 分页所使用的 URL 规则,不指定则使用当前请求的 URL * @param $mode 为 true 则将转换 URL 中的 & 为 & */ function pages($total, $page = 1, $pagesize = 20, $offset = 2, $url = null, $mode = false) {...}
常用方法: 列表页分页
{pages($total, $page, $pagesize, 2, $urlrule)}
- where_mintime / where_maxtime
SQL 查询辅助函数,构造 SQL 附加 WHERE 的时间语句。
函数原型:
function where_mintime($field, $mintime) {...} function where_maxtime($field, $maxtime) {...}
常用方法:
<?php $sql = "SELECT * FROM `cmstop_content` WHERE " . where_mintime('published', '2010-11-04'); // 结果类似: $sql = "SELECT * FROM `cmstop_content` WHERE published >= 1288828800"; ?>
- modelid
根据指定的模型别名得到模型ID。
函数原型:
/** * @param $alias 模型的英文别名 function modelid($alias) {...}
- username
根据用户ID获得用户名
函数原型:
/** * @param $userid 用户ID */ function username($userid) {...}
使用方法:
{content size="10" orderby="`published` DESC} <span>由 {username($r[createdby])} {if $r[iscontribute]}投稿于{else}发表于{/if} {date('Y-m-d', $r[published])}</span> {/content}
- userid
根据用户名获得用户ID
函数原型:
/** * @param $username 用户名 */ function userid($username) {...}
- space_url
根据专栏 ID 获得专栏地址。
函数原型:
/** * @param $spaceid 专栏ID,请注意不是用户ID */ function space_url($spaceid) {...}