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

Личные сообщения в виде чата


Рекомендуемые сообщения

в лс чаще всего что приходит? коды\большие тексты и тд. как ты представляешь себе это в виде чата?

обычные мессаги "привет как дела"

как сделали вконтакте

можно писать в чате же

Ссылка на комментарий

Вообще да, удобно было бы. Особенно мне самому - а то часто пишут, а я не помню, о чем шла речь с этим человеком (слишком много писем), но проблемы две: 1) объем ящика мал, и в чате будет от силы несколько мессаг, остальные удаляются автоматом, 2) реализация. Она сложновата. Кто хочет помочь - милости прошу.

Ссылка на комментарий
просто удобнее, чтобы было не всплывающее окно, а сразу сообщение, на которое можно ответить.
Например вот так (Если пришло одно сообщение от одного пользователя):

wouldbe.png

Если сообщение несколько от одного пользователя, отобразить либо все (со скроллом, новые внизу), либо последнее

Если есть сообщения от нескольких пользователей, то сделать переключатель (листбокс / ссылки / ...)


Можно определить переход на
 ./privmsg.php?folder=inbox&user=[USER_ID]

где отображать все сообщения от этого пользователя и отправленные/исходящие ему примерно в такой форме:

chatbox.png

Можно сделать подзагрузку via Ajax, а можно и не делать)


объем ящика мал, и в чате будет от силы несколько мессаг, остальные удаляются автоматом
Тогда в окне диалога можно сделать кнопку "ЧАТ", откуда, можно вызвать товарища по переписке в, скажем, http://chat.ulanovka.ru , где сделать временную комнату, закрытую ото всех, кроме этих двух пользователей
Ссылка на комментарий

собственно смысл темы таков: сделать личные сообщения так, чтобы при открытии переписки с каким-либо пользователем открывалась вся история переписки с ним. оповещения о новых сообщениях лучше оставить так же как есть.

для наглядности можно посмотреть устройство личных сообщений в мейловском "мой мир".

Ссылка на комментарий
  • 2 недели спустя...

Mac, у меня есть инструкция по навигации по сообщениям. Но код надо редактировать.

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

1) Открыть privmsg.php

Найти:

else
{
message_die(GENERAL_ERROR, $lang['No_post_id']);
}

Ниже вставить.

// BEGIN PM Navigation MOD
if (isset($HTTP_GET_VARS['view']) && ($HTTP_GET_VARS['view']=='next' || $HTTP_GET_VARS['view']=='prev'))
{
$sql_condition = ( $HTTP_GET_VARS['view'] == 'next' ) ? '>' : '<';
$sql_ordering = ( $HTTP_GET_VARS['view'] == 'next' ) ? 'ASC' : 'DESC';

$sql_nav = "SELECT SQL_CACHE pm.privmsgs_id FROM ". PRIVMSGS_TABLE ." pm, ". PRIVMSGS_TABLE ." p2
WHERE p2.privmsgs_id = $privmsgs_id
$pm_sql_user
AND pm.privmsgs_date $sql_condition p2.privmsgs_date
ORDER BY pm.privmsgs_date $sql_ordering LIMIT 1" ;

if ( !($result2 = $db->sql_query($sql_nav)) )
{
message_die(GENERAL_ERROR, 'Could not query private message post information', '', __LINE__, __FILE__, $sql);
}
if ( $row = $db->sql_fetchrow($result2) )
{
$privmsgs_id = intval($row['privmsgs_id']);
}
else
{
$message = ( $HTTP_GET_VARS['view'] == 'next' ) ? $lang['No_newer_pm'] : $lang['No_older_pm'];
$mes = '' . $message . '

' . sprintf($lang['Click_return_inbox'], '', ' ') . sprintf($lang['Click_return_sentbox'], '', ' ') . sprintf($lang['Click_return_outbox'], '', ' ') . sprintf($lang['Click_return_savebox'], '', ' ') . '

' . sprintf($lang['Click_return_index'], '', '');
message_die(GENERAL_MESSAGE, $mes);
}
}
// END PM Navigation MOD

2) Открыть language/lang_russian/lang_main.php

Найти:

$lang['Edit_pm'] = 'Редактировать сообщение';

Ниже вставить:

// BEGIN PM Navigation MOD
$lang['Next_privmsg'] = 'Следующее сообщение';
$lang['Previous_privmsg'] = 'Предыдущее сообщение';
$lang['No_newer_pm'] = 'Нет более новых сообщений чем это';
$lang['No_older_pm'] = 'Нет более старых сообщений чем это';
// END PM Navigation MOD

3) Открыть templates/default/privmsgs_read.tpl

Найти:

 

Ниже вставить:

Ссылка на комментарий

Mac

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

Пример.

Предыдущее сообщение от [user] :: Следующее сообщение от [user]

Ссылка на комментарий

Пожалуйста, войдите, чтобы комментировать

Вы сможете оставить комментарий после входа в



Войти
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...