Ошибка в логах (can_see_warning)

Автор Slavegirl, 29 ноября 2012, 20:09:30

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Slavegirl

Здравствуйте!

После включения на форуме "Системы предупреждений" в логах стала периодически появляться ошибка:


8: Undefined index: can_see_warning
Файл: /usr/home/***/www/Themes/urban/Display.template.php


В настройках предупреждений выставлено: "Пользователи, которые могут видеть статус предупреждений - Модераторы и предупреждаемые пользователи".

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

Часть проблемного кода в файле "Display.template.php":


// Are we showing the warning status?
if ($message['member']['can_see_warning']) <- эта проверка вызывает ошибку
  echo 'Здесь выводится статус предупреждения в информационной панели пользователя (под наблюдением/модерируемый/молчит)';


Вопрос: что нужно дописать перед проверкой if (*** && $message['member']['can_see_warning']), чтобы движок форума не пытался искать и выводить статус предупреждений для несуществующего пользователя?

Заранее большое спасибо за советы!

С уважением,
Slavegirl


Slavegirl

#2
Уважаемый digger, большое спасибо за оперативный ответ!

В строке if (*** && $message['member']['can_see_warning']) на месте 3 звёздочек я имела в виду какое-то дополнительное условие.

Но судя по Вашему примеру, можно обойтись просто модификацией стандартного условия?


if (!empty($message['member']['can_see_warning']))


Или нужно 2 условия?


if (!empty($message['member']['can_see_warning']) && $message['member']['can_see_warning'])


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


Slavegirl

digger, еще раз спасибо, ошибка в логах исчезла.

Если Вам интересно, хочу поделиться примером расположения значка о статусе предупреждений, когда он не занимает целую текстовую строку в информационной панели пользователя.