删除ECSHOP商品名称或文章标题后的省略号...-站长杂谈下载

删除ECSHOP商品名称或文章标题后的省略号...

开通本站Svip会员,全站资源免费下
使用ECSHOP 的人都知道,在商品列表页或文章列表页,如果商品名称或文章标题比较长的话,后面会出现一个 省略号 ...,. Z% @' i9 X2 C9 g! p
即使你在模板文件里 修改为 {$goods.goods_name|truncate:10:''} ,标题后面还是一样会跟着省略号 ... ,这到底是为什么呢?& y7 C) ^3 Z' [" z
又该如何删除这个省略号呢???
: ]0 U5 E: r) Y4 d- }8 }- k. E2 x! {) y. V$ d/ `
最近发现 ec的模板引擎不完全是smarty, 所以在truncate函数上是有区别的
4 E, @- f/ M- f# b# r. ^8 |/ R, `( i% S8 T- U* W
找到 cls_template.php 搜索truncate 你会发现以下代码- K, |; ?1 h' P1 ^$ r2 H: r
case 'truncate':3 D! H1 w+ F  r' x
$p = 'sub_str(' . $p . ",$s[1])";+ Q" j$ Q, Q6 L( [6 c/ }$ [9 G; f
break;
/ J) R7 z! }) m: Y, V% m4 I" U! C6 q+ Z; g' Z! n
这里的 sub_str是ec的一个自定义函数, 位置在 lib_base.php文件
8 ?- G( ~+ j( q% E2 N0 U2 i代码如下:  A  ^( x& U6 x% |
function sub_str($str, $length = 0, $append = true)  O0 i3 U  ^5 ?
{6 [! s2 b+ D8 P# \
$str = trim($str);* y; D9 Q$ ^  k2 R
$strlength = strlen($str);. a' g$ J2 I7 m: \9 M. J, l
if ($length == 0 || $length >= $strlength)
6 f# D% b& G7 E8 U) }5 o{
" R- k6 V- g$ {- o4 E       return $str;8 I. ^# b" g1 H
}
  U% J4 Y. m/ ~" _" Zelseif ($length < 0)
* j. i& c- T4 X% ^{
; g- S% Y1 ~2 J4 L       $length = $strlength + $length;/ l+ d3 ?* A% o
       if ($length < 0)
1 a/ b( L7 P) B0 w( v* R' u" Z       {2 \, p1 t! @7 o, m! z, R
         $length = $strlength;
! u  g' a1 G' x! ~' g; C! \       }
5 P  ^, v* R' v& K) U. q' M}% ?, I4 K) o9 y' S; m2 `
if (function_exists('mb_substr'))
5 e, U; ^/ I* m{
: Q3 Q& z9 k8 ~3 ?5 `       $newstr = mb_substr($str, 0, $length, EC_CHARSET);) P6 q% J3 o1 Q. N' A
}
" Q. k0 x" X7 telseif (function_exists('iconv_substr'))& b, E; p0 n3 `  Y0 E. n
{* {. S) I& Z+ ?( S6 f
       $newstr = iconv_substr($str, 0, $length, EC_CHARSET);
4 }, A+ w0 |* n- e# s( y$ t5 P- H}$ v8 s0 l4 @0 V7 ?9 U1 |7 N7 L
else: q8 {/ R3 e$ _* F) x, N
{; e8 j4 `+ y' k
       //$newstr = trim_right(substr($str, 0, $length));
) R/ f+ S7 ~3 g- x% ^0 e       $newstr = substr($str, 0, $length);
: [: F/ Q3 h5 f0 I8 J" T}
% q( ?5 B3 \& F  f' ^if ($append && $str != $newstr)+ b# o; B, k1 ^# O) S, v  A9 s
{1 `7 g0 I- O. A- `8 u# X5 V7 H' T
       $newstr .= '...';: B. |) H! l2 |' t. L% D2 n% Z
}' E- l2 n5 U9 p3 w+ x
return $newstr;
5 B0 W. y4 X9 {/ c0 Q4 V}# B$ X, x- K$ {# N7 r% D4 c
其中 仔细看9 t% P, }5 K/ O9 D6 V3 e
这个函数有3个参数 但是在模板引擎文件中只代了2个参数' i1 l  b# J8 A9 m( o1 {
6 z( d; }  n' L) o( c: T1 ^6 w  T
方法一
3 w% ]! n+ @: X' R2 i# y, x找到 cls_template.php 搜索truncate
) N# g$ Y& Z4 n+ K9 n" tcase 'truncate':% C4 M8 L  A, F4 |  `0 N/ |5 G; Q5 i
$p = 'sub_str(' . $p . ",$s[1],$s[2])";8 c9 a" S7 ~6 C' u& b) b
break;
& Y1 L4 @* w4 \
0 q# w: w" l' D) g然后在你的后台清除一下缓存
, a5 ?+ F, h7 h  u$ I2 S{$goods.goods_name|truncate:10:false}
& l( T9 n5 B# Z& Y就只显示5个字 也不会出现...& a7 Y# V  s6 v3 O7 m2 f

4 Y$ a" x; B2 m# A
$ L% M5 n6 A& w
9 w2 c5 ^" q' c) V5 H方法二 3 w5 q# i0 V) p! n
直接干掉lib_base.php中的下面代码' S5 c# T5 u) g" ?  W7 G
  v' w  l% A3 l! E! S6 r! t# I
if ($append && $str != $newstr)' m) B) h* g( V0 |: B
{
3 U. p$ j+ P/ D7 U) K4 U1 h5 l4 A       $newstr .= '...';# W: _- z  b+ y2 X7 u. `
}
8 L/ o: I* f% c7 a; }# Y
0 I# G3 H8 I. B0 }* {( d. E' c4 X% e* a1 j, h/ M
这样{$goods.goods_style_name}也不会显示7 X& |% ]; l4 x$ q' s& e9 R

" U6 U8 n0 n; e以上两种方法,都可以删除掉商品名称或文章标题后的省略号
5 c2 ?6 z" f! N/ e' U

全部评论 0

您需要登录后才可以回帖 立即登录
登录
0
0
0
返回顶部