dx {summary} 长度更改——你Y的不听使唤我就动粗了~

5060 次阅读 by 九九 2012-09-24 | 标签:问题 PHP

dx或是dz里文章的简介默认的字符长度是80,如果你的显示地方够小的话,那看来还过得去。如果是这样的场景下:
这看起来就太不和诣了。很自然的,想到了要加这个简介内容显示长度。我的思路:    1. Google “dx {summary} 长度”。撸了一圈回来,看到了也都是问的,没有看到解决的方法,有人建议官方把这个长度换成150 :D.进到了一篇dx官方的帖子,不过只是一个bug报告,也没有给出对应的更改,及哪个版本里已经对这个东西给出了一个调整方式。最终无果~    2. 找代码里是不是有对应的配置项。仔仔细细,认认真的扫了一遍后台的管理操作,Y的就看到个“{summary}变量为文章简介”,然后什么参数也不给!最终也无果。    3. 改代码——Y的叫你不听使唤。ok,开始理源码。我的需求场景在门户的文章页,并且是用dxDIY工具来生成的Block内容块。一般这种相关的东西大多放在

source/module/portal/*

下。首先,我找到了

source/module/portal/portal_black.php
通过这个文件分析,理到了
source/function/function_block.php

在这个源码的第197行:

function block_updatecache($bid, $forceupdate=false) {
            //省略 N 行
            $titlelength	= !empty($block['param']['titlelength']) ? intval($block['param']['titlelength']) : 40;
            $summarylength	= !empty($block['param']['summarylength']) ? intval($block['param']['summarylength']) : 80;
			foreach(C::t('common_block_item_data')->fetch_all_by_bid($bid, 1, 0, $shownum * 2, $bannedids, false) as $value) {
				$value['title'] = cutstr($value['title'], $titlelength, '');
                $value['summary'] = cutstr($value['summary'], $summarylength, '');
				$value['itemtype'] = '3';
				$datalist[] = $value;
				$bannedids[] = intval($value['id']);
            }
    //省略 N 行
}

看到

 $summarylength	= !empty($block['param']['summarylength']) ? intval($block['param']['summarylength']) : 80;

当时我以为我找到答案了。可是改成:

 $summarylength	= 300;

更新缓存->刷新页面,可还是没有一点反应,照旧~继续分析....    我开始用户咱的php单步调试工具函数了:

function single_step($msg)
{
    echo $msg;
    exit;
}

经过一翻的折腾~我理到了

source/class/block/portal/block_article.php

在这个文件里面,我发现还有一个

214 $summarylength = isset($parameter['summarylength']) ? intval($parameter['summarylength']) : 80;

直接强撸:

$summarylength = 300

更新DIY缓存->刷新页面。啊哈哈~

source/class/block/block_article.php

的 第90行发现了一个对于summarylength的配置项:

array(
         ......
	'summarylength'	=> array(
		'title' => 'articlelist_summarylength',
		'type' => 'text',
		'default' => 300 //80
	)
);

改好以上几个地方,再去更新缓存,你想要的长度就可以实现。好,改完,收工。这里也有缺陷,像在DIY的工具里,到编辑数据的时候,超过了80,javascript的检测还是过不去,这个我还没有理,期待有更好的解法,欢迎交流讨论。:D


评论(1)

暂无评论!


PS:多打字可以减肥哦~234字以内。支持表情:


Top