Уважаемые пользователи!
C 7 ноября 2020 года phpBB Group прекратила выпуск обновлений и завершила дальнейшее развитие phpBB версии 3.2.
С 1 августа 2024 года phpBB Group прекращает поддержку phpBB 3.2 на официальном сайте.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.2 до 31 декабря 2024 года.
С учетом этого, настоятельно рекомендуется обновить конференции до версии 3.3.
C 7 ноября 2020 года phpBB Group прекратила выпуск обновлений и завершила дальнейшее развитие phpBB версии 3.2.
С 1 августа 2024 года phpBB Group прекращает поддержку phpBB 3.2 на официальном сайте.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.2 до 31 декабря 2024 года.
С учетом этого, настоятельно рекомендуется обновить конференции до версии 3.3.
Спецсимволы и автоцензор.
-
- Former team member
- Сообщения: 1139
- Стаж: 18 лет 2 месяца
- Откуда: Ленинград
-
- phpBB 1.2.1
- Сообщения: 25
- Стаж: 17 лет 9 месяцев
-
- Former team member
- Сообщения: 1139
- Стаж: 18 лет 2 месяца
- Откуда: Ленинград
Это поведение об'ясняется следующей строкой из функции оbtain_word_listUlfr писал(а):буквенно-цифровые сочетания он меняет прекрасно, и русские и английские, а эти не хочет...
Код: Выделить всё
$orig_word[] = '#\b(' . str_replace('\*', '\w*?', preg_quote($row['word'], '#')) . ')\b#i';
Добавлено спустя 1 минуту 45 секунд:
А символы типа "-" не являются для регекспов алфавитно-цифровыми и не означают границу слова. Потому их как "слово в тексте" php их и не находит.
Добавлено спустя 1 минуту 39 секунд:
Можете у себя в этой функции (прописана в includes/functions.php) на время выкинуть оба \b -- и вы прекрасно увидите свои замены.
И если я неправ, пусть старшие товарищи поправят меня
-
- phpBB 1.2.1
- Сообщения: 25
- Стаж: 17 лет 9 месяцев
-
- phpBB 1.2.1
- Сообщения: 21
- Стаж: 19 лет 2 месяца
Подскажите где подправить автоцензор (НЕ про руссский язык)
Подскажите пожалуйста, где можно подправить автоцензор, чтобы он заменял не все слово целиком, а только ЧАСТЬ слова. Покопалась в скриптах - не нашла где это сделать (( Нужно только в тексте сообщения (в других местах он у меня совсем отключен). Чтобы он не трогал окончания слов
-
- Former team member
- Сообщения: 1139
- Стаж: 18 лет 2 месяца
- Откуда: Ленинград
http://phpbbguru.net/community/viewtopi ... 255#104255
там я об'яснил, где и почему сделано так, как сделано, как изменить и что из этого получится.
там я об'яснил, где и почему сделано так, как сделано, как изменить и что из этого получится.
И если я неправ, пусть старшие товарищи поправят меня
-
- phpBB 1.2.1
- Сообщения: 21
- Стаж: 19 лет 2 месяца
Т.е., если я правильно поняла, то нужно просто убрать \b в начале или в конце, чтобы автоцензор заработал только на начальную или конечную часть слова, так?
Что из этого может получиться - и примерно осознаю, но у меня будет на форуме специфический словарь терминов и думаю, что проблем особых быть не должно... в крайнем случае - подумаю как их решить (возможно можно будет \b задавать в каждой переменной отдельно, если будет в этом необходимость?) или использовать еще какой-либо спецсимвол...
Что из этого может получиться - и примерно осознаю, но у меня будет на форуме специфический словарь терминов и думаю, что проблем особых быть не должно... в крайнем случае - подумаю как их решить (возможно можно будет \b задавать в каждой переменной отдельно, если будет в этом необходимость?) или использовать еще какой-либо спецсимвол...
-
- Former team member
- Сообщения: 1139
- Стаж: 18 лет 2 месяца
- Откуда: Ленинград
Чтобы ему не нужно было для исправления (изменения) слово, а годилась бы любая часть потока символов.Feeling писал(а):Т.е., если я правильно поняла, то нужно просто убрать \b в начале или в конце, чтобы автоцензор заработал только на начальную или конечную часть слова, так?
И если я неправ, пусть старшие товарищи поправят меня
-
- phpBB 1.2.1
- Сообщения: 21
- Стаж: 19 лет 2 месяца
Спасибо за наводку! Покопалась в документациях и разобралась как все это работает. Раньше было понятно, что для чего-то /b на концах слова прибавляется, но не совсем было понятно, что это спецсимвол.
Расскажу для тех, кому интересно, что я с этим сделала (мало ли вдруг кому понадобится):
В ключевые слова, которые нужно склонять я добавляю в конец символ "%", а потом уже скрипт проверяет и обрабатывает слово в зависимости от того - есть там этот символ или нет. По умолчанию обрабатывается как и раньше, чтобы при апгрейдах форума косяков не повылазило.
З.Ы. Правда в тех случаях, когда слово может использоваться с окончанием или без - приходится в словарь вбивать два варианта (например - "администратор" и "администратор%"), т.к. если окончание у слова отсутствует и в конце строки стоит "\B" - автоцензор этого не понимает. Хотя мне и в этом случае уж лучше два раза слово вбить, чем 5-10 его различных написаний - всяко экономия.
Расскажу для тех, кому интересно, что я с этим сделала (мало ли вдруг кому понадобится):
Код: Выделить всё
if ( preg_match ('/^\S*\%$/', $row['word'] ) ) {
$row['word'] = str_replace("%", "", $row['word']);
$orig_word[] = '#\b(' . str_replace('\*', '\w*?', preg_quote($row['word'], '#')) . ')\B#i';
} else {
$orig_word[] = '#\b(' . str_replace('\*', '\w*?', preg_quote($row['word'], '#')) . ')\b#i';
}
З.Ы. Правда в тех случаях, когда слово может использоваться с окончанием или без - приходится в словарь вбивать два варианта (например - "администратор" и "администратор%"), т.к. если окончание у слова отсутствует и в конце строки стоит "\B" - автоцензор этого не понимает. Хотя мне и в этом случае уж лучше два раза слово вбить, чем 5-10 его различных написаний - всяко экономия.
-
- phpBB 1.4.0
- Сообщения: 36
- Стаж: 17 лет 3 месяца
- Откуда: Ярославль
-
- Former team member
- Сообщения: 1139
- Стаж: 18 лет 2 месяца
- Откуда: Ленинград
Вы предлагаете мне еще раз написать то, что я уже написал? Так если вы не хотите читать, вам это не поможет все равно... Feeling почему-то помогло с первого раза.siemens-klub писал(а):а $ на $$заменить нуна.как чтоб без косяков?у меня не получилось..
И если я неправ, пусть старшие товарищи поправят меня