请选择 进入手机版 | 继续访问电脑版
查看: 443|回复: 0

Discuz插件开发调用编辑器的方法

[复制链接]

595

主题

597

帖子

3065

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3065
发表于 2021-7-19 12:53:56 | 显示全部楼层 |阅读模式
discuz后台是一个神奇的后台,表单不是用模版写的,而且是用一堆的showsetting(),showsubmit()输出的。
前几天安装了一个积分兑换的插件,在添加兑换商品的地方碰到了小问题,商品说明,默认的textarea只能用html代码,没有可见可得的在线编辑器。同事说肯定是要有这个功能的,没有方法,赶紧GOOLE、BAIDU……搜一下午一直没有解决,看到所有输出表单都是showsetting()函数就搜了一下这个函数的用法。折腾一上午总算有效果了,下午测试修改内容的时候又碰到了问题,幸好全部搞定……

1、showtablerow()创建textarea及调用在线编译器
  1. showtablerow('', array('class="td25"', 'class="td28"'), array(
  2.     ' <textarea class="userData" name="content" id="uchome-ttHtmlEditor" style="height: 100%; width: 100%; display: none; border: 0px">'.stripslashes($showdata['detail']).'</textarea>'
  3. ));
  4. showtablerow('', array('class="td25"', 'class="td28"'), array(
  5.     " <iframe src='home.php?mod=editor&charset={CHARSET}&allowhtml=1&isportal=0' name='uchome-ifrHtmlEditor' id='uchome-ifrHtmlEditor'  scrolling='no' style='width:700px;height:400px;border:1px solid #C5C5C5;position:relative;' border=0 frameborder=0 ></iframe>",
  6. ));
复制代码

2、在提前按钮里,加上onclick事件保存编译器内容
  1. showtablerow('', array('class="td25"', 'class="td28"'), array(
  2.     "<input id='submit_editsubmit' class='btn' type='submit' value='提交'  name='editsubmit' onClick='validate(this);'>"
  3. ));
复制代码

3、编写onclick事件的JS代码(这一段是百度得来的)
  1. <script>
  2. function validate(obj) {
  3.                edit_save();
  4.             window.onbeforeunload = null;
  5.             obj.form.submit();
  6.             return false;
  7.         }
  8. </script>
  9. EOT;
复制代码

4、调用editor_function.js
  1. <script type="text/javascript" language="javascript" src="static/image/editor/editor_function.js?{VERHASH}"></script>
复制代码
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|蓄财网 ( 豫ICP备2021002293号 )

GMT+8, 2021-9-26 11:46 , Processed in 0.090190 second(s), 29 queries .

蓄财网 ©版权所有

© 2021 蓄财网(www.aixc.cn)

快速回复 返回顶部 返回列表