Seditio Source
Root |
./othercms/xenForo 2.2.8/src/XF/Cli/Command/ImportCommandTrait.php
<?php

namespace XF\Cli\Command;

use
Symfony\Component\Console\Helper\Table;
use
Symfony\Component\Console\Helper\TableCell;
use
Symfony\Component\Console\Helper\TableSeparator;
use
Symfony\Component\Console\Output\OutputInterface;

use function
strval;

trait
ImportCommandTrait
{
    protected function
outputImportNotes(OutputInterface $output, string $context, \XF\Import\Session $session)
    {
       
$manager = \XF::app()->import()->manager();
       
$notes = $manager->getImportNotesData('complete', $session);

       
$totalsTable = new Table($output);
       
$totalsTable->setHeaders(['Step', 'Total', 'Time taken']);

        foreach (
$notes['totals'] AS $total)
        {
           
$totalsTable->addRow([
               
$total['title'],
               
number_format($total['total']),
               
$this->getTimeString($total['time'])
            ]);
        }

       
$totalsTable->addRows([
            new
TableSeparator(),
            [new
TableCell('Total run time', ['colspan' => 1]), new TableCell($this->getTimeString($notes['runTime']), ['colspan' => 2])],
        ]);

       
$totalsTable->render();

       
$output->writeln("");

        if (!empty(
$notes['notes']))
        {
            foreach (
$notes['notes'] AS $noteSet)
            {
               
$setTable = new Table($output);
               
$setTable->setHeaders([strval($noteSet['title'])]);

                foreach (
$noteSet['entries'] AS $entry)
                {
                   
$setTable->addRow([strip_tags(strval($entry))]);
                }

               
$setTable->render();

               
$output->writeln("");
            }
        }

       
$output->writeln("A database table mapping old IDs to new IDs has been created: <info>{$notes['logTable']}</info>.");
       
$output->writeln("You may need this table for redirection scripts.\n");
    }

    protected function
getTimeString(float $time): string
   
{
        if (
$time > 3600)
        {
           
$minutes = number_format(($time / 60) % 60);
           
$hours = number_format(($time - $minutes * 60) / 3600);

            return
"$hours hours, $minutes minutes";
        }
        else if (
$time >= 120)
        {
            return
number_format($time / 60, 2) . ' minutes';
        }
        else
        {
            return
$time . ' seconds';
        }
    }
}