日期:2014-05-17  浏览次数:20419 次

smarty 列表插件显示标题长度和连接
现在在写一个站, 要在smarty 插件那里写一个列表插件,要截取标题长度。
PHP code
<?php
 function smarty_function_list($params, &$smarty)
    {
        extract($params);
        $cate = !empty($cate) ? trim($cate) : '';//表名
        $items = !empty($items) ? trim($items) : '*';//字段
        $length=!empty($length) ? trim ($length) :'10';//长度
        $where = !empty($where) ? trim($where) : '';//条件
        $order = !empty($order) ? trim($order) : '';//排序
        $page = !empty($page) ? intval($page) : 0;//分页
        $pagesize = !empty($pagesize) ? intval($pagesize) : 20;
        $varname = !empty($varname) ? trim($varname) : '';

        global $db;
        global $table;
        $sql="select $items from ".$table[$cate];
        if(!empty($where))
        {
            $sql.=" where $where ";
        }
        if(!empty($order))
        {
          $sql.=" order by $order";
        }
        $page=max($page,1);
        if($pagesize<1)
        {
            $pagesize=10;
        }
        $rs=$db->PageExecute($sql,$pagesize,$page);
        $rs=$rs->getRows();
        $smarty->assign($length,$length);
        $smarty->assign($varname, $rs);
        unset($rs);
    }
?>


上面是插件代码;
HTML code

{--list cate="articles" items="Title" length=4 varname="rs"--}
{--foreach from=$rs item=r--}
{--$r.Title--}<br/>
{--/foreach--}


上面是模板代码。
现在就是要截取标题长度,和标题连接
$r.Titletruncatecn:$length:"...":true
这种的是不行的!各位师兄,师姐谢谢了!

------解决方案--------------------
探讨

$length是哪里来的?

如果是变了的话,试下这个呢
$r.Title|truncate:`$length`:"...":true
要不就指定一个具体数字
$r.Title|truncate:30:"...":true