Домой Каталог: Дополнения WP-Recall Rcl Chat Использование шорткода в шаблоне
15ответ(ов) в теме
Rob Roy
не в сети 7 лет
На сайте с 15.07.2016
Участник
1
18:03

Доброго времени суток.

В шаблоне размещен код:

$chat_id = $post->post_name;
echo do_shortcode('[ rcl-chat chat_room="' . $chat_id . '" userslist="1" avatar_size="42" ]');

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

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

В кабинете отправителя и получателя:

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

В чем может быть проблема?

0
Андрей CS
не в сети 3 дня
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16936
2
18:06

пробуйте разместить чат обычным шорткодом, работает?
ссылку давайте

0
Rob Roy
не в сети 7 лет
На сайте с 15.07.2016
Участник
3
18:13

Ссылку выложу завтра - вылью на хостинг. Сайт на локалке развернут.

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

при создании чата подобным образом следует учитывать, что параметр chat_room не может быть длиннее 100 символов, ограничение указано в таблице БД.
Надо проверить создается ли вообще чат, если нет, то можно нужно проверить длину передаваемого параметра chat_room и если он больше, то увеличить длину строки в соотвествующем столбце таблицы rcl_chats

0
Rob Roy
не в сети 7 лет
На сайте с 15.07.2016
Участник
5
09:26

Чат создается.

SQL:

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

P.S. Для уникальности и ограничения длины изменил порядок генерации chat_room:

$chat_id = substr( $post->post_name, 0, 80) . '-' . time();

0
Андрей CS
не в сети 3 дня
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16936
6
11:21

Rob Roy сказал(а)

Чат создается.

SQL:

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

P.S. Для уникальности и ограничения длины изменил порядок генерации chat_room:

$chat_id = substr( $post->post_name, 0, 80) . '-' . time();

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

0
Rob Roy
не в сети 7 лет
На сайте с 15.07.2016
Участник
7
13:46

Да тупанул - тяжелый день вчера был.
Заменил time() на get_current_user_id()

...и выложеный промежуточный билд:

Вы не можете просматривать опубликованные ссылки
0
Андрей CS
не в сети 3 дня
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16936
8
13:58

Rob Roy сказал(а)
Заменил time() на get_current_user_id()

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

0
Rob Roy
не в сети 7 лет
На сайте с 15.07.2016
Участник
9
14:19

Задача сделать прямой чат между автором материала и одним, уникальным, пользователем.
И да - часто. Каждую секунду 🙂 Тестили работу. Выставил на 10 сек.

0
Андрей CS
не в сети 3 дня
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16936
10
14:27

Rob Roy сказал(а)

Задача сделать прямой чат между автором материала и одним, уникальным, пользователем.

Что то не ясна цель, каким образом, автор публикации при переходе на страницу публикации будет переписываться отдельно с двумя разными пользователями?

0
Rob Roy
не в сети 7 лет
На сайте с 15.07.2016
Участник
11
14:30

Автор публикации должен это в своем кабинете делать. В списке чатов.

0
Андрей CS
не в сети 3 дня
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16936
12
14:32

Rob Roy сказал(а)

Автор публикации должен это в своем кабинете делать. В списке чатов.

В списке чатов личного кабинета выводятся не абы какие чаты, а только приватные

0
Rob Roy
не в сети 7 лет
На сайте с 15.07.2016
Участник
13
14:41

Хм... Тоесть [ rcl-chat ] выводит публичные чаты.
Мда, не это требуется. 🙁

Ок, тогда вопрос, как организовать приватный чат на произвольной странице?

0
Андрей CS
не в сети 3 дня
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16936
14
14:46

Rob Roy сказал(а)
Ок, тогда вопрос, как организовать приватный чат на произвольной странице?

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

$chat_room = rcl_get_private_chat_room($user_1,$user_2);
$chat = rcl_chat_shortcode(array('userslist'=>1,'chat_room'=>$chat_room));

первый пользователь может быть автором публикации, а второй текущим пользователем

1
Rob Roy
не в сети 7 лет
На сайте с 15.07.2016
Участник
15
15:10

Андрей, вы в очередной раз меня спасаете 🙂
Чувствую, что к завершению проекта мне придется проставляться 🙂

Огромное, человеческое спасибо.

И да, пример рабочего кода:

// Start base loop
$my_post = get_post( $id );
$user_1 = $my_post->post_author; // ID post author
// End base loop

$user_2 = get_current_user_id(); // ID user
$chat_room = rcl_get_private_chat_room( $user_1, $user_2 );
$chat = rcl_chat_shortcode( array( 'userslist'=>1,'chat_room'=>$chat_room ) );
print $chat;

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