Перейти к основному содержанию

phpBB 3.3.8 — Breadcrumb Menu ошибка PHP: Trying to access array offset on value of type bool

phpBB

Для форума phpBB есть хорошее расширение под названием Breadcrumb Menu. Оно добавляет простую вещь — выпадающие списки форумов при наведении на хлебные крошки.

php

Последние версии добавляют хлебные крошки только на крайний левый элемент, но и это полезно.

Расширение сначала разрабатывал PayBas, потом david63. Последняя доступная версия, которую я смог скачать: 1.0.6. Разработчик david63 выложил исправления для phpBB 3.3, но, однако, уничтожил свои наработки в github, так что его версию я найти не смог. Если у кого-то есть нормальная версия, то присылайте.

При переходе на PHP 8.0 в расширении Breadcrumb Menu появилась ошибка:

[04-Nov-2022 18:18:58 Europe/Moscow] PHP Warning: Trying to access array offset on value of type bool in [ROOT]\ext\paybas\breadcrumbmenu\event\listener.php on line 286

php

Поиск в Интернете ничего не дал, лезем в код, в 286 строку.

if (!($tree['forum_id'] == $next['parent_id']))

php

Новшество "Trying to access array offset on value of type bool" появилось в PHP 7.4. В новых версиях PHP нужно обязательно проверять наличие элементов массива перед работой с ними. Меняем код на:

if (!($tree['forum_id'] == (is_array($next) ? $next['parent_id'] : NULL)))

php

Проблема решена.

Теги

 

Похожие материалы

phpBB 3.3.0 — обновление до 3.3.8

У меня на поддержке есть несколько форумов phpBB. Пришла пора обновить форум с версии 3.3.0 на версию 3.3.8. Текущий форум работает на IIS. PHP версии 7.3.7. В phpBB 3.3.8 есть поддержка PHP 8.0. Так что вместе с форумом придётся обновить PHP. Кроме того, в новой версии форума обновим расширения.

Теги

Делюсь переводом расширения Contact Admin для phpBB3.2

Интегрируем форму обратной связи на форум, используем расширение Contact Admin. Локализации в комплекте не было, пришлось написать самому. От меня - русская локализация.

Теги

IIS 7.0 — The FastCGI process exceeded configured request timeout

Привет, сегодня будем лечить ошибку: HTTP Error 500. The FastCGI process exceeded configured request timeout. Пути к php-cgi.exe могут отличаться в каждом конкретном случае. Ошибка происходит при превышении таймаута работы скрипта. По умолчанию таймаут FastCGI 90 секунд.

Теги