Проблема после добавления функции отображения аватара

Есть любые вопросы, связанные со стилями/темами для phpBB 3.0.x? Задайте их здесь!
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
j0yb1tyr
phpBB 1.0.0
Сообщения: 4
Стаж: 18 лет 11 месяцев
Откуда: /dev/null

Проблема после добавления функции отображения аватара

Сообщение j0yb1tyr »

Форум 3.0.3

Добрых суток, делаю свой стиль и вот столкнулся с проблемой:
На форуме сделан сайдбар. На этот сайд бар я помещаю его аватар, если пользователь залогинен(слово-то какое корявое).
Делаю это следующим образом:
в файл includes/functions.php добавляю код:

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

    $template->assign_vars(array(
       'USER_AVATAR'            => get_user_avatar($user->data['user_avatar'], $user->data['user_avatar_type'], $user->data['user_avatar_width'], $user->data['user_avatar_height']),
    ));
а в коде сайдбара прописываю:

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

<!-- IF S_USER_LOGGED_IN -->{USER_AVATAR}<!-- ENDIF -->
Все заработало, на сайдбаре красовался мой аватар,но проблема выяснилась минутой позже, когда я решил проверить как отображается под гостем. Делаю логаут, аватара нет, все супер, душа поет...далее при попытке залогинится я вижу только белую страницу, при попытке войти в админку тоже, а вот серфить разделы дает.
Как я понял ошибка возникает только при обращении к файлу ucp.php и каким-то файлам админки...
Подскажите что я нарушил при создании данной функции, чтобы избежать этого в дальнейшем. И если Вас не затруднит помогите решить проблему.
Заранее спасибо, с уважением.

Добавлено спустя 11 минут 48 секунд:
Извините, поспешил с вопросом, нашел немного иное решение своей задачи:
Открываем includes\functions.php
находим

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

'SITENAME'                        => $config['sitename'],
Добавляем ДО

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

    include_once($phpbb_root_path . 'includes/functions_display.' . $phpEx);     
находим

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

    'PRIVATE_MESSAGE_INFO_UNREAD'   => $l_privmsgs_text_unread,         
Добавляем ПОСЛЕ

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

    // Avatar in forum
        'USER_AVATAR'        => get_user_avatar($user->data['user_avatar'], $user->data['user_avatar_type'], $user->data['user_avatar_width'], $user->data['user_avatar_height']),

        'USERNAME_FULL'        => get_username_string('full', $user->data['user_id'], $user->data['username'], $user->data['user_colour'], $user->data['username']),
        'USERNAME_COLOUR'    => get_username_string('colour', $user->data['user_id'], $user->data['username'], $user->data['user_colour'], $user->data['username']),
        'USERNAME'          => get_username_string('username', $user->data['user_id'], $user->data['username'], $user->data['user_colour'], $user->data['username']),
        'U_USERNAME'        => get_username_string('profile', $user->data['user_id'], $user->data['username'], $user->data['user_colour'], $user->data['username']), 
       
    // End avatar in forum
             
Сохраняем.

После этих изменений в хтмл шаблонах можно использоват для отображения аватара и никнейма следующий код:

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

    <span<!-- IF USERNAME_COLOR -->{USERNAME_COLOR}<!-- ENDIF -->>{USERNAME}</font></b><br /><br />
                <a href="{U_PROFILE}"><!-- IF USER_AVATAR -->{USER_AVATAR}<!-- ELSE --><img src="{T_THEME_PATH}/images/no_avatar.gif" alt="" /><!-- ENDIF --></a>          

Но остались вопросы к гуру:
1. в чем была проблема с первым вариантом, почему форум повел себя так.
2. корректен ли 2ой вариант.
Еще раз спасибо.
Li-Gru
phpBB 1.0.0
Сообщения: 6
Стаж: 17 лет 9 месяцев

Re: Проблема после добавления функции отображения аватара

Сообщение Li-Gru »

j0yb1tyr писал(а):Форум 3.0.3

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

    $template->assign_vars(array(
       'USER_AVATAR'            => get_user_avatar($user->data['user_avatar'], $user->data['user_avatar_type'], $user->data['user_avatar_width'], $user->data['user_avatar_height']),
    ));
а попробуй как в Viewtopic.php

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

get_user_avatar($row['user_avatar'], $row['user_avatar_type'], $row['user_avatar_width'], $row['user_avatar_height'])
Аватара пользователя
Oleg NT
Former team member
Сообщения: 450
Стаж: 20 лет 8 месяцев
Откуда: Нижний Тагил
Поблагодарили: 11 раз

Re: Проблема после добавления функции отображения аватара

Сообщение Oleg NT »

j0yb1tyr писал(а):1. в чем была проблема с первым вариантом, почему форум повел себя так.
Потому что файл functions_display.php не подключается для всех страниц, а только выборочно (т.е. там, где он нужен). В вашем случае скрипт не знал, что за функция такая — get_user_avatar(), поэтому происходила ошибка.
Вообще, в таких случаях, когда видите белый экран, смотрите логи сервера — возможно, там будет описано, что за ошибка, в каком файле и на какой строке.
j0yb1tyr писал(а):После этих изменений в хтмл шаблонах можно использоват для отображения аватара и никнейма следующий код: <...>
Что-то у вас не в порядке с тегами.

Открывается <span>, а закрываются <font> и <b>.

Я бы сделал примерно так:

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

{USERNAME_FULL}:<br /><br /><a href="{U_PROFILE}"><!-- IF USER_AVATAR -->{USER_AVATAR}<!-- ELSE --><img src="{T_THEME_PATH}/images/no_avatar.gif" alt="" width="..." height="..." /><!-- ENDIF --></a>
Li-Gru писал(а):get_user_avatar($row['user_avatar'], $row['user_avatar_type'], $row['user_avatar_width'], $row['user_avatar_height'])
Вы понимаете вообще, что в скрипте происходит? Что такое $row в функции page_header() файла functions.php?
j0yb1tyr
phpBB 1.0.0
Сообщения: 4
Стаж: 18 лет 11 месяцев
Откуда: /dev/null

Re: Проблема после добавления функции отображения аватара

Сообщение j0yb1tyr »

Спасибо за разъяснения. :roll:

Вернуться в «Стили для phpBB 3.0.x»