Можем ли мы заменить метки <add text> в SiteEdit 2012 (на Tridion 2011)?

Сейчас я внедряю User Interface 2012, и после некоторых препятствий он работает отлично. Я искал оптимизацию использования любых редактируемых пользователем полей и сталкивался с соответствующей проблемой.

Внутри компонента есть несколько полей, которые не являются обязательными и как таковые не должны отображаться, когда они пусты. Как только редактор входит в пользовательский интерфейс и выбирает компонент, содержащий указанные поля, появляется несколько меток, таких как <add text> и <add internal link to component media>.

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

Например (с помощью посредника Razor):

@if(Component.Fields.location != null) {
  <span class="row">
    <strong>Where:</strong>
    <span>@RenderComponentField("location", 0)</span>
  </span>
} else {
  <tcdl:ComponentField name="location"></tcdl:ComponentField>
}

Когда поле местоположения пуст, оно просто говорит <add text>. Я хотел бы изменить это на <Add location to event>.

Я пробовал помещать что-то между тэгами tcdl, но они отображаются, даже если они не редактируются в UI2012. Я искал сайты содержания SDL Live, но я не могу найти ссылки на него. У кого-нибудь есть идея?

Ответ 1

Нет никакого поддерживаемого способа настройки текста заполнителя пустого поля. Но вы можете попытаться написать расширение, которое отменяет следующий метод:

Tridion.Web.UI.SiteEdit.ComponentField.prototype.setPlaceholderType

Этот метод отвечает за настройку текста заполнителя.

Ответ 2

Я искал то же самое, когда я проверял это, но я не думаю, что это легко выполнимо AFAIK. Я немного потянулся и обнаружил, что метки являются частью файла ресурсов Tridion.Web.UI.Editors.SiteEdit.Strings.resx EmptyTextField. Я не стал использовать этот вариант, потому что он не поддерживался, не документировался и, кроме того, у меня все еще нет гибкости добавления собственного текста для каждого поля.

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

  • Создайте поля схемы с "значениями по умолчанию" (например, "Добавить местоположение в событие" ). текст по умолчанию будет отображаться в вашем интерфейсе.

  • Напишите свои шаблоны таким образом, что если значение поля Schema совпадает с значением по умолчанию

@@if(Component.Fields.location.value == [Compare the schema field definition - default value of the field]) { 
    //--> Note: I could not find a straight API for this.. but I am assuming it should be there.
    @RenderComponentField("location", 0)
} else {
    <span class="row">
        <strong>Where:</strong>
        <span>@RenderComponentField("location", 0)</span>
    </span>
}
  • Выполните проверку выше условий на основе пользовательского интерфейса целевого типа, так как мы не хотим отображать текст по умолчанию для живой цели и т.д.

Кроме того, публикация Tridion Idea в качестве запроса на улучшение будет отличной. Я сделаю это в ближайшие несколько дней, если их уже не будет.

Ответ 3

Мне нравится подход, так как это был бы быстрый способ дать авторские инструкции на уровне поля. Мы используем поле описания для типичного предоставления этой помощи в CME.

Для встроенного редактирования типы контента (SDL Live Content - требуется вход) - это еще один вариант, поскольку они определяют схему (и компонент прототипа), шаблон, инструкции и контекст "сохранить-в". Вы можете предложить фиктивный текст, который заменяют авторы.

Советов:

  • Добавить образец контента и/или инструкции (Lorem Ipsum) в компонент прототипа.
  • Добавьте дополнительные инструкции в описание типа содержимого.
  • Выберите место хранения, отличное от папки компонента прототипа.

Сообщите нам, как это происходит.: -)