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

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

Я переписал этот код чтобы он работал правильно и + ко всему сделал несколько вариантов сообщений.



Установка:

1. Открываем chat/user_info_update.php
После (строка 327):
if($big_del == "on" or !$allow_photo_reiting) { 
    $current_user->photo_voted       =  array();
    $current_user->photo_voted_mark  =  array();
    $current_user->photo_reiting =  0;
}
Вставляем один из понравившихся вариантов:

Вариант 1


Сообщение о загрузке новой фотографии


Код:
if ($big_photo_name != '' && $ok) { 
    $flood_protection = 0;
    $messages_to_show[] = array(
    MESG_TIME => my_time(),
    MESG_ROOM => $room_id,
    MESG_FROM => '',
    MESG_FROMWOTAGS => $user_name,
    MESG_CLANID => $cu_array[USER_CLANID],
    MESG_FROMSESSION => $session,
    MESG_FROMAVATAR => $cu_array[USER_AVATAR],
    MESG_FROMID => $is_regist,
    MESG_TO => '',
    MESG_TOSESSION => '',
    MESG_TOID => 0,
    MESG_BODY => $current_user->nickname . ' загрузил новую фотографию');
    include($engine_path . 'messages_put.php');
}



Вариант 2


Сообщение о загрузке новой фотографии


Код:
if ($big_photo_name != '' && $ok) { 
    $flood_protection = 0;
    $messages_to_show[] = array(
    MESG_TIME => my_time(),
    MESG_ROOM => $room_id,
    MESG_FROM => '',
    MESG_FROMWOTAGS => $user_name,
    MESG_CLANID => $cu_array[USER_CLANID],
    MESG_FROMSESSION => $session,
    MESG_FROMAVATAR => $cu_array[USER_AVATAR],
    MESG_FROMID => $is_regist,
    MESG_TO => '',
    MESG_TOSESSION => '',
    MESG_TOID => 0,
    MESG_BODY => $current_user->nickname . ' загрузил новую фотографию, [<a href="' . $chat_url .'profiler.php?session=' . $session . '&user_to_search=' . $current_user->nickname . '" target="_blank">Посмотреть<a>]');
    include($engine_path . 'messages_put.php');
}



Вариант 3



Сообщение о загрузке новой фотографии


При нажатии на изображение откроется окно профиля пользователя

Код:
if ($big_photo_name != '' && $ok) { 
    $u_ids = array();
    $user_to_search = $current_user->nickname;
    include($ld_engine_path . 'users_search.php');
    if (count($u_ids))
    {
        $text = $current_user->nickname . ' загрузил(а) новую фотографию, <a href="' . $chat_url .'fullinfo.php?session=' . $session . '&user_id=' . $u_ids[0] . '" target="_blank"><img src="' . $chat_url .'photos/' . ((int) ($u_ids[0] / 1000)) . '/' . $u_ids[0] . '.big.jpg?rand=' . rand(0,1000) . '" border="0" style="max-width:60px; max-height:55px;border:1px solid #000;" /><a>';
    }
    else
    {
        $text = $current_user->nickname . ' загрузил(а) новую фотографию, [<a href="' . $chat_url .'profiler.php?session=' . $session . '&user_to_search=' . $current_user->nickname . '" target="_blank">Посмотреть<a>]';
    }

    $flood_protection = 0;
    $messages_to_show[] = array(
    MESG_TIME => my_time(),
    MESG_ROOM => $room_id,
    MESG_FROM => '',
    MESG_FROMWOTAGS => $user_name,
    MESG_CLANID => $cu_array[USER_CLANID],
    MESG_FROMSESSION => $session,
    MESG_FROMAVATAR => $cu_array[USER_AVATAR],
    MESG_FROMID => $is_regist,
    MESG_TO => '',
    MESG_TOSESSION => '',
    MESG_TOID => 0,
    MESG_BODY => $text);
    include($engine_path . 'messages_put.php');
}


Если у Вас есть свои предложения оформления сообщения, пишите в комментариях



Автор поста: ,
    Просмотров: 3629     Создан: 27 мар. 2014 в 22:17