Kentico8 - 现有页面类型中的新布尔字段,未设置默认值

Kentico8 - New boolean field in existing page type, default value not set

在我们的网站上,我们想在某些页面上添加一个 "Print" 按钮。我的目标是向页面类型添加一个布尔字段,让您选择是否需要页面上的按钮。

只要在包含打印按钮的 Web 部件的“visible”复选框中添加一些代码,这一切都可以正常工作:

{% CurrentDocument["printbutton"]#%}

我的问题是:

该类型已经存在的页面自动获得打印按钮,即使字段默认值设置为'No'

如果我在 'pages' 应用程序中选中这些页面,则未选中该复选框。当我再次保存并提交页面时,打印按钮消失了。但是,正如您可能猜到的那样,我不想重新提交数百页...

看起来已经存在的页面在新的布尔字段中没有值,因此自动解析为可见。

有人知道如何解决这个问题吗?

当您最初添加字段时,您应该将该字段标记为必填并将默认值设置为 true。默认情况下,这会将所有字段设置为 true。接下来,如果你不想有一个默认值true,只要返回并设置它为false,所有后续添加的页面将默认为false,除非有人检查true。

设置这些的另一种方法是 运行 针对自定义页面类型 table 的简单查询并设置该值。如果您启用了工作流 and/or 版本控制,这会有点棘手,所以这不是我要采用的第一条路线,但它是一个选项。

我不确定我理解你的问题,但在你最后一句话的上下文中:

It looks like pages that already exist have no value in the new boolean field, and therefor automatically resolve as visible.

您可以为每个字段设置默认值,因此您可以为新的布尔字段设置默认值。