xiunobbs-4.0.4 V2融合 正式版
nenge 13天前

EMM 发现很多插件各种动不动覆盖~

所以融合搁置吧! 基于群|卝||主的V2修改版

如果有任何BUG请及时反馈,

本机环境PHP7.0.0 ~ PHP8.4.1,

install.sql  低于mysql8的版本

install8.sqll 高于等于mysql8

git clone https://cnb.cool/nenge/xiunobbs-4.0.4.git
git pull
//往后此为最新版 欢迎提交修改

2025/04/21

  • 修复一些可能性错误报告,异常显示更替为全局,非管理员不显示详细错误.
  • 想想还是把编辑器全局加载吧,具体看view/htm/post.htm
  • <?=in_array($conf['editor_js'] ??'ckeditor',['ckeditor','tinymce'])?'import(new URL("'.$conf['view_url'].'js/module/editor-'.($conf['editor_js'] ??'ckeditor').'.js",location)).then(Module=>{new Module.default(jform[0]);$(".attachlist_parent>a").prop("hidden",true);$(".attachlist_parent>fieldset").prop("hidden",true);});':''?>
  • 可通过$conf['editor_js'] 进行设置,只能两个值,'ckeditor','tinymce' 否则被认为不启用.CKeditor相对tinymce更好!不至于代码直接分不清谁与谁.

2025/04/20

  • 增加上传新接口 参考如下
  • const input = document.createElement('input');
    input.type = 'file';
    input.accept = 'image/*';
    input.multiple = false;
    input.addEventListener('change', async function () {
    	const data = new FormData;
    	data.set('file',this.files[0]);//文件blob FILE
    	$.ajax({
    		url: '?attach.htm',
    		data,
    		processData: false, //不能省略
    		dataType: 'json',
    		type: 'POST',
    		beforeSend(xhr) {
    			xhr.setRequestHeader('ajax-fetch', '1');
    			xhr.setRequestHeader('content-action', 'attach/upload');
    		}
    	});
    });
    input.click();
    input.remove();
  • 同理获取当前临时附件列表
  • $.ajax({
    	url: '?attach.htm',
    	dataType: 'json',
    	type: 'POST',
    	beforeSend(xhr) {
    		xhr.setRequestHeader('ajax-fetch', '1');
    		xhr.setRequestHeader('content-action', 'attach/list');
    	}
    });
最后于 1天前 被nenge编辑 ,原因:
上传的附件:
最新回复 (24)
全部楼主
  • oliolo 版主
    12天前 2
    0
    php的版本升级,功能类插件怕会出问题。
  • geruixi
    12天前 3
    0
    上传问题有修复吗,原版上传20M以上的文件会失败,改ng/php都不行
  • juse
    12天前 4
    1
    不管怎么说,技术贴必须要支持~!!!!
  • nenge 楼主
    12天前 5
    1
    geruixi 上传问题有修复吗,原版上传20M以上的文件会失败,改ng/php都不行
    这个没改其他,
    主要修改原来的简单的路由判断为更强大的判断
    数据库操作改善(预处理)

    稍后增加一个上传接口把,方便使用tinymce等插件上传
  • Tillreetree 版主
    12天前 6
    0
    nenge 这个没改其他, 主要修改原来的简单的路由判断为更强大的判断 数据库操作改善(预处理) 稍后增加一个上传接口把,方便使用tinymce等插件上传
    最好钦定一个编辑器,不然还得是类似五代十国的感觉
  • didiaog
    11天前 7
    0
    php7+可以安装使用吗
  • 流口水的鱼
    11天前 8
    0
    这个必须顶
  • nenge 楼主
    11天前 9
    0

    TinyMce编辑器统一方案,如果你有喜欢的编辑器不妨推荐一下,目前准备增加CKEditor免费版

     

    插件hook点 不能出现任何PHP语句,要纯JS

    // hook tinymce_class.htm // hook tinymce_options.htm // hook tinymce_init.htm // hook tinymce_setup.htm // hook tinymce_end_setup.htm // hook tinymce_attach_modal.htm


    ckeditor

    最后于 4天前 被nenge编辑 ,原因:
  • nenge 楼主
    11天前 10
    0
    didiaog php7+可以安装使用吗
    7.x用建议用原版即可,
  • 木头人
    11天前 11
    0
    沙发我没有,板凳我没有,板也没有,只好站在后面排队支持! 
  • xx123456
    10天前 12
    0
    感谢楼主ing!!!
  • geruixi
    8天前 13
    0
    线上模式无法用,管理员发帖都发不了,提示没权限,实际上有权限的、线上模式语言包都读取不了。
  • nenge 楼主
    8天前 14
    0
    geruixi 线上模式无法用,管理员发帖都发不了,提示没权限,实际上有权限的、线上模式语言包都读取不了。
    清空缓存看看,我猜大概率是用户组信息没加载,导致权限异常。说一下你的服务器环境。
  • nenge 楼主
    8天前 15
    0
    geruixi 线上模式无法用,管理员发帖都发不了,提示没权限,实际上有权限的、线上模式语言包都读取不了。
    看一下logo里的db error有哪些错误
  • geruixi
    8天前 16
    0
    nenge 清空缓存看看,我猜大概率是用户组信息没加载,导致权限异常。说一下你的服务器环境。
    PHP8.2
  • nenge 楼主
    8天前 17
    0
    geruixi PHP8.2
    关闭DEBUG会使用 xiunophp.min.php 这个聚合文件,可能是导致异常原因,稍后更新删掉,避免加载错误
  • geruixi
    8天前 18
    1
    安装后,登陆提示密码错误。注册时提示加密后长度有问题
  • nenge 楼主
    8天前 19
    0
    geruixi 安装后,登陆提示密码错误。注册时提示加密后长度有问题
    下载最新版覆盖重试,之前覆盖不彻底(new_cache发生错误),导致存在安装时,管理员帐号没有正确写入
  • geruixi
    8天前 20
    0
    1.安装是没有插入默认版块,导致后台新建不了版块
    2.安装时新建帐号还是有问题,密码混乱字段是明文密码,导致管理帐号无法登陆,提示密码错误
    3.无法上传文件。
    4.发帖页加载编辑器有点慢。
    5.插件后台识别插件封面的路径有问题,安装插件后设置按钮没显示。

  • nenge 楼主
    8天前 21
    0
    geruixi 1.安装是没有插入默认版块,导致后台新建不了版块 2.安装时新建帐号还是有问题,密码混乱字段是明文密码,导致管理帐号无法登陆,提示密码错误 3.无法上传文件。 4.发帖页加载编辑器有点慢。 5 ...
    你可以把自己子域名指向本地(127.0.0.1)这样本地就能https,缓存就会生效,编辑器加载速度瞬间打开。
    文件不能上传可能是权限问题。
    后台插件路径问题稍后修复。
  • nenge 楼主
    6天前 22
    0

    具体出来请看 /xiunophp/class/plugin.php

     

    输出一个变量,或函数值

    <!--{{ $a }}--> 等价于<?=$a?>

    <!--{{ \date() }}--> 要带反斜杠\ 不然会被认为执行 <?=MyApp::app->date()?>

    <!--{{ plugin::site('abc/icon.png') }}->  等价于 网站目录/plugin/abc/icon.png

    ------

    <!--{echo $aa}-->  等价于 <?=$a??''?> 因此不确定值可以用echo

    <!--{each $a $b $c}-->  等价于 <?php foreach($a as $b=>$c): ?>

    <!--{/each}--> 等价于 <?php endforeach; ?> 两者必须组合使用

     

    <!--{if $a}--> 等价于 <?php if($a): ?>

    <!--{elseif $a}--> 等价于 <?php elseif($a): ?>

    <!--{/if}--> 等价于 <?php endif; ?> if条件结束必须用它闭合

    上面的标签均可以省略 <!-- -->

     

    <!---{template(APP_PATH.'view/htm/xxx.htm)}--> 等价于原来的 include 模板 <!-- -->不能省略

     

    特定变量

    MyApp::conf('xxx') 读取conf中的变量

    MyApp::data('xxx') 读取data中的变量

    MyApp::value('xxx') 读取路由分析内容的变量 例如url为当前地址,0等于/forum-1 中的 1,module等于forum

    MyApp::url('xxx') 是根据当前脚本生成URL 首页是index?xxx.html 后台则是 admin/index.php?xxx.html

    如果后台中想返回首页则用 MyApp::topurl('xxx')

    MyApp::js('xxx.js') 读取js文件WEB地址

    MyApp::css('xxx.css') 读取css文件WEB地址

    MyApp::scss('scss文件绝对地址') 生成scss文件WEB地址,可以使用第二个参数作为文件保存位置,否则被保存至view/css/文件夹中!

    MyApp::scss('scss文件绝对地址') 生成的是<link ....> 可以直接模板中使用

    MyApp::site('xxx') 返回当前网站WEB目录

    MyApp::path('xxx') 返回网站根目录物理地址

    MyApp::view_site('') 如果后设置 view_site是网址,那么他就会使用该地址替代 MyApp::site('view/')

    MyApp::upload_site('')同理,就是让别人以为你网站是储存分离了

    \lib\html::getText($html) 可以获取HTML文本中纯文本

    \lib\html::parse() 方法则是格式化html剔除可能存在的危险脚本,
     
    MyDB::t('user')->xxx 是替代原来的db_xxx等操作, 具体看VScode的代码提示
    使用预处理查询,可以避免SQL注入,它有两个驱动 mysqli(推荐)
    PDO尽管也是预处理但是它底层并不是,因此使用SQL分析的时候它会暴露查询信息
     
    model\tpl::xxx 是一些表单组件 不过设计的时候是用在5.3的
     
    新的JS可以通用处理一些AJAX请求,无需在页面中增加额外JS代码
    例如 onget="true" onpost="true" 放在需要发送AJAX请求的HTML元素属性中即可
    至于复杂的请求可以先注册
    X.ajaxs.set('xxx',func) 那么onget='xxx' 即可,需要动态添加可以在模板输出之前使用 $GLOBALS['importjs]['xx'] = '你的脚本地址';
    最后于 6天前 被nenge编辑 ,原因:
  • caitianzhihot
    2天前 23
    0
    不错的帖子!
  • daxiaowang
    1天前 24
    0
    楼主,我只是来混个熟的!老板,侬亿雷凑闹嫩了!
  • daxiaowang
    1天前 25
    0
    顶顶顶顶顶顶顶!!!
返回
nenge
一级用户组
9
主题数
24
帖子数
扫码访问