Sitecore 8.1 — кнопка «Добавить» в настраиваемый тип поля и редактор опыта

Вопрос, который касается как редактора опыта (страницы), так и редактора контента.

У меня есть прожектор временной шкалы, который пользователи могут добавить на страницу — вверху у него есть список десятилетий, а под каждым десятилетием есть список лет (с их текстом и изображениями).

Я создал ряд элементов управления, которые ссылаются на различные источники данных, но мне не хватает пользовательского опыта.

Если я зайду в редактор опыта:

  1. Выберите заполнитель временной шкалы и добавьте элемент
  2. Появляется всплывающее окно для выбора/создания источника данных

Тогда единственный способ добавить десятилетие — перейти к источнику данных «Десятилетие», создать там новый элемент, а затем вернуться к источнику данных «Временная шкала» и добавить этот элемент в свой.

Я думаю о следующем:

  • Редактор контента — рядом с элементом данных временной шкалы находится поле с несколькими списками «Десятилетия» — есть ли простой способ добавить рядом с ним кнопку «Создать», которая воспроизведет то же событие, как если бы вы перешли на Десятилетия и нажал вставить элемент.
  • Редактор опыта. Удалите использование заполнителя и добавьте аналогичную кнопку «Создать», которая будет реплицировать событие insert item — после создания элемента и набора свойств элемент управления обновляется для отображения в соответствии с ним.

Кто-нибудь уже сталкивался с чем-то подобным? Любые лучшие решения?

Спасибо, Дэн


person Daniel    schedule 18.12.2015    source источник


Ответы (2)


На самом деле я работаю над теми же функциями для нашей новой реализации.

В редакторе контента может потребоваться обновить базовую базу данных.
В xEditor можно использовать команды sitecore JS с кодами ajax и back-end. Мое предложение состоит в том, что вы можете создать компонент рендеринга и назначить компонент именованному заполнителю, а не удалять его. Затем вызовите внутренние события и события javascript для элемента рендеринга.

Это может быть отправной точкой. Функция Javascript:

function setDataSrc(itemID, templatePath, suffix, renderingID, dbName, deviceID, renderingUID, reload, callBack) {
    var postReq = $.post("/handlePostRequest.aspx (or .cshtml)", {
        method: 'methodName'
        , itemID: itemID
        , templatePath: templatePath
        , suffix: suffix
        , renderingID: renderingID
        , dbName: dbName
        , deviceID: deviceID
        , renderingUID: renderingUID
    });

    postReq.done(function (data) {
        if (reload != false) {
            location.reload(true);
        }
        if (typeof callBack == 'function') {
            callBack(data);
        }
    });
}
person Jihyun    schedule 18.12.2015
comment
Спасибо, Джихён, посмотрю! - person Daniel; 21.12.2015

Получил ответ от сообщества Sitecore, который может быть полезен -

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

Полная информация в этой записи блога Кнопка редактирования кадра в редакторе опыта.

person Daniel    schedule 21.12.2015