Можем ли мы заменить метки <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) в компонент прототипа.
- Добавьте дополнительные инструкции в описание типа содержимого.
- Выберите место хранения, отличное от папки компонента прототипа.
Сообщите нам, как это происходит.: -)