目录
回复讨论(解决方案)
首页 后端开发 php教程 论坛里有人熟悉discuz X3.1吗?怎样将主题内容完整的显示出来

论坛里有人熟悉discuz X3.1吗?怎样将主题内容完整的显示出来

Jun 23, 2016 pm 01:57 PM
discuz 内容 完整

论坛里有人熟悉discuz X3.1吗?怎样将主题内容完整的显示出来。


主题容易读出来forum_thread表就行了,但容易表forum_post里的内容不容易读出来呀。

毕竟里面含有[attach]4[/attach][img=500,666]http://pic.qiushibaike.com/system/pictures/5726/57264521/medium/app57264521.jpg[/img]

等,杂七杂八的数据。

人家官方不交流代码,只交流怎样安装。我晕倒了。只能想到CSDN来了,看看有人能不能搞定这个。


回复讨论(解决方案)

论坛里有人熟悉discuz X3.1吗?怎样将主题内容完整的显示出来。


主题容易读出来forum_thread表就行了,但容易表forum_post里的内容不容易读出来呀。

毕竟里面含有[attach]4[/attach][img=500,666]http://pic.qiushibaike.com/system/pictures/5726/57264521/medium/app57264521.jpg[/img]

等,杂七杂八的数据。

人家官方不交流代码,只交流怎样安装。我晕倒了。只能想到CSDN来了,看看有人能不能搞定这个。


人家的代码本身就含有一个这样的转换函数

@chinmo 版主

关键是我找到discuzcode()、parseattach()解析函数后,似乎没用。目前还在找原因。

@chinmo 版主

关键是我找到discuzcode()、parseattach()解析函数后,似乎没用。目前还在找原因。


晕死,你直接到他的帖子内容页去找不就知道他用的什么函数了?这还纠结什么

@chinmo

大版主呀,帖子内容应该是source\module\forum\forum_viewthread.php这个文件

可我找来找去,感觉就只有这两个函数相关。但还没有起到作用。

找了两天,晕死

@chinmo

大版主呀,帖子内容应该是source\module\forum\forum_viewthread.php这个文件

可我找来找去,感觉就只有这两个函数相关。但还没有起到作用。

找了两天,晕死


你再他模板找干嘛,DZ的他基本都是用$post这个数组保存数据的,你在他的控制器文件里输出这个数组就知道是哪个字段保存着文章内容了,然后你在在他的控制器里查找他对这个字段所用的处理函数不就可以了

做程序这点最起码的查找能力应该有的吧

@chinmo

大版主呀,我肯定不会去模板层找了,真的没有你想象的那么简单,我用的是discuz X3.1utf8版本。

帖子内容应该是source\module\forum\forum_viewthread.php这个文件

大概903行左右:
parseattach($_G['forum_attachpids'], $_G['forum_attachtags'], $postlist, $skipaids);

用来解析附件的。

大概是在1228行:
        $post['message'] = discuzcode($post['message'], $post['smileyoff'], $post['bbcodeoff'], $post['htmlon'] & 1, $_G['forum']['allowsmilies'], $forum_allowbbcode, ($_G['forum']['allowimgcode'] && $_G['setting']['showimages'] ? 1 : 0), $_G['forum']['allowhtml'], ($_G['forum']['jammer'] && $post['authorid'] != $_G['uid'] ? 1 : 0), 0, $post['authorid'], $_G['cache']['usergroups'][$post['groupid']]['allowmediacode'] && $_G['forum']['allowmediacode'], $post['pid'], $_G['setting']['lazyload'], $post['dbdateline'], $post['first']);

用来解析内容的

但不晓得为什么就是不成功。

discuzcode 就是了用的这个函数
不成功的话
最简单的排查就是在这个函数里断句输出,看看他在那里替换不成功

这样也可以找出你具体是在什么环节上弄错了

各路PHP牛人,我把代码奉上:
define('APPTYPEID', 2);
define('CURSCRIPT', 'forum');

require './source/class/class_core.php';
require './source/function/function_forum.php';

$cachelist = array();
C::app()->cachelist = $cachelist;
C::app()->init();



//$navtitle = str_replace('{bbname}', $_G['setting']['bbname'], $_G['setting']['seotitle']['forum']);
//$_G['setting']['threadhidethreshold'] = 1;


//$query = C::t('forum_thread')->fetch_all_for_guide1($view, $limittid, $tids, $_G['setting']['heatthread']['guidelimit'], $dateline); 

//$query = C::t('forum_thread')->fetch_all_search('', 'forum_thread', 0,'', '', '');;
//print_r($query);

require_once libfile('function/discuzcode');
require_once libfile('function/attachment');
require_once libfile('function/forum');
   $sql = "SELECT a.*, b.message,b.htmlon,b.bbcodeoff,b.smileyoff,b.parseurloff,b.pid,b.first FROM ".DB::table('forum_thread')." a left join ".DB::table('forum_post')." b on a.authorid=b.authorid and a.tid=b.tid and b.first=1  WHERE 1=1 AND a.heats>=1" ;
   $sql = "SELECT a.*, b.message,b.htmlon,b.bbcodeoff,b.smileyoff,b.parseurloff,b.pid,b.first FROM ".DB::table('forum_thread')." a left join ".DB::table('forum_post')." b on a.authorid=b.authorid and a.tid=b.tid and b.first=1 WHERE a.tid>0 AND a.heats>=0  ORDER BY a.lastpost DESC LIMIT 600";
  $query = DB::fetch_all($sql);
  $postlist     = array();
  foreach($query as $post){
      $post['message'] = discuzcode($post['message'], $post['smileyoff'], $post['bbcodeoff'], $post['htmlon'] & 1, $_G['forum']['allowsmilies'], $forum_allowbbcode, ($_G['forum']['allowimgcode'] && $_G['setting']['showimages'] ? 1 : 0), $_G['forum']['allowhtml'], ($_G['forum']['jammer'] && $post['authorid'] != $_G['uid'] ? 1 : 0), 0, $post['authorid'], $_G['cache']['usergroups'][$post['groupid']]['allowmediacode'] && $_G['forum']['allowmediacode'], $post['pid'], $_G['setting']['lazyload'], $post['dbdateline'], $post['first']);
      
      $_G['forum_attachpids'][] = $post['pid'];
      if(preg_match_all("/\[attach\](\d+)\[\/attach\]/i", $post['message'], $matchaids)) {
   $_G['forum_attachtags'][$post['pid']] = $matchaids[1];
      }
      $postlist[$post['pid']] = $post;
  }
    
  parseattach($_G['forum_attachpids'], $_G['forum_attachtags'], $postlist);
  
  print_r($postlist);
  
?>

死活找不到那里有问题。

形如[img=500,666]http://pic.qiushibaike.com/system/pictures/5726/57264521/medium/app57264521.jpg[/img]
这样的是 ubb 代码
你可以找到 ubb 解码程序相关的部分切入
他好像是 bbcode 类

我也是跟lz一样,找到类似函数后没法解析了。这里看来大神没空解释这个问题

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解锁Myrise中的所有内容
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

Microsoft Edge浏览器打开是360导航怎么改-更改打开是360导航的方法 Microsoft Edge浏览器打开是360导航怎么改-更改打开是360导航的方法 Mar 04, 2024 pm 01:50 PM

怎么更改MicrosoftEdge浏览器打开是360导航的页面呢?其实很简单,那么现在小编就和大家一起分享关于更改MicrosoftEdge浏览器打开是360导航页面的方法,有需要的朋友可以来看看哦,希望可以帮助到大家。打开MicrosoftEdge浏览器。我们看到是下图这种页面。点击右上角的三点图标。点击“设置”。在设置页面的左侧栏里点击“启动时”。点击右侧栏里的图中示意的三点(不要能点击“打开新标签页”),然后点击编辑,将网址改成“0”(或其他无意义的数字)。然后点击“保存”。接下来,选择“

什么是Discuz?Discuz的定义和功能介绍 什么是Discuz?Discuz的定义和功能介绍 Mar 03, 2024 am 10:33 AM

《探索Discuz:定义、功能及代码示例》随着互联网的迅猛发展,社区论坛已经成为人们获取信息、交流观点的重要平台。在众多的社区论坛系统中,Discuz作为国内较为知名的一种开源论坛软件,备受广大网站开发者和管理员的青睐。那么,什么是Discuz?它又有哪些功能,能为我们的网站提供怎样的帮助呢?本文将对Discuz进行详细介绍,并附上具体的代码示例,帮助读者更

Discuz用户必备!改名道具全面解析! Discuz用户必备!改名道具全面解析! Mar 12, 2024 pm 10:15 PM

Discuz用户必备!改名道具全面解析!在Discuz论坛中,改名功能一直备受用户关注和需求。对于一些需要改名的用户来说,通过改名道具可以轻松实现用户名的修改,而且这也是一种有趣的互动方式。下面就让我们深入探讨一下Discuz中的改名道具,包括如何获取、如何使用以及一些常见问题的解决方法。1.获取改名道具在Discuz中,改名道具通常是通过积分购买或者管理员

Cheat Engine如何设置中文?Cheat Engine设置中文方法 Cheat Engine如何设置中文?Cheat Engine设置中文方法 Mar 13, 2024 pm 04:49 PM

  CheatEngine是一款游戏编辑器,能够对游戏的内存进行编辑修改。但是它的默认语言是非中文的,对于很多小伙伴来说比较不方便,那么CheatEngine怎么设置中文呢?今天小编就给大家详细介绍一下CheatEngine设置中文的方法,希望可以帮助到你。  设置方法一  1、双击打开软件,点击左上角的“edit”。  2、接着点击下方选项列表中的“settings”。  3、在打开的窗口界面中,点击左侧栏中的“languages”

Microsoft Edge在哪设置显示下载按钮-Microsoft Edge设置显示下载按钮的方法 Microsoft Edge在哪设置显示下载按钮-Microsoft Edge设置显示下载按钮的方法 Mar 06, 2024 am 11:49 AM

大家知道MicrosoftEdge在哪设置显示下载按钮吗?下文小编就带来了MicrosoftEdge设置显示下载按钮的方法,希望对大家能够有所帮助,一起跟着小编来学习一下吧!第一步:首先打开MicrosoftEdge浏览器,单击右上角【...】标识,如下图所示。第二步:然后在弹出菜单中,单击【设置】,如下图所示。第三步:接着单击界面左侧【外观】,如下图所示。第四步:最后单击【显示下载按钮】右侧按钮,由灰变蓝即可,如下图所示。上面就是小编为大家带来的MicrosoftEdge在哪设置显示下载按钮的

Discuz注册流程详解:让您轻松修改个人信息 Discuz注册流程详解:让您轻松修改个人信息 Mar 13, 2024 pm 12:21 PM

《Discuz注册流程详解:让您轻松修改个人信息,需要具体代码示例》Discuz是一款功能强大的社区论坛程序,被广泛应用于各类网站,在用户注册和个人信息修改方面,提供了丰富的功能和接口。本文将为您详细介绍Discuz的注册流程,并提供具体的代码示例,帮助您轻松定制和修改个人信息。一、用户注册流程在Discuz中,用户注册是站点的重要功能之一,注册流程的顺畅与

Discuz域名修改步骤详解 Discuz域名修改步骤详解 Mar 11, 2024 am 11:00 AM

Discuz域名修改步骤详解,需要具体代码示例随着网站的发展和运营,有时候我们需要对Discuz论坛的域名进行修改,可能是因为更换品牌、优化网站SEO,或者其他一些原因。无论是因为什么原因,修改Discuz域名都是一个需要谨慎操作的过程,今天我们就来详细介绍修改Discuz域名的步骤,并提供具体的代码示例。步骤一:备份数据在进行域名修改之前,首先要确保对网站

解决Discuz微信分享无法显示的问题 解决Discuz微信分享无法显示的问题 Mar 09, 2024 pm 03:39 PM

标题:解决Discuz微信分享无法显示的问题,需要具体代码示例随着移动互联网的发展,微信成为了人们日常生活中不可或缺的一部分。在网站开发中,为了提升用户体验和扩大网站的曝光度,很多站点会集成微信分享功能,让用户能够方便地分享网站的内容到朋友圈或者微信群中。然而,有时候在使用Discuz等开源论坛系统时,会遇到微信分享无法显示的问题,这给用户体验带来了一定的困

See all articles