Сообщаем об ошибках 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
Поддержка
Поддержка
Сообщения: 3443
Зарегистрирован: 28.04.2014 8:16
Благодарил (а): 36 раз
Поблагодарили: 919 раз

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

Сообщение LavIgor » 10.07.2015 20:08

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.3
Сообщения: 2160
Зарегистрирован: 16.12.2007 14:01
Откуда: Павлодар
Благодарил (а): 7 раз
Поблагодарили: 334 раза
Контактная информация:

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

Сообщение nissin » 10.07.2015 20:41

Продолжаем...
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
Поддержка
Поддержка
Сообщения: 3443
Зарегистрирован: 28.04.2014 8:16
Благодарил (а): 36 раз
Поблагодарили: 919 раз

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

Сообщение LavIgor » 10.07.2015 21:00

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.3
Сообщения: 2160
Зарегистрирован: 16.12.2007 14:01
Откуда: Павлодар
Благодарил (а): 7 раз
Поблагодарили: 334 раза
Контактная информация:

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

Сообщение nissin » 10.07.2015 21:32

Приведённый код работает.
Перенос кода в шаблоны противоречит концепции MVC используемой в современных фреймворках.
Поэтому array и параметры должны использоваться в Модели, но никак в Представлении.
Всё повторяется. nurlan.info

Аватара пользователя
LavIgor
Поддержка
Поддержка
Сообщения: 3443
Зарегистрирован: 28.04.2014 8:16
Благодарил (а): 36 раз
Поблагодарили: 919 раз

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

Сообщение LavIgor » 10.07.2015 21:39

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

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

P.S. Не отказался бы от цитаты, запрещающей использовать функции с параметрами в шаблонах.

Аватара пользователя
nissin
phpBB 3.0.3
Сообщения: 2160
Зарегистрирован: 16.12.2007 14:01
Откуда: Павлодар
Благодарил (а): 7 раз
Поблагодарили: 334 раза
Контактная информация:

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

Сообщение nissin » 10.07.2015 22:35

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

Аватара пользователя
xisp
phpBB 3.0.0 RC7
Сообщения: 1799
Зарегистрирован: 19.05.2012 19:00
Благодарил (а): 152 раза
Поблагодарили: 215 раз
Забанен: Бессрочно

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

Сообщение xisp » 11.07.2015 3:00

nissin писал(а): я думаю, что решение о переходе на Twig не есть хорошо для всех.
Давно известно, что твиг тормоз. Как и сама симфония.
phpBBex

Аватара пользователя
Sumanai
phpBB 3.0.0 RC5
Сообщения: 1657
Зарегистрирован: 02.11.2014 13:57
Благодарил (а): 264 раза
Поблагодарили: 219 раз
Контактная информация:

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

Сообщение Sumanai » 13.07.2015 12:22

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

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

phpbb.plupload.uploader.bind('Error', function(up, error) {
И добавить в конфигурацию, пересылаемый клиентам, соответствующие данные.

Аватара пользователя
LavIgor
Поддержка
Поддержка
Сообщения: 3443
Зарегистрирован: 28.04.2014 8:16
Благодарил (а): 36 раз
Поблагодарили: 919 раз

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

Сообщение LavIgor » 13.07.2015 12:27

Sumanai писал(а): вложение размером большим, чем размер, установленный в общих настройках, но меньший, чем установлено в настройках расширения файла, нельзя будет загрузить на клиентах с включенным яваскриптом
По-моему, это логично.
Выбирается минимальный максимум, так и должно быть.

Аватара пользователя
Sumanai
phpBB 3.0.0 RC5
Сообщения: 1657
Зарегистрирован: 02.11.2014 13:57
Благодарил (а): 264 раза
Поблагодарили: 219 раз
Контактная информация:

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

Сообщение Sumanai » 13.07.2015 12:40

LavIgor писал(а): По-моему, это логично.
Логично было бы определять по расширению файла конкретный максимум для этого файла.
LavIgor писал(а): Выбирается минимальный максимум, так и должно быть.
Так не выбирается же, а просто используется настройка из конфигурации вложений.
Если сделать обратное, то клиент будет посылать файл на сервер лишь для того, чтобы узнать, что он слишком большой.
Хотя такие простые проверки должны проверяться на клиенте.

2PiK
phpBB 1.4.2
Сообщения: 69
Зарегистрирован: 06.08.2008 9:18
Благодарил (а): 10 раз
Поблагодарили: 12 раз
Контактная информация:

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

Сообщение 2PiK » 14.07.2015 9:31

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

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

/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
Зарегистрирован: 31.12.2007 1:52
Откуда: Израиль, Беэр-Шева
Благодарил (а): 47 раз
Поблагодарили: 81 раз
Контактная информация:

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

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

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

romeo_piter
phpBB 2.0.15
Сообщения: 1033
Зарегистрирован: 02.04.2009 17:28
Благодарил (а): 168 раз
Поблагодарили: 20 раз

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

Сообщение romeo_piter » 03.08.2015 17:25

Обнаружил проблему при переносе темы из одного раздела в другой. Судя по всему дело в аяксе.
В 60% случаев при нажатии "да" происходит рефреш темы без её переноса.
В остальных 40% все переносится хорошо.

Аватара пользователя
Alecto
phpBB 3.0.11
Сообщения: 2840
Зарегистрирован: 25.12.2009 0:27
Откуда: Украина! Харьков
Благодарил (а): 69 раз
Поблагодарили: 286 раз
Контактная информация:

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

Сообщение Alecto » 03.08.2015 17:43

разве стандартный перенос выполняется через аякс? вот это новость! да и работает перенос корректно, ошибку не подтверждаю.
скорее всего какой-то баг расширения вылез.

romeo_piter
phpBB 2.0.15
Сообщения: 1033
Зарегистрирован: 02.04.2009 17:28
Благодарил (а): 168 раз
Поблагодарили: 20 раз

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

Сообщение romeo_piter » 03.08.2015 17:47

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

Закрыто

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