Уважаемые пользователи!
C 7 ноября 2020 года phpBB Group прекратила выпуск обновлений и завершила дальнейшее развитие phpBB версии 3.2.
С 1 августа 2024 года phpBB Group прекращает поддержку phpBB 3.2 на официальном сайте.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.2 до 31 декабря 2024 года.
С учетом этого, настоятельно рекомендуется обновить конференции до версии 3.3.

[3.2] Изменения в расширениях по сравнению с версией 3.1

Форум для авторов расширений для phpBB. Здесь можно попросить помощи в разработке у коллег.
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Мини [FAQ] по phpBB3.1.x/3.3.x | FAQ | Как задавать вопросы | Как устанавливать расширения

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
Аватара пользователя
Борис Бердичевский
phpBB 3.0.0 RC1
Сообщения: 1457
Стаж: 16 лет 2 месяца
Откуда: Израиль, Беэр-Шева
Благодарил (а): 45 раз
Поблагодарили: 81 раз
Контактная информация:

[3.2] Изменения в расширениях по сравнению с версией 3.1

Сообщение Борис Бердичевский »

Только здесь сумел открыть тему.
Давайте заносить сюда важную информацию для разработчиков расширений, чтобы переводить расширения на 3.2.

Итак, что мной замечено.

В версии 3.1 было:

Код: Выделить всё

$username = utf8_normalize_nfc(request_var('username', '', true));
В версии 3.2 должно быть:

Код: Выделить всё

$username = utf8_clean_string($this->request->variable('username', '', true));
Полагаем, что переменная request имеется в классе в коде листенера.
После нескольких лет общения здесь и техсопровождения форумов я наконец понял, что ничего не понимаю в phpBB!
Аватара пользователя
LavIgor
Former team member
Сообщения: 3468
Стаж: 9 лет 11 месяцев
Благодарил (а): 41 раз
Поблагодарили: 932 раза

Re: Изменения в расширениях по сравнению с версией 3.1

Сообщение LavIgor »

Борис Бердичевский писал(а): В версии 3.2 должно быть
Не обязательно.
request_var сейчас задаётся вот здесь и будет удалена только в phpBB 3.3.
Аватара пользователя
Борис Бердичевский
phpBB 3.0.0 RC1
Сообщения: 1457
Стаж: 16 лет 2 месяца
Откуда: Израиль, Беэр-Шева
Благодарил (а): 45 раз
Поблагодарили: 81 раз
Контактная информация:

Re: Изменения в расширениях по сравнению с версией 3.1

Сообщение Борис Бердичевский »

Ну, если будет удалена, то лучше уже сейчас заменить. А что насчёт замены utf8_normalize_nfc на utf8_clean_string? Это я опытным путём обнаружил.
После нескольких лет общения здесь и техсопровождения форумов я наконец понял, что ничего не понимаю в phpBB!
Аватара пользователя
LavIgor
Former team member
Сообщения: 3468
Стаж: 9 лет 11 месяцев
Благодарил (а): 41 раз
Поблагодарили: 932 раза

Re: Изменения в расширениях по сравнению с версией 3.1

Сообщение LavIgor »

Борис Бердичевский, utf8_normalize_nfc и так вызывается при использовании $request->variable, поэтому дополнительная "обёртка" больше не нужна.
Аватара пользователя
Борис Бердичевский
phpBB 3.0.0 RC1
Сообщения: 1457
Стаж: 16 лет 2 месяца
Откуда: Израиль, Беэр-Шева
Благодарил (а): 45 раз
Поблагодарили: 81 раз
Контактная информация:

Re: Изменения в расширениях по сравнению с версией 3.1

Сообщение Борис Бердичевский »

Гм, вот кусок кода из captcha/plugins/qa:

Код: Выделить всё

	/**
	*  The actual validation
	*/
	function check_answer()
	{
		global $db, $request;

		$answer = ($this->question_strict) ? $request->variable('qa_answer', '', true) : utf8_clean_string($request->variable('qa_answer', '', true));
Отправлено спустя 4 минуты 51 секунду:
Да, utf8_clean_string в моём случае не нужно:

Код: Выделить всё

$username = $this->request->variable('username', '', true);
После нескольких лет общения здесь и техсопровождения форумов я наконец понял, что ничего не понимаю в phpBB!
Аватара пользователя
LavIgor
Former team member
Сообщения: 3468
Стаж: 9 лет 11 месяцев
Благодарил (а): 41 раз
Поблагодарили: 932 раза

Re: Изменения в расширениях по сравнению с версией 3.1

Сообщение LavIgor »

Борис Бердичевский, clean используется для своих целей (например, есть поле username, а есть также username_clean).
В подробности этого вопроса не вдавался, но в Coding Guidelines сказано следующее:
phpBB offers a special method utf8_clean_string which can be used to make sure string identifiers are unique. This method uses Normalization Form Compatibility Composition (NFKC) instead of NFC and replaces similarly looking characters with a particular representative of the equivalence class. This method is currently used for usernames and group names to avoid confusion with similarly looking names.
Аватара пользователя
Борис Бердичевский
phpBB 3.0.0 RC1
Сообщения: 1457
Стаж: 16 лет 2 месяца
Откуда: Израиль, Беэр-Шева
Благодарил (а): 45 раз
Поблагодарили: 81 раз
Контактная информация:

Re: Изменения в расширениях по сравнению с версией 3.1

Сообщение Борис Бердичевский »

Мне это нужно для печати в логе. Так что не нужно применять эту функцию. А в существующем коде проверки ответа, как я понял, есть вариант сверки строгий (большие и малые буквы) и обычный -- в этом случае и применяют utf8_clean_string.
После нескольких лет общения здесь и техсопровождения форумов я наконец понял, что ничего не понимаю в phpBB!
LBeaver
phpBB 1.4.4
Сообщения: 153
Стаж: 9 лет 4 месяца
Благодарил (а): 47 раз
Поблагодарили: 44 раза
Контактная информация:

Re: [3.2] Изменения в расширениях по сравнению с версией 3.1

Сообщение LBeaver »

На оф. сайте есть хорошая тема: phpBB 3.2 Upgrade Notes for Extensions
Ответить

Вернуться в «Для разработчиков»