Your IP : 216.73.216.52


Current Path : /proc/thread-self/root/var/www/surf/TYPO3/src/surf/Classes/ViewHelpers/
Upload File :
Current File : //proc/thread-self/root/var/www/surf/TYPO3/src/surf/Classes/ViewHelpers/StatusViewHelper.php

<?php
namespace Torresani\Surf\ViewHelpers;

use TYPO3Fluid\Fluid\Core\Rendering\RenderingContextInterface;
use TYPO3Fluid\Fluid\Core\ViewHelper\AbstractViewHelper;

final class StatusViewHelper extends AbstractViewHelper
{
    protected $escapeOutput = false;

    public function initializeArguments()
    {
        // registerArgument($name, $type, $description, $required, $defaultValue, $escape)
        $this->registerArgument('code', 'int', 'The code of status', true);
        $this->registerArgument('level', 'string', 'The level of status', true);
        $this->registerArgument('type', 'string', 'Returned type (description, class)', true, 'description');
    }

    public static function renderStatic(
        array $arguments,
        \Closure $renderChildrenClosure,
        RenderingContextInterface $renderingContext
    ) {
        $descriptionMap = [
            'order' => [
                0 => [
                    'description' => 'Da preparare',
                    'class' => 'warning',
                ],
                1 => [
                    'description' => 'Pronto presso Vendor',
                    'class' => 'success',
                ],
                2 => [
                    'description' => 'Consegna chiusa presso Vendor',
                    'class' => 'success',
                ],
                3 => [
                    'description' => 'Consegna in attesa di viaggio',
                    'class' => 'warning',
                ],
                4 => [
                    'description' => 'Consegna in viaggio',
                    'class' => 'warning',
                ],
                5 => [
                    'description' => 'Consegna in magazzino',
                    'class' => 'success',
                ],
                6 => [
                    'description' => 'Consegna aperta',
                    'class' => 'warning',
                ],
                7 => [
                    'description' => 'Busta in pacco ordine',
                    'class' => 'success',
                ],
                8 => [
                    'description' => 'Pacco ordine chiuso',
                    'class' => 'success',
                ],
                20 => [
                    'description' => 'Ordine presso stand',
                    'class' => 'success',
                ],
                21 => [
                    'description' => 'Ordine consegnato al cliente',
                    'class' => 'success',
                ],
                100 => [
                    'description' => 'Ordine senza prodotti del vendor',
                    'class' => 'secondary',
                ],
            ],
            'orderItem' => [
                0 => [
                    'description' => 'Da preparare',
                    'class' => 'warning',
                ],
                1 => [
                    'description' => 'Pronto presso Vendor',
                    'class' => 'success',
                ],
                2 => [
                    'description' => 'Consegna chiusa presso Vendor',
                    'class' => 'success',
                ],
                3 => [
                    'description' => 'Consegna in attesa di viaggio',
                    'class' => 'warning',
                ],
                4 => [
                    'description' => 'Consegna in viaggio',
                    'class' => 'warning',
                ],
                5 => [
                    'description' => 'Consegna in magazzino',
                    'class' => 'success',
                ],
                6 => [
                    'description' => 'Consegna aperta',
                    'class' => 'warning',
                ],
                7 => [
                    'description' => 'Busta in pacco ordine',
                    'class' => 'success',
                ],
                8 => [
                    'description' => 'Pacco ordine chiuso',
                    'class' => 'success',
                ],
                20 => [
                    'description' => 'Ordine presso stand',
                    'class' => 'success',
                ],
                21 => [
                    'description' => 'Ordine consegnato al cliente',
                    'class' => 'success',
                ],
            ],
            'delivery' => [
                0 => [
                    'description' => 'Prodotti da preparare',
                    'class' => 'warning',
                ],
                1 => [
                    'description' => 'Tutti gli ordini preparati',
                    'class' => 'success',
                ],
                2 => [
                    'description' => 'Consegna chiusa presso Vendor',
                    'class' => 'success',
                ],
                3 => [
                    'description' => 'Consegna in attesa di viaggio',
                    'class' => 'warning',
                ],
                4 => [
                    'description' => 'Consegna in viaggio',
                    'class' => 'warning',
                ],
                5 => [
                    'description' => 'Consegna in magazzino',
                    'class' => 'success',
                ],
                6 => [
                    'description' => 'Consegna aperta',
                    'class' => 'warning',
                ],
                7 => [
                    'description' => 'Busta in pacco ordine',
                    'class' => 'success',
                ],
                8 => [
                    'description' => 'Pacco ordine chiuso',
                    'class' => 'success',
                ],
                20 => [
                    'description' => 'Ordine presso stand',
                    'class' => 'success',
                ],
                21 => [
                    'description' => 'Ordine consegnato al cliente',
                    'class' => 'success',
                ],
            ],
        ];
        $result = [
            'description' => "UNDEFINED " . $arguments['level'] . ":" . $arguments['code'],
            'class' => 'danger',
        ];
        if (isset($descriptionMap[$arguments['level']][$arguments['code']])) {
            $result = $descriptionMap[$arguments['level']][$arguments['code']];
        }

        /* TODO */
        $result['description'] .= ' [' . $arguments['code'] . ']';
        return $result[$arguments['type']];

    }
}