晓夏

小皇

教育信息化方案砖家

ZBLOG PHP版本 草稿自动保存功能代码

浏览量:1671

zblog有一相关功能叫做“状态”-“草稿”。这个的一个功能可以临时保存下文章,勾选点击完毕后,界面会跳转到文章管理列表的页面。这个其实就是一个手动保存的办法,这也的确能解决一部分忘我码字人的困扰,但点“草稿”提供完毕就提供跳出文章编辑界面的做法,我感觉是不可取的


官方的论坛版主 柠檬 已经给出了代码,直接修改的源代码,完整的代码我就不贴了,贴出主要代码吧,自己稍微修改修改就行了~,如下:


zb_system/admin/edit.php  异步提交文章数据js函数

/*****************************/
function autosave(){//异步提交文章数据
        //ajax Begin
        $.post('../cmd.php?act=ArticlePst&autosave=1', //act=ArticlePst页面会跳转,所以带一个参数过去作为标记判断
                {
                "isajax":true,
                "ID":$("#edtID").val(),
                "CateID":$("#cmbCateID").val(),
                "AuthorID":$("#cmbUser").val(),
                "Tag":$("#edtTag").val(),
                "Status":1,//设定为草稿
                "Type":$("#edtType").val(),
                "Alias":$("#edtAlias").val(),
                //后台貌似会检测IsTop的权限,这里可能需要处理,免得因为IsTop没权限导致拒绝入库
                "IsTop":$("#edtIstop").val(),
                "IsLock":$("#edtIslock").val(),
                "Title":$("#edtTitle").val(),
                "Intro":$("#editor_intro").val(),
                //ZB在此页对正文内容是否为空检测不是很严格,仅作前台检测,后台无检测,所以这里可以省掉内容为空情况的处理
                "Content":editor_api.editor.content.get(),
                "PostTime":$("#edtDateTime").val(),
                "Template":$("#cmbTemplate").val()
                },
                //data取回来的是文章入库的ID,下次自动保存的时候,需要凭借此ID判断是新发布的草稿,还是覆盖旧的草稿
                function(data){
                        //alert(data); otherCode bulabula.....
                }
        );//ajax End
}
/****************************/



zb_system/function/c_system_event.php   大约1030行的 PostArticle()函数末尾

      
        /********记下文章入库的ID,供自动保存的Ajax取回去使用********/
        echo $article->ID;  
        /**********************/
        return true;


zb_system/cmd.php  大约84行

case 'ArticlePst':
                PostArticle();
                $zbp->BuildModule();
                if($_GET['autosave']!=1){//是autosave的话,就不要执行下面的页面跳转,因为Ajax要取回此页的文章ID
                        $zbp->SetHint('good');
                        Redirect('cmd.php?act=ArticleMng');
                }
                break;


神回复

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。