Как определить виджеты со значениями по умолчанию в Apostrophe CMS
Я хочу добавить виджет, который нельзя удалить со страницы и который содержит текст по умолчанию, если он явно не определен. Я думал, что это должно работать примерно так:
{{
apos.singleton(data.page, 'headerTitle', 'apostrophe-rich-text', {
def: 'Default Title'
})
}}
Есть ли способ сделать это с помощью виджетов апостроф или я должен создать собственный?
1 ответ
Решение
Создание собственных виджетов - довольно стандартная практика в Apostrophe, но в ней не говорится, что делать, если в синглтоне еще нет виджетов.
Вы можете отключить удаление синглтона следующим образом:
{{
apos.singleton(data.page, 'headerTitle', 'apostrophe-rich-text', {
controls: {
removable: false,
movable: false
}
})
}}
Однако редактору по-прежнему приходится нажимать, чтобы изначально добавить виджет на страницу для каждой страницы.
Поэтому используйте эту технику для предоставления разметки по умолчанию:
{% if apos.areas.isEmpty(data.page, 'headerTitle') %}
<h4>Default Title</h4>
{% endif %}
{{
apos.singleton(data.page, 'headerTitle', 'apostrophe-rich-text', {
controls: {
removable: false,
movable: false
}
})
}}