【发布时间】:2021-04-13 05:18:34
【问题描述】:
我想添加一个按钮,允许公共用户在他们的会话中保存简单的真/假布尔值,并根据这些决定更改模板中的内容。我认为有很多这样的场景适用,比如浅色/深色主题选择,“你是否超过 18 岁”年龄查询或 GDPR/隐私的东西,只有在用户决定之后才需要加载谷歌分析脚本。
例如我想为公共用户添加主题选择时。
这是我在撇号调色板全局中的字段:
// lib/modules/apostrophe-palette-global
module.exports = {
paletteFields: [
{
name: 'backgroundColorLight',
label: 'Light Background',
type: 'color',
selector: [
'.sections-content.light'
],
property: 'background-color',
},
{
name: 'backgroundColorDark',
label: 'Dark Background',
type: 'color',
selector: [
'.sections-content.dark'
],
property: 'background-color',
}
]
};
创建模板非常简单...
// lib/modules/apostrophe-pages/views/pages/home.html
{% extends "layout.html" %}
{% block main %}
<div class="sections-content
// Define data scene only for user?
{% if data.user.lightTheme %}
dark
{% else %}
light
{% endif %}
">
{{ apos.area(data.page, 'sectionArea', {
limit: 1,
widgets: {
'sections': {
pageShadow: data.page.shadow,
addLabel: 'Add Sections',
editLabel: 'Change Sections',
controls: {
movable: false,
removable: true,
position: 'top-left'
}
}
}
}) }}
</div>
{% endblock %}
但是直到现在我才能添加一个所有人都可以访问的按钮(anon、user、admin),在这种情况下会更改 data.user.lightTheme 的值,其中这个值只是一个示例,因为我没有不知道如何在公共会话中存储值,shure 不会那么容易,因为我必须通过 cookie 或 window.localStorage 存储值。
但是有没有一种撇号的方式来做到这一点,如果是的话,你有一些例子吗?那真的很有帮助...
【问题讨论】:
-
您能否更全面地解释一下您希望这部分如何工作? “所以管理员可以添加调色板字段选择颜色”
-
我现在更新了这个问题,让它更清楚。
标签: apostrophe-cms