19ответ(ов) в теме
Rob Roy
не в сети 4 года
На сайте с 15.07.2016
Участник
1
12:56

Доброго дня.
Возникла проблема:
Чат между юзером и админом - без проблем.
Чат между юзером и юзером - не проходит. В БД комнаты создаются и сообщения записываются, а на выходе - тишина...

0
Владимир (Otshelnik-Fm)
не в сети 4 дня
На сайте с 27.01.2013
Участник
Тем 43
Сообщения 18482
2
13:12

Здравствуйте.
Где используемые версии?
Свои модификации и сторонние аддоны отключали?

Вы не можете просматривать опубликованные ссылки

- у меня все работает
Может я что-то не так делаю?

0
Rob Roy
не в сети 4 года
На сайте с 15.07.2016
Участник
3
13:38

Версии самые последние. Модификации, плагины - отключал.
Говорю ж: между админом и юзером чат идет. А между юзером и юзером - нет. 🙁

0
Rob Roy
не в сети 4 года
На сайте с 15.07.2016
Участник
4
13:45

Чаты не проходят между кастомными ролями 🙁
Между базовыми вордпресовскими - без проблем

0
Андрей CS
не в сети 4 часа
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 15895
5
13:52

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

0
Андрей CS
не в сети 4 часа
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 15895
6
13:53

в логи ошибок что то пишется?

0
Rob Roy
не в сети 4 года
На сайте с 15.07.2016
Участник
7
16:44

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

Оказалось не все так однозначно 🙁

0
Rob Roy
не в сети 4 года
На сайте с 15.07.2016
Участник
8
15:58

Итак, оказалось, что роли действительно никак не влияют на организацию чата.
Выяснилось следующее:
1. При создании чата штатным путем создается:
- 2 записи в таблице _rcl_chat_users для каждого из учасников чата
- запись в таблицу _rcl_chats с параметром private
- запись в таблице _rcl_chat_messages с параметром private_key = ID опонента
2. При создании кастомным путем создается:
- 1 запись в таблице _rcl_chat_users
- запись в таблицу _rcl_chats с параметром general
- запись в таблице _rcl_chat_messages с параметром private_key = 0

***
Решение - в процессе.

IMXO. Хотелось бы где нибуть (не в коде 🙂 ) почитать о параметрах массива, передаваемого функции rcl_chat_shortcode и далее классу Rcl_Chat

0
Владимир (Otshelnik-Fm)
не в сети 4 дня
На сайте с 27.01.2013
Участник
Тем 43
Сообщения 18482
9
16:11

На странице описания чата (в другой вашей теме сегодня уже говорил) и на странице описания шорткода

Вы не можете просматривать опубликованные ссылки
0
Владимир (Otshelnik-Fm)
не в сети 4 дня
На сайте с 27.01.2013
Участник
Тем 43
Сообщения 18482
10
16:18

Вы задаете вопрос про какой чат? Это ваше кастомное решение

Вы не можете просматривать опубликованные ссылки

или вы про стандартный чат в личных сообщениях?

0
Rob Roy
не в сети 4 года
На сайте с 15.07.2016
Участник
11
16:23

Вы меня расстроили, получается мы може передать только 4 параметра...

Маловато будет! (c)

0
Rob Roy
не в сети 4 года
На сайте с 15.07.2016
Участник
12
16:24

Otshelnik-Fm сказал(а)
Вы задаете вопрос про какой чат? Это ваше кастомное решение

Вы не можете просматривать опубликованные ссылки

или вы про стандартный чат в личных сообщениях?

Именно про кастомное...

0
Андрей CS
не в сети 4 часа
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 15895
13
16:37

Rob Roy сказал(а)
Вы меня расстроили, получается мы може передать только 4 параметра...

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

0
Rob Roy
не в сети 4 года
На сайте с 15.07.2016
Участник
14
17:40

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

Вот это уже бальзам на душу. 🙂
В общем проблема пока безболезнено не решена.
Кастомный чат по прежнему создается с chat_status = general, что влечет за собой присвоение сообщениям private_key = 0
Отсюда истекает желание передать классу принудительный статус = private через параметр, дабы не лезть в класс грязными руками 🙂

...и пока что не понята причина "не создания" второй строки для принимающей стороны в таблице _rcl_chat_users:

Вы не можете просматривать опубликованные ссылки
0
Андрей CS
не в сети 4 часа
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 15895
15
17:48

вы хотите создать приватный чат между двумя пользователями?

0
Андрей CS
не в сети 4 часа
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 15895
16
18:02

Андрей CS сказал(а)

вы хотите создать приватный чат между двумя пользователями?

$chat_room = rcl_get_private_chat_room($user_id1,$user_id2);
$chat = rcl_chat_shortcode(array(
		'userslist'=>1,
		'chat_status'=>'private',
		'chat_room'=>$chat_room
	)
);

0
Rob Roy
не в сети 4 года
На сайте с 15.07.2016
Участник
17
19:32

Благодарю, Андрей. Передача параметра решает две из трех проблем "безболезненно" для класса:

- 1 запись в таблице _rcl_chat_users
- запись в таблицу _rcl_chats с параметром general
- запись в таблице _rcl_chat_messages с параметром private_key = 0

Осталось решить проблему _rcl_chat_users... 🙂

0
Rob Roy
не в сети 4 года
На сайте с 15.07.2016
Участник
18
09:34

Итак безболезненного решени проблемы не нашлось.
Пришлось, да простит меня многоуважаемый автор, лезть таки в класс 🙁

На 218 строке был добавлен код:

           $message_call = array(
                'room_place'=>$chat_id.':'.$private_key,
                'chat_id'=>$chat_id,
                'user_id'=>$private_key,
                'user_activity'=>current_time('mysql'),
                'user_write'=>0,
                'user_status'=>1,
            );
            $result_call = $wpdb->insert(
                RCL_PREF.'chat_users',
                $message_call
            );

        if(!$message){
            $this->add_error('insert_message',__('The message was not added','wp-recall'));
            return $this->errors();
        }

и строка global $rcl_options,$current_user; (ст.503) заменена на global $rcl_options;

После этого костыля чаты заработали корректно.

Думаю теперь тему можно закрывать.

0
Андрей CS
не в сети 4 часа
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 15895
19
11:00

при создании нового чата срабатывает экшн rcl_insert_chat, передает ИД созданного чата, проще обратиться через стороннюю функцию к нему и создать второго пользователя в чате, когда это необходимо.
Данные чата по ИД можно получить через функциюrcl_get_chat($chat_id);

0
Тема закрыта. Публикация новых сообщений запрещена.