广

ECSHOP教程

  • 帝国cms教程
  • 织梦CMS教程
  • PHP CMS教程
  • ECSHOP教程
  • WordPress教程
  • Discuz教程
  • CMS学习

    修改ecshop删除解决标题后面的省略号

    2018-01-24 16:04:58 次阅读 稿源:非官媒
    零七广告

    在ecshop模板中设置了{$goods.goods_name|truncate:10:''}标题后面还是一样会跟着省略号 ... 该如何解决:

    最模板提供该ecshop教程:

    1.首先ecshop的模板引擎不完全是smarty 所以在truncate函数上是有区别的

     

    找到 cls_template.php 搜索truncate 你会发现以下代码

    case 'truncate':

    $p = 'sub_str(' . $p . ",$s[1])";

    break;

    这里的 sub_str是ec的一个自定义函数在 lib_base.php文件中的

    代码如下:

    function sub_str($str, $length = 0, $append = true)

    {

    $str = trim($str);

    $strlength = strlen($str);

    if ($length == 0 || $length >= $strlength)

    {

    return $str;

    }

    elseif ($length < 0)

    {

    $length = $strlength + $length;

    if ($length < 0)

    {

    $length = $strlength;

    }

    }

    if (function_exists('mb_substr'))

    {

    $newstr = mb_substr($str, 0, $length, EC_CHARSET);

    }

    elseif (function_exists('iconv_substr'))

    {

    $newstr = iconv_substr($str, 0, $length, EC_CHARSET);

    }

    else

    {

    //$newstr = trim_right(substr($str, 0, $length));

    $newstr = substr($str, 0, $length);

    }

    if ($append && $str != $newstr)

    {

    $newstr .= '...';

    }

    return $newstr;

    }

    其中 仔细看

    这个函数有3个参数 但是在模板引擎文件中只代了2个参数

    2. 以下提供两种方法修改:

    方法一

    找到 cls_template.php 搜索truncate

    case 'truncate':

    $p = 'sub_str(' . $p . ",$s[1],$s[2])";

    break;

    然后在你的后台清除一下缓存

    {$goods.goods_name|truncate:10:false}

    就只显示5个字 也不会出现...

    方法二 

    直接用代码删除页面显示中的省略号,找到lib_base.php中

    if ($append && $str != $newstr)

    {

    $newstr .= '...';

    }

    这样{$goods.goods_style_name}也不会显示 ... 

    这里最模板推荐大家使用第一种方法

    零七网部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与零七网进行文章共享合作。

    零七广告
    零七广告
    零七广告