Как определить виджеты со значениями по умолчанию в 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
    }
  })
}}
Другие вопросы по тегам