解决dedecms UTF-8首页文章标题显示字数太短的办法
原因分析:因为UTF-8编码1个中文汉字占用的是3个字节,GBK占用的是2个字节,所以,原先$titlelen = AttDef($titlelen,30)等于对大取30个字节,所以最多只显示11个汉字。
解决方法:进入dedecms的后台,在“模板管理”中的“标签源码管理",找到arclist.lib.php ,点击“编辑”,找到“$titlelen = AttDef($titlelen,30); ”条语句,把其中的30改为60或者更大的数值即可。当然你也可以在\include\taglib 这个目录中找到arclist.lib.php,然后同样的方法修改好,再传到你的空间。
实际修改的就是下面的部分内容,标红部分的数值必须是统一的,大小根据界面显示调整就可以了
function lib_arclistDone(&$refObj, &$ctag, $typeid=0, $row=10, $col=1, $titlelen=30, $infolen=160,
$imgwidth=120, $imgheight=90, $listtype='all', $orderby='default', $keyword='',
$innertext='', $arcid=0, $idlist='', $channelid=0, $limit='', $att='', $order='desc', $subday=0, $noflag='',$tagid='', $pagesize=0, $isweight='N')
{
global $dsql,$PubFields,$cfg_keyword_like,$cfg_index_cache,$_arclistEnv,$envs,$cfg_cache_type,$cfg_digg_update;
$row = AttDef($row,10);
$titlelen = AttDef($titlelen,30);
$infolen = AttDef($infolen,160);
$imgwidth = AttDef($imgwidth,120);
$imgheight = AttDef($imgheight,120);
$listtype = AttDef($listtype,'all');
$arcid = AttDef($arcid,0);
$channelid = AttDef($channelid,0);
$orderby = AttDef($orderby,'default');
$orderWay = AttDef($order,'desc');
$subday = AttDef($subday,0);
$pagesize = AttDef($pagesize,0);
$line = $row;
$orderby = strtolower($orderby);
$keyword = trim($keyword);
$innertext = trim($innertext);