Перейти к содержимому
Русский язык для Invision Community 5

Аватор вместо фото

(0 отзывов)

В IP.Board 3.x аваторы используются только при показе сообщений в форуме, в остальных местах используется фотография пользователя. Если аваторы закачивают часто, то фотографию как правило не размещают.

Использование фотографии определяется в файле admin/sources/base/core.php функция buildProfilePhoto()

 

Начал писать свое решение, но не доделал. Нашел готовое решение на community.invisionpower.com.

 

Авторское право на решение: T3XT3

 

/admin/sources/base/core.php

 

Меняем фрагмент:

                        if ( ! $member['pp_thumb_photo'] OR $member['pp_thumb_photo'] == 'profile/' )
                       {
                               if( $member['_has_photo'] )
                               {
                                       $member['pp_thumb_photo']  = $member['pp_main_photo'];
                               }
                               else
                               {
                                       $member['pp_thumb_photo']  = ipsRegistry::$settings['img_url'] . 

'/profile/default_thumb.png';
                               }

                               $member['pp_thumb_width']  = 50;
                               $member['pp_thumb_height'] = 50;
                       }
                       else
                       {
                               if( $member['_has_photo'] )
                               {
                                       $member['pp_thumb_photo'] = ipsRegistry::$settings['upload_url'] . '/' . 

$member['pp_thumb_photo'];
                               }
                               else
                               {
                                       $member['pp_thumb_photo']  = ipsRegistry::$settings['img_url'] . 

'/profile/default_thumb.png';
                               }
                       }


                       //-----------------------------------------
                       // Try not to distort the image
                       //-----------------------------------------

                       if ( !ipsRegistry::member()->getProperty('g_mem_info') )
                       {
                               $member['pp_thumb_width']  = 50;
                               $member['pp_thumb_height'] = 50;
                       }

 

 

На фрагмент:

 

                        if ( $member['avatar_location'] )
                       {
                               if ( $member['avatar_type'] == 'upload' )
                               {
                                       $member['pp_thumb_photo'] = ipsRegistry::$settings['upload_url'] . '/' . $member['avatar_location'];
                               }
                               else
                               {
                                       $member['pp_thumb_photo']  = $member['avatar_location'];
                               }
                       }
                       else
                       {
                               $member['pp_thumb_photo']  = ipsRegistry::$settings['img_url'] . '/profile/default_thumb.png';
                       }

                       //-----------------------------------------
                       // Try not to distort the image
                       //-----------------------------------------

                       if ( $member['avatar_size'] )
                       {
                               $avatar_size_thumb = explode ( 'x', $member['avatar_size'] ); 
                               $_data = IPSLib::scaleImage( array( 'max_height' => 50, 'max_width' => 50, 'cur_width' => $avatar_size_thumb[0], 'cur_height' => $avatar_size_thumb[1] ) );
                               $member['pp_thumb_width']  = $_data['img_width'];
                         $member['pp_thumb_height'] = $_data['img_height'];
                       }                       
                       else
                       {
                               $member['pp_thumb_width']  = 50;
                               $member['pp_thumb_height'] = 50;
                       }

 

Решение испытал, работает. Испытывал на тестовом форуме. Если выплывут глюки, готов доработать.

 

 

 

Внимание. Данное изменение нарушают идеологию движка IP.Board 3.x, где любое изменение функций, должно выполнятся через хук, не затрагивая исходный код форума.

 

Важно. При апгрейде форума изменение потеряется и надо будет его восстанавливать.

 

 

Источник: community.invisionpower.com

1 комментарий

Рекомендованные комментарии

DeerDance Newbie

DeerDance

Прохожие

спасибо

Аккаунт

Навигация

Поиск

Поиск

Настроить push-уведомления браузера

Chrome (Android)
  1. Нажмите на иконку замка рядом с адресной строкой.
  2. Нажмите Права доступа -> Уведомления.
  3. Измените свои настройки.
Chrome (компьютер)
  1. Нажмите на иконку замка в адресной строке.
  2. Выберите Настройки сайта.
  3. Найдите Уведомления и измените свои настройки.