2016-05-24 6 views
3

Я пытаюсь настроить корневой каталог EXM для австрийского веб-сайта для создания новых сообщений с использованием языковой версии de-AT и иметь деинсталляцию , AT язык выбран по умолчанию.Как настроить EXM для создания новых сообщений с пользовательской языковой версией по умолчанию

Мой вопрос: Как настроить EXM для автоматического создания языковой версии для de-AT при создании нового сообщения?

Что я сделал до сих пор ..

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

enter image description here

Сообщение об ошибке:Отредактированный версия языка 'Немецкий (Австрия)' не может быть найден. Возможно, он был удален другим пользователем.

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

enter image description here

enter image description here

+1

Это, кажется, работает только правильно, при изменении по умолчанию Язык содержания для данного конкретного Lan в Менеджере пользователей. Атрибут 'shell'' contentLanguage' игнорируется. Я отправляю билет. – Rob

ответ

1

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

Шаблоны в EXM работают так же, как и везде в Sitecore. Вы должны иметь языковые версии для ваших писем под:

  • /Sitecore/шаблоны/кампания Email/Сообщений
  • /Sitecore/шаблоны/Отрасль/кампания Email/Сообщений
+0

Спасибо за ответ Антон. Я также попробовал это, прежде чем публиковать вопрос. Кажется, что ничто не может создать версию языка de-AT. Добавлена ​​версия для __StandardValues, шаблонов филиалов .. нет результата –

+0

Я собираюсь подключить новый конвейер в конфигурациях EXM, когда запускается метод «OnItemAdded», для создания пользовательской языковой версии для моих сообщений –

0

Ни один из «трюков ', чтобы автоматически добавлять новую языковую версию при создании нового сообщения внутри EXM, поэтому я добавил новое событие OnItemSave, которое проверяет, является ли элемент производным от базового шаблона сообщения и создает новую языковую версию - на основе собственного бизнес-логики.

Config:

<configuration xmlns:x="http://www.sitecore.net/xmlconfig/"> 
<sitecore> 
<events> 
    <event name="item:added"> 
    <handler type="ABC.SitecoreExtensions.Handlers.EmailExperienceExtensions, ABC" method="OnItemAdded" /> 
    </event> 
</events> 
</sitecore> 

Код

namespace ABC.SitecoreExtensions.Handlers 
{ 
    class EmailExperienceExtensions 
    { 
    readonly Sitecore.Data.Database masterDb = Sitecore.Configuration.Factory.GetDatabase("master"); 
    private const string EXM_BASE_EMAIL_TEMPLATE_ID = "{A0EA9681-5C86-43AB-80F7-C522DADF6F12}"; 


    public void OnItemAdded(object sender, EventArgs args) 
    { 
     Assert.ArgumentNotNull((object)args, "args"); 
     Item obj1 = Event.ExtractParameter(args, 0) as Item; 
     if (obj1 == null) 
      return; 

     if (obj1.IsDerived(new Sitecore.Data.ID(EXM_BASE_EMAIL_TEMPLATE_ID))) 
     { 
      //logic to determine the context site and to pickup the language 
      .... 

      if (rootItem == null) 
      { 
       return; 
      } 

      var siteContext = SiteContext.GetSite(rootItem.Name); 
      var lang = LanguageManager.GetLanguage(siteContext.Language); 

      Item ca = masterDb.GetItem(obj1.Paths.FullPath, lang); 
      using (new Sitecore.SecurityModel.SecurityDisabler()) 
      { 
       try 
       { 
        if (0 == ca.Versions.Count) 
        { 
         ca.Versions.AddVersion(); 
        } 
       } 
       catch (Exception ex) 
       { 
        // catch exception 
       } 
      } 
     } 

    } 

} 

}

 Смежные вопросы

  • Нет связанных вопросов^_^