Можем ли мы заменить метки «добавить текст» в SiteEdit 2012 (в Tridion 2011)?

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

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

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

Например (с использованием Razor Mediator):

@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, но не могу найти ссылки на него. У кого-нибудь есть идея?


person MDa    schedule 22.06.2012    source источник
comment
Эй, MDa, это очень интересный вопрос. К сожалению, как вы могли заметить, опыта работы с новым пользовательским интерфейсом все еще немного не хватает (но он быстро растет). Рассматривали ли вы возможность присоединиться к нашему предложению о создании отдельного сайта Tridion? area51.stackexchange.com/proposals/38335/   -  person Frank van Puffelen    schedule 22.06.2012


Ответы (3)


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

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

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

person Boris Ponomarenko    schedule 25.06.2012

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

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

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

  • Напишите свои шаблоны таким образом, чтобы, если значение поля «Схема» было таким же, как по умолчанию

@@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 в качестве запроса на улучшение. Я сделаю это в ближайшие несколько дней, если их уже нет.

person Ram G    schedule 22.06.2012

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

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

Советы:

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

Дайте нам знать, как это происходит. :-)

person Alvin Reyes    schedule 22.06.2012