【问题标题】:Kentico 9 and Publish buttonKentico 9 和发布按钮
【发布时间】:2016-10-05 02:02:31
【问题描述】:

在 Visual Studio 2015 中,我为 Kentico 9 项目创建了一个自定义 Web 部件,该部件放置在主页上。它有一个 Page_PreRender 方法,并检查紧急页面的日期和时间与当前日期和时间,如果时间戳有差异并且时间戳的差异在当前时间的 24 小时内紧急图标会一直闪烁,直到 24 小时期限结束,或者他们再次单击“保存”按钮去更新紧急页面。我还有一个计数器来检查单击“保存”按钮的次数。上述数据是从数据库中查询到的,因为单击“保存”按钮时会保存时间戳等。一键保存紧急页面,紧急图标开始闪烁。如果您再次单击保存按钮(第二次),它会切换紧急图标的闪烁。如果紧急页面内容已更改,但没有真正/即时的紧急情况需要闪烁的紧急图标以提醒用户注意,则这是必要的。

当我们没有为 Kentico 制定工作流程时,上述方法有效。由于添加了工作流并且有一个发布/拒绝按钮。单击“发布”按钮会使紧急图标闪烁,最终您将陷入“保存”按钮和“发布”按钮之间的战斗。我可以关闭紧急页面的工作流程,但想看看是否有办法检查是否点击了发布按钮。

我的问题是如何在 if 条件下使用 Kentico 按钮保存/发布/拒绝等检查 Page_PreRender 方法中单击了哪个按钮?

【问题讨论】:

    标签: c# kentico


    【解决方案1】:

    这里有几个选项:

    1. 在工作流中配置自动发布
    2. 为此特定页面实施单独的工作流程,无需批准

    要回答有关如何检查单击了哪个按钮的问题 - 检查文档当前是否已发布:

    已发布意味着发布按钮已被点击,否则 - 保存

    【讨论】:

    • 好的,谢谢您的回复。我将查看您检查页面/文档是否处于发布状态的第三个选项。对于选项 1,我不希望自动发布,对于选项 2,我说过我可以(关闭/排除)紧急页面中的工作流程,但想看看是否有办法检查是否单击了“发布”按钮。
    • 谢谢罗曼。使用数据库中的 DocumentWorkflowStepID 来查看文档是处于 Save 还是 Publish 状态。
    【解决方案2】:

    您可以绑定publish event 以告知文档何时发布:

     public class CustomWorkflowEventsAttribute : CMSLoaderAttribute
    {
        public override void Init()
        {
            WorkflowEvents.Publish.Before += PublishDocument;
        }
    

    只是一个建议,也许根据文档的最后发布版本只让图标闪烁会更容易?可能在紧急文档中有一个字段是显示或不显示闪烁图标的布尔值,如果他们想禁用它,只需取消选中它并发布它。

    【讨论】:

    • 谢谢扎克。试图实现闪烁的第二个按钮。他们不同意。 “占用空间” :-) 很好的建议是在发布部分进行检查,但更喜欢在“保存”上进行检查,因为如果他们发布并且在该发布时刻看到内容中有错误,则主要版本号将上升一个当您尝试再次保存它而不是次要版本号时。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-01
    • 1970-01-01
    相关资源
    最近更新 更多