Мне нужно запустить RegEx по содержимому любого модуля HTML Pro до загрузки страницы. Я предполагаю, что пользовательский код попадет в этот файл: /DesktopModules/HTML/HtmlModule.ascx - «OnPreRender» выглядит для меня хорошим местом. Это правильное место/файл для изменения?Как я могу предварительно обработать текст внутри модуля HTML Pro в DNN 7?
Целью Regex является замена адресов электронной почты, найденных в тексте, с измененной версией самих себя, чтобы не допустить спам-ботов. (Раньше в DNN Store были некоторые модули, но они теперь прекращены, я использовал их раньше, но слишком сильно замедлял время загрузки страницы.)
Я провел некоторое исследование но не нашли подходящих примеров. То, что я нашел не достаточно для меня, чтобы осуществить то, что я хочу:
- http://www.dnnsoftware.com/answers/what-is-the-best-way-to-programmatically-edit-html-text
- Copy DNN HTML Pro module in content to another module
- Get HTML Module Contents by Module ID in DNN
- https://searchcode.com/codesearch/view/3359238/
Может кто-нибудь помочь мне с стартером пример код, чтобы сделать следующее:
- Перед содержание Pro модуля HTML отправляется в браузер, возьмите последнюю версию контента HTML
- Запуск Regex.Replace на нем
- Продолжить загрузку страницы с помощью модифицированного содержимого HTML
Прямо сейчас раздел, на который я смотрю, выглядит так: где бы я вставлял этот код?
protected override void OnPreRender(System.EventArgs e)
{
if (true && HttpRuntime.Cache.Get("avt.MyTokens2.CorePatched") == "true") {
base.OnPreRender(e);
return;
}
if (Convert.ToBoolean(Settings["MyTokensReplace"]) == true) {
(lblContent.Controls[0] as LiteralControl).Text = Tokenize((lblContent.Controls[0] as LiteralControl).Text, ModuleConfiguration, false, true);
}
base.OnPreRender(e);
}
Спасибо за любую помощь!
Джастин, мы все еще используем MyTokens, но я не могу себе представить, как вы будете использовать эту функциональность. Я хочу сохранить метод ввода одинаковым/по умолчанию и только модифицировать данные, прежде чем выводить их на веб-страницу. Что может сделать MyTokens, что нельзя сделать с помощью прямого C# (который также поддерживает RegEx)? Просьба уточнить. Постскриптум Приятно слышать от тебя, чувак! – Bogdan
См. Приведенный выше ответ с примером кода. – jacton
@ Богдан сделал для вас отрегулированный ответ? – jacton