Есть ли способ добавить пользовательский тип данных Umbraco, который в основном представляет собой группировку существующих типов данных?

В нескольких разных типах документов я должен добавить те же 3 родных типа данных Umbraco

  • подборщик контента
  • текстовая строка
  • текстовая строка

Мне было предложено посмотреть, есть ли способ создать новый настраиваемый тип данных, который в основном перенесет эти 3 типа данных в новый тип данных.

Я просмотрел сайт nibble.be и вижу, что существует несколько разных способов создания пользовательских типов данных (с использованием оболочки usercontrol, или 3 класса). Однако я не уверен, что пользовательский тип данных для группировки существующих типов данных будет правильным путем.

С одной стороны, мы используем MVC вдоль боковой Umbraco с большим использованием представлений Razor. Поскольку псевдоним свойства типа документа используется для получения значений из Umbraco со страницы содержимого, я не вижу, как это все еще возможно, или как вы собираетесь получать значение свойства настраиваемого типа данных с встроенными типами данных.

Будет ли рабочий путь или лучший способ выполнить это решение для добавления одинаковых полей в любой тип документа, который им нужен? Я хотя бы об иерархическом подходе с родительским типом документа только с этими тремя типами данных (сборщик контента и 2 текстовые строки), но это означало бы, что нужно поместить любой тип документа, который потребуется для страницы в этом родительском типе документа, просто для того, чтобы факт наследовал эти группы свойств.

Ответ 1

Если вы хотите внедрить несколько свойств в один тип данных:

Существует ряд встроенных типов данных; сетка DataType, встроенный контент и Повторяющийся пользовательский контент - это те, о которых я знаю. Все три хранят свою информацию как xml, что позволяет легко получить доступ через xslt и бритву.

Сетка DataType является частью uComponents и поэтому активно развивается. Он также является открытым исходным кодом, и поэтому поощряются его предложения. Встроенный контент и повторяющийся пользовательский контент, хотя и полезны, не имеют никакой текущей поддержки и, следовательно, не планируют улучшения. Я думаю, что они лицензированы как с открытым исходным кодом, но источник не является общедоступным, насколько я могу судить.

Я не думаю, что вы можете установить ограничение на количество строк/элементов, хранящихся в сетке DataType, как вы можете на встроенном контенте (возможно, на запрос функции).

Взгляните на некоторые из этих решений, прежде чем планировать свою работу самостоятельно. Но если вы все еще чувствуете желание кодировать свой собственный тип данных, я бы рекомендовал статьи Тима Гейсенса о создании пользовательских типов данных с помощью пользовательской оболочки обертки, настройки редактора данных, и сериализует данные как xml. Его видео "Master of Datatypes" также очень полезно и охватывает также те темы.

Если вы хотите упорядочить свои свойства по группам:

Том Фултон опубликовал новый тип пакета/данных, недавно названный Тип документа Fieldsets, которые могут соответствовать вашим потребностям. Он позволяет группировать поля вместе в наборе полей. Вот скриншот:

enter image description here

Ответ 2

Я понимаю, что это старый вопрос, поэтому я просто добавляю это для тех, кто ищет эту функциональность в будущем: это почти то, что мы используем Widget Builder для Umbraco 6.

Widget Builder является предшественником Umbraco 7 Archetype, который подталкивается основной командой для универсальное использование. Я считаю, что это станет частью ядра.

Внутренне, WidgetBuilder и Archetype хранят свои данные как JSON и упрощают копирование настраиваемого типа данных из одного проекта в другой с помощью функции импорта/экспорта.

Ответ 3

Я некоторое время работал с Archetype, пока не обнаружил Вложенный контент, который делает то же самое, но гораздо проще работать, потому что он гнездится Document Types вместо Data Types, с которым гораздо проще работать, особенно для Content Editors. Плюс результирующие типы данных - это обычные встроенные объекты Umbraco, а не объекты Archetype, которые добавляют в ваш вид новый слой отображения объектов.