2015-06-22 1 views
0

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

Теперь вот моя проблема. Всякий раз, когда я положил кусок кода, как:

@for (var i = 0; i > @model.persons.count; i++){ 

богатых текстовых полей изменяет строку кода:

@for (var i = 0; i < @model.documents.count; i++){ 

или еще хуже ..

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

Заранее благодарен.

+1

Я не думаю, что вы можете написать код внутри поля Rich Text в Sitecore, который затем будет выполняться при рендеринге элемента/электронной почты. –

+0

Когда я добавляю фрагмент кода сверху, показывая исходные значения, он работает как шарм. Просто интересно, есть ли способ, не имея необходимости использовать просмотр исходных значений каждый раз, когда кто-то должен отредактировать сообщение. –

+0

Как и Марек, я не понимал, что вы можете поместить там код - но с некоторой настройкой вы можете изменить, как поле с расширенным текстом переформатирует содержимое, которое вы вводите: https://jermdavis.wordpress.com/2014/04/06/ Ever-wish-the-rich-text-field-didnt-mess-with-your-html/(Это было написано для SC6.x, но оно, вероятно, работает аналогично в более поздних версиях) – JermDavis

ответ

1

В этом случае я бы использовал какой-то токен в поле текстового сообщения с расширенным текстом. Например, $ persondata $.

Тогда я бы использовал процессор конвейера, чтобы заменить токены в письме на реальные данные. Это делает его приятным и чистым, и он проще для редакторов.

1

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

Я бы выбрал другое текстовое поле для одного документа.

<li>@model.documentName - @model.documentPrice</li> 

Итерации/разбор документов перед тем, как вложить их в свойство model.parseddocuments. Таким образом вам нужно всего лишь применить

<ul>@model.parseddocuments</ul> 
Смежные вопросы