Jump to content
Дизайн и модификация IPS Community IPBSkinsBETA
Search In
  • More options...
Find results that contain...
Find results in...
Sign in to follow this  
Атаман

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

Recommended Posts

В 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 )

Share this post


Link to post
Share on other sites
Или он отвечает за вывод до 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"

  • Upvote 2

Share this post


Link to post
Share on other sites

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

 

session.gc_maxlifetime 86400

 

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

 

Спасибо.

Share this post


Link to post
Share on other sites

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

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

 

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

  • Upvote 2

Share this post


Link to post
Share on other sites

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

 

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

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

  • Upvote 3

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

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

  • Upvote 2

Share this post


Link to post
Share on other sites
PT30M - заменил на PT200M = заработало (в виджете сразу отобразило много пользователей в сети)

 

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

Share this post


Link to post
Share on other sites
ini_set('session.gc_maxlifetime', 30*60);

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

Share this post


Link to post
Share on other sites

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

В /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 версии таких проблем не было с этой настройкой.

 

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

Share this post


Link to post
Share on other sites

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

members.php

 

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

Share this post


Link to post
Share on other sites

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

 

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

  • Upvote 1

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...