Hello Apostrophe CMS Wizards
Я читал учебник, найденный здесь: https://apostrophecms.org/docs/tutorials/getting-started/layout-widgets.html
Там написано:
Альтернатива contextualOnly
, skipInitialModal
позволяет пропустить модальный менеджер виджетов при создании виджета (например, contextualOnly
), но сохраняет интерфейс редактирования для последующего использования.Это полезно для виджетов, которые имеют вторичную конфигурацию, например, устанавливают цвет фона.
Это именно тот вид функциональности, который я хочу предоставить своим пользователям.Я уже построил гораздо более сложную версию кода, приведенную выше, но в более простой версии все та же ошибка, с которой я сталкиваюсь, поэтому я включаю код для этого здесь.
По сути, яхочу иметь диалоговое окно редактирования для моего пользовательского виджета макета, которое позволяет им изменять цвет фона, решать, добавлять ли фоновое изображение или нет, решать, как отображать это фоновое изображение, и все это без необходимости прикасаться к коду.
Проблема
После сохранения изменений в моем пользовательском виджете вы не можете вносить изменения в то, что находится внутри областей моего виджета.Вместо этого он выдает ошибку, сообщающую, что You were unable to take control of the document.
Вы можете получить требуемую функциональность, если обновите страницу, но, очевидно, это не идеально.
Чего мне здесь не хватает?
Пример кода
Вы заметите, что приведенный ниже код является лишь слегка измененным примером кода для учебной страницы выше.
Вот файл widget.html
простого виджета:
<div class="two-column">
<div class="column-left">
{{ apos.area(data.widget, 'areaLeft', {
widgets: {
'apostrophe-images': {}
}
}) }}
</div>
<div class="column-right">
{{ apos.area(data.widget, 'areaRight', {
widgets: {
'apostrophe-images': {}
}
}) }}
</div>
</div>
и вот файл index.js
простого виджета:
module.exports = {
extend: 'apostrophe-widgets',
label: 'Double Content',
skipInitialModal: true,
addFields: [
{
name: 'areaLeft',
type: 'area',
label: 'Left Area',
contextual: true
},
{
name: 'areaRight',
type: 'area',
label: 'Right Area',
contextual: true
}
]
};
ОБНОВЛЕНИЕ 1
Как и предполагалось, я клонировал это репо и изменил виджет One Column
в соответствии с настройкой, упомянутой выше.Для полноты я включил свои изменения в код здесь.Я не внес никаких других изменений в код репо.
module.exports = {
extend: 'apostrophe-widgets',
label: 'One Column',
// contextualOnly: true, // removed
skipInitialModal:true, // added
addFields: [
{
name: 'one',
type: 'area',
contextual:true, // added
}
]
};
РЕЗУЛЬТАТ
Все еще есть та же проблема.
Если это поможет, версия ApostropheCMS, использованная в приведенном выше репо, выглядит следующим образом: 2.58.0
Посмотрите на это
Я новичок здесь, так что на самом деле встраивание изображений здесьне допускается, но это все равно должно работать.Взгляните:
GIF снимка экрана сбоя
ОБНОВЛЕНИЕ 2
С новым обновлением все, кажется, имеетбыло исправлено!