首页 > 其他分享 >易优cms目录名称与系统内置冲突,去掉限制方法详解!

易优cms目录名称与系统内置冲突,去掉限制方法详解!

时间:2024-08-17 15:16:06浏览次数:13  
标签:rand 易优 get arctype 详解 post dirname cms 目录

第一步,屏蔽检测文件

文件位置: \application\admin\controller\Arctype.php

找到代码病注释掉

				if (!empty($post['dirname']) && !$this->arctypeLogic->dirname_unique($post['dirname'], $post['id'])) {
                    $arctype_is_del = Db::name('arctype')->where(['dirname'=>$post['dirname'], 'lang'=>$this->admin_lang])->value('is_del');
                    if (empty($arctype_is_del)) {
                        $this->error('目录名称与系统内置冲突,请更改!');
                    } else {
                        $this->error('目录名称与回收站里的栏目冲突,请更改!');
                    }
                }

第二步, 虽然现取消了重复检测, 但如果提交重复路径, 系统会随机加3个数字,继续修改

文件位置: \application\common\logic\ArctypeLogic.php

找到代码并注释掉

        if (strval(intval($dirname)) == strval($dirname)) {
            if (preg_match('/^([0-9]+)$/i', $dirname)) {
                $dirname .= get_rand_str(3,0,0);
            } else {
                $dirname .= get_rand_str(3,0,2);
            }
        }
        $dirname = preg_replace('/(\s)+/', '_', $dirname);
        if (!$this->dirname_unique($dirname, $id, $newDirnameArr)) {
            $nowDirname = $dirname.get_rand_str(3,0,2);
            return $this->get_dirname($typename, $nowDirname, $id, $newDirnameArr);
        }

第三步, 截止目录可以正常提交了, 但会报数据库错误。 

这一步, 需要进入数据库管理, 执行sql语句。 

alter table ey_arctype drop index dirname

执行结束后,就可以提交重复的目录名称了。

标签:rand,易优,get,arctype,详解,post,dirname,cms,目录
From: https://www.cnblogs.com/hwrex/p/18364437

相关文章

  • UART 通信协议详解
    目录一、概述二、UART详解1、数据通信的基本概念1.1数据通信方式1.2数据传输方向1.3数据同步方式1.4通信速率2、UART协议2.1串口连接2.2串口协议帧一、概述UART(UniversalAsynchronousReceiver/Transmitter,通用异步收发器)是一种常用的串行通信协议,......
  • SPI 通信协议详解
    目录一、概述二、SPI详解1、基本信息1.1SPI的引脚信息1.2SPI的工作原理1.3SPI的传输方式2、SPI的工作原理3、SPI的工作模式3.1SPI时序基本单元3.2CPOL和CPHA3.3四种工作模式3.3.1工作模式03.3.2工作模式13.3.3工作模式23.3.4工作模式3一......
  • C++多线程详解 | 线程创建 | 互斥锁 | 条件变量 | 线程池
    目录前言1.线程创建2.互斥锁3.lock_guard与std::unique_lock4.condition_variable 5.线程池前言在说线程之前,先说说进程和线程的关系,以及什么是多线程(为了方便理解就用大白话来说)进程:进程就是运行中的程序,比如说一个微信的程序,你双击它,它运行起来了就是一个进程,在还......
  • C++ 模版详解 | 函数模板 | 类模版
    前言 什么是模板?模板是一个泛型编程的概念,即不考虑类型的一种编程方式,能够实现代码重用,提高效率模板可分为函数模板、类模板 模板的声明和定义模板的声明有两种,一种就是typename,另外一种就是使用class ,一般使用一种声明格式就可以了,不建议混合使用。template<typenam......
  • 专题1:树莓派Pico引脚功能详解
    1主要功能RaspberryPiPico一共有40个针脚。这是RaspberryPiPico官方提供的引脚图,应该有很多人看到上面的图标都是两眼一摸黑,接下来,我将从每种颜色分类来讲述每个引脚的功能2Power类引脚Power,顾名思义就是电源的意思。这种引脚一共有三个,Power类引脚是为接到Pico上......
  • 注解反射详解
    注解反射注解1.注解概述//什么是注解publicclassTest01extendsObject{//@Override重写的注解@OverridepublicStringtoString(){returnsuper.toString();}}2.内置注解//什么是注解@SuppressWarnings("all")//镇压警告publi......
  • Winform C#多显示器窗口控制详解
    写Winform程序的时候,有将一个窗口放置到特定的显示器,并且全屏的需求。于是借此机会,好好研究了一番这个Screen类[1],总结了一些方法。Windows的窗口逻辑首先我们需要知道窗口定位的逻辑。以2个窗口为例,下面的图片展示了显示器和坐标的对应关系。注意,使用深色模式可能看不清,可以点......
  • Git 高级用法详解
    文章目录Git高级用法详解标签管理1.1创建标签1.2查看标签1.3推送标签变基操作(Rebase)2.1变基的基本操作2.2处理变基时的冲突2.3交互变基解决冲突3.1合并冲突3.2变基冲突撤销更改4.1撤销未提交的更改4.2撤回已提交的更改4.3重置分支与远程仓库交互5.1添加......
  • C++编程:内存栅栏(Memory Barrier)详解及在多线程编程中的应用
    文章目录0.引言1.什么是内存栅栏?2.为什么需要内存栅栏?本质原因是什么?2.1编译器优化2.2CPU乱序执行3.ARM64和x86架构下的内存栅栏差异3.1x86架构3.2ARM64架构4.代码示例4.1代码解析4.2memory_order_release和memory_order_acquire解释4.3为什么是“releas......
  • PbootCMS依次输出指定分组的幻灯片图片
    适用范围:全站任意地方均可使用标签作用:用于依次输出指定分组的幻灯片图片1、幻灯片轮播图列表{pboot:slidegid=*num=*}<imgsrc="[slide:src]">{/pboot:slide}控制参数:gid=*分组,必填,用于控制需要输出的幻灯片分组num=*数量,非必填,用于控制需要输出的数量,默认为5个2、可......