1. Приветствуем Вас на неофициальном форуме технической поддержки XenForo на русском языке. XenForo - коммерческий форумный движок от бывших создателей vBulletin, написанный на PHP.

Помогите с кодом

Тема в разделе "Вопросы и ответы по XenForo Framework", создана пользователем Chvalov, 27.01.2014.

Загрузка
  1. Chvalov

    Chvalov Новичок

    Регистрация:
    27.01.14
    Сообщения:
    7
    Симпатии:
    0
    Версия XF:
    1.2.4
    Есть код:
    PHP:
    <?php
    $fields
    ["EXPIRED_DATE"]  = "2014-12-31T23:59:59";

    print 
    "<form>";
    <
    input type=text name=DATE value={$fields["EXPIRED_DATE"]}>";
    Нужно сделать так чтобы время увеличивалось от текущего времени на 15 минут (время сессии)
    Тоесть если у нас в настройках сессия пользователя 30 минут, то нужно сделать так чтобы в $fields["EXPIRED_DATE"] передавалось не та дата и время что я жестко прописал а на 30 мин. больше от текущего.
     
    Последнее редактирование: 28.01.2014
  2. diplodok72

    diplodok72 Новичок

    Регистрация:
    21.01.14
    Сообщения:
    4
    Симпатии:
    0
    Версия XF:
    1.2.4
    PHP:
    // текущее дата-время + 30 минут
    $fields["EXPIRED_DATE"] = date('Y-m-dTH:i:s'mktime(date('H'), date('i')  + 30date('s')));
     
  3. Chvalov

    Chvalov Новичок

    Регистрация:
    27.01.14
    Сообщения:
    7
    Симпатии:
    0
    Версия XF:
    1.2.4
    Да я знаю но мне нужно добавлять то время что у меня в БД xenforo время сессии

    Вот например нужно вивести сообщение пользователю что ваша сессия зкончится через: XX мин
     
  4. diplodok72

    diplodok72 Новичок

    Регистрация:
    21.01.14
    Сообщения:
    4
    Симпатии:
    0
    Версия XF:
    1.2.4
    Ну так поставь обычный js таймер и после каждого обновления страницы пусть он отсчитывает время назад. В определенных точках времени всплывающее окно с сообщением об окончании времени сессии.
    Сессия ведь возобновляется(продлевается) при каждом переходе по страницам.
     
  5. Chvalov

    Chvalov Новичок

    Регистрация:
    27.01.14
    Сообщения:
    7
    Симпатии:
    0
    Версия XF:
    1.2.4
    Я написал вот например !
    Мне нужно както брать время сессии с БД и то время добавлять к

    PHP:
    $fields["EXPIRED_DATE"] = date('Y-m-dTH:i:s'mktime(date('H'), date('i') + SQL_БДdate('s')));
     
  6. akinak

    akinak Местный

    Регистрация:
    12.02.13
    Сообщения:
    259
    Симпатии:
    243
    Версия XF:
    1.1.3
    Ежели я правильно понял, то вам нужно
    XenForo_Application::get('options')->onlineStatusTimeout
    Это вернет значение из настроек Online Status Timeout (minutes)
     
  7. Chvalov

    Chvalov Новичок

    Регистрация:
    27.01.14
    Сообщения:
    7
    Симпатии:
    0
    Версия XF:
    1.2.4
    Ну вроде оно, а как это прописать в код php?
     
  8. akinak

    akinak Местный

    Регистрация:
    12.02.13
    Сообщения:
    259
    Симпатии:
    243
    Версия XF:
    1.1.3
    Код:
    <?php
    $startTime = microtime(true);
    $fileDir = dirname(__FILE__);
    
    require($fileDir . '/library/XenForo/Autoloader.php');
    XenForo_Autoloader::getInstance()->setupAutoloader($fileDir . '/library');
    
    XenForo_Application::initialize($fileDir . '/library', $fileDir);
    XenForo_Application::set('page_start_time', $startTime);
    
    $deps = new XenForo_Dependencies_Public();
    $deps->preLoadData();
    
    $onlineStatusTimeout = XenForo_Application::get('options')->onlineStatusTimeout;
    
    // текущее дата-время + время таймаута из опций
    $fields["EXPIRED_DATE"] = date('Y-m-dTH:i:s', mktime(date('H'), date('i') + $onlineStatusTimeout, date('s')));
    
     
    Последнее редактирование: 06.02.2014
    Mirovinger и Chvalov нравится это.

Поделиться этой страницей