Перейти к публикации
View in the app

A better way to browse. Learn more.

Дизайн и модификация Invision Community

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

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

Опубликовано:

В 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" включена?

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

Сейчас на странице 0

  • Нет пользователей, просматривающих эту страницу.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.