Discuz X3.1 突破门户推送标题与帖子内容长度的限制

品味人生 • 发布于 2019-02-01 21:37:02

这个家伙很害羞,不想介绍自己!

Discuz的门户功能可以通过论坛的帖子快速打造一个门户站点,这是一个非常好用的功能。但是默认的程序限制标题长度为40 内容摘要长度为80。如果做成门户型页面当然是没有任何问题,但是有些情况下我们可能需要做成类似wordpress的博客形式,这时候默认的标题与摘要长度就不够了。

下面就是介绍如何通过修改源码突破这个限制。

这个修改的地方比较多。一一来找

首先找到文件:source/class/block/forum/block_forum.php 与文件:source/class/block/forum/block_thread.php

找到代码:

'titlelength' => array( 'title' => 'forumlist_titlelength', 'type' => 'text', 'default' => 40 ),

将里面的40改成100。
然后找到:

$titlelength = isset($parameter['titlelength']) ? intval($parameter['titlelength']) : 40;
将这里的40也修改成100.

两个文件修改的一样,不再重复。

然后找到文件:source/class/block/portal/block_article.php

也是修改如同上面的东西,改成一样就行。

再找到文件:source/function/function_block.php

找到代码:

$titlelength = !empty($block['param']['titlelength']) ? intval($block['param']['titlelength']) : 40;
将这里的40改为100;

找到:

if($str_template) {
$str_template = preg_replace('/title=['"]{title}['"]/', 'title="{title-title}"', $str_template);
$str_template = preg_replace('/alt=['"]{title}['"]/', 'alt="{alt-title}"', $str_template);
$rvalue[$k] .= str_replace($searcharr, $replacearr, $str_template);
$dynamicparts[$rkey[$k]] = array($rpattern[$k], $rvalue[$k]);
}

修改为:

if($str_template) {
$str_template = preg_replace('/title=['"]{title}['"]/', 'title="{title-title}"', $str_template); $str_template = preg_replace('/alt=['"]{title}['"]/', 'alt="{alt-title}"', $str_template);
$str_template = preg_replace('/{title}/', '{title-title}', $str_template);
$rvalue[$k] .= str_replace($searcharr, $replacearr, $str_template);
$dynamicparts[$rkey[$k]] = array($rpattern[$k], $rvalue[$k]);
}

再找到文件:template/default/portal/portalcp_block_itemfields.htm

找到:

<!--{eval $_titlelength = !empty($block['param']['titlelength']) ? $block['param']['titlelength'] : 40;}-->
将这里的40也改成100

好了,刷新页面,重新修改diy的推送数据吧。