Вход Регистрация
Файл: library/XenForo/ImportSession.php
Строк: 101
<?php

class XenForo_ImportSession
{
    protected 
$_data = array();

    public function 
__construct($fresh false)
    {
        if (!
$fresh)
        {
            
$data XenForo_Model::create('XenForo_Model_DataRegistry')->get('importSession');
            if (
$data)
            {
                
$this->_data $data;
            }
        }
    }

    public function 
save()
    {
        
XenForo_Model::create('XenForo_Model_DataRegistry')->set('importSession'$this->_data);
    }

    public function 
delete()
    {
        
XenForo_Model::create('XenForo_Model_DataRegistry')->delete('importSession');
        
$this->_data = array();
    }

    public function 
isRunning()
    {
        return (
$this->_data true false);
    }

    public function 
start($importer, array $config)
    {
        
$this->_data = array(
            
'importer' => $importer,
            
'config' => $config,
            
'runSteps' => array(),
            
'step' => false,
            
'stepStart' => 0,
            
'stepOptions' => array(),
            
'extra' => array()
        );
    }

    public function 
completeStep($step false)
    {
        if (
$step === false)
        {
            
$step $this->_data['step'];
        }

        
$this->_data['runSteps'][$step]['run'] = true;
        
$this->_data['runSteps'][$step]['endTime'] = microtime(true);
        
$this->startStep(false);
    }

    public function 
incrementStepImportTotal($add$step false)
    {
        if (
$step === false)
        {
            
$step $this->_data['step'];
        }

        if (!isset(
$this->_data['runSteps'][$step]))
        {
            
$this->_data['runSteps'][$step] = array('run' => false'importTotal' => 0);
        }

        
$this->_data['runSteps'][$step]['importTotal'] += $add;
    }

    public function 
hasRunStep($step)
    {
        return !empty(
$this->_data['runSteps'][$step]['run']);
    }

    public function 
getImporterKey()
    {
        return (isset(
$this->_data['importer']) ? $this->_data['importer'] : false);
    }

    public function 
getConfig()
    {
        return (isset(
$this->_data['config']) ? $this->_data['config'] : array());
    }

    public function 
getRunSteps()
    {
        return (isset(
$this->_data['runSteps']) ? $this->_data['runSteps'] : array());
    }

    public function 
getStepInfo()
    {
        if (!isset(
$this->_data['step']))
        {
            return array(
                
'step' => false,
                
'stepStart' => 0,
                
'stepOptions' => array()
            );
        }
        else
        {
            return array(
                
'step' => $this->_data['step'],
                
'stepStart' => $this->_data['stepStart'],
                
'stepOptions' => $this->_data['stepOptions']
            );
        }
    }

    public function 
setStepInfo($start, array $stepOptions)
    {
        
$this->_data['stepStart'] = $start;
        
$this->_data['stepOptions'] = $stepOptions;
    }

    public function 
startStep($step$options = array())
    {
        
$this->_data['step'] = $step;
        
$this->_data['stepStart'] = 0;
        
$this->_data['stepOptions'] = $options;
        if (
$step)
        {
            
$this->_data['runSteps'][$step]['importTotal'] = 0;
            
$this->_data['runSteps'][$step]['startTime'] = microtime(true);
        }
    }

    public function 
setExtraData($key$subKey$value null)
    {
        if (
$value === null)
        {
            
$value $subKey;
            
$subKey false;
        }

        if (
$subKey === false)
        {
            
$this->_data['extra'][$key] = $value;
        }
        else
        {
            
$this->_data['extra'][$key][$subKey] = $value;
        }
    }

    public function 
unsetExtraData($key$subKey false)
    {
        if (
$subKey === false)
        {
            unset(
$this->_data['extra'][$key]);
        }
        else
        {
            unset(
$this->_data['extra'][$key][$subKey]);
        }
    }

    public function 
getExtraData($key$subKey false)
    {
        if (
$subKey === false)
        {
            return (isset(
$this->_data['extra'][$key]) ? $this->_data['extra'][$key] : false);
        }
        else
        {
            return (isset(
$this->_data['extra'][$key][$subKey]) ? $this->_data['extra'][$key][$subKey] : false);
        }
    }
}
Онлайн: 1
Реклама