Proyectos de Subversion LeadersLinked - Services

Rev

Rev 79 | Rev 90 | Ir a la última revisión | | Comparar con el anterior | Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
1 efrain 1
<?php
2
 
3
declare(strict_types=1);
4
 
5
namespace LeadersLinked\View;;
6
 
7
use Laminas\EventManager\EventManagerInterface;
8
use Laminas\View\ViewEvent;
9
use Laminas\EventManager\ListenerAggregateInterface;
10
use Laminas\Mvc\I18n\Translator;
43 efrain 11
use LeadersLinked\Library\Functions;
1 efrain 12
 
13
/**
14
 * @category   Laminas
15
 * @package    Laminas_Mvc
16
 * @subpackage View
17
 */
18
class RenderingStrategy implements ListenerAggregateInterface
19
{
20
    /**
21
     *
22
     * @var Translator
23
     */
24
    private $translator;
25
 
26
    /**
27
     *
28
     * @var callable[]
29
     */
30
    private $listeners;
31
 
32
    /**
33
     *
34
     * @param Translator $translator
35
     */
36
    public function __construct($translator)
37
    {
38
        $this->translator = $translator;
39
    }
40
 
41
 
42
    public function attach(EventManagerInterface $events, $priority = null)
43
    {
44
        $priority = -999;
45
        $this->listeners[] = $events->attach(ViewEvent::EVENT_RESPONSE, [$this, 'render'], $priority);
46
    }
47
 
48
    public function detach(EventManagerInterface $events)
49
    {
50
        foreach ($this->listeners as $index => $listener) {
51
            if ($events->detach($listener)) {
52
                unset($this->listeners[$index]);
53
            }
54
        }
55
    }
56
 
57
    public function render(ViewEvent $e)
58
    {
89 efrain 59
        $redirect_url = empty($_SERVER['REDIRECT_URL']) ? $_SERVER['REQUEST_URI'] : $_SERVER['REDIRECT_URL'];
60
 
61
        error_log('redirect_url = ' . $redirect_url);
62
        if(str_contains($redirect_url, 'send')) {
63
            $response = $e->getResponse();
64
 
65
            Functions::sendResponseJson($response, 'aqui1');
66
 
67
 
68
        }
69
 
70
 
79 efrain 71
        error_log("\r\nRenderingStrategy - render\r\n");
73 efrain 72
 
1 efrain 73
        $renderer = $e->getRenderer();
74
        $response = $e->getResponse();
75
        $result   = $e->getResult();
76
 
43 efrain 77
 
78
 
1 efrain 79
/*
80
        $matches = [];
81
        preg_match_all( '/LABEL_\w+/', $result, $matches);
82
 
83
        print_r($matches); exit;
84
        */
85
 
86
        $result = preg_replace_callback(
87
            '/LABEL_\w+/',
88
            function ( $matches ) {
89
                return $this->translator->translate($matches[0]);
90
            },
91
            $result
92
        );
93
        $result = preg_replace_callback(
94
            '/ERROR_\w+/',
95
            function ( $matches ) {
96
                return $this->translator->translate($matches[0]);
97
            },
98
            $result
99
        );
43 efrain 100
 
101
 
1 efrain 102
        $response->setContent($result);
103
        return $response;
104
    }
105
}