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

Сообщаем об ошибках phpBB 3.1.x разработчикам

Проблемы с установкой или работой phpBB 3.1.x? Получите помощь здесь!
С 1 июля 2018 года phpBB Group прекращает поддержку phpBB версии 3.1.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.1 до 1 января 2019 года.
Подробнее: Окончание поддержки phpBB 3.1.
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Мини [FAQ] по phpBB3.1.x | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать расширения

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
Аватара пользователя
LavIgor
Former team member
Сообщения: 3468
Стаж: 9 лет 11 месяцев
Благодарил (а): 41 раз
Поблагодарили: 932 раза

Re: Сообщаем об ошибках phpBB 3.1.x разработчикам

Сообщение LavIgor »

nissin писал(а):

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

return call_user_func_array(array($this->user, 'lang'), $args);
Результат:

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

		if (isset($this->user->lang[$key]))
		{
			return $this->user->lang[$key];
		}

		return $key;
А не заденет ли такая замена текущие возможности функции lang()?

Насколько я понимаю, предлагается отказаться от замен %s и других конструкций ради сомнительного выигрыша во времени.
Аватара пользователя
nissin
phpBB 3.0.4
Сообщения: 2208
Стаж: 16 лет 3 месяца
Откуда: Павлодар
Благодарил (а): 7 раз
Поблагодарили: 338 раз
Контактная информация:

Re: Сообщаем об ошибках phpBB 3.1.x разработчикам

Сообщение nissin »

Продолжаем...
http://php.net/manual/ru/reference.pcre ... ifiers.php
S
В случае, если планируется многократно использовать шаблон, имеет смысл потратить немного больше времени на его анализ, чтобы уменьшить время его выполнения. В случае, если данный модификатор используется, проводится дополнительный анализ шаблона. В настоящем это имеет смысл только для "незаякоренных" шаблонов, не начинающихся с какого-либо определенного символа.
Имеет смысл для автоцензора, поскольку там preg_replace начинает кушать много времени.
Просто добавляем S к модификаторам для PREG в регулярках.
includes/functions.php

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

function get_censor_preg_expression($word, $use_unicode = true)
{
	// Unescape the asterisk to simplify further conversions
	$word = str_replace('\*', '*', preg_quote($word, '#'));

	if ($use_unicode && phpbb_pcre_utf8_support())
	{
		// Replace asterisk(s) inside the pattern, at the start and at the end of it with regexes
		$word = preg_replace(array('#(?<=[\p{Nd}\p{L}_])\*+(?=[\p{Nd}\p{L}_])#iu', '#^\*+#', '#\*+$#'), array('([\x20]*?|[\p{Nd}\p{L}_-]*?)', '[\p{Nd}\p{L}_-]*?', '[\p{Nd}\p{L}_-]*?'), $word);

		// Generate the final substitution
		$preg_expr = '#(?<![\p{Nd}\p{L}_-])(' . $word . ')(?![\p{Nd}\p{L}_-])#iuS';
	}
	else
	{
		// Replace the asterisk inside the pattern, at the start and at the end of it with regexes
		$word = preg_replace(array('#(?<=\S)\*+(?=\S)#iu', '#^\*+#', '#\*+$#'), array('(\x20*?\S*?)', '\S*?', '\S*?'), $word);

		// Generate the final substitution
		$preg_expr = '#(?<!\S)(' . $word . ')(?!\S)#iuS';
	}

	return $preg_expr;
}
Отправлено спустя 5 минут 5 секунд:
LavIgor писал(а): А не заденет ли такая замена текущие возможности функции lang()?
Эта функция используется только для шаблонов.
В настоящее время в шаблонах не используются возможности $user->lang().
Вот часть кода из lexer.php

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

		// Replace all of our language variables, {L_VARNAME}, with Twig style, {{ lang('NAME') }}
		// Appends any filters after lang()
		$code = preg_replace('#{L_([a-zA-Z0-9_\.]+)(\|[^}]+?)?}#', '{{ lang(\'$1\')$2 }}', $code);

		// Replace all of our escaped language variables, {LA_VARNAME}, with Twig style, {{ lang('NAME')|addslashes }}
		// Appends any filters after lang(), but before addslashes
		$code = preg_replace('#{LA_([a-zA-Z0-9_\.]+)(\|[^}]+?)?}#', '{{ lang(\'$1\')$2|addslashes }}', $code);
Всё повторяется. nurlan.info
Аватара пользователя
LavIgor
Former team member
Сообщения: 3468
Стаж: 9 лет 11 месяцев
Благодарил (а): 41 раз
Поблагодарили: 932 раза

Re: Сообщаем об ошибках phpBB 3.1.x разработчикам

Сообщение LavIgor »

nissin писал(а): В настоящее время в шаблонах не используются возможности $user->lang().
Да???
Так приведённый код - для стандартного синтаксиса phpBB, а не для нового.
Рабочий пример:

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

 {% if S_TOPIC_PREVIEW %}
    <dl>
        <dt><label for="topic_preview1">{{ lang('TOPIC_PREVIEW_DISPLAY') }}{{ lang('COLON') }}</label></dt>
        <dd>
            <label for="topic_preview1"><input type="radio" name="topic_preview" id="topic_preview1" value="1"{% if S_DISPLAY_TOPIC_PREVIEW %} checked="checked"{% endif %} /> {{ lang('YES') }}</label>
            <label for="topic_preview0"><input type="radio" name="topic_preview" id="topic_preview0" value="0"{% if not S_DISPLAY_TOPIC_PREVIEW %} checked="checked"{% endif %} /> {{ lang('NO') }}</label>
        </dd>
    </dl>
{% endif %}
Расширение Topic Preview от VSE.

Наглядно видно, что новый синтаксис расширяет возможности использования функции в шаблонах.
Т.е. можно и array вставлять, и другие параметры добавлять, насколько я понимаю.
Так зачем же рубить эти возможности на корню???
Аватара пользователя
nissin
phpBB 3.0.4
Сообщения: 2208
Стаж: 16 лет 3 месяца
Откуда: Павлодар
Благодарил (а): 7 раз
Поблагодарили: 338 раз
Контактная информация:

Re: Сообщаем об ошибках phpBB 3.1.x разработчикам

Сообщение nissin »

Приведённый код работает.
Перенос кода в шаблоны противоречит концепции MVC используемой в современных фреймворках.
Поэтому array и параметры должны использоваться в Модели, но никак в Представлении.
Всё повторяется. nurlan.info
Аватара пользователя
LavIgor
Former team member
Сообщения: 3468
Стаж: 9 лет 11 месяцев
Благодарил (а): 41 раз
Поблагодарили: 932 раза

Re: Сообщаем об ошибках phpBB 3.1.x разработчикам

Сообщение LavIgor »

nissin писал(а): Приведённый код работает.
Это не отменяет расширения стандартного синтаксиса движка для больших возможностей использования языковых переменных в шаблоне.
Лучше расширить функционал, чем отсекать то, что имеем (в данном конкретном случае).

Я давно искал способ передачи параметров в функцию lang(), ведь в новом движке широкий спектр возможностей за счёт использования этих самых параметров.

P.S. Не отказался бы от цитаты, запрещающей использовать функции с параметрами в шаблонах.
Аватара пользователя
nissin
phpBB 3.0.4
Сообщения: 2208
Стаж: 16 лет 3 месяца
Откуда: Павлодар
Благодарил (а): 7 раз
Поблагодарили: 338 раз
Контактная информация:

Re: Сообщаем об ошибках phpBB 3.1.x разработчикам

Сообщение nissin »

Для начала нужно знать, где вообще написано, что можно применять конструкции типа {{ lang('NO') }}.
New Template Commands in 3.1
После изучения статистики профайлера я думаю, что решение о переходе на Twig не есть хорошо для всех.
Я бы рассмотрел возможность выбора администратором форума другого(хотя бы из ветки 3.0) движка для шаблонов с сохранением синтаксиса phpBB.
Всё повторяется. nurlan.info
Аватара пользователя
xisp
phpBB 3.0.0 RC7
Сообщения: 1798
Стаж: 11 лет 10 месяцев
Благодарил (а): 152 раза
Поблагодарили: 215 раз
Забанен: Бессрочно

Re: Сообщаем об ошибках phpBB 3.1.x разработчикам

Сообщение xisp »

nissin писал(а): я думаю, что решение о переходе на Twig не есть хорошо для всех.
Давно известно, что твиг тормоз. Как и сама симфония.
phpBBex
Аватара пользователя
Sumanai
phpBB 3.0.0 RC5
Сообщения: 1668
Стаж: 9 лет 4 месяца
Благодарил (а): 267 раз
Поблагодарили: 216 раз
Контактная информация:

Re: Сообщаем об ошибках phpBB 3.1.x разработчикам

Сообщение Sumanai »

Обнаружил интересную особенность- если в настройках отдельной группы расширений файлов установить максимальный размер файл больше, чем установлено в настройках вложений, то вложение размером большим, чем размер, установленный в общих настройках, но меньший, чем установлено в настройках расширения файла, нельзя будет загрузить на клиентах с включенным яваскриптом, то есть всех :)
Нужно переписывать функцию в файле \assets\javascript\plupload.js

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

phpbb.plupload.uploader.bind('Error', function(up, error) {
И добавить в конфигурацию, пересылаемый клиентам, соответствующие данные.
Аватара пользователя
LavIgor
Former team member
Сообщения: 3468
Стаж: 9 лет 11 месяцев
Благодарил (а): 41 раз
Поблагодарили: 932 раза

Re: Сообщаем об ошибках phpBB 3.1.x разработчикам

Сообщение LavIgor »

Sumanai писал(а): вложение размером большим, чем размер, установленный в общих настройках, но меньший, чем установлено в настройках расширения файла, нельзя будет загрузить на клиентах с включенным яваскриптом
По-моему, это логично.
Выбирается минимальный максимум, так и должно быть.
Аватара пользователя
Sumanai
phpBB 3.0.0 RC5
Сообщения: 1668
Стаж: 9 лет 4 месяца
Благодарил (а): 267 раз
Поблагодарили: 216 раз
Контактная информация:

Re: Сообщаем об ошибках phpBB 3.1.x разработчикам

Сообщение Sumanai »

LavIgor писал(а): По-моему, это логично.
Логично было бы определять по расширению файла конкретный максимум для этого файла.
LavIgor писал(а): Выбирается минимальный максимум, так и должно быть.
Так не выбирается же, а просто используется настройка из конфигурации вложений.
Если сделать обратное, то клиент будет посылать файл на сервер лишь для того, чтобы узнать, что он слишком большой.
Хотя такие простые проверки должны проверяться на клиенте.
2PiK
phpBB 1.4.2
Сообщения: 69
Стаж: 15 лет 7 месяцев
Благодарил (а): 10 раз
Поблагодарили: 12 раз
Контактная информация:

Re: Сообщаем об ошибках phpBB 3.1.x разработчикам

Сообщение 2PiK »

Не совсем ошибка, в файлах поиска

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

/phpbb/search/fulltext_mysql.php
/phpbb/search/fulltext_native.php
/phpbb/search/fulltext_postgres.php
в функции keyword_search есть события

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

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

Re: Сообщаем об ошибках phpBB 3.1.x разработчикам

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

Интересный и хитрый баг.
Если я хочу удалить сообщение, то кнопка удаления срабатывает нормально.
А вот если зайти в редактирование сообщения и пометить бокс "Удалить сообщение", то сообщает: "Вы не можете удалять сообщения в этом форуме." :roll:
С правами Администратора, правда, тема закрытая.
После нескольких лет общения здесь и техсопровождения форумов я наконец понял, что ничего не понимаю в phpBB!
romeo_piter
phpBB 2.0.21
Сообщения: 1301
Стаж: 14 лет 11 месяцев
Благодарил (а): 245 раз
Поблагодарили: 31 раз

Re: Сообщаем об ошибках phpBB 3.1.x разработчикам

Сообщение romeo_piter »

Обнаружил проблему при переносе темы из одного раздела в другой. Судя по всему дело в аяксе.
В 60% случаев при нажатии "да" происходит рефреш темы без её переноса.
В остальных 40% все переносится хорошо.
Аватара пользователя
Alecto
phpBB 3.0.12
Сообщения: 2857
Стаж: 14 лет 3 месяца
Откуда: Украина! Харьков
Благодарил (а): 80 раз
Поблагодарили: 292 раза
Контактная информация:

Re: Сообщаем об ошибках phpBB 3.1.x разработчикам

Сообщение Alecto »

разве стандартный перенос выполняется через аякс? вот это новость! да и работает перенос корректно, ошибку не подтверждаю.
скорее всего какой-то баг расширения вылез.
romeo_piter
phpBB 2.0.21
Сообщения: 1301
Стаж: 14 лет 11 месяцев
Благодарил (а): 245 раз
Поблагодарили: 31 раз

Re: Сообщаем об ошибках phpBB 3.1.x разработчикам

Сообщение romeo_piter »

Alecto писал(а): разве стандартный перенос выполняется через аякс?
Да, наврал, нет аякса, спутал с изменением формата темы. Значит не аякс. Но проблема есть.
Рсширений, связанных с модераторскими действиями нет.
В сторону каких расширений имеет смысл копать?
Закрыто

Вернуться в «Поддержка phpBB 3.1.x»