Уважаемые пользователи!
В версии phpBB 3.3.13 обнаружены ошибки при использовании функции поиска по конференции.
Обсуждение проблемы и ее решения здесь Re: Вышел phpBB 3.3.13 [обсуждаем].
В связи с этим, не рекомендуется установка и обновление до phpBB 3.3.13.
Ошибка будет устранена разработчиками в версии phpBB 3.3.14.
Скачать предыдущую версию - phpBB 3.3.12 - можно здесь.
В версии phpBB 3.3.13 обнаружены ошибки при использовании функции поиска по конференции.
Обсуждение проблемы и ее решения здесь Re: Вышел phpBB 3.3.13 [обсуждаем].
В связи с этим, не рекомендуется установка и обновление до phpBB 3.3.13.
Ошибка будет устранена разработчиками в версии phpBB 3.3.14.
Скачать предыдущую версию - phpBB 3.3.12 - можно здесь.
Уважаемые пользователи!
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.
Сообщаем об ошибках phpBB 3.2.x разработчикам
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Мини [FAQ] по phpBB 3.1.x/3.2.x | FAQ | Как задавать вопросы | Как устанавливать расширения
Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ).
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Мини [FAQ] по phpBB 3.1.x/3.2.x | FAQ | Как задавать вопросы | Как устанавливать расширения
Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ).
-
- Former team member
- Сообщения: 2317
- Стаж: 14 лет 10 месяцев
- Благодарил (а): 37 раз
- Поблагодарили: 261 раз
Re: Сообщаем об ошибках phpBB 3.2.x разработчикам
rxu, возьми любого юзера, назначь ему в правах пользователя пользовательскую роль "Стандартные возможности", сохрани их, а теперь попробуй откатить эти права - запасаюсь попкорном и пивом...
Отправлено спустя 45 минут 11 секунд:
Хее, то что указал выше - это "костыль" для ручного решения проблемы - выбираем роль "Роль не назначена...", выставляем все в Нет и получаем конфетку.
Сам косячокс где-то на стороне фронта, т.к. js функция reset_role вроде отрабатывает, но ajax в php отправляет все равно старое значение id роли
Отправлено спустя 45 минут 11 секунд:
Хее, то что указал выше - это "костыль" для ручного решения проблемы - выбираем роль "Роль не назначена...", выставляем все в Нет и получаем конфетку.
Сам косячокс где-то на стороне фронта, т.к. js функция reset_role вроде отрабатывает, но ajax в php отправляет все равно старое значение id роли
Помощь в ЛС/email только за WM или ЮMoney
-
- phpBB Guru
- Сообщения: 16585
- Стаж: 18 лет 4 месяца
- Откуда: Красноярск
- Благодарил (а): 543 раза
- Поблагодарили: 1806 раз
Re: Сообщаем об ошибках phpBB 3.2.x разработчикам
Откатить куда? Я еще раз объясняю - "Роль не назначена" - это не конкретный набор прав, а любой кроме предустановленных.
-
- Former team member
- Сообщения: 2317
- Стаж: 14 лет 10 месяцев
- Благодарил (а): 37 раз
- Поблагодарили: 261 раз
Re: Сообщаем об ошибках phpBB 3.2.x разработчикам
rxu, упрямству гордых поем мы песни (с)
phpbb3.2.1
Идем в админку -> Права доступа -> Глобальные права доступа -> Права доступа -> выбираем любого юзера -> выбираем ему роль например "Стандартные возможности" -> нажимаем "Применить права" -> получаем сообщение что все ок и вылетаем на страницу выбора юзера.
Теперь опять выбираем этого же юзера -> в открвшемся окне видим что у него указана роль Стандартные возможности -> при клике на "Подробно" видим права согласно роли "Стандартные возможности". А теперь фокус - нам нужно снести все эти права в Нет - нажимаем "Все НЕТ" - и тут начинаются чудеса: права в табелице встают все в НЕТ (супер), а вот в окошке "Роль:" осталась надпись "Стандартные возможности", хотя те кто хоть раз нормально разбирался с системой прав, то замечал что при любом изменении прав в таблице роль "обнулялась" в "Роль не назначена...". Но это пол беды если просмотреть html код - поле "Роль" - это псевдо выпадающий список (а по факту просто
При выборе любого права или кнопок "Все..." вызывается js функция
Но при попытке отправить изменения (сабмит формы при нажатии "Применить права") есть чудо js код в файле adm/style/ajax.js:
И что мы видим - а id роли для отправки в бэк то сначала проверяется из какого-то
Т.е. в бэк отправляется исходное значение id роли (Стандартные возможности), а php при наличии id роли "забивает" на права, которые мы выбирали ручками (т.е. все в НЕТ) и тупа заменяет их значениями прав из указанной роли (Стандартные возможности).
Так понятно???
phpbb3.2.1
Идем в админку -> Права доступа -> Глобальные права доступа -> Права доступа -> выбираем любого юзера -> выбираем ему роль например "Стандартные возможности" -> нажимаем "Применить права" -> получаем сообщение что все ок и вылетаем на страницу выбора юзера.
Теперь опять выбираем этого же юзера -> в открвшемся окне видим что у него указана роль Стандартные возможности -> при клике на "Подробно" видим права согласно роли "Стандартные возможности". А теперь фокус - нам нужно снести все эти права в Нет - нажимаем "Все НЕТ" - и тут начинаются чудеса: права в табелице встают все в НЕТ (супер), а вот в окошке "Роль:" осталась надпись "Стандартные возможности", хотя те кто хоть раз нормально разбирался с системой прав, то замечал что при любом изменении прав в таблице роль "обнулялась" в "Роль не назначена...". Но это пол беды если просмотреть html код - поле "Роль" - это псевдо выпадающий список (а по факту просто
span
, а select строкой выше и display:none
)При выборе любого права или кнопок "Все..." вызывается js функция
reset_role('role00')
, которая и сбрасывает в скрытом select
выбранную роль на "Роль не выбрана..", хотя не плохо бы при этом и span
обновлять для полного эффекта.Но при попытке отправить изменения (сабмит формы при нажатии "Применить права") есть чудо js код в файле adm/style/ajax.js:
Код: Выделить всё
// Find proper role value
var roleInput = $fieldset.find('input[name^=role][data-name]');
if (roleInput.val()) {
formDataSets[dataSetIndex] += '&' + roleInput.attr('name') + '=' + roleInput.val();
} else {
formDataSets[dataSetIndex] += '&' + roleInput.attr('name') + '=' +
$fieldset.find('select[name="' + roleInput.attr('name') + '"]').val();
}
input-а
и если оно есть, то берет его, а не из скрытого select-а
- второе условие, а input то оказалось хранит исходное значение роли.Т.е. в бэк отправляется исходное значение id роли (Стандартные возможности), а php при наличии id роли "забивает" на права, которые мы выбирали ручками (т.е. все в НЕТ) и тупа заменяет их значениями прав из указанной роли (Стандартные возможности).
Так понятно???
Помощь в ЛС/email только за WM или ЮMoney
-
- phpBB Guru
- Сообщения: 16585
- Стаж: 18 лет 4 месяца
- Откуда: Красноярск
- Благодарил (а): 543 раза
- Поблагодарили: 1806 раз
Re: Сообщаем об ошибках phpBB 3.2.x разработчикам
Можно было сразу написать, в чём конкретно баг? Как Правилами положено.
Исправить не могу.
Исправить не могу.
-
- Former team member
- Сообщения: 2317
- Стаж: 14 лет 10 месяцев
- Благодарил (а): 37 раз
- Поблагодарили: 261 раз
Re: Сообщаем об ошибках phpBB 3.2.x разработчикам
1. не сохраняются новые права доступа (если они устанавливаются не через роль, а выбираются по одному или через кнопки "Все Да", "Все Нет", "Все НИКОГДА"), если ранее они были установлены через роль. Проверено на всех видах прав доступа - ситуация аналогичная. phpbb3.2.1
2. при изменении прав, текст в span "Роль:" не изменяется с названия текущей роли, на "Роль не назначена..."
Fix:
в файле
adm\style\permission_mask.html
найти:
Код: Выделить всё
var role_options = new Array();
Код: Выделить всё
var no_role_assigned = "{L_NO_ROLE_ASSIGNED}";
adm\style\permissions.js
найти:
Код: Выделить всё
t.options[0].selected = true;
Код: Выделить всё
(function($)// Avoid conflicts with other libraries
{
var parent = $(t).parent();
parent.find("span[title=Roles]")[0].innerText = no_role_assigned;
// Find proper role value
var roleInput = parent.find('input[name^=role][data-name]');
roleInput.val(0);
})(jQuery); // Avoid conflicts with other libraries
Помощь в ЛС/email только за WM или ЮMoney
-
- Former team member
- Сообщения: 2317
- Стаж: 14 лет 10 месяцев
- Благодарил (а): 37 раз
- Поблагодарили: 261 раз
Re: Сообщаем об ошибках phpBB 3.2.x разработчикам
Модераторы, затрите предложенные мной правки тут Re: Сообщаем об ошибках phpBB 3.2.x разработчикам , они, по большому счету, не нужны в свете предыдущего поста
Помощь в ЛС/email только за WM или ЮMoney
-
- Former team member
- Сообщения: 2317
- Стаж: 14 лет 10 месяцев
- Благодарил (а): 37 раз
- Поблагодарили: 261 раз
Re: Сообщаем об ошибках phpBB 3.2.x разработчикам
Концептуальный недочет:
при выполнении cron задания, как из расширения так и предустановленного в движке, в
Пример из пошагового отладочного режима (debug):
Хотя во всех остальных местах в language все нормально (есть ru, локализованные значение и шаблоны email как движка так и расширений доступны):
Отправлено спустя 10 минут 44 секунды:
С одной стороны логично - cron задание может запуститься под любым юзером (у которого может быть выбран язык, отличный от языка конференции по умолчанию ) и поэтому там не используется
при выполнении cron задания, как из расширения так и предустановленного в движке, в
$this->language
выдает ТОЛЬКО en
локаль. Как следствие - невозможность использовать в cron заданиях локализованных переменных и email шаблонов.Пример из пошагового отладочного режима (debug):
prune_notifications
- предустановленное задание:
Скриншот
autogroups_check
- задание официального расширения AutoGroup от команды phpbb:
Скриншот
Скриншот
С одной стороны логично - cron задание может запуститься под любым юзером (у которого может быть выбран язык, отличный от языка конференции по умолчанию ) и поэтому там не используется
$user->setup()
, НО cron все-таки должен подгружать "Язык конференции по умолчанию" и использовать его (на 99,9% конференции он совпадает с языком контента и пользователей).У вас нет необходимых прав для просмотра вложений в этом сообщении.
Помощь в ЛС/email только за WM или ЮMoney
-
- Former team member
- Сообщения: 2317
- Стаж: 14 лет 10 месяцев
- Благодарил (а): 37 раз
- Поблагодарили: 261 раз
Re: Сообщаем об ошибках phpBB 3.2.x разработчикам
Вариантов куча, требующих локализованные значение (например: уведомления, email, логи), да тупо дату к формату русскому не привести - сейчас получается "24 november 2017"
Помощь в ЛС/email только за WM или ЮMoney
Re: Сообщаем об ошибках phpBB 3.2.x разработчикам
Не знаю было или нет, некорректно обрабатываются вложенные бб-коды
";
[/code]
code
Код: Выделить всё
$html[] = "/<pre(.*?)>(.*?)<\/pre>/smi";
$bbcode[] = "[code]\\2
[/code]
У вас нет необходимых прав для просмотра вложений в этом сообщении.
-
- phpBB Guru
- Сообщения: 16585
- Стаж: 18 лет 4 месяца
- Откуда: Красноярск
- Благодарил (а): 543 раза
- Поблагодарили: 1806 раз
Re: Сообщаем об ошибках phpBB 3.2.x разработчикам
2PiK, надо добавлять уникальные айдишники к обрамляющим (самым снешним) тегам.
Код: Выделить всё
[code:123] $html[] = "/<pre(.*?)>(.*?)<\/pre>/smi";
$bbcode[] = "[code]\\2[/code]";
[/code:123]
-
- Former team member
- Сообщения: 2317
- Стаж: 14 лет 10 месяцев
- Благодарил (а): 37 раз
- Поблагодарили: 261 раз
Re: Сообщаем об ошибках phpBB 3.2.x разработчикам
По большому счету не баг, а недочет: есть штатный механизм выбора цвета для чего-то (цвет группы например) с вызовом палитры, НО если необходимо на одной странице вывести возможность выбора нескольких цветов - то тут все радостно "падает" из-за привязки js кода авторами движка к id всего лишь одного элемента.
Fix (актуально и для 3.1 и для 3.2):
в файле
заменить на:
Найти:
Заменить на:
в файле
заменить на:
в файле
заменить на:
Для вставки палитры с выбором цвета можно использовать следующий код:
Обратить внимание: значение в
Fix (актуально и для 3.1 и для 3.2):
в файле
assets\javascript\core.js
найти строку:
Код: Выделить всё
$('#color_palette_toggle').click(function(e) {
Код: Выделить всё
el.parent().find("a.color_palette_toggle").click(function(e) {
Код: Выделить всё
$('#color_palette_placeholder').each(function() {
Код: Выделить всё
$('.color_palette_placeholder').each(function() {
styles\prosilver\template\ucp_groups_manage.html
найти:
Код: Выделить всё
[ <a href="#" id="color_palette_toggle">{L_COLOUR_SWATCH}</a> ]
<div id="color_palette_placeholder" class="color_palette_placeholder hidden" data-orientation="h" data-height="12" data-width="15" data-target="#group_colour"></div>
Код: Выделить всё
[ <a href="#" class="color_palette_toggle">{L_COLOUR_SWATCH}</a> ]
<div class="color_palette_placeholder hidden" data-orientation="h" data-height="12" data-width="15" data-target="#group_colour"></div>
adm\style\acp_groups.html
найти:
Код: Выделить всё
[ <a href="#" id="color_palette_toggle">{L_COLOUR_SWATCH}</a> ]</span>
<div id="color_palette_placeholder" style="display: none;" data-orientation="h" data-height="12" data-width="15" data-target="#group_colour"></div>
Код: Выделить всё
[ <a href="#" class="color_palette_toggle">{L_COLOUR_SWATCH}</a> ]</span>
<div style="display: none;" data-orientation="h" data-height="12" data-width="15" data-target="#group_colour"></div>
Для вставки палитры с выбором цвета можно использовать следующий код:
Код: Выделить всё
<input name="ПО_ЖЕЛАНИЮ" type="text" id="id_colour" value="{ТЕКУЩЕЕ_ЗНАЧЕНИЕ_ЦВЕТА}" size="6" maxlength="6" class="inputbox narrow" />
<span style="background-color: #{ТЕКУЩЕЕ_ЗНАЧЕНИЕ_ЦВЕТА};"> </span>
[ <a href="#" class="color_palette_toggle">{L_COLOUR_SWATCH}</a> ]
<div сlass="color_palette_placeholder hidden" data-orientation="h" data-height="12" data-width="15" data-target="#id_colour"></div>
data-target
должно соответствовать id
из вышестоящего input
(в примере это id_colour
), соответственно при размещении на странице нескольких блоков выбора цвета значения этих id
должны быть разными (например id_colour1
, id_colour2
)Помощь в ЛС/email только за WM или ЮMoney
-
- Former team member
- Сообщения: 2317
- Стаж: 14 лет 10 месяцев
- Благодарил (а): 37 раз
- Поблагодарили: 261 раз
Re: Сообщаем об ошибках phpBB 3.2.x разработчикам
Очередной "перл":
Контроллеры расширений должны возвращать
В отличие от вызова
Решение: добавление в указанные функции еще одного параметра
на
Замечание актуально и для всех версий веток 3.1 и 3.2 - если стремиться отказаться от "говнокода" и делать максимум по гудлайну.
Контроллеры расширений должны возвращать
Symfony Response
объекты. А как правильно обработать в этом свете confirm_box
, login_forum_box
и login_box
? Т.к. все эти функции на конце имеют вызов page_footer()
с дефолтным третьим параметром $exit_handle
, что приводит к обрыву обработки контроллера и return
в контроллере не срабатывает никогда.В отличие от вызова
return $this->helper->render
, который так же имеет в конце вызов page_footer(true, false, false);
, но уже с нужным третьим параметром $exit_handle
равном false
Решение: добавление в указанные функции еще одного параметра
$exit_handle = true
и замена в указанных функциях
Код: Выделить всё
page_footer();
на
Код: Выделить всё
page_footer(true, true, $exit_handle);
Последний раз редактировалось Pazh 11.01.2018 16:42, всего редактировалось 1 раз.
Помощь в ЛС/email только за WM или ЮMoney