2016-10-25 3 views
1

Возможно ли передавать данные в назначения UI-расширений (что означает расширение UI-расширения X, назначенное для поля Y), чтобы немного изменить их функциональность для разных ситуаций без необходимости переопределения всего расширения?Могут ли пользовательские настройки «переходить в» назначение расширенного пользовательского интерфейса?

Например, CodeMirror - действительно аккуратный встроенный редактор, но у него есть множество «режимов», в зависимости от того, с каким языком вы работаете. Если бы мы могли даже передать строку, чтобы представить желаемый режим, когда расширение назначено полю, что позволит удалить необходимость в другом расширении, чтобы использовать различную подсветку синтаксиса.

С этим теперь может быть общий расширитель пользовательского интерфейса «CodeMirror Editor», который затем просто настроил время выполнения.

С другой стороны, мы можем указать целые объекты JSON, когда расширение назначено полю, чтобы дополнительно указать параметры конфигурации.

Это сделало бы расширения пользовательского интерфейса намного более ... полезными. Существует ли эта функциональность в настоящее время или есть какой-то способ разумно заставить ее работать? Есть ли место в спецификации поля, где я могу «припарковать» строку JSON, а затем получить доступ к ней изнутри расширения?

+0

К сожалению, эта функция пока не существует :( –

+0

@ RouvenWeßling Смотрите мой ответ ниже. – Deane

ответ

1

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

https://github.com/deanebarker/contentful-code-editor

+0

Интересный подход, возможно, должен существовать какой-то объект «глобальные настройки», которые вы могли бы положить вещи, как это в вместо того, чтобы «тратить» тип контента, так сказать. – Robban

+0

Здесь есть значительный прецедент. Многие системы хранят настройки в качестве управляемого контента. Sitecore, например, хранит все в «глобальном» дереве, вплоть до кнопок в редакторе wysiwyg Я только что увидел то же самое в демо-версии Magnolia на прошлой неделе - настройки - это всего лишь другая ветка в дереве контента. Это на самом деле так распространено, что я написал боковую панель об этом в моей книге. – Deane

+0

Да я согласен. Это не редкость создавать «страницу настроек» или вытаскивать глобальные настройки со стартовой страницы. По-моему, это всегда было немного по-моему. Это не довольство. Если CMS может предоставить какой-то интерфейс для этого, где вы можете настроить глобальные настройки, которые будут произвольно потребляться вашим контентом, это было бы здорово. Тем более, что это то, что вы делаете в основном для каждой реализации. – Robban

1

Что вы можете сделать, это просто прочитать этот параметр из другого поля, будь то строка или объект json.

Например, slug generator автоматически генерирует свое значение из поля заголовка.

Вы могли бы, возможно, сделать что-то вроде этого:

const cfExt = window.contentfulExtension || window.contentfulWidget 


cfExt.init(api => { 
    var langField = api.entry.fields.mirrorLang || 'default' 
    //Rest of implementation 
}) 

 Смежные вопросы

  • Нет связанных вопросов^_^