新聞中心
Ecshop教程:文章標題、商品名稱后的“······”如何去除
作者 / 無憂主機 時間 2015-10-26 13:17:08
無憂主機小編最近在搗鼓自己php空間的ecshop,發(fā)現(xiàn)商品標題超過后臺設置的顯示字數(shù)時,會顯示省略號。最近客戶反映商品名稱在前臺顯示出現(xiàn)省略號,這個到底能不能刪除,請問怎樣修改,才會不顯示省略號呢?即使你在模板文件里 修改為 {$goods.goods_name|truncate:10:''} ,但還是一樣會跟著省略號 ... 。又該如何刪除這個省略號呢?無憂小編在網(wǎng)上收集了一些資料。發(fā)現(xiàn)ecshop的模板引擎不完全是smarty, 所以在truncate函數(shù)上是有區(qū)別的找到 cls_template.php 搜索truncate會發(fā)現(xiàn)以下代碼:
case 'truncate': $p = 'sub_str(' . $p . ",$s[1])"; break;這里的 sub_str是ec的一個自定義函數(shù), 位置在includes/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; }其中 仔細看 這個函數(shù)有3個參數(shù) 但是在模板引擎文件中只代了2個參數(shù),那么下面幫大家處理下這個問題。以下是一種徹底的修改方法,修改完后,將永遠不再顯示 省略號 ...有一下兩種方法: 1、找到 cls_template.php 搜索truncate
case 'truncate': $p = 'sub_str(' . $p . ",$s[1],$s[2])"; break;然后在你的后臺清除一下緩存
{$goods.goods_name|truncate:10:false}就只顯示5個字 也不會出現(xiàn)... 2、直接干掉lib_base.php中的下面代碼
if ($append && $str != $newstr) { $newstr .= '...'; }這樣{$goods.goods_style_name}也不會顯示 以上兩種方法,都可以刪除掉商品名稱或文章標題后的省略號了。 無憂主機相關(guān)文章推薦閱讀: ECSHOP教程:詳細頁不同級別客戶看到不同價格 ECSHOP如何優(yōu)化重寫ECSHOP分頁GET_PAGER函數(shù) ECSHOP的RECIEVE.PHP郵件自動確認收貨BUG如何修正
本文地址:http://www.gle-technology.com/ecshop/20472.html