【问题标题】:Redirect Page into Edit Mode in DNN 7在 DNN 7 中将页面重定向到编辑模式
【发布时间】:2015-08-10 20:54:12
【问题描述】:

我正在尝试解决 Ventrian 新闻文章模块中不受欢迎的功能。问题是该模块允许经过身份验证的用户加载选项来编辑文章,但富文本编辑器不会启用,除非页面处于编辑模式。我可以修改用户点击编辑文章的编辑链接,所以我寻找一种方法来设置编辑链接以默认以编辑模式加载文章编辑页面。有什么建议么?提前致谢。

【问题讨论】:

    标签: dotnetnuke dotnetnuke-module dotnetnuke-7


    【解决方案1】:

    您可能需要重新创建调用以使用户进入编辑模式 /resources/shared/scripts/dnn.controlBar.js

    当单击“编辑”按钮时,该代码看起来会执行以下操作

    $('a#ControlBar_EditPage').click(function () {
        var service = dnn.controlBar.getService();
        var serviceUrl = dnn.controlBar.getServiceUrl(service);
        var mode = currentUserMode === 'EDIT' ? 'VIEW' : 'EDIT';
        $.ajax({
            url: serviceUrl + 'ToggleUserMode',
            type: 'POST',
            data: { UserMode: mode },
            beforeSend: service.setModuleHeaders,
            success: function () {
                if( mode === 'VIEW') dnn.dom.setCookie('StayInEditMode', 'NO', '', dnn.controlBar.getSiteRoot());
                window.location.href = window.location.href.split('#')[0];
            },
            error: function (xhr) {
                dnn.controlBar.responseError(xhr);
            }
        });
        return false;
    });
    

    如何最好地做到这一点?我不知道。可能在页面上放置一个模块来拦截查询字符串参数(类似于 ?editMode=true)。如果模块看到该参数,则触发一个客户端事件,该事件将执行 javascript 示例所做的操作,发布到 serviceUrl/ToggleUserMode 并在那里设置模式。

    克里斯

    【讨论】:

    • 感谢克里斯的这个非常直观的回答。我很抱歉花了这么长时间才回到这个问题上。在您回复之前,我创建了一个由按钮触发的 jquery 警报功能,以通知用户他们需要启用编辑模式,因此我没有实施您的解决方案,尽管我认为它会非常有效地完成我的要求。我将此标记为答案,因为您比我的“解决方法”更准确地回答了我的确切问题。以后有空的时候我可能会尝试实现它。
    猜你喜欢
    • 1970-01-01
    • 2018-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多