Кастомизация
01
Окт
0

TinyMCE в качестве редактора Электронной почты

Задействуем TinyMCE в качестве редактора Электронной почты.

Создайте HTML Веб-ресурс с таким кодом:

<html>
<head>
<script>
function openEditWindow() {
    // параметры tinymce
    var tinymcepluginlist = '"advlist autolink lists link image charmap print preview anchor searchreplace visualblocks code fullscreen insertdatetime media table contextmenu paste"';
    var tinymcetoolbar = '"undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image preview"';
    
    // Получение текущего содержимого электронной почты
    var emailBody = parent.Xrm.Page.getAttribute("description").getValue();
    
    // Собираем контент всплывающего окна
    var editContent = '<html>\n<head>';
    editContent += '<title>Редактор электронной почты</title>\n';
    // Загружем tinymce скрипт с cfqnf cachefly. Вы можете его скачать и хранить локально.
    editContent += '<scr'+'ipt src="//tinymce.cachefly.net/4.0/tinymce.min.js"></scr'+'ipt>';
    editContent += '<scr'+'ipt>\n';
    // Функция используется для обновления содержимого письма в CRM и закрытия окна
    editContent += 'function updateEmailForm() {\n';
    editContent += 'window.opener.parent.Xrm.Page.getAttribute("description").setValue(tinymce.get("editbox").getContent());\n';
    editContent += 'window.opener.parent.Xrm.Page.data.entity.attributes.get("description").controls.get(0).setFocus();\n';
    editContent += 'this.window.close();\n';
    editContent += '}';
    editContent += '</scr'+'ipt>';
    editContent += '</head>\n<body style="margin:0px 0px 0px 0px;">';
    // Тэг textarea в котором будем редактировать текст письма
    editContent += '<textarea id="editbox" style="width: 800px; height: 500px;">'+emailBody+'</textarea>';
    editContent += '<br /><button onclick="updateEmailForm();">Обновить и закрыть окно</button>';
    editContent += '<scr'+'ipt>\n';
    // Инициализация функциональности tinymce
    editContent += 'tinymce.init({selector:"textarea",plugins: ['+tinymcepluginlist+'], toolbar:'+tinymcetoolbar+' })\n';
    editContent += '</scr'+'ipt>';
    editContent += '</body></html>';
    
    // Открытие всплывающего окна редактора
    var editWindow = window.open("","editorwindow","height=700,width=800,scrollbars=yes,resizable=yes");
    
    // Строим контент всплывающего окна
    editWindow.document.write(editContent);
    
    // Закрываем поток документа
    editWindow.document.close();
}
</script>
</head>
<body style="margin-top:0px;margin-left:0px;">
    <button onclick="openEditWindow();">Редактор электронной почты</button>
</body>
</html>
  • Это HTML-страница с единственной кнопкой, которая вызывает JS-функцию;
  • JS-функция открывает всплывающее окно и формирует редактор TinyMCE (код которого динамически подтягивается с сайта cachefly.net), при том из Электронного письма в редактор подтягивается текст письма;
  • По кнопке отредактированный текст отправляется обратно в письмо.

Чтобы задействовать это решение, просто поместите HTML Веб-ресурс на форму письма в виде одной строки (достаточно, чтобы была видна кнопка).

З.Ы. Если у Вас отсутствует постоянное подключение к интернету, то можете скачать редактор TinyMCE и разместить его локально.



Комментарии (0)

*

code