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

Увеличить время активности сессии пользователя

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

 

Есть PHP виджета, я правильно понимаю, что цифру 60 нужно заменить? Или он отвечает за вывод до 60 человек, а остальных скрывает, чтоб блок не заполнять.

 

foreach( \IPS\Db::i()->select( 'core_sessions.member_id,core_sessions.member_name,core_sessions.seo_name,core_sessions.member_group,core_sessions.login_type', 'core_sessions', $where, 'core_sessions.running_time DESC', $this->orientation === 'horizontal' ? NULL : 60 )->join( 'core_groups', 'core_sessions.member_group=core_groups.g_id' ) as $row )

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

Или он отвечает за вывод до 60 человек

Да.

В виджете /applications/core/widgets/whosOnline.php

 

array( 'core_sessions.running_time>' . \IPS\DateTime::create()->sub( new \DateInterval( 'PT30M' ) )->getTimeStamp() ),

PT30M

 

Да и то изменение не особо поможет, т.к. время жизни сессии (session.gc_maxlifetime) по дефолту равно 24 минуты, значение которого тоже придется менять.

 

Если нужно фиктивное присутствие людей на форуме, можно установить плагин "Traffic Generator"

  • Автор

PT30M - заменил на PT200M = заработало (в виджете сразу отобразило много пользователей в сети), но когда заходишь чтоб просмотреть список пользователей онлайн в отдельной вкладке, там отображается реальная картинка, но для этого как Вы сказали нужно session.gc_maxlifetime. У меня значение в phpinfo:

 

session.gc_maxlifetime 86400

 

Сейчас ищу где в самой странице это правится.

 

Спасибо.

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

Для этого нужно изменить /applications/core/modules/front/online/online.php

 

array( "core_sessions.running_time>?", \IPS\DateTime::create()->sub( new \DateInterval( 'PT30M' ) )->getTimeStamp() ),

  • Автор

Спасибо, всё заработал);)

Время жизни сессии session.gc_maxlifetime можно установить из php, добавив в constants.php (в секундах):

 

ini_set('session.gc_maxlifetime', 30*60);

Для форума нет смысла устанавливать большие значения на уровне php.ini, IPS хранит сессии в бд, а временная папка только будет забиваться старыми сессиями других сайтов.

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

  • 2 недели спустя...

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

Сессии в АЦ работают по тому же принцу, что и в публичной части - увеличив время сессии на форуме также увеличивается и время в АЦ.

  • 2 месяца спустя...
PT30M - заменил на PT200M = заработало (в виджете сразу отобразило много пользователей в сети)

 

Поставил в /applications/core/widgets/whosOnline.php значение PT200M и ни чего не поменялось, у пользователей и гостей тот же период считается не активным, а нужно что бы дольше задерживались в блоке (Сейчас в сети), даже если вышли с форума. Подскажите что нужно сделать?

ini_set('session.gc_maxlifetime', 30*60);

Какие цифры менять надо (30*60)?, если кто пробовал, какие значения там поставить, что бы папку со старыми сессиями не забивать?

Меняю в блоке (Сейчас в сети) делаю такие значения:

В /applications/core/widgets/whosOnline.php - ставлю на PT200M и ни чего не происходит. Не пойму почему здесь не работает?

 

Меняю список пользователей онлайн в отдельной вкладке:

в /applications/core/modules/front/online/online.php - ставлю на PT200M вроде работает, появляется больше пользователей и гостей.

 

В файл constants.php поставил такие значения:

ini_set('session.gc_maxlifetime', 130*160);

Ни чего не поменялось.

 

В IPB 3 версии таких проблем не было с этой настройкой.

 

Может кто ни будь объяснить толком как изменить, что бы всё работало?

  • 3 месяца спустя...
  • Автор

Есть еще виджет (недавно просматривали). Мне нужно увеличит хотя-бы время прибывания юзеров в теме на 5-10 мин.

members.php

 

Подскажите, что поправить?

$where[] = array( 'last_activity > ?', \IPS\DateTime::create()->sub( new \DateInterval( 'PT30M' ) )->getTimeStamp() );

 

30M - 30 минут. Поменять на требуемое количество минут.

  • Автор

Странно по умолчанию даже минуты нету. Там живое время, вошел - вышел с темы.

А настройка "widget_member_online" включена?

Создайте аккаунт или войдите в него для комментирования

Аккаунт

Навигация

Поиск

Поиск

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

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