用户信息
帖子内容
1 楼
ryu8023
注册会员
积分 280
注册 2009-08-10
     
[请教]既然网站使用tiny_mce编辑器,那么论坛怎么打开?

目前网站已经使用TinyMCE编辑器3.4.2版,据说可以升级到3.5.8(未实测),3.x.x网上能下载的3.5.11(未实测),官方网站的好像是最新5.1(好像完全不一样了)。


那么可能TinyMCE3.4.1或3.4.2目前是JTBC最兼容的版本(不过JTBC现在这个论坛编辑器兼容性很差,只支持最新版浏览器),为什么还要去下载UBBEditor?(https://www.jtbc.cn/forum/detail-17065.html,UBBEditor那个网址下载也不对。)


有谁知道,论坛如何直接使用JTBC原生的TinyMCE编辑器?而不重新更换双编辑器(文章TinyMCE和论坛UBBEditor),只使用TinyMCE如何实现?

2020-04-14 15:27:28
2 楼
ryu8023
注册会员
积分 280
注册 2009-08-10
     
回复: [请教]既然网站使用tiny_mce编辑器,那么论坛怎么打开?

坚持用TinyMCE编辑器,也不知道是3.0.9,还是多少版本,反正就是3,是JTBC自带的,又或几次改版或有升级过忘了,UBBEditor官网挂了,所以下载不到最初的,也不知道正确与否。


论坛模板:topic_release(发布新贴页面)、topic_detail(帖子显示页面)、topic_edit(编辑帖子页面)


能成功替换论坛的编辑器,但问题来了:编辑器里输入一切正常,但是发帖后,detail页面(forum/?type=detail&sid=4&tid=5),直接显示<p>、<img>等HTML标签。


{$content}没有正确将html编码执行,是不是就是所谓的防止html直接被执行?


比较复杂,不能这么想,回到原点,这个{$content}是通过forum/common/incfiles/module_config.asp的函数调用的数据,那么这里应该有格式化:


tmptstr = Replace(tmptstr, "{$content}",encode_forum_content(get_str(get_forum_content(rs(cfnames(tftopic_nfpre, "content_database")) , get_num(rs(tftopic_nidfield), 0))), get_num(rs(cfnames(tftopic_nfpre, "ubb")), 0)))

改成

tmptstr = Replace(tmptstr, "{$content}",encode_content(get_str(get_forum_content(rs(cfnames(tftopic_nfpre, "content_database")) , get_num(rs(tftopic_nidfield), 0))), get_num(rs(cfnames(tftopic_nfpre, "ubb")), 0)))

格式化是通过encode_forum_content将原本数据库里的<p>、<img>等HTML标签转变为了&实体,只要不转码,那么就应该对了,所以encode_forum_content改成encode_content,试试。


搞定,topic_release、topic_detail比较好搞定,现在就是topic_edit出问题了,编辑器是显示了,不过:{$=html_content("content","","")} 只显示编辑器,不显示需要编辑的帖子内容,去仿照后台管理页面中的编辑器显示方法:{$=html_content("content","rsvle("content")","{$cttype}")},可惜,编辑器被这个代码直接屏蔽,也试了{$=html_content("content","content","")},倒是能正确显示,不过第二个content被直接写入了编辑框内了,而没有把数据调出来,而{$=html_content("content","{$content}","")} 则无效。


大家有什么好方法不,如何{$=html_content("content","这里应该加什么函数把编辑内容加载进来?","")},欢迎解答,谢谢!

2020-04-28 12:31:22
3 楼
shadoweb
钻石会员
积分 1384
注册 2014-11-27
     
回复: [请教]既然网站使用tiny_mce编辑器,那么论坛怎么打开?

asp的好多年没用过了。

上来帮你分析一下

在模板中

添加内容时

{$=html_content("content","","")}

编辑内容时

{$=html_content("content",rsvle("content"),{$cttype})}


然后你可以去找函数html_content

位置在common\incfiles\common.asp中

Function html_content(ByVal hname, ByVal hvalue, ByVal htype)

有三个参数

第一个ByVal hname是存储的字段名称

第二个ByVal hvalue是编辑器加载的内容

第三个ByVal htype是编辑器类型。


在函数html_content中ByVal htype为空或为0时,都是加载html编辑器

Case 0

      tmpstr = itake("global.tpl_admin.content_htmledit", "tpl")


    Case Else

      tmpstr = itake("global.tpl_admin.content_htmledit", "tpl")


而这个编辑器的模板位置从global.tpl_admin.content_htmledit可以看出。

是在common\template\tpl_admin.jtbc中的content_htmledit节点


如果你要更换编辑器,就需要在这个模板里更换新编辑器代码






本帖由 shadoweb 于 2020-04-28 14:36:48 编辑过
2020-04-28 14:27:18 承接JTBC二次开发,建站仿站 www.wdja.net QQ 925474725
4 楼
shadoweb
钻石会员
积分 1384
注册 2014-11-27
     
回复: [请教]既然网站使用tiny_mce编辑器,那么论坛怎么打开?

接上面的内容

像论坛默认的是UBB编辑器

在函数html_content中ByVal htype为1时调用的为UBB编辑器


    Case 1

      tmpstr = itake("global.tpl_admin.content_ubbcode", "tpl")


如果你要更换为html编辑器,可以修改论坛中的代码或者修改这个函数也一样。


更换为tinymce编辑器的方法,你可以参考这个

https://github.com/shadoweb/wdja/blob/master/php/common/template/default/tpl_admin.wdja

找到content_htmledit节点

整理到asp版jtbc中

请看上个回复中的介绍(

而这个编辑器的模板位置从global.tpl_admin.content_htmledit可以看出。

是在common\template\tpl_admin.jtbc中的content_htmledit节点



同时要上传编辑器文件

https://github.com/shadoweb/wdja/tree/master/php/common/editor/tinymce


2020-04-28 14:42:28 承接JTBC二次开发,建站仿站 www.wdja.net QQ 925474725
5 楼
shadoweb
钻石会员
积分 1384
注册 2014-11-27
     
回复: [请教]既然网站使用tiny_mce编辑器,那么论坛怎么打开?

另外,asp版jtbc是用textarea来处理内容的,所以要替换编辑器,请找对应位置进行替换处理。

2020-04-28 14:45:50 承接JTBC二次开发,建站仿站 www.wdja.net QQ 925474725
6 楼
ryu8023
注册会员
积分 280
注册 2009-08-10
     
回复: [请教]既然网站使用tiny_mce编辑器,那么论坛怎么打开?

编辑内容时

{$=html_content("content",rsvle("content"),{$cttype})}


这个之前就试过了,直接导致编辑器不显示了,直接输出这段代码。


现在编辑器是正常的,主要就是加载有问题,rsvle("content")无法输出,也就是说这个rsvle("content")要怎么改?

2020-04-28 17:39:47
7 楼
ryu8023
注册会员
积分 280
注册 2009-08-10
     
回复: [请教]既然网站使用tiny_mce编辑器,那么论坛怎么打开?

函数content_htmledit我之前生成了2个。


1:global.tpl_admin     也就是.tpl.tpl_admin

Case 0

      tmpstr = itake("global.tpl_admin.content_htmledit", "tpl")


2:global.tpl_common 也就是.tpl.tpl_common

Case 0

      tmpstr = itake("global.tpl_common.content_htmledit", "tpl")


html_content用的是全局的common\incfiles\common.asp

    Case 0

      tmpstr = itake("global.tpl_admin.content_htmledit", "tpl")

    Case 1

      tmpstr = itake("global.tpl_admin.content_ubbcode", "tpl")

    Case 2

      tmpstr = itake("global.tpl_admin.content_text", "tpl")

    Case Else

      tmpstr = itake("global.tpl_admin.content_htmledit", "tpl")

调用的是admin的,而这里论坛是外部的,是不是因为有限制了?记录下来做参看,继续研究{$=html_content("content","这里应该加什么函数把编辑内容加载进来?","")} 该怎么写。

2020-05-12 14:34:38
8 楼
iholyangel
钻石会员
积分 286
注册 2010-09-22
     
回复: [请教]既然网站使用tiny_mce编辑器,那么论坛怎么打开?

现在能用论坛?

2020-06-17 21:27:28 http://www.deftcom.com/杭州抖音推广http://www.ipnshow.com/杭州抖音http://www.kopars.com/口罩机器http://www.doctorhr.com/泰国留学http://www.duiceng.com/南京建站http://www.awool.com/杭州抖音http://www.rightcad.com/口罩机http://www.guanglinggroup.com/河海环境http://www.hohaiaes.com/