Я как настоящий ленивый программист люблю готовые решения =) Битрикс часто мне их предоставляет, и не надо городить свои велосипеды с пятью квадратными колёсиками.
Итак, стоит задача при добавлении элемента инфоблока проверять содержимое поля DETAIL_TEXT на наличие нецензурных слов и заменять их звёздочками.
В принципе, это стандартная функциональность модуля Форум. Её и будем использовать.
Во мне ещё живы порывы нативщика писать свои несколько усложнённые решения, поэтому в данном случае я была несколько удивлена внешней простотой решения поставленной задачи.
1. В init.php на событие OnBeforeIBlockElementAdd вешаем функцию обработчик.
2. Подключаем модуль форум CModule::IncludeModule('forum')
3. Проверяем нужные поля методом CFilterUnquotableWords::Filter($arFields['DETAIL_TEXT']) Он возвращает уже отцензуренный текст, где слова, подходящие под его фильтры, заменены на звёздочку *.
Итак, стоит задача при добавлении элемента инфоблока проверять содержимое поля DETAIL_TEXT на наличие нецензурных слов и заменять их звёздочками.
В принципе, это стандартная функциональность модуля Форум. Её и будем использовать.
Во мне ещё живы порывы нативщика писать свои несколько усложнённые решения, поэтому в данном случае я была несколько удивлена внешней простотой решения поставленной задачи.
1. В init.php на событие OnBeforeIBlockElementAdd вешаем функцию обработчик.
2. Подключаем модуль форум CModule::IncludeModule('forum')
3. Проверяем нужные поля методом CFilterUnquotableWords::Filter($arFields['DETAIL_TEXT']) Он возвращает уже отцензуренный текст, где слова, подходящие под его фильтры, заменены на звёздочку *.