Мне нужно создать настраиваемый тип поля в WFFM, чтобы принимать форматированный текст, и предоставить редактор Sitecore WYSIWYG для пользователя во внешнем интерфейсе. Форма будет использоваться для создания элемента содержимого, а поле форматированного текста будет сопоставлено с полем в шаблоне этого элемента. Кто-нибудь сделал это? Можно ли использовать для этого редактор Telerik?
Веб-формы для маркетологов (WFFM) Тип поля RTF
Ответы (1)
Если вам нужен простой редактор WYSISYG для внешнего интерфейса, вы можете использовать любой из многочисленных редакторов с открытым исходным кодом, доступных в Интернете. Я бы с осторожностью относился к использованию редактора Telerik, входящего в состав Sitecore, если у вас нет соответствующих лицензий.
Если вы используете поле Multi-Line Text
в форме, Sitecore выводит обычный <textarea>
во внешнем интерфейсе. Я предлагаю вам добавить пользовательский класс CSS в /sitecore/system/Modules/Web Forms for Marketers/Settings/Meta data/Css Classes
и выбрать его из раскрывающегося списка классов CSS слева, когда вы выбираете свое поле в дизайнере форм, чтобы вы могли нацеливать определенные поля на WYSIYG.
Добавьте ссылку на файл javascript, а затем создайте экземпляр своего редактора, передав класс css, определенный выше, чтобы настроить таргетинг только на эти конкретные текстовые области.
Если вы используете ASP.Net MVC и CKEditor (например):
- Добавьте ссылку на javascript в
/Views/Form/Index.cshtml
. Возможно, вам потребуется добавить это в Visual Studio из пакета модуля WFFM. - Или добавьте ссылку в
<head>
:<script src="/path-to/ckeditor/ckeditor.js"></script>
- Добавьте нижнюю часть
Index.cshtml
(или непосредственно перед закрывающим тегом</body>
), создайте экземпляр своего редактора, ориентируясь только на те<textarea>
с определенными классами css.
e.g.
<!-- markup generated by WFFM -->
<textarea class="wffm-rte" data-val="true" data-val-length="..." data-val-required="..." id="wffm-generated" name="wffm-generated"></textarea>
<script>
// Replace all <textarea class="wffm-rte"> elements with CKEditor instances.
CKEDITOR.replaceAll('wffm-rte');
</script>
Убедитесь, что вы очищаете входящие данные, вам не нужны таблицы бобби.