разрешить дизайнеру доступ к шаблонам электронной почты в DotNetNuke - PullRequest
1 голос
/ 03 апреля 2009

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

Одним из решений является использование строки локализации, позволяющей настраивать содержимое электронной почты, структура электронной почты которой где-то жестко задана Это нежелательно, так как не позволяет администратору изменять макет.

Другое решение - настроить модули Text / HTML для содержания содержимого электронной почты. Это позволяет администратору редактировать текст и макет. Недостатком является то, что администратор может использовать стиль из таблицы стилей CSS, который не будет доступен для чтения электронной почты.

Есть еще мысли о том, как это сделать? Сторонний плагин или модуль будет в порядке. Для модулей электронной почты, которые я рассмотрел, они больше о настройке почтовых кампаний. Из тех, что я видел, я не был уверен, что смогу отправлять электронные письма программно из моего пользовательского модуля.

спасибо

Ответы [ 2 ]

2 голосов
/ 03 апреля 2009

Если ваш шаблон электронной почты может содержать менее 2000 символов, я бы предложил использовать настройки модуля для хранения ваших данных. Вы можете сделать это с помощью стандартного элемента управления Settings.ascx, который переопределяет метод UpdateSettings. Ограничение 2000 символов основано на размере поля базы данных TabModuleSettings.SettingValue.

    public override void UpdateSettings()
    {
        try
          {
            ModuleController objModules = new ModuleController();
            objModules.UpdateTabModuleSetting(TabModuleId, "EmailTemplate", this.txtEmailTemplate.Text);

            SynchronizeModule();              
        }
        catch (Exception exc) //Module failed to load
        {
            Exceptions.ProcessModuleLoadException(this, exc);
        }
    }
1 голос
/ 22 апреля 2009

Лично есть несколько вариантов.

  1. Файл локализации. Это на самом деле легко изменяется администраторами сайта через Admin -> Languages. Однако это индивидуальная настройка для каждого портала.
  2. Настройки модуля, но вы ОЧЕНЬ ограничены 2000 символами, но можете позволить пользователям изменять их в зависимости от mdoule.
  3. На основе SQL или файлов, позволяйте настраивать их по мере необходимости и предоставляйте простой способ загрузки / скачивания / управления
...