Апостроф CMS, распространяющий редактирование: ложь области для всех дочерних виджетов и частей - PullRequest
0 голосов
/ 14 февраля 2019

У меня есть нормальный набор виджетов, которые вы обычно редактируете на странице, без проблем.Тем не менее, у меня есть требование отредактировать эти виджеты в области модальной схемы, так как компонент анимируется, и все становится немного прикольным.Настройка edit: false останавливает редактирование области, но все виджеты и части внутри области все еще могут быть отредактированы?Мне нужно прекратить это, поскольку я не могу действительно редактировать ни в модальной части страницы, поскольку я получаю сообщение об ошибке «Не удалось взять под контроль документ» в модальном режиме и ничего не сохраняется с помощью контекстных правок?

1 Ответ

0 голосов
/ 19 марта 2019

Я понимаю, что вы имеете в виду, иногда вам нужно немного больше гибкости, чем вызывать значения вашего виджета в нередактируемом синглтоне или области в вашем view.html

Я нашел решение в создании кусков виджетов какописанный в этом учебном пособии Это позволяет вам вызывать значения вашего виджета где угодно, без какой-либо функциональности редактирования.Вы можете вызывать одно и то же поле в разных местах, одно в анимированном виде, летать и все прочее, например, другой статический заголовок.

Здесь вы найдете пример того, как я использовал виджет частей и отобразил все поляна view.html.Я даже добавил условие if, поэтому без пользовательского ввода в ваш widget.html поля загрузки не будут загружаться.

Я думаю, что это решение наилучшим образом соответствует вашим потребностям.

 {% for piece in data.widget._pieces %}
  <div class="card horizontal" style="
    {%- if piece.backColor-%}
      background-color:{{ piece.backColor }}
    {% endif %}
  ">

    {%- if piece._image -%}
    <div class="card-image hide-on-small-only">
      <img width="100%" src="{{ apos.attachments.url(piece._image.attachment, { size: data.options.size or 'full' }) }}">
    </div>
    {%- endif -%}
    <div class="card-stacked">
      <div class="card-content" style="
        {%- if piece.backColor-%}
          background-color:{{ piece.backColor }}
        {% endif %}
      ">

        {%- if piece.title -%}
          <span class="card-title">
            <h5 class="accent-color" style="
              {%- if piece.titleColor -%}
                color:{{ piece.titleColor }}
              {% endif %}
            ">
              {{ piece.title }}
            </h5>
          </span>
        {%- endif -%}

        {%- if piece.text -%}
            {{ apos.area(piece, 'text', {
              edit: false,
              widgets: { 'apostrophe-rich-text': { } }
            }) }}
        {%- endif -%}

      </div>
    </div>
  </div>
 {% endfor %}

Поэтому {{piece.titleColor}} означает простую схему виджетов, подобную этой, в ваших виджетах index.js

{
  name: 'titleColor',
  label: 'Title Color',
  type: 'color',
  help: 'Remove to set title to Accent Color'
}, 
...