1: <?php
2: namespace Opencart\Admin\Controller\Event;
3: /**
4: * Class Language
5: *
6: * @package Opencart\Admin\Controller\Event
7: */
8: class Language extends \Opencart\System\Engine\Controller {
9: /**
10: * Index
11: *
12: * Dump all the language vars into the template.
13: *
14: * view/ * /before
15: *
16: * @param string $route
17: * @param array<string, string> $args
18: *
19: * @return void
20: */
21: public function index(string &$route, array &$args): void {
22: foreach ($this->language->all() as $key => $value) {
23: if (!isset($args[$key])) {
24: $args[$key] = $value;
25: }
26: }
27: }
28:
29: /**
30: * Before
31: *
32: * 1. Before controller load store all current loaded language data.
33: *
34: * controller/ * /before
35: *
36: * @param string $route
37: * @param array<mixed> $args
38: *
39: * @return void
40: */
41: public function before(string &$route, array &$args): void {
42: $data = $this->language->all();
43:
44: if ($data) {
45: $this->language->set('backup', json_encode($data));
46: }
47: }
48:
49: /**
50: * After
51: *
52: * // 2. After controller load restore old language data.
53: *
54: * // controller/ * / * /after
55: *
56: * @param string $route
57: * @param array<mixed> $args
58: * @param mixed $output
59: *
60: * @return void
61: */
62: public function after(string &$route, array &$args, &$output): void {
63: $data = json_decode($this->language->get('backup'), true);
64:
65: if (is_array($data)) {
66: $this->language->clear();
67:
68: foreach ($data as $key => $value) {
69: $this->language->set($key, $value);
70: }
71: }
72: }
73: }
74: