帝国论坛帝国网站管理系统交流区帝国CMS使用交流[原创]几个小小设置可以把帝国弹窗alert支持json格式输出,不影响原版 【本版专题贴子】  
 1/5     1 2 3 4 5 ›› ›|
主题:[原创]几个小小设置可以把帝国弹窗alert支持json格式输出,不影响原版 [加入收藏夹]   

cighsen02
用户头衔:进士

精华贴   :0
发贴数   :942
经验值   :3593
注册时间:2009-09-29
信息 搜索 好友 发送悄悄话 精益求精-帝国网站管理系统7.5正式版开源发布】   [第 1 楼]
[原创]几个小小设置可以把帝国弹窗alert支持json格式输出,不影响原版
几个小小设置可以把帝国弹窗alert支持json格式输出,原来alert弹窗就不见了,不影响原版功能;

虽然这个功能自己不会用 ,看到网友经常要处理这个问题,顺手发一个。

http://bbs.phome.net/showthread-42-366066-0.html 像这个问题也可以这里解决的

1、在要输出json头部代码
-------------------------------
define('API_WORK', true);
-------------------------------

2.改造printerror和printerror2,增加一个参数$statuscode,不写的状态200
----------------------------------
/**
* cighsen02 365182575 弹窗改 json接口,还支持 404, 401等
* time: 2022.09.15
*/

//错误提示
function printerror($error="",$gotourl="",$ecms=0,$noautourl=0,$novar=0, $statuscode = 200){
        global $empire,$editor,$public_r,$ecms_config;
        if($editor==1){$a="../";}
        elseif($editor==2){$a="../../";}
        elseif($editor==3){$a="../../../";}
        else{$a="";}
        if($ecms==1||$ecms==9)
        {
                $a=ECMS_PATH.'e/data/';
        }
        if(strstr($gotourl,"(")||empty($gotourl))
        {
                if(strstr($gotourl,"(-2"))
                {
                        $gotourl_js="history.go(-2)";
                        $gotourl="javascript:history.go(-2)";
                }
                else
                {
                        $gotourl_js="history.go(-1)";
                        $gotourl="javascript:history.go(-1)";
                }
        }
        else
        {$gotourl_js="self.location.href='$gotourl';";}
        if(empty($error))
        {$error="DbError";}
        if($ecms==9)//前台弹出对话框
        {
                @include $a.LoadLang("pub/q_message.php");
                $error=empty($novar)?$qmessage_r[$error]:$error;
               
                //cighsen02 365182575
                if(defined('API_WORK') && API_WORK)        throw new Exception($error, '1' . $statuscode);
               
                echo"<script>alert('".$error."');".$gotourl_js."</script>";
                db_close();
                $empire=null;
                exit();
        }
        elseif($ecms==8)//后台弹出对话框
        {
                @include $a.LoadLang("pub/message.php");
                $error=empty($novar)?$message_r[$error]:$error;
               
                //cighsen02 365182575
                if(defined('API_WORK') && API_WORK)        throw new Exception($error, '1' . $statuscode);
               
                echo"<script>alert('".$error."');".$gotourl_js."</script>";
                db_close();
                $empire=null;
                exit();
        }
        elseif($ecms==7)//前台弹出对话框并关闭窗口
        {
                @include $a.LoadLang("pub/q_message.php");
                $error=empty($novar)?$qmessage_r[$error]:$error;
               
                //cighsen02 365182575
                if(defined('API_WORK') && API_WORK)        throw new Exception($error, '1' . $statuscode);
               
                echo"<script>alert('".$error."');window.close();</script>";
                db_close();
                $empire=null;
                exit();
        }
        elseif($ecms==6)//后台弹出对话框并关闭窗口
        {
                @include $a.LoadLang("pub/message.php");
                $error=empty($novar)?$message_r[$error]:$error;
                echo"<script>alert('".$error."');window.close();</script>";
                db_close();
                $empire=null;
                exit();
        }
        elseif($ecms==0)
        {
                @include $a.LoadLang("pub/message.php");
                $error=empty($novar)?$message_r[$error]:$error;
               
                //cighsen02 365182575
                if(defined('API_WORK') && API_WORK)        throw new Exception($error, '1' . $statuscode);
               
                @include($a."message.php");
        }
        else
        {
                @include $a.LoadLang("pub/q_message.php");
                $error=empty($novar)?$qmessage_r[$error]:$error;
               
                //cighsen02 365182575
                if(defined('API_WORK') && API_WORK)        throw new Exception($error, '1' . $statuscode);
               
                @include($a."../message/index.php");
        }
        db_close();
        $empire=null;
        exit();
}

/**
* cighsen02 365182575 弹窗改 json接口,还支持 404, 401等
* time: 2022.09.15
*/
//错误提示2:直接文字
function printerror2($error='',$gotourl='',$ecms=0,$noautourl=0, $statuscode = 200){
        global $empire,$public_r;
        if(strstr($gotourl,"(")||empty($gotourl))
        {
                if(strstr($gotourl,"(-2"))
                {
                        $gotourl_js="history.go(-2)";
                        $gotourl="javascript:history.go(-2)";
                }
                else
                {
                        $gotourl_js="history.go(-1)";
                        $gotourl="javascript:history.go(-1)";
                }
        }
        else
        {$gotourl_js="self.location.href='$gotourl';";}
        if($ecms==9)//弹出对话框
        {
                //cighsen02 365182575
                if(defined('API_WORK') && API_WORK)        throw new Exception($error, '1' . $statuscode);
               
                echo"<script>alert('".$error."');".$gotourl_js."</script>";
        }
        elseif($ecms==7)//弹出对话框并关闭窗口
        {
                //cighsen02 365182575
                if(defined('API_WORK') && API_WORK)        throw new Exception($error, '1' . $statuscode);
               
                echo"<script>alert('".$error."');window.close();</script>";
        }
        else
        {
                @include(ECMS_PATH.'e/message/index.php');
        }
        db_close();
        exit();
}
----------------------------------

3、使用自动加载功能和异常处理

以上3个步骤完成,一起来体验吧


最新更新v1.0.5版 http://bbs.phome.net/ShowThread/?threadid=366088&forumid=13&page=2#ret1286876



上传以下附件:
[下载 *.zip](文件大小:31.58 KB,下载次数:17)

[该贴被修改 5 次,最后修改时间 2023-04-20 14:52:27 ]


要上就上安心站长 www.axzz.cn q:365182575
2022-09-15 10:21:43 已设置保密 顶部 回复 引用 报告 编辑 删除

cighsen02
用户头衔:进士

精华贴   :0
发贴数   :942
经验值   :3593
注册时间:2009-09-29
信息 搜索 好友 发送悄悄话 免费开源-EBMA系统:更安全的MYSQL管理和备份系统】   [第 2 楼]

获得结果

上传以下图片:




要上就上安心站长 www.axzz.cn q:365182575
2022-09-15 10:22:22 已设置保密 顶部 回复 引用 报告 编辑 删除

cighsen02
用户头衔:进士

精华贴   :0
发贴数   :942
经验值   :3593
注册时间:2009-09-29
信息 搜索 好友 发送悄悄话 精益求精-帝国网站管理系统7.5正式版开源发布】   [第 3 楼]

设置如下

上传以下图片:




要上就上安心站长 www.axzz.cn q:365182575
2022-09-15 10:22:42 已设置保密 顶部 回复 引用 报告 编辑 删除

cighsen02
用户头衔:进士

精华贴   :0
发贴数   :942
经验值   :3593
注册时间:2009-09-29
信息 搜索 好友 发送悄悄话 免费开源-EBMA系统:更安全的MYSQL管理和备份系统】   [第 4 楼]

技巧:define('API_WORK', true);可以改为动态传入值的方式,不是新写的文件时还有必要,传一下$_GET['json'] = 1就样就可以解决了

define('API_WORK', isset($_GET['json']));

这个就可以原代码一个不动了实现功能

[该贴被修改 1 次,最后修改时间 2023-04-20 14:53:46 ]


要上就上安心站长 www.axzz.cn q:365182575
2022-09-15 10:27:46 已设置保密 顶部 回复 引用 报告 编辑 删除

zhxin
用户头衔:探花

精华贴   :0
发贴数   :3911
经验值   :10758
注册时间:2013-01-09
信息 搜索 好友 发送悄悄话 精益求精-帝国网站管理系统7.5正式版开源发布】   [第 5 楼]

支持




2022-09-16 07:08:30 已设置保密 顶部 回复 引用 报告 编辑 删除

自摸帝国
用户头衔:进士

精华贴   :1
发贴数   :1111
经验值   :4886
注册时间:2007-08-16
信息 搜索 好友 发送悄悄话 免费开源-EBMA系统:更安全的MYSQL管理和备份系统】   [第 6 楼]

支持一下



[专业建站/仿站 二次开发 插件定制!]
QQ/微信:6711729
2022-09-16 07:49:40 已设置保密 顶部 回复 引用 报告 编辑 删除

cighsen02
用户头衔:进士

精华贴   :0
发贴数   :942
经验值   :3593
注册时间:2009-09-29
信息 搜索 好友 发送悄悄话 精益求精-帝国网站管理系统7.5正式版开源发布】   [第 7 楼]

实例:

如401
printerror2('用户名格式错误', '', 0, 0, 401);

如200,返回200可以省略不写printerror2('用户名格式错误');
printerror2('用户名格式错误', '', 0, 0, 200);

{
    "code":1,
    "message":"用户名格式错误"
}

[该贴被修改 1 次,最后修改时间 2022-09-16 14:25:13 ]


要上就上安心站长 www.axzz.cn q:365182575
2022-09-16 14:24:09 已设置保密 顶部 回复 引用 报告 编辑 删除

ggqm520
用户头衔:进士

精华贴   :0
发贴数   :1131
经验值   :4935
注册时间:2010-08-15
信息 搜索 好友 发送悄悄话 免费开源-EBMA系统:更安全的MYSQL管理和备份系统】   [第 8 楼]

也算是分享!楼主的分享精神值得点赞!



www.meiweny.cn美文苑文学网 签名广告位出售中!!!!!
2022-09-16 14:41:37 已设置保密 顶部 回复 引用 报告 编辑 删除

cnnb
用户头衔:探花

精华贴   :0
发贴数   :5869
经验值   :16740
注册时间:2008-10-14
信息 搜索 好友 发送悄悄话 精益求精-帝国网站管理系统7.5正式版开源发布】   [第 9 楼]

支持下




2022-09-17 07:51:02 已设置保密 顶部 回复 引用 报告 编辑 删除

luoto
用户头衔:探花

精华贴   :0
发贴数   :5908
经验值   :17776
注册时间:2008-11-08
信息 搜索 好友 发送悄悄话 免费开源-EBMA系统:更安全的MYSQL管理和备份系统】   [第 10 楼]

支持




2022-09-18 07:24:27 已设置保密 顶部 回复 引用 报告 编辑 删除
 1/5     1 2 3 4 5 ›› ›|

快速回复
内容

表情
使用EBB代码 使用smile代码 显示签名 自动分析url 自动分析img
     【进入高级模式】   (按 Ctrl+Enter 直接提交)
    顶部  加入收藏夹
关于帝国 | 广告服务 | 联系我们 | 法律声明 | 隐私条款 | 许可协议
Powered by: EBB Version 2.2.1